summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/NetServerHandler.java
diff options
context:
space:
mode:
authorNathan Adams <dinnerbone@dinnerbone.com>2012-01-13 08:52:26 +0000
committerNathan Adams <dinnerbone@dinnerbone.com>2012-01-13 08:53:39 +0000
commitb4f215e9130aa5037033bd827968031d0e50aef9 (patch)
treec55393377781908d2c6ebe51e999ab6513f70164 /src/main/java/net/minecraft/server/NetServerHandler.java
parentd8052a63edb173b6b73d81710292fc00caf7edc8 (diff)
downloadcraftbukkit-b4f215e9130aa5037033bd827968031d0e50aef9.tar
craftbukkit-b4f215e9130aa5037033bd827968031d0e50aef9.tar.gz
craftbukkit-b4f215e9130aa5037033bd827968031d0e50aef9.tar.lz
craftbukkit-b4f215e9130aa5037033bd827968031d0e50aef9.tar.xz
craftbukkit-b4f215e9130aa5037033bd827968031d0e50aef9.zip
Implemented new Plugin Message API - see http://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/
Diffstat (limited to 'src/main/java/net/minecraft/server/NetServerHandler.java')
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index 3329e219..0e242615 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -1,7 +1,9 @@
package net.minecraft.server;
+import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Random;
+import java.util.logging.Level;
import java.util.logging.Logger;
// CraftBukkit start
@@ -1101,4 +1103,31 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
public boolean c() {
return true;
}
+
+ // CraftBukkit start
+ @Override
+ public void a(Packet250CustomPayload packet) {
+ if (packet.tag.equals("REGISTER")) {
+ try {
+ String channels = new String(packet.data, "UTF8");
+ for (String channel : channels.split("\0")) {
+ getPlayer().addChannel(channel);
+ }
+ } catch (UnsupportedEncodingException ex) {
+ Logger.getLogger(NetServerHandler.class.getName()).log(Level.SEVERE, "Could not parse REGISTER payload in plugin message packet", ex);
+ }
+ } else if (packet.tag.equals("UNREGISTER")) {
+ try {
+ String channels = new String(packet.data, "UTF8");
+ for (String channel : channels.split("\0")) {
+ getPlayer().removeChannel(channel);
+ }
+ } catch (UnsupportedEncodingException ex) {
+ Logger.getLogger(NetServerHandler.class.getName()).log(Level.SEVERE, "Could not parse UNREGISTER payload in plugin message packet", ex);
+ }
+ } else {
+ server.getMessenger().dispatchIncomingMessage(player.getPlayer(), packet.tag, packet.data);
+ }
+ }
+ // CraftBukkit end
}