Skip to main content
Version: 2.0.0

Реєстрація івентів

Івенти DonateCase реєструються за допомогою EventBus

Прослуховувач

Прослуховувач обов'язково повинен реалізовувати інтерфейс Subscriber та містити в собі методи, які мають аннотацію Subscribe

info

Кількість методів у прослуховувачі може бути безмежною

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!");
}
});
}

}