summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java82
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java5
2 files changed, 81 insertions, 6 deletions
diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
index f7bc490d..4e4b3a27 100644
--- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java
@@ -11,14 +11,14 @@ import org.bukkit.event.HandlerList;
*/
public class AsyncPlayerPreLoginEvent extends Event {
private static final HandlerList handlers = new HandlerList();
- private PlayerPreLoginEvent.Result result;
+ private 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.result = Result.ALLOWED;
this.message = "";
this.name = name;
this.ipAddress = ipAddress;
@@ -29,20 +29,44 @@ public class AsyncPlayerPreLoginEvent extends Event {
*
* @return Current Result of the login
*/
- public PlayerPreLoginEvent.Result getResult() {
+ public Result getLoginResult() {
return result;
}
/**
+ * Gets the current result of the login, as an enum
+ *
+ * @return Current Result of the login
+ * @deprecated This method uses a deprecated enum from {@link PlayerPreLoginEvent}
+ * @see #getLoginResult()
+ */
+ @Deprecated
+ public PlayerPreLoginEvent.Result getResult() {
+ return result == null ? null : result.old();
+ }
+
+ /**
* Sets the new result of the login, as an enum
*
* @param result New result to set
*/
- public void setResult(final PlayerPreLoginEvent.Result result) {
+ public void setLoginResult(final Result result) {
this.result = result;
}
/**
+ * Sets the new result of the login, as an enum
+ *
+ * @param result New result to set
+ * @deprecated This method uses a deprecated enum from {@link PlayerPreLoginEvent}
+ * @see #setLoginResult(Result)
+ */
+ @Deprecated
+ public void setResult(final PlayerPreLoginEvent.Result result) {
+ this.result = result == null ? null : Result.valueOf(result.name());
+ }
+
+ /**
* Gets the current kick message that will be used if getResult() != Result.ALLOWED
*
* @return Current kick message
@@ -64,7 +88,7 @@ public class AsyncPlayerPreLoginEvent extends Event {
* Allows the player to log in
*/
public void allow() {
- result = PlayerPreLoginEvent.Result.ALLOWED;
+ result = Result.ALLOWED;
message = "";
}
@@ -74,12 +98,26 @@ public class AsyncPlayerPreLoginEvent extends Event {
* @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) {
+ public void disallow(final Result result, final String message) {
this.result = result;
this.message = 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
+ * @deprecated This method uses a deprecated enum from {@link PlayerPreLoginEvent}
+ * @see #disallow(Result, String)
+ */
+ @Deprecated
+ public void disallow(final PlayerPreLoginEvent.Result result, final String message) {
+ this.result = result == null ? null : Result.valueOf(result.name());
+ this.message = message;
+ }
+
+ /**
* Gets the player's name.
*
* @return the player's name
@@ -105,4 +143,36 @@ public class AsyncPlayerPreLoginEvent extends Event {
public static HandlerList getHandlerList() {
return handlers;
}
+
+ /**
+ * Basic kick reasons for communicating to plugins
+ */
+ public enum Result {
+
+ /**
+ * The player is allowed to log in
+ */
+ ALLOWED,
+ /**
+ * The player is not allowed to log in, due to the server being full
+ */
+ KICK_FULL,
+ /**
+ * The player is not allowed to log in, due to them being banned
+ */
+ KICK_BANNED,
+ /**
+ * The player is not allowed to log in, due to them not being on the white list
+ */
+ KICK_WHITELIST,
+ /**
+ * The player is not allowed to log in, for reasons undefined
+ */
+ KICK_OTHER;
+
+ @Deprecated
+ private PlayerPreLoginEvent.Result old() {
+ return PlayerPreLoginEvent.Result.valueOf(name());
+ }
+ }
}
diff --git a/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
index 862d483a..bc622488 100644
--- a/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerPreLoginEvent.java
@@ -1,12 +1,17 @@
package org.bukkit.event.player;
import java.net.InetAddress;
+
+import org.bukkit.Warning;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
/**
* Stores details for players attempting to log in
+ * @deprecated This event causes synchronization from the login thread; {@link AsyncPlayerPreLoginEvent} is preferred to keep the secondary threads asynchronous.
*/
+@Deprecated
+@Warning(reason="This event causes a login thread to synchronize with the main thread")
public class PlayerPreLoginEvent extends Event {
private static final HandlerList handlers = new HandlerList();
private Result result;