Подключение к бд

Версия Minecraft
1.7.10
Доброго времени суток, подскажите, у меня такая вот проблема, не могу добавить строку в таблицу, скорей всего из-за uuid(скорей всего не правильно достаю).
Java:
public static UUID getUUIDFromName(String username) {
        GameProfile profile = MinecraftServer.getServer().func_152358_ax().func_152655_a(username);
        return profile == null ? null : profile.getId();
    }
   
    /**
     * Установить баланс игрока на указанный
     * @param player - Игрок
     * @param count - Количество
     * @return - true, если операция прошла успешно, false игрок не найден
     */
    public static boolean setMoney(String player, int count) {
        if (MinecraftServer.getServer() == null)
            return false;

        if (isPlayerDB(player)) {
            sql.execute("UPDATE " + Table + " SET money=" + count + " WHERE name='" + player + "'");
            updateMoney(player);
            return true;
        }else {
            sql.execute("INSERT INTO " + Table + " (name, uuid, money) VALUES ('" + player + "', '" + getUUIDFromName(player) + "', " + count + ")");
            updateMoney(player);
            return true;
            }
/**
     * Существует ли игрок в базе данных экономики
     * @param player
     * @return
     */
    public static boolean isPlayerDB(String player) {
        ResultSet result = sql.executeQuery("SELECT * FROM " + Table + " WHERE name='" + player + "'");

        if (result == null) return false;

        return true;
    }
    }
 
Последнее редактирование:
По ломанному огрызку кода вам никто помочь не сможет. Очень много чего важного утеряно.
PreparedStatemet следует использовать для безопасно подстановки значений в запрос. От никнеймов откажитесь совсем, потому что есть уникальный и постоянный UUID. Forge предлагает постоянный кеш имён игроков UsernameCache
 
Назад
Сверху