- Баллы
- 61
- Имя в Minecraft
- Belo4kaProgramist
Как сделать так чтобы эвент выполнся ТОЛЬКО после написания команды?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Создай булевное поле с false, после команды ставь true, после чего в ивенте перед кодом проверяй переменную. Как вариантКак сделать так чтобы эвент выполнся ТОЛЬКО после написания команды?
Эвент на ломание блокаУточни какой ивент и для чего.
Больше подробностейЭвент на ломание блока
Хочу что бы какой нибудь админ написал команду breakblocks [Ник игрока которому отключат ломание блоков] то игроку добавляется эвент на ломание блока и действие отменяется.Больше подробностей
Создай лист с игроками которым отключаем ломание блоков. При команде, добавляй туда игрока, а в ивенте, проверяй есть ли игрок в листе, и отменяй его.Хочу что бы какой нибудь админ написал команду breakblocks [Ник игрока которому отключат ломание блоков] то игроку добавляется эвент на ломание блока и действие отменяется.
Лойс 👍. Но зачем проверка на сендера и игрока онлайн?вот код
Проверка на сендера, чтоб нельзя было писать из консоли. А проверка на онлаун обязательно нужна, т.к. если игрок нн будет онлайн смысл его добавлять в этот List?!Лойс 👍. Но зачем проверка на сендера и игрока онлайн?
Админ может и с консоли заблокировать ломать блоки, а проверка на онлайн - ну в теории правильно, но можно было юзать .getOfflinePlayer(), брать ююид, и тогда если игрок зайдёт позже, то у него будет блокировкаПроверка на сендера, чтоб нельзя было писать из консоли. А проверка на онлаун обязательно нужна, т.к. если игрок нн будет онлайн смысл его добавлять в этот List?!
Set<Player> players = new HashSet<Player>();
@EventHandler
public void on(BlockBreakEvent e) {
if(players.contains(e.getHandlers())) e.setCancelled(true);
}
Кек, чем тебе ArrayList не угодил?Добавляй-удаляй игроков в onCommand.Код:Set<Player> players = new HashSet<Player>(); @EventHandler public void on(BlockBreakEvent e) { if(players.contains(e.getHandlers())) e.setCancelled(true); }
Сет быстрей и в данном случае нам не нужна сортировка.Кек, чем тебе ArrayList не угодил?