Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап Помощь новичкам и тем, кто мало писал плагины. (+ LifeHack'и)

Проблема со чтением конфига?
Чуть чуть переделал, но опять же не считывает звук, тишина, хотя и null не выкидывает. Взял строку с офф сайта бакита.

Код:
   @EventHandler(priority = EventPriority.HIGHEST)
    public boolean JoinSound(PlayerJoinEvent jes, FileConfiguration config) {
        Player p = jes.getPlayer();
        String group = Plugin.c.getPrimaryGroup(p);
       if(p.hasPermission("customjoinstream.sound"))
           p.playSound(p.getLocation(), Sound.valueOf(config.getString("Groups." + group + ".sound").toUpperCase()), 10, 100);
       return true;
   }
}
В конфиге так.
Код:
Groups:
    default:
        sound: BLOCK_ANVIL_USE
 
Чуть чуть переделал, но опять же не считывает звук, тишина, хотя и null не выкидывает. Взял строку с офф сайта бакита.

Код:
   @EventHandler(priority = EventPriority.HIGHEST)
    public boolean JoinSound(PlayerJoinEvent jes, FileConfiguration config) {
        Player p = jes.getPlayer();
        String group = Plugin.c.getPrimaryGroup(p);
       if(p.hasPermission("customjoinstream.sound"))
           p.playSound(p.getLocation(), Sound.valueOf(config.getString("Groups." + group + ".sound").toUpperCase()), 10, 100);
       return true;
   }
}
В конфиге так.
Код:
Groups:
    default:
        sound: BLOCK_ANVIL_USE
Пермишн есть? Все звуки включены? Эвент зарегистрирован?
 
Пермишн есть? Все звуки включены? Эвент зарегистрирован?
Проверяю под опкой, так что перм 100% есть. Эвент работает, проверял выводом звука из самого кода плагина. Не понял на счет включения звуков.
 
Проверяю под опкой, так что перм 100% есть. Эвент работает, проверял выводом звука из самого кода плагина. Не понял на счет включения звуков.
В клиенте, обычно некоторые игроки вырубают несколько типов звуков (игроки, блоки).
 
В клиенте, обычно некоторые игроки вырубают несколько типов звуков (игроки, блоки).
У меня чистый клиент 1.12.1 без модификаций и под эту же версию собираю плагин.
 
Я о настройках громкости.
С этим все впорядке, звук в самой игре есть, я ток музыку вырубаю. Не воспроизводит звук именно плагин и только если я беру его из конфига.
 
Проверяю под опкой, так что перм 100% есть. Эвент работает, проверял выводом звука из самого кода плагина. Не понял на счет включения звуков.
А у тебя точно группа default? Не Default?
 
А у тебя точно группа default? Не Default?
Уже исправил, хз почему но отказывался считывать конфиг напрямую, пока не прописал путь к конфигу так instance.config, то есть направил через главный класс. Только после этого заработало. Думаю добавлю возможность установить 2 дополнительных звука и отдельным пермом несколько эффектов. Как доделаю выложу обнову тему плагина, пока ток в исходниках это есть.
 
Как сделать проверку конфига на наличие параметра? Если параметр есть, то он используется, если стоит допустим 'none', то ничего не происходит или отправляется сообщение в консоль.
Чет нагуглил на западных ресурсах ток и 1 фиг не подходит, пытается 'none' взять за параметр, либо вообще перестает воспринимать строку в конфиге.
 
Как сделать проверку конфига на наличие параметра? Если параметр есть, то он используется, если стоит допустим 'none', то ничего не происходит или отправляется сообщение в консоль.
Чет нагуглил на западных ресурсах ток и 1 фиг не подходит, пытается 'none' взять за параметр, либо вообще перестает воспринимать строку в конфиге.
if (getConfig().contains("Setting.level")){
//TODO
} else {
getConfig().createSection("Setting.level"); //создаст просто секцию без значения
getConfig().set("Setting.level", 5); //создаст секцию со значением
saveConfig()
{
 
if (getConfig().contains("Setting.level")){
//TODO
} else {
getConfig().createSection("Setting.level"); //создаст просто секцию без значения
getConfig().set("Setting.level", 5); //создаст секцию со значением
saveConfig()
{
Я уже сохраняю готовый конфиг, мне нужно считывание грамотное сделать, что бы при пустой строке или определенном значении возвращало null.
 
Я уже сохраняю готовый конфиг, мне нужно считывание грамотное сделать, что бы при пустой строке или определенном значении возвращало null.
Ну так проверяй полученное значение. В чём проблема? Покажи код, что не получается.
 
Имеется 2 класса.
1. CmdExecutor
2. LocManager
Теперь вопрос. Как сделать их нормальное взаимодействие? При вводе команды я получаю null, если все кидаю в 1 класс, то работает нормально.
PS для сохранения данных использую отдельный конфиг. Если есть замечания по коду, прошу высказывать.
 
Имеется 2 класса.
1. CmdExecutor
2. LocManager
Теперь вопрос. Как сделать их нормальное взаимодействие? При вводе команды я получаю null, если все кидаю в 1 класс, то работает нормально.
PS для сохранения данных использую отдельный конфиг. Если есть замечания по коду, прошу высказывать.
Я конечно с телефона, но кажется ты забыл создать объект класса LocManager в CmdExecutor
 
Имеется 2 класса.
1. CmdExecutor
2. LocManager
Теперь вопрос. Как сделать их нормальное взаимодействие? При вводе команды я получаю null, если все кидаю в 1 класс, то работает нормально.
PS для сохранения данных использую отдельный конфиг. Если есть замечания по коду, прошу высказывать.
А где присвоение lm? Оно только объявлено, и будет равно null

P.S. Прокрутка как в вк между страницами не помешала бы, сообщение Rider3217 не заметил даже.
 
Я конечно с телефона, но кажется ты забыл создать объект класса LocManager в CmdExecutor
А где присвоение lm? Оно только объявлено, и будет равно null
Вы про такое?
Код:
    LocManager lm;
    public CmdExecutor(LocManager locmanager) {
        lm = locmanager;
    }
 
Вы про такое?
Код:
    LocManager lm;
    public CmdExecutor(LocManager locmanager) {
        lm = locmanager;
    }
Можно и так. Только тогда тебе нужно использовать именно этот конструктор, для создания экземпляров класса.
 

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

Назад
Верх