[API] PacketListenerAPI icon

[API] PacketListenerAPI -----

Simple API to manipulate sent and received packets | compatible with all versions



This API provides an easy way to listen for when a Packet is sent or received and includes functions to modify Fields of the Packet.

Versions after 3.8 require Java 11+

Code (Text):

PacketListenerAPI.addPacketHandler(new PacketHandler() {

            @Override
            public void onSend(SentPacket packet) {
            }

            @Override
            public void onReceive(ReceivedPacket packet) {
            }

        });
 
The processed packets can also be limited by adding the @PacketOptions annotation.

If you are interested in manipulating packets directly on your BungeeCord server, check out the BungeeCord version of this API.

Examples

Checking a Packet

1.) Not version save
Code (Java):

        PacketListenerAPI. addPacketHandler ( new PacketHandler ( ) {

            @Override
            public void onSend (SentPacket packet ) {
                if (packet. getPacket ( ) instanceof PacketPlayOutSpawnEntity ) { // instanceof requires an import of the Packet, therefore not Version save
                    // Currently spawning an entity.
                }
            }

            @Override
            public void onReceive (ReceivedPacket packet ) {
            }

        } ) ;
 

2.) version save (recommended)
Code (Java):

    PacketListenerAPI. addPacketHandler ( new PacketHandler ( ) {

            @Override
            public void onSend (SentPacket packet ) {
                if (packet. getPacketName ( ). equals ( "PacketPlayOutSpawnEntity" ) ) {
                    // Currently spawning an entity.
                }
            }

            @Override
            public void onReceive (ReceivedPacket packet ) {
            }

        } ) ;
 

1.) Not version save
Code (Text):
    @EventHandler
    public void onPacketSend(PacketSendEvent e) {
        if (e.getPacket() instanceof PacketPlayOutSpawnEntity) {// instanceof requires an import of the Packet, therefore not Version save
            // Currently spawning an entity.
        }
    }
2.) version save (recommended)
Code (Text):
@EventHandler
    public void onPacketSend(PacketSendEvent e) {
        if(e.getPacketName().equals("PacketPlayOutSpawnEntity")) {
            // Currently spawning an entity.
        }
    }
 

Modifying Field values

Code (Java):

PacketListenerAPI. addPacketHandler ( new PacketHandler ( ) {

            @Override
            public void onSend (SentPacket packet ) {
                if (packet. getPacketName ( ). equals ( "PacketPlayOutSpawnEntity" ) ) {
                    packet. setPacketValue ( "f", <EntityID > ) ; //f is the Field in the packet which defines the Entity-type as an Integer
                }
            }

            @Override
            public void onReceive (ReceivedPacket packet ) {
            }

        } ) ;
 
1.) version save
Code (Text):
    @EventHandler
    public void onPacketSend(PacketSendEvent e) {
        if(e.getPacketName().equals("PacketPlayOutSpawnEntity")) {
            e.setPacketValue("f", <EntityID>);//f is the Field in the packet which defines the Entity-type as an Integer
        }
    }



Maven
Code (Text):
    <dependency>
        <groupId>org.inventivetalent.packetlistenerapi</groupId>
        <artifactId>api</artifactId>
        <version>VERSION-SNAPSHOT</version>
    </dependency>
https://jitpack.io/#org.inventivetalent/packetlistenerapi

APIManager
This API is compatible with APIManger.
Click here for information on how to implement it.



Links



Please leave a rating if you like this resource.
Donations to support me or this resource are also very much appreciated.
Resource Information
Author:
----------
Total Downloads: 159,584
First Release: Jan 5, 2015
Last Update: Mar 27, 2022
Category: ---------------
All-Time Rating:
60 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings