From b4f215e9130aa5037033bd827968031d0e50aef9 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Fri, 13 Jan 2012 08:52:26 +0000 Subject: Implemented new Plugin Message API - see http://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/ --- .../net/minecraft/server/NetServerHandler.java | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/main/java/net/minecraft/server/NetServerHandler.java') 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 } -- cgit v1.2.3