Don't pass vanilla plugin channels to plugins. Fixes BUKKIT-2638

Vanilla has its own handlers for plugin channel messages for things like
texture packs, books, and anvils. When vanilla handles one of these messages
we should not also pass it to plugins because they will be duplicating work
and potentially running in to situations our plugin system isn't setup to
handle. This is how 1.3.2 worked but was lost in the 1.4.2 update.
This commit is contained in:
Travis Watkins 2012-10-27 23:21:10 -05:00
parent 60819c6693
commit 5469311a36

View file

@ -1509,31 +1509,30 @@ public class NetServerHandler extends NetHandler {
containeranvil.a("");
}
}
// CraftBukkit start
else if (packet250custompayload.tag.equals("REGISTER")) {
try {
String channels = new String(packet250custompayload.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 (packet250custompayload.tag.equals("UNREGISTER")) {
try {
String channels = new String(packet250custompayload.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.getBukkitEntity(), packet250custompayload.tag, packet250custompayload.data);
}
// CraftBukkit end
}
}
// CraftBukkit start
if (packet250custompayload.tag.equals("REGISTER")) {
try {
String channels = new String(packet250custompayload.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 (packet250custompayload.tag.equals("UNREGISTER")) {
try {
String channels = new String(packet250custompayload.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.getBukkitEntity(), packet250custompayload.tag, packet250custompayload.data);
}
// CraftBukkit end
}
}