From b2425dcc6b78d34d9a55b473c373e7f46a76d19f Mon Sep 17 00:00:00 2001 From: glen3b Date: Wed, 14 May 2014 21:30:40 -0700 Subject: [PATCH] Update sample code in readme The current sample code uses the magic packet IDs, which are deprecated in the current version of the library. This commit changes the sample code to use the non-deprecated enum-like packet identifiers, the sample code which is present on the BukkitDev page for this plugin (with some minor tweaks). --- Readme.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/Readme.md b/Readme.md index 78afa506..f440d553 100644 --- a/Readme.md +++ b/Readme.md @@ -58,14 +58,14 @@ To listen for packets sent by the server to a client, add a server-side listener ````java // Disable all sound effects protocolManager.addPacketListener( - new PacketAdapter(this, ConnectionSide.SERVER_SIDE, ListenerPriority.NORMAL, 0x3E) { + new PacketAdapter(this, ListenerPriority.NORMAL, + PacketType.Play.Server.NAMED_SOUND_EFFECT) { @Override public void onPacketSending(PacketEvent event) { - // Item packets - switch (event.getPacketID()) { - case 0x3E: // Sound effect + // Item packets (id: 0x29) + if (event.getPacketType() == + PacketType.Play.Server.NAMED_SOUND_EFFECT) { event.setCancelled(true); - break; } } }); @@ -76,22 +76,19 @@ censor by listening for Packet3Chat events: ````java // Censor -protocolManager.addPacketListener( - new PacketAdapter(this, ConnectionSide.CLIENT_SIDE, ListenerPriority.NORMAL, 0x03) { +protocolManager.addPacketListener(new PacketAdapter(this, + ListenerPriority.NORMAL, + PacketType.Play.Client.CHAT) { @Override public void onPacketReceiving(PacketEvent event) { - if (event.getPacketID() == 0x03) { - try { - PacketContainer packet = event.getPacket(); - String message = packet.getSpecificModifier(String.class).read(0); - - if (message.contains("shit") || message.contains("damn")) { - event.setCancelled(true); - event.getPlayer().sendMessage("Bad manners!"); - } - - } catch (FieldAccessException e) { - getLogger().log(Level.SEVERE, "Couldn't access field.", e); + if (event.getPacketType() == PacketType.Play.Client.CHAT) { + PacketContainer packet = event.getPacket(); + String message = packet.getStrings().read(0); + + if (message.contains("shit") + || message.contains("damn")) { + event.setCancelled(true); + event.getPlayer().sendMessage("Bad manners!"); } } } @@ -115,19 +112,22 @@ fakeExplosion.e = new ArrayList(); ```` But with ProtocolLib, you can turn that into something more manageable. Notice that -you don't have to create an ArrayList this version: +you don't have to create an ArrayList with this version: ````java -PacketContainer fakeExplosion = protocolManager.createPacket(60); -fakeExplosion.getSpecificModifier(double.class). +fakeExplosion.getDoubles(). write(0, player.getLocation().getX()). write(1, player.getLocation().getY()). write(2, player.getLocation().getZ()); -fakeExplosion.getSpecificModifier(float.class). - write(0, 3.0F); +fakeExplosion.getFloat().write(0, 3.0F); -protocolManager.sendServerPacket(player, fakeExplosion); +try { + protocolManager.sendServerPacket(player, fakeExplosion); +} catch (InvocationTargetException e) { + throw new RuntimeException( + "Cannot send packet " + fakeExplosion, e); +} ```` Compatiblity