- Баллы
- 123
- Имя в Minecraft
- stuvanya
Всем привет, есть более простой способ забрать у игрока из инвентаря определенное количество определенного материала без прохода циклами по его инвентарю?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Нету. Все баккитрвкие методы удаления предметов также работают переборомВсем привет, есть более простой способ забрать у игрока из инвентаря определенное количество определенного материала без прохода циклами по его инвентарю?
Примерно так:И ещё такой вопрос, как чекнуть, что при InventoryClickEvent игрок зажимает шрифт?
boolean left;
boolean shift;
switch (event.getClick()) {
case LEFT:
left = true;
shift = false;
break;
case RIGHT:
left = false;
shift = false;
break;
case SHIFT_LEFT:
left = true;
shift = true;
break;
case SHIFT_RIGHT:
left = false;
shift = true;
break;
default: {
event.setCancelled(true);
return;
}
}
В самой игре такая возможность есть только для листьев - чтобы поставленные игроками листья не пропадали без опоры. Для других типов блоков придется писать что-то своёВсем привет. Возможно ли понять при поломке бревна, что это выросшее дерево,а не построенная игроком структура? (Кроме поблочной проверки, что сверху есть листья)
А ну значит можно смотреть, есть ли рядом тогда такие листьяВ самой игре такая возможность есть только для листьев - чтобы поставленные игроками листья не пропадали без опоры. Для других типов блоков придется писать что-то своё
Попробуй так, главное в рекурсию не уйтиА ну значит можно смотреть, есть ли рядом тогда такие листья
@EventHandler
public void onWorldLoad(WorldLoadEvent event) {
World world = event.getWorld();
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);
getLogger().info("Set gamerule for world " + world + " world");
}
Как понять не работает?Нужно отследить появление нового мира и установить в нём геймрул. После десятка разных попыток пришел к этому, но не работает)
Код:@EventHandler public void onWorldLoad(WorldLoadEvent event) { World world = event.getWorld(); world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); getLogger().info("Set gamerule for world " + world + " world"); }
Не работает - геймрул не устанавливается, сообщение не выводится.Как понять не работает?
Как ты проверял?
Сообщение в консоль пишется?
public void onEnable() {
for (World world : Bukkit.getWorlds()) {
world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false);
}
}
Если даже сообщение не выводится, то значит ты эвент не зарегалНе работает - геймрул не устанавливается, сообщение не выводится.
У меня стоит плагин DungeonsXL, который позволяет создать мир данж. При создании/редактировании папка с миром копируется в папку сервера и подгружается мир редактор.
У меня так же есть при запуске сервера установка геймрула в дефолт мирах, но работает
Код:public void onEnable() { for (World world : Bukkit.getWorlds()) { world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); } }
Если даже сообщение не выводится, то значит ты эвент не зарегал
Этого же должно быть достаточно?@EventHandler
Этого же должно быть достаточно?
А я то надеялся уместится в 1 классе до лучших времён...public class EventListener {
@EventHandler
public void method(...) {...}
}
Нет, Bukkit.getPluginManager().registerEvents(new EventListener());
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(new EventListener(), this);
...
public class EventListener implements Listener {
@EventHandler
...
Разницы 0. Как и с другими методами интерфейса Server. Просто алиасы для более короткого кодаИ, раз уж я решил что-то сделать немного не так, как сказали, маленький вопрос.
В чём разница между
Bukkit.getServer().getPluginManager()
и
Bukkit.getPluginManager()
?
Примерно так и подумал, но вчера уже не хотел заморачиваться, спасибо.Разницы 0. Как и с другими методами интерфейса Server. Просто алиасы для более короткого кода
Тебе никто не мешает сделать главный класс плагина implements ListenerА я то надеялся уместится в 1 классе до лучших времён...
Но, разобрался и всё работает, спасибо.
Если вдруг накосячил
Маин класс
Класс EventLisenerКод:public void onEnable() { Bukkit.getServer().getPluginManager().registerEvents(new EventListener(), this); ...
Код:public class EventListener implements Listener { @EventHandler ...