promotional bannermobile promotional banner

ProtocolLib

Library for intercepting sent and receieved Minecraft packets.
Back to Files

ProtocolLib 2.6.0

File nameProtocolLib-2.6.0.jar
Uploaded
Jul 31, 2013
Downloads
46.9K
Size
983.7 KB
File ID
723268
Type
R
Release
Supported game versions
  • 1.6.2
  • 1.5.2
  • 1.2.5

What's new

Build: #115

The previous release (2.5.0) contained a potentially game breaking bug (ticket), so I've opted to expedite the usual monthly release schedule to get it corrected as soon as possible. Plugins affected by this bug may begin spamming the console, though the error message rate limiter should kick in and prevent the server from crashing. I recommend either staying on 2.4.7, or upgrading immediately.

Still, I did manage to cram in a new feature, without having to touch the rest of the code base. That will hopefully prevent a repeat from last time.

PacketContainer now allows you to read and modify the UPDATE_ATTRIBUTE (44) packet, using getAttributeCollectionModifier().

public class ExampleMod extends JavaPlugin {
    private final UUID SPRITING_SPEED = UUID.fromString(
        "662a6b8d-da3e-4c1c-8813-96ea6097278d");
    private final UUID SUPER_SPRINTING = UUID.fromString(
        "d64c79c2-a459-446c-9308-409e1b6b3340");
    
    public void onEnable() {
        ProtocolLibrary.getProtocolManager().addPacketListener(
          new PacketAdapter(PacketAdapter.params(this, 
            Packets.Server.UPDATE_ATTRIBUTES).serverSide()) {
            public void onPacketSending(PacketEvent event) {
                List<WrappedAttribute> list = event.getPacket()
                        .getAttributeCollectionModifier().read(0);

                for (int i = 0; i < list.size(); i++) {
                    WrappedAttribute attribute = list.get(i);

                    // See if we should add the super sprinting
                    // attribute
                    if (attribute.hasModifier(SPRITING_SPEED) && 
                       !attribute.hasModifier(SUPER_SPRINTING)) {
                        Set<WrappedAttributeModifier> modifiers = 
                            Sets.newHashSet(attribute.getModifiers());

                        // Add the new super sprinting too
                        modifiers.add(WrappedAttributeModifier.newBuilder().
                            name("Super Sprinting").uuid(SUPER_SPRINTING).
                            amount(2).
                            operation(Operation.ADD_PERCENTAGE).
                            build());

                        list.set(i, attribute.withModifiers(modifiers));
                    }
                }

                event.getPacket().
                    getAttributeCollectionModifier().write(0, list);
            }
        });
    }
}

This causes sprinting to be 200% faster.

Change log

Features

Bug fixes

Small fixes

This mod has no additional files