Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
// в идеале сделать отдельный класс для слушателя, но т.к плагин не особо крупный, можно сделать здесь.
public class MyPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
// Сообщаем серверу о том, что мы слушаем эвенты
getServer().getPluginManager().registerEvents(this, this);
}
// priority = MONITOR, чтобы другие плагины могли отменить его (обработается в последнюю очередь)
// ignoreCancelled = true, чтобы если его отменили, он не обработался в нашем листенере,
// потому что если его отменят, то блок не удалится, а овца заспавнится в нем
//
// Обязательно нужна аннотация EventHandler, чтобы пометить метод обработчиком, иначе сервер его не увидит
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockBreak(BlockBreakEvent event) {
Block block = event.getBlock();
// Проверяем тип блока, если это НЕ земля, то пропускаем
if (block.getType() != Material.DIRT) {
return;
}
World world = block.getWorld();
// Спавним энтити по центру блока
world.spawn(block.getLocation().add(.5, .5, .5), Sheep.class);
}
}
В голос.Код:// в идеале сделать отдельный класс для слушателя, но т.к плагин не особо крупный, можно сделать здесь. public class MyPlugin extends JavaPlugin implements Listener { @Override public void onEnable() { // Сообщаем серверу о том, что мы слушаем эвенты getServer().getPluginManager().registerEvents(this, this); } // priority = MONITOR, чтобы другие плагины могли отменить его (обработается в последнюю очередь) // ignoreCancelled = true, чтобы если его отменили, он не обработался в нашем листенере, // потому что если его отменят, то блок не удалится, а овца заспавнится в нем // // Обязательно нужна аннотация EventHandler, чтобы пометить метод обработчиком, иначе сервер его не увидит @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onBlockBreak(BlockBreakEvent event) { Block block = event.getBlock(); // Проверяем тип блока, если это НЕ земля, то пропускаем if (block.getType() != Material.DIRT) { return; } World world = block.getWorld(); // Спавним энтити по центру блока world.spawn(block.getLocation().add(.5, .5, .5), Sheep.class); } }
Писал от руки, если будут очепятки, то сори)
Аргументы?В голос.
Код:// если его отменили, он не обработался в нашем листенере, // потому что если его отменят, то блок не удалится, а овца заспавнится в нем
А зачем? ignoreCancelled=true не пустит эвент в обработчик, если он отменён.А почему бы не сделать проверку на то, что ивент отменили? Методом event.isCancelled()
+1А зачем? ignoreCancelled=true не пустит эвент в обработчик, если он отменён.