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.
Dieser Commit ist enthalten in:
Ursprung
60819c6693
Commit
5469311a36
@ -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
|
||||
}
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren