From b2e1e1185e3f565a729d9f44ad380c6b3d4987fe Mon Sep 17 00:00:00 2001 From: 4drian3d Date: Mon, 15 Aug 2022 01:11:00 +0000 Subject: [PATCH] feat(docs): Implement LoginByProxyEvent on Paper --- .../api/paper/event/LoginByProxyEvent.java | 31 +++++++++++++++++++ .../api/paper/event/PreSendLoginEvent.java | 4 +-- .../paper/listeners/MessageListener.java | 2 ++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/LoginByProxyEvent.java diff --git a/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/LoginByProxyEvent.java b/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/LoginByProxyEvent.java new file mode 100644 index 0000000..00c8f9c --- /dev/null +++ b/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/LoginByProxyEvent.java @@ -0,0 +1,31 @@ +package me.adrianed.authmevelocity.api.paper.event; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; +import org.jetbrains.annotations.NotNull; + +/** + * Event to be executed in case a player who has already logged + * into a previously configured server enters the server. + * + *

AuthMeVelocity will automatically login this player.

+ */ +public final class LoginByProxyEvent extends PlayerEvent { + private static final HandlerList HANDLER_LIST = new HandlerList(); + + /** + * Creates a new LoginByProxyEvent + * @param who the player to be logged in + */ + public LoginByProxyEvent(@NotNull Player who) { + super(who, !Bukkit.isPrimaryThread()); + } + + @Override + public @NotNull HandlerList getHandlers() { + return HANDLER_LIST; + } + +} diff --git a/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/PreSendLoginEvent.java b/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/PreSendLoginEvent.java index 44a8a2a..ba8bfff 100644 --- a/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/PreSendLoginEvent.java +++ b/api/paper/src/main/java/me/adrianed/authmevelocity/api/paper/event/PreSendLoginEvent.java @@ -9,9 +9,9 @@ import org.jetbrains.annotations.NotNull; /** * Event executed before a player is sent to another server after being logged in - *

Here you have the possibility to cancel the player's sending + *

Here you have the possibility to cancel the player's sending

*/ -public class PreSendLoginEvent extends PlayerEvent implements Cancellable { +public final class PreSendLoginEvent extends PlayerEvent implements Cancellable { private static final HandlerList HANDLERS = new HandlerList(); private boolean isCancelled = false; diff --git a/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java b/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java index 3ba00ad..faef963 100644 --- a/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java +++ b/paper/src/main/java/me/adrianed/authmevelocity/paper/listeners/MessageListener.java @@ -7,6 +7,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.PluginMessageListener; import org.jetbrains.annotations.NotNull; +import me.adrianed.authmevelocity.api.paper.event.LoginByProxyEvent; import me.adrianed.authmevelocity.paper.AuthMeVelocityPlugin; import fr.xephi.authme.api.v3.AuthMeApi; @@ -35,6 +36,7 @@ public class MessageListener implements PluginMessageListener { final String msg = input.readUTF(); if ("LOGIN".equals(msg)) { plugin.logDebug("PluginMessage | Login Message"); + new LoginByProxyEvent(player).callEvent(); AuthMeApi.getInstance().forceLogin(player); } }