Реєстрація івентів
Івенти DonateCase реєструються за допомогою EventBus
Прослуховувач
Прослуховувач обов'язково повинен реалізовувати інтерфейс Subscriber та містити в собі методи, які мають аннотацію Subscribe
інформація
Кількість методів у прослуховувачі може бути безмежною
src/main/java/com/jodexindustries/testaddon/EventListener.java
import com.jodexindustries.donatecase.api.event.Subscriber;
import com.jodexindustries.donatecase.api.event.player.CaseInteractEvent;
import net.kyori.event.method.annotation.Subscribe;
public class EventListener implements Subscriber {
@Subscribe
public void onCaseInteract(CaseInteractEvent event) {
if(event.action() == CaseInteractEvent.Action.RIGHT) {
event.player().sendMessage("Right clicked!");
} else {
event.player().sendMessage("Left clicked!");
}
}
}
Реєстрація
src/main/java/com/jodexindustries/testaddon/MainAddon.java
import com.jodexindustries.donatecase.api.DCAPI;
import com.jodexindustries.donatecase.api.addon.InternalJavaAddon;
import com.jodexindustries.testaddon.EventListener;
public class MainAddon extends InternalJavaAddon {
private final DCAPI api = DCAPI.getInstance();
private final EventListener listener = new EventListener();
@Override
public void onEnable() {
api.getEventBus().register(listener);
}
@Override
public void onDisable() {
api.getEventBus().unregister(listener);
}
}
Лямбда-вираз
Реєстрація івенту може бути виконана за допомогою лямбда-виразу, якщо немає необхідності реєструвати велику кількість івентів
src/main/java/com/jodexindustries/testaddon/MainAddon.java
import com.jodexindustries.donatecase.api.DCAPI;
import com.jodexindustries.donatecase.api.addon.InternalJavaAddon;
import com.jodexindustries.donatecase.api.event.player.CaseInteractEvent;
public class MainAddon extends InternalJavaAddon {
private final DCAPI api = DCAPI.getInstance();
@Override
public void onEnable() {
api.getEventBus().register(CaseInteractEvent.class, event -> {
if(event.action() == CaseInteractEvent.Action.RIGHT) {
event.player().sendMessage("Right clicked!");
} else {
event.player().sendMessage("Left clicked!");
}
});
}
}