Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
@EventHandler(priority = EventPriority.LOWEST)
public void on(BreakBlockEvent e) {
if(условие) {
e.setResult(Result.ALLOW);
или
e.setCanceled(false);
точно не помню
}
}
У wg есть свои ивенты не?Лол
Я и спрашиваю в соответствующем разделе)
Я как бы выполнил свою задачу, но мне кажется, это жутко костыльно.
Просто слушаю break event, проверяю регион и пермишен, после чего отменяю event, ставлю блок через и удаляю его из рук игрока
Провтыкал с разделом, прости.Лол
Я и спрашиваю в соответствующем разделе)
Я как бы выполнил свою задачу, но мне кажется, это жутко костыльно.
Просто слушаю break event, проверяю регион и пермишен, после чего отменяю event, ставлю блок через и удаляю его из рук игрока
Дак можно иначе же.Лол
Я и спрашиваю в соответствующем разделе)
Я как бы выполнил свою задачу, но мне кажется, это жутко костыльно.
Просто слушаю break event, проверяю регион и пермишен, после чего отменяю event, ставлю блок через и удаляю его из рук игрока
@EventHandler(priority = EventPriority.LOWEST)
public void on(BreakBlockEvent e) {
TODO e.setResult(Result.ALLOW);
Провтыкал с разделом, прости.
В общем, у ивентов можно выставить приоритет, сделай onBlockPlaceEvent, который будет выполнятся после проверки WorldGuard.
Проверь все необходимые условия и если это так, то event.setCanceled(false);
Должно помочь.
Дак можно иначе же.
Делаешь максимальный приоритет ивента.
Проверяешь, кто поставил блок и где. Если это было в привате и ивент был отменен, убираешь отмену ивента и все.
У wg есть свои ивенты не?
Код:@EventHandler(priority = EventPriority.LOWEST) public void on(BreakBlockEvent e) { TODO e.setResult(Result.ALLOW);
У всех на тот момент были видимо одни и те же мысли)3 человека в 1 время написали один и тот же ответ, ПОНИМАЮ.
Тебе же скинул ивент от wg и не только я. Капец ты тормоз. И приоритет уже правильный.Поставил приоритет MONITOR и заработало.
Но мне отсылается это сообщение от wgПосмотреть вложение 54864
Как можно поправить?
@EventHandler(priority = EventPriority.LOWEST)
public void on(BreakBlockEvent e) {
TODO e.setResult(Result.ALLOW);
Точно, тупанул, сорян =(Тебе же скинул ивент от wg и не только я. Капец ты тормоз. И приоритет уже правильный.
Код:@EventHandler(priority = EventPriority.LOWEST) public void on(BreakBlockEvent e) { TODO e.setResult(Result.ALLOW);
Cause cause = e.getCause();Точно, тупанул, сорян =(
Можно ли как-то получить в этом ивенте игрока? Не вижу метода
Хм.. Как-то странно..Cause cause = e.getCause();
Player player = cause.getFirstPlayer();
Block block = cause.getFirstBlock();
Location location = block.getLocation();
Хм.. Как-то странно..
Достаю локацию блока, а он мне null кидает. В чем прикол?Код:Block block = cause.getFirstBlock(); Location location = block.getLocation();
List<Block> blocks = event.getBlocks();
if(blocks == null || blocks.isEmpty()) return;
for(Block block : event.getBlocks()) {
//todo
}
if(event.getEffectiveMaterial() == Material.asd) {
//todo
}
Отлично! Все работает, но...или сравнивать через Material (не уверен что будет работать)Код:List<Block> blocks = event.getBlocks(); if(blocks == null || blocks.isEmpty()) return; for(Block block : event.getBlocks()) { //todo }
Код:if(event.getEffectiveMaterial() == Material.asd) { //todo }
Какой из двух вариантов ты попробовал?Отлично! Все работает, но...
Совершенно случайно я решил поставить динамит, на него уже это не сработало.. Посмотреть вложение 54865
Как можно разрешить его установку?
первый, через циклКакой из двух вариантов ты попробовал?
Для TNT используй то же самое, только UseBlockEvent.первый, через цикл