1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Config для определенного игрока.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Listvli, 21 май 2017.

Статус темы:
Закрыта.
  1. Автор темы
    Listvli

    Listvli Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    ListvliLiveGames
    И так. Как я могу загрузить конфиг для определенного игрока?

    У меня есть следующий код:
    Код:
    case MELON:          
                mainListener.plugin.getConfig().set(p.getName(), "rus");
                mainListener.plugin.saveConfig();
                mainListener.plugin.loadRusConfig();
                p.sendMessage(mainListener.messages.getString("langChanged"));    
    В методе loadRusConfig у меня есть конфиг информация, сохранение и т.д. Так, как я могу загрузить конфиг для определенного игрока?
    loadRusConfig метод:
    Код:
    public void loadRusConfig()
        {  
            File file = new File("plugins/LifeOutClassic/rus.lang");
    messages = YamlConfiguration.loadConfiguration(file);
            messages.addDefault("allowToCraft", ChatColor.GREEN + "Теперь можно крафтить сундук!");
    messages.options().copyDefaults(true);
            try {
                messages.save(file);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    Можно ли вообще загружать конфиг для определенного игрока?
     
  2. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    А в чём собственно проблема?
     
  3. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    HashMap
     
  4. Автор темы
    Listvli

    Listvli Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    ListvliLiveGames
    Проблема в следующем. У меня есть два конфига. Один rus.lang и другой eng.lang. Суть в том, что когда игрок нажимает на нужную кнопку в gui, то в обыковенный конфиг меняется переменная string на ту, какой язык был указан (то бишь eng или rus), а так же вызывается метод loadRusConfig или, соответственно, loadEngConfig. В этих методах есть следующая строка: messages = YamlConfiguration.loadConfiguration(file);
    После того, как один игрок сменил язык, то язык, который ранее был выбран одним игроком ставится всем остальным игрокам, даже не смотря на то, что они имеют в main config'e свою переменную. (На входе стоит проверка этой переменной).

    Сейчас у меня появились мысли, как еще можно проверки накинуть. И появилась еще одна мысль, которую я уже потерял, провалиться мне в астрал.
    Не работал еще ни разу с HashMap. Можешь прикинуть, хотя бы, что именно от меня требуется, если не сложно?
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Просто не юзай статическую переменную, а для каждого игрока свою.
    ретКонфиг(Лузверь.гетлокал());
     
  6. Автор темы
    Listvli

    Listvli Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    ListvliLiveGames
    хм. Может есть более радикальное решение?
    Это, конечно, как вариант, но по-моему он слегка гиблый -.-
     
  7. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Твоя проблема не со входом, а с выходом. Пляши от того факта, что твоему плагину нужно подстраиваться под каждого игрока. Думай от этого.
     
  8. Автор темы
    Listvli

    Listvli Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    ListvliLiveGames
    Дело совершенно не в выходе.
    Решение, как всегда, проще некуда. Закрыто. Ничего из указанного - совсем не то. Спасибо за внимание
     
  9. Exception_Prototype

    Exception_Prototype Активный участник Пользователь

    Баллы:
    96
    1. Поделись решением, ибо толку тогда нет.
    2. Закрой тему. Ты сможешь найти кнопочку.
     
  10. Автор темы
    Listvli

    Listvli Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    ListvliLiveGames
    Решение в этой теме
     
Статус темы:
Закрыта.

Поделиться этой страницей