diff options
author | Nathan Adams <dinnerbone@dinnerbone.com> | 2012-01-13 08:52:26 +0000 |
---|---|---|
committer | Nathan Adams <dinnerbone@dinnerbone.com> | 2012-01-13 08:53:39 +0000 |
commit | b4f215e9130aa5037033bd827968031d0e50aef9 (patch) | |
tree | c55393377781908d2c6ebe51e999ab6513f70164 /src/main/java/net/minecraft/server | |
parent | d8052a63edb173b6b73d81710292fc00caf7edc8 (diff) | |
download | craftbukkit-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')
-rw-r--r-- | src/main/java/net/minecraft/server/NetServerHandler.java | 29 |
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 } |