FlexConnect/src/main/java/fi/flexplex/connect/FlexConnectListener.java

31 lines
990 B
Java

package fi.flexplex.connect;
import com.destroystokyo.paper.profile.ProfileProperty;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
public final class FlexConnectListener implements Listener {
private final FlexConnect flexConnect;
public FlexConnectListener(final FlexConnect flexConnect) {
this.flexConnect = flexConnect;
}
@EventHandler
public void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) {
// Authenticate players
for (final ProfileProperty property : event.getPlayerProfile().getProperties()) {
if (property.getName().equals("flexplex-token") && property.getValue().equals(flexConnect.getToken())) {
// Authentication success
return;
}
}
// Authentication failed
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Access denied");
}
}