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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем ANTI_GREEFER, 1 дек 2013.

  1. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Вот так в конфиге
    Код:
    Sounds:
        default: BLOCK_ANVIL_USE
    В качестве звука при вышеописаном методе пытается взять группу, а не ее параметр.
     
  2. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Чуть чуть переделал, но опять же не считывает звук, тишина, хотя и 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
     
  3. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Пермишн есть? Все звуки включены? Эвент зарегистрирован?
     
  4. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Проверяю под опкой, так что перм 100% есть. Эвент работает, проверял выводом звука из самого кода плагина. Не понял на счет включения звуков.
     
  5. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    В клиенте, обычно некоторые игроки вырубают несколько типов звуков (игроки, блоки).
     
  6. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    У меня чистый клиент 1.12.1 без модификаций и под эту же версию собираю плагин.
     
  7. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Я о настройках громкости.
     
  8. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    С этим все впорядке, звук в самой игре есть, я ток музыку вырубаю. Не воспроизводит звук именно плагин и только если я беру его из конфига.
     
  9. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    А у тебя точно группа default? Не Default?
     
  10. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Уже исправил, хз почему но отказывался считывать конфиг напрямую, пока не прописал путь к конфигу так instance.config, то есть направил через главный класс. Только после этого заработало. Думаю добавлю возможность установить 2 дополнительных звука и отдельным пермом несколько эффектов. Как доделаю выложу обнову тему плагина, пока ток в исходниках это есть.
     
  11. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Как сделать проверку конфига на наличие параметра? Если параметр есть, то он используется, если стоит допустим 'none', то ничего не происходит или отправляется сообщение в консоль.
    Чет нагуглил на западных ресурсах ток и 1 фиг не подходит, пытается 'none' взять за параметр, либо вообще перестает воспринимать строку в конфиге.
     
  12. Exception_Prototype

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

    Баллы:
    96
    if (getConfig().contains("Setting.level")){
    //TODO
    } else {
    getConfig().createSection("Setting.level"); //создаст просто секцию без значения
    getConfig().set("Setting.level", 5); //создаст секцию со значением
    saveConfig()
    {
     
  13. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Я уже сохраняю готовый конфиг, мне нужно считывание грамотное сделать, что бы при пустой строке или определенном значении возвращало null.
     
  14. Exception_Prototype

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

    Баллы:
    96
    Ну так проверяй полученное значение. В чём проблема? Покажи код, что не получается.
     
  15. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Имеется 2 класса.
    1. CmdExecutor
    2. LocManager
    Теперь вопрос. Как сделать их нормальное взаимодействие? При вводе команды я получаю null, если все кидаю в 1 класс, то работает нормально.
    PS для сохранения данных использую отдельный конфиг. Если есть замечания по коду, прошу высказывать.
     
  16. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Я конечно с телефона, но кажется ты забыл создать объект класса LocManager в CmdExecutor
     
  17. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    А где присвоение lm? Оно только объявлено, и будет равно null

    P.S. Прокрутка как в вк между страницами не помешала бы, сообщение Rider3217 не заметил даже.
     
  18. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Вы про такое?
    Код:
        LocManager lm;
        public CmdExecutor(LocManager locmanager) {
            lm = locmanager;
        }
     
  19. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Можно и так. Только тогда тебе нужно использовать именно этот конструктор, для создания экземпляров класса.
     
  20. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Пробовал, ошибка та же. Есть другие варианты?
     

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