- Баллы
- 46
- Имя в Minecraft
- bristol
Приветствую всех читателей!
Иногда, создавая API для своего плагина, у разработчиков возникает желание создать кастомный ивент.
Но не все ладят с гуглом(Я тоже не лажу с гуглом). Поэтому, я расскажу как сделать кастомный ивент.
Начнем:
1. Необходимо, создать отдельный класс для своего ивента и унаследовать его классу Event.
2. Затем, в нем создать переменную типа HandlerList с именем handlers. Так же, необходимо создать метод, который возвращает переменную handlers:
3. Создаем конструктор класса с кастомным ивентом и вписываем нужные нам переменные. Так же, создаем методы для получения этих переменных.
4. Делаем переменную типа boolean с именем cancelled, делаем метод получения переменной cancelled и делаем метод установки значения в переменной cancelled. Так же, нужно не забыть сделать класс с нашим ивентов интерфейсом классу Сancellable. Этот шаг не обязателен, если вы не будете останавливать событие.
Ивент готов, осталось, вызывать его в нужный момент, например, в момент изменения баланса игрока или что то на подобии.
Теперь, вы можете использовать этот ивент как обычный ивент от Bukkit.
Источник - https://bukkit.gamepedia.com/Event_API_Reference#Custom_Event_Example
Нашли ошибку или опечатку? Сообщите мне об этом в теме.
Иногда, создавая API для своего плагина, у разработчиков возникает желание создать кастомный ивент.
Но не все ладят с гуглом
Начнем:
1. Необходимо, создать отдельный класс для своего ивента и унаследовать его классу Event.
Код:
import org.bukkit.event.Event;
public class MyCustomEvent extends Event {
}
Код:
import org.bukkit.event.Event;
public class MyCustomEvent extends Event {
public static final HandlerList handlers = new HandlerList();
public HandlerList getHandlers() {
return handlers;
}
}
Код:
import org.bukkit.event.Event;
public class MyCustomEvent extends Event {
public static final HandlerList = new HandlerList();
private String msg;
private Player player;
private boolean cancelled;
public MyCustomEvent(String msg, Player player) {
this.msg = msg;
this.player = player;
}
public String getMessage() {
return msg;
}
public Player getPlayer() {
return player;
}
public HandlerList getHandlers() {
return handlers;
}
}
Код:
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Cancellable;
public class MyCustomEvent extends Event implements Сancellable {
public static final HandlerList = new HandlerList();
private String msg;
private Player player;
private boolean cancelled;
public MyCustomEvent(String msg, Player player) {
this.msg = msg;
this.player = player;
}
public String getMessage() {
return msg;
}
public Player getPlayer() {
return player;
}
public void setCancelled(boolean cancel) {
cancelled = cancel;
}
public boolean isCancelled() {
return cancelled;
}
public HandlerList getHandlers() {
return handlers;
}
}
Код:
MyCustomEvent mce = new MyCustomEvent("У вас изменился баланс!", Bukkit.getPlayer(sender.getName()));
Bukkit.getPluginManager().callEvent(mce);
if(mce.isCancelled()) {
return;
}
Источник - https://bukkit.gamepedia.com/Event_API_Reference#Custom_Event_Example
Нашли ошибку или опечатку? Сообщите мне об этом в теме.
Последнее редактирование: