mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-08 09:17:36 +01:00
Add asynchronous pre-login event; Addresses BUKKIT-1213
By: Wesley Wolfe <weswolf@aol.com>
This commit is contained in:
parent
ad7045596d
commit
31704fd7d6
@ -0,0 +1,108 @@
|
|||||||
|
package org.bukkit.event.player;
|
||||||
|
|
||||||
|
import java.net.InetAddress;
|
||||||
|
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stores details for players attempting to log in.<br>
|
||||||
|
* This event is asynchronous, and not run using main thread.
|
||||||
|
*/
|
||||||
|
public class AsyncPlayerPreLoginEvent extends Event {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private PlayerPreLoginEvent.Result result;
|
||||||
|
private String message;
|
||||||
|
private final String name;
|
||||||
|
private final InetAddress ipAddress;
|
||||||
|
|
||||||
|
public AsyncPlayerPreLoginEvent(final String name, final InetAddress ipAddress) {
|
||||||
|
super(true);
|
||||||
|
this.result = PlayerPreLoginEvent.Result.ALLOWED;
|
||||||
|
this.message = "";
|
||||||
|
this.name = name;
|
||||||
|
this.ipAddress = ipAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the current result of the login, as an enum
|
||||||
|
*
|
||||||
|
* @return Current Result of the login
|
||||||
|
*/
|
||||||
|
public PlayerPreLoginEvent.Result getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the new result of the login, as an enum
|
||||||
|
*
|
||||||
|
* @param result New result to set
|
||||||
|
*/
|
||||||
|
public void setResult(final PlayerPreLoginEvent.Result result) {
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the current kick message that will be used if getResult() != Result.ALLOWED
|
||||||
|
*
|
||||||
|
* @return Current kick message
|
||||||
|
*/
|
||||||
|
public String getKickMessage() {
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the kick message to display if getResult() != Result.ALLOWED
|
||||||
|
*
|
||||||
|
* @param message New kick message
|
||||||
|
*/
|
||||||
|
public void setKickMessage(final String message) {
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows the player to log in
|
||||||
|
*/
|
||||||
|
public void allow() {
|
||||||
|
result = PlayerPreLoginEvent.Result.ALLOWED;
|
||||||
|
message = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disallows the player from logging in, with the given reason
|
||||||
|
*
|
||||||
|
* @param result New result for disallowing the player
|
||||||
|
* @param message Kick message to display to the user
|
||||||
|
*/
|
||||||
|
public void disallow(final PlayerPreLoginEvent.Result result, final String message) {
|
||||||
|
this.result = result;
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the player's name.
|
||||||
|
*
|
||||||
|
* @return the player's name
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the player IP address.
|
||||||
|
*
|
||||||
|
* @return The IP address
|
||||||
|
*/
|
||||||
|
public InetAddress getAddress() {
|
||||||
|
return ipAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user