summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDinnerbone <dinnerbone@dinnerbone.com>2010-12-28 17:39:23 +0000
committerDinnerbone <dinnerbone@dinnerbone.com>2010-12-28 17:39:23 +0000
commit1ce00ae0741d7a8cf6218ead0f86ad27b6ed1d7d (patch)
tree5d3e86625d33f6c9aabb8bdf7136068b956e5a22
parent78a2cccfb52078e489e1f6906bfff215af27034d (diff)
downloadbukkit-1ce00ae0741d7a8cf6218ead0f86ad27b6ed1d7d.tar
bukkit-1ce00ae0741d7a8cf6218ead0f86ad27b6ed1d7d.tar.gz
bukkit-1ce00ae0741d7a8cf6218ead0f86ad27b6ed1d7d.tar.lz
bukkit-1ce00ae0741d7a8cf6218ead0f86ad27b6ed1d7d.tar.xz
bukkit-1ce00ae0741d7a8cf6218ead0f86ad27b6ed1d7d.zip
Added onPlayerLogin
-rw-r--r--src/org/bukkit/event/player/PlayerListener.java8
-rw-r--r--src/org/bukkit/event/player/PlayerLoginEvent.java98
-rw-r--r--src/org/bukkit/plugin/java/JavaPluginLoader.java3
3 files changed, 109 insertions, 0 deletions
diff --git a/src/org/bukkit/event/player/PlayerListener.java b/src/org/bukkit/event/player/PlayerListener.java
index fe545c38..0c6817e2 100644
--- a/src/org/bukkit/event/player/PlayerListener.java
+++ b/src/org/bukkit/event/player/PlayerListener.java
@@ -57,4 +57,12 @@ public class PlayerListener implements Listener {
*/
public void onPlayerTeleport(PlayerMoveEvent event) {
}
+
+ /**
+ * Called when a player attempts to log in to the server
+ *
+ * @param event Relevant event details
+ */
+ public void onPlayerLogin(PlayerLoginEvent event) {
+ }
}
diff --git a/src/org/bukkit/event/player/PlayerLoginEvent.java b/src/org/bukkit/event/player/PlayerLoginEvent.java
new file mode 100644
index 00000000..65a989f5
--- /dev/null
+++ b/src/org/bukkit/event/player/PlayerLoginEvent.java
@@ -0,0 +1,98 @@
+
+package org.bukkit.event.player;
+
+import org.bukkit.Player;
+
+/**
+ * Stores details for players attempting to log in
+ */
+public class PlayerLoginEvent extends PlayerEvent {
+ private Result result;
+ private String message;
+
+ public PlayerLoginEvent(final Type type, final Player player, final Result result, final String message) {
+ super(type, player);
+ this.result = result;
+ this.message = message;
+ }
+
+ /**
+ * Gets the current result of the login, as an enum
+ *
+ * @return Current Result of the login
+ */
+ public Result getResult() {
+ return result;
+ }
+
+ /**
+ * Sets the new result of the login, as an enum
+ *
+ * @param result New result to set
+ */
+ public void setResult(final 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 = 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 Result result, final String message) {
+ this.result = result;
+ this.message = message;
+ }
+
+ /**
+ * 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, for reasons undefined
+ */
+ KICK_OTHER
+ }
+}
diff --git a/src/org/bukkit/plugin/java/JavaPluginLoader.java b/src/org/bukkit/plugin/java/JavaPluginLoader.java
index 9c6a6800..65726b85 100644
--- a/src/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -99,6 +99,9 @@ public final class JavaPluginLoader implements PluginLoader {
case PLAYER_TELEPORT:
trueListener.onPlayerTeleport((PlayerMoveEvent)event);
break;
+ case PLAYER_LOGIN:
+ trueListener.onPlayerLogin((PlayerLoginEvent)event);
+ break;
}
}
}