Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

  1. Cool_boy

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

    Баллы:
    76
    Имя в Minecraft:
    prettydude
    event.getPlayer().getLastDamageCause() - EntityDamageEvent
    Я так в своем плагине своё сообщение о смерти от мины (плиты) прикрутил.
     
    Последнее редактирование: 31 авг 2017
  2. Mr Hosting
  3. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Подскажите как получить звук из конфига. У меня используется переменная group для получения группы, модифицирую плагин делаю возможным воспроизведение разного звука для разных групп. Вот код.
    Код:
    @EventHandler(priority = EventPriority.HIGHEST)
        public boolean JoinSound(PlayerJoinEvent jes) {
            Player p = jes.getPlayer();
            String group = Plugin.c.getPrimaryGroup(p);
            if(p.hasPermission("customjoinstream.sound"))
            jes.getPlayer().playSound(p.getLocation(), (instance.getConfig().getString("Sounds." + group + звук)), 5, 5);
            return true;
        }
    Что только не перепробовал, не могу достать звук, либо просто тишина, либо null получаю. Группу получаю при помощи Vault.
     
  4. Cool_boy

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

    Баллы:
    76
    Имя в Minecraft:
    prettydude
    Звуки правильно прописаны? Можно ещё использовать Sound.valueOf(string.toUpperCase());
     
  5. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Если использовать это, то саму группу пытается взять за звук. И в итоге опять получаю ошибку null.
     
  6. Cool_boy

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

    Баллы:
    76
    Имя в Minecraft:
    prettydude
    Проблема со чтением конфига?
     
  7. glavrak

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

    Баллы:
    96
    Имя в Minecraft:
    Mr_Krab
    Вот так в конфиге
    Код:
    Sounds:
        default: BLOCK_ANVIL_USE
    В качестве звука при вышеописаном методе пытается взять группу, а не ее параметр.
     
  8. 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
     
  9. Cool_boy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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