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

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

Ну берёшь эти доски и меняешь им материал. В чем проблема?
Наверно я чегото не понял,.. нет материала березовые доски - только дуб...
Тут получается я ставлю блок дубовых досок а потом через дату меняю их на березовые...?
Код:
Location lok;
lok.getBlock().setType(Material.LOG);
lok.getBlock().setData((byte)2);

//или так както(но так не получится)
lok.getBlock().setType(Material.LOG).setData((byte)2);

почему ж так сложно то...
 
Наверно я чегото не понял,.. нет материала березовые доски - только дуб...

Тут получается я ставлю блок дубовых досок а потом через дату меняю их на березовые...?
Код:
Location lok;
lok.getBlock().setType(Material.LOG);
lok.getBlock().setData((byte)2);

//или так както(но так не получится)
lok.getBlock().setType(Material.LOG).setData((byte)2);

почему ж так сложно то...
Там с data всё немного плохо в новых версиях. Для некоторых блоков есть интерфейсы, с их типами (как садженцы), а вот для досок/брёвен не нашёл.
 
Мне надо сделать так, что бы в определенное время происходило определенное действие.
Почти со всем разобрался, кроме времени.
Каким образом лучше реализовать?
Не слушать же каждый тик?(бред+нагрузка)
 
Мне надо сделать так, что бы в определенное время происходило определенное действие.
Почти со всем разобрался, кроме времени.
Каким образом лучше реализовать?
Не слушать же каждый тик?(бред+нагрузка)
Пускай асинхронный повторяющийся шедулер, который будет выполнять каждую секунду то, что тебе нужно. Думаю, за одну секунду вряд ли что-то произойдет.
 
Как в самом коде алиас команды сделать?Не могу найти. Сделал команду с аргументом, нужно сделать алиас и только через код, plugin.yml не предлагать, я через рефлексию забацал в отдельном классе.
 
Как в самом коде алиас команды сделать?Не могу найти. Сделал команду с аргументом, нужно сделать алиас и только через код, plugin.yml не предлагать, я через рефлексию забацал в отдельном классе.
http://rubukkit.org/threads/registriruem-komandy-bez-zapisi-v-plugin-yml.134239
 
Я этим и регал команду, мне алиас создать нужно. Что бы длинная команда была равна короткой и нормально реагировало на аргументы.
Первый аргумент в CommandRegister ведь алиасы.
 
Чем можно отловить сообщение о смерти игрока от команды /kill и от падения в пустоту?
И еще я тут обновляю RandomChest под новые версии и от этого кода у меня ошибка null
Код:
List<Integer> durability = (List<Integer>) (item.get("durability") != null ? item
                    .get("durability") : new ArrayList<Integer>());
Прошу совет по присвоению предмету уровня прочности, там как рандомная, так и статичная не пашет. Исходники ТЫК.
 
Чем можно отловить сообщение о смерти игрока от команды /kill и от падения в пустоту?
PlayerDeathEvent
У меня ошибка null
Код:
List<Integer> durability = (List<Integer>) (item.get("durability") != null ? item
                    .get("durability") : new ArrayList<Integer>());
item.getDurability() - получить
item.setDurability() - изменить
 
Под какую версию пишешь плагин? Судя по некоторым методам - 1.8.
 
Этот эвент я и так использую, какое событие отвечает за эти 2 сообщения не пойму.

item.getDurability() - получить
item.setDurability() - изменить
Под какую версию пишешь плагин? Судя по некоторым методам - 1.8.
Я его обновить пытаюсь на 1.12, плагин не мой, разраб его забросил. Кое что я уже сделал, но с этим не могу разобраться никак, там вроде еще с зельками проблемы.
 
Этот эвент я и так использую, какое событие отвечает за эти 2 сообщения не пойму.
event.getPlayer().getLastDamageCause() - EntityDamageEvent
Я так в своем плагине своё сообщение о смерти от мины (плиты) прикрутил.
 
Последнее редактирование:
Подскажите как получить звук из конфига. У меня используется переменная 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.
 
Подскажите как получить звук из конфига. У меня используется переменная 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.
Звуки правильно прописаны? Можно ещё использовать Sound.valueOf(string.toUpperCase());
 
Звуки правильно прописаны? Можно ещё использовать Sound.valueOf(string.toUpperCase());
Если использовать это, то саму группу пытается взять за звук. И в итоге опять получаю ошибку null.
 

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

Назад
Верх