VPacketEvents icon indicating copy to clipboard operation
VPacketEvents copied to clipboard

Manage packets through Velocity's native events

VPacketEvents

Discord

Manage and register packets through Velocity's native events


class PacketListener {
    @Subscribe
    public void onPacketReceive(PacketReceiveEvent event) {
        final MinecraftPacket packet = event.getPacket();
        if (packet instanceof KeyedPlayerCommand commandPacket) {
            final String commandExecuted = commandPacket.getCommand();
            event.setResult(GenericResult.denied());
        }
    } 
    
    @Subscribe
    public void onPacketSend(PacketSendEvent event) {
        final MinecraftPacket packet = event.getPacket();
        if (packet instanceof ServerData serverData) {
            // some stuff
            final boolean isSecureChatEnforced = serverData.isSecureChatEnforced();
        }
    }
    
    public void registerMyPacket() {
        // UpdateTeamsPacket registration
        PacketRegistration.of(UpdateTeamsPacket.class)
                .direction(Direction.CLIENTBOUND)
                .packetSupplier(UpdateTeamsPacket::new)
                .stateRegistry(StateRegistry.PLAY)
                .mapping(0x47, MINECRAFT_1_13, false)
                .mapping(0x4B, MINECRAFT_1_14, false)
                .mapping(0x4C, MINECRAFT_1_15, false)
                .mapping(0x55, MINECRAFT_1_17, false)
                .mapping(0x58, MINECRAFT_1_19_1, false)
                .mapping(0x56, MINECRAFT_1_19_3, false)
                .mapping(0x5A, MINECRAFT_1_19_4, false)
                .register();
    }
}

Installation

  • Download VPacketEvents from Modrinth
  • Drag and drop on your plugins folder
  • Start the server

Dev Setup

Gradle


repositories {
    mavenCentral()
}

dependencies {
    compileOnly("io.github.4drian3d:vpacketevents-api:1.1.0")
}

Javadocs

https://javadoc.io/doc/io.github.4drian3d/vpacketevents-api