diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/AnimatePacketHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/AnimatePacketHandler.java new file mode 100644 index 0000000..30c0032 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/AnimatePacketHandler.java @@ -0,0 +1,36 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundAnimatePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class AnimatePacketHandler extends PacketHandler<@NotNull ClientboundAnimatePacket> { + + public AnimatePacketHandler() { + super( + ClientboundAnimatePacket.class, + "Animate", + "Handles ClientboundAnimatePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundAnimatePacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Action"), Component.text(packet.getAction())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/AwardStatsHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/AwardStatsHandler.java new file mode 100644 index 0000000..161fe7b --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/AwardStatsHandler.java @@ -0,0 +1,48 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundAwardStatsPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; +import java.util.Map; + +public class AwardStatsHandler extends PacketHandler<@NotNull ClientboundAwardStatsPacket> { + + public AwardStatsHandler() { + super( + ClientboundAwardStatsPacket.class, + "AwardStats", + "Handles ClientboundAwardStatsPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundAwardStatsPacket packet) { + + String statsList = FormatHelper.formatList( + !packet.stats().isEmpty() + ? packet.stats().object2IntEntrySet().stream() + .map(Map.Entry::getKey) + .toList() + : List.of(), + MAX_DISPLAYED_ENTRIES + ); + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("StatsCount"), Component.text(packet.stats().size())), + PacketInfoSegment.of(Component.text("Stats"), Component.text(statsList)) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockChangedAckHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockChangedAckHandler.java new file mode 100644 index 0000000..9098423 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockChangedAckHandler.java @@ -0,0 +1,36 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBlockChangedAckPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class BlockChangedAckHandler extends PacketHandler<@NotNull ClientboundBlockChangedAckPacket> { + + public BlockChangedAckHandler() { + super( + ClientboundBlockChangedAckPacket.class, + "BlockChangedAck", + "Handles ClientboundBlockChangedAckPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBlockChangedAckPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Sequence"), Component.text(packet.sequence())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockDestructionHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockDestructionHandler.java new file mode 100644 index 0000000..46beedb --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockDestructionHandler.java @@ -0,0 +1,37 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class BlockDestructionHandler extends PacketHandler<@NotNull ClientboundBlockDestructionPacket> { + + public BlockDestructionHandler() { + super( + ClientboundBlockDestructionPacket.class, + "BlockDestruction", + "Handles ClientboundBlockDestructionPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBlockDestructionPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Position"), Component.text(packet.getPos().getX() + ", " + packet.getPos().getY() + ", " + packet.getPos().getZ())), + PacketInfoSegment.of(Component.text("Progress"), Component.text(packet.getProgress())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockEntityDataHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockEntityDataHandler.java new file mode 100644 index 0000000..65ad622 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockEntityDataHandler.java @@ -0,0 +1,43 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.level.block.entity.BlockEntityType; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; +import java.util.Objects; + +public class BlockEntityDataHandler extends PacketHandler<@NotNull ClientboundBlockEntityDataPacket> { + + public BlockEntityDataHandler() { + super( + ClientboundBlockEntityDataPacket.class, + "BlockEntityData", + "Handles ClientboundBlockEntityDataPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBlockEntityDataPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Position"), Component.text(packet.getPos().getX() + ", " + packet.getPos().getY() + ", " + packet.getPos().getZ())), + PacketInfoSegment.of(Component.text("Type"), Component.text(Objects.requireNonNullElse(BuiltInRegistries.BLOCK_ENTITY_TYPE.getKey(packet.getType()), "Unknown").toString())), + PacketInfoSegment.of(Component.text("Tag"), Component.text(packet.getTag().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockEventHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockEventHandler.java new file mode 100644 index 0000000..e2874f7 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockEventHandler.java @@ -0,0 +1,45 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.network.protocol.game.ClientboundBlockEventPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; +import java.util.Objects; + +public class BlockEventHandler extends PacketHandler<@NotNull ClientboundBlockEventPacket> { + + public BlockEventHandler() { + super( + ClientboundBlockEventPacket.class, + "BlockEvent", + "Handles ClientboundBlockDestructionPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBlockEventPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Position"), Component.text(packet.getPos().getX() + ", " + packet.getPos().getY() + ", " + packet.getPos().getZ())), + PacketInfoSegment.of(Component.text("Friction"), Component.text(packet.getBlock().getFriction())), + PacketInfoSegment.of(Component.text("ExplosionResistance"), Component.text(packet.getBlock().getExplosionResistance())), + PacketInfoSegment.of(Component.text("JumpFactor"), Component.text(packet.getBlock().getJumpFactor())), + PacketInfoSegment.of(Component.text("SpeedFactor"), Component.text(packet.getBlock().getSpeedFactor())), + PacketInfoSegment.of(Component.text("B0"), Component.text(packet.getB0())), + PacketInfoSegment.of(Component.text("B1"), Component.text(packet.getB1())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockUpdateHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockUpdateHandler.java new file mode 100644 index 0000000..ec25741 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BlockUpdateHandler.java @@ -0,0 +1,38 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBlockEventPacket; +import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class BlockUpdateHandler extends PacketHandler<@NotNull ClientboundBlockUpdatePacket> { + + public BlockUpdateHandler() { + super( + ClientboundBlockUpdatePacket.class, + "BlockUpdate", + "Handles ClientboundBlockUpdatePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBlockUpdatePacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Position"), Component.text(packet.getPos().getX() + ", " + packet.getPos().getY() + ", " + packet.getPos().getZ())), + PacketInfoSegment.of(Component.text("BlockState"), Component.text(packet.getBlockState().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BossEventHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BossEventHandler.java new file mode 100644 index 0000000..80f3a01 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BossEventHandler.java @@ -0,0 +1,35 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; +import net.minecraft.network.protocol.game.ClientboundBossEventPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class BossEventHandler extends PacketHandler<@NotNull ClientboundBossEventPacket> { + + public BossEventHandler() { + super( + ClientboundBossEventPacket.class, + "BossEvent", + "Handles ClientboundBossEventPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBossEventPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of() + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BundleDelimiterHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BundleDelimiterHandler.java new file mode 100644 index 0000000..2b65ac0 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BundleDelimiterHandler.java @@ -0,0 +1,33 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBundleDelimiterPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class BundleDelimiterHandler extends PacketHandler<@NotNull ClientboundBundleDelimiterPacket> { + + public BundleDelimiterHandler() { + super( + ClientboundBundleDelimiterPacket.class, + "BundleDelimiter", + "Handles ClientboundBundleDelimiterPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBundleDelimiterPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of() + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BundleHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BundleHandler.java new file mode 100644 index 0000000..8dab242 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/BundleHandler.java @@ -0,0 +1,34 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBundleDelimiterPacket; +import net.minecraft.network.protocol.game.ClientboundBundlePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class BundleHandler extends PacketHandler<@NotNull ClientboundBundlePacket> { + + public BundleHandler() { + super( + ClientboundBundlePacket.class, + "Bundle", + "Handles ClientboundBundlePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundBundlePacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of() + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChangeDifficultyHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChangeDifficultyHandler.java new file mode 100644 index 0000000..b90a9b3 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChangeDifficultyHandler.java @@ -0,0 +1,38 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundBundlePacket; +import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class ChangeDifficultyHandler extends PacketHandler<@NotNull ClientboundChangeDifficultyPacket> { + + public ChangeDifficultyHandler() { + super( + ClientboundChangeDifficultyPacket.class, + "ChangeDifficulty", + "Handles ClientboundChangeDifficultyPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundChangeDifficultyPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Difficulty"), Component.text(packet.difficulty().name())), + PacketInfoSegment.of(Component.text("Locked"), Component.text(packet.locked())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunkBatchFinishedHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunkBatchFinishedHandler.java new file mode 100644 index 0000000..130328c --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunkBatchFinishedHandler.java @@ -0,0 +1,37 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket; +import net.minecraft.network.protocol.game.ClientboundChunkBatchFinishedPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class ChunkBatchFinishedHandler extends PacketHandler<@NotNull ClientboundChunkBatchFinishedPacket> { + + public ChunkBatchFinishedHandler() { + super( + ClientboundChunkBatchFinishedPacket.class, + "ChunkBatchFinished", + "Handles ClientboundChunkBatchFinishedPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundChunkBatchFinishedPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("BatchSize"), Component.text(packet.batchSize())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunkBatchStartHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunkBatchStartHandler.java new file mode 100644 index 0000000..f7fe015 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunkBatchStartHandler.java @@ -0,0 +1,35 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundChunkBatchFinishedPacket; +import net.minecraft.network.protocol.game.ClientboundChunkBatchStartPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class ChunkBatchStartHandler extends PacketHandler<@NotNull ClientboundChunkBatchStartPacket> { + + public ChunkBatchStartHandler() { + super( + ClientboundChunkBatchStartPacket.class, + "ChunkBatchStart", + "Handles ClientboundChunkBatchStartPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundChunkBatchStartPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of() + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunksBiomesHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunksBiomesHandler.java new file mode 100644 index 0000000..d38e930 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ChunksBiomesHandler.java @@ -0,0 +1,40 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundChunkBatchFinishedPacket; +import net.minecraft.network.protocol.game.ClientboundChunksBiomesPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class ChunksBiomesHandler extends PacketHandler<@NotNull ClientboundChunksBiomesPacket> { + + public ChunksBiomesHandler() { + super( + ClientboundChunksBiomesPacket.class, + "ChunksBiomes", + "Handles ClientboundChunksBiomesPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundChunksBiomesPacket packet) { + String chunkBiomeDataList = FormatHelper.formatList(packet.chunkBiomeData().stream().toList(), MAX_DISPLAYED_ENTRIES); + + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("BatchSize"), Component.text(chunkBiomeDataList)) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ClearTitlesHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ClearTitlesHandler.java new file mode 100644 index 0000000..5c36f6e --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ClearTitlesHandler.java @@ -0,0 +1,39 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundChunksBiomesPacket; +import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class ClearTitlesHandler extends PacketHandler<@NotNull ClientboundClearTitlesPacket> { + + public ClearTitlesHandler() { + super( + ClientboundClearTitlesPacket.class, + "ClearTitles", + "Handles ClientboundClearTitlesPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundClearTitlesPacket packet) { + + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("ResetTimes"), Component.text(packet.shouldResetTimes())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CommandSuggestionsHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CommandSuggestionsHandler.java new file mode 100644 index 0000000..e2d2118 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CommandSuggestionsHandler.java @@ -0,0 +1,43 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import com.mojang.brigadier.suggestion.Suggestion; +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket; +import net.minecraft.network.protocol.game.ClientboundCommandSuggestionsPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.ArrayList; +import java.util.List; + +public class CommandSuggestionsHandler extends PacketHandler<@NotNull ClientboundCommandSuggestionsPacket> { + + public CommandSuggestionsHandler() { + super( + ClientboundCommandSuggestionsPacket.class, + "CommandSuggestions", + "Handles ClientboundCommandSuggestionsPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundCommandSuggestionsPacket packet) { + List suggestions = packet.toSuggestions().getList(); + String suggestionsList = FormatHelper.formatList(suggestions.stream().map(Suggestion::getText).toList(), MAX_DISPLAYED_ENTRIES); + + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("ResetTimes"), Component.text(suggestionsList)) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CommandsHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CommandsHandler.java new file mode 100644 index 0000000..5b571c0 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CommandsHandler.java @@ -0,0 +1,42 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import com.mojang.brigadier.tree.CommandNode; +import net.kyori.adventure.text.Component; +import net.minecraft.commands.CommandBuildContext; +import net.minecraft.commands.SharedSuggestionProvider; +import net.minecraft.core.RegistryAccess; +import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket; +import net.minecraft.network.protocol.game.ClientboundCommandsPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class CommandsHandler extends PacketHandler<@NotNull ClientboundCommandsPacket> { + + public CommandsHandler() { + super( + ClientboundCommandsPacket.class, + "Commands", + "Handles ClientboundCommandsPacket.", + PacketType.CLIENTBOUND + ); + } + + // todo: maybe fetch the commands?? + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundCommandsPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ContainerSetDataHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ContainerSetDataHandler.java new file mode 100644 index 0000000..c766e6b --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/ContainerSetDataHandler.java @@ -0,0 +1,39 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundContainerSetContentPacket; +import net.minecraft.network.protocol.game.ClientboundContainerSetDataPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class ContainerSetDataHandler extends PacketHandler<@NotNull ClientboundContainerSetDataPacket> { + + public ContainerSetDataHandler() { + super( + ClientboundContainerSetDataPacket.class, + "ContainerSetData", + "Handles ClientboundContainerSetDataPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundContainerSetDataPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("ContainerID"), Component.text(packet.getContainerId())), + PacketInfoSegment.of(Component.text("Value"), Component.text(packet.getValue())) + ) + ); + } + +} \ No newline at end of file diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CooldownHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CooldownHandler.java new file mode 100644 index 0000000..38f96f3 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CooldownHandler.java @@ -0,0 +1,41 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import com.mojang.brigadier.suggestion.Suggestion; +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundCommandSuggestionsPacket; +import net.minecraft.network.protocol.game.ClientboundCooldownPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class CooldownHandler extends PacketHandler<@NotNull ClientboundCooldownPacket> { + + public CooldownHandler() { + super( + ClientboundCooldownPacket.class, + "Cooldown", + "Handles ClientboundCooldownPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundCooldownPacket packet) { + + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("CooldownGroup"), Component.text(packet.cooldownGroup().toString())), + PacketInfoSegment.of(Component.text("Duration"), Component.text(packet.duration())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CustomChatCompletionsHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CustomChatCompletionsHandler.java new file mode 100644 index 0000000..c73daa9 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/CustomChatCompletionsHandler.java @@ -0,0 +1,41 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import com.mojang.brigadier.suggestion.Suggestion; +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundCooldownPacket; +import net.minecraft.network.protocol.game.ClientboundCustomChatCompletionsPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class CustomChatCompletionsHandler extends PacketHandler<@NotNull ClientboundCustomChatCompletionsPacket> { + + public CustomChatCompletionsHandler() { + super( + ClientboundCustomChatCompletionsPacket.class, + "CustomChatCompletions", + "Handles ClientboundCustomChatCompletionsPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundCustomChatCompletionsPacket packet) { + String entriesString = FormatHelper.formatList(packet.entries(), MAX_DISPLAYED_ENTRIES); + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Entries"), Component.text(entriesString)), + PacketInfoSegment.of(Component.text("Duration"), Component.text(packet.action().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DamageEventHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DamageEventHandler.java new file mode 100644 index 0000000..60a89c8 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DamageEventHandler.java @@ -0,0 +1,38 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDamageEventPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DamageEventHandler extends PacketHandler<@NotNull ClientboundDamageEventPacket> { + + public DamageEventHandler() { + super( + ClientboundDamageEventPacket.class, + "DamageEvent", + "Handles ClientboundCustomChatCompletionsPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDamageEventPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("EntityId"), Component.text(packet.entityId())), + PacketInfoSegment.of(Component.text("SourceCauseId"), Component.text(packet.sourceCauseId())), + PacketInfoSegment.of(Component.text("SourceType"), Component.text(packet.sourceType().getRegisteredName())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugBlockValueHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugBlockValueHandler.java new file mode 100644 index 0000000..61b8985 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugBlockValueHandler.java @@ -0,0 +1,38 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDamageEventPacket; +import net.minecraft.network.protocol.game.ClientboundDebugBlockValuePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DebugBlockValueHandler extends PacketHandler<@NotNull ClientboundDebugBlockValuePacket> { + + public DebugBlockValueHandler() { + super( + ClientboundDebugBlockValuePacket.class, + "DebugBlockValue", + "Handles ClientboundDebugBlockValuePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDebugBlockValuePacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Position"), Component.text(packet.blockPos().getX() + ", " + packet.blockPos().getY() + ", " + packet.blockPos().getZ())), + PacketInfoSegment.of(Component.text("UpdateSubscription"), Component.text(packet.update().subscription().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugChunkValueHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugChunkValueHandler.java new file mode 100644 index 0000000..40f9a40 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugChunkValueHandler.java @@ -0,0 +1,37 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDebugChunkValuePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DebugChunkValueHandler extends PacketHandler<@NotNull ClientboundDebugChunkValuePacket> { + + public DebugChunkValueHandler() { + super( + ClientboundDebugChunkValuePacket.class, + "DebugChunkValue", + "Handles ClientboundDebugChunkValuePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDebugChunkValuePacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Position"), Component.text(packet.chunkPos().x + ", " + packet.chunkPos().z)), + PacketInfoSegment.of(Component.text("UpdateSubscription"), Component.text(packet.update().subscription().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugEntityValueHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugEntityValueHandler.java new file mode 100644 index 0000000..501c74b --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugEntityValueHandler.java @@ -0,0 +1,37 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDebugEntityValuePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DebugEntityValueHandler extends PacketHandler<@NotNull ClientboundDebugEntityValuePacket> { + + public DebugEntityValueHandler() { + super( + ClientboundDebugEntityValuePacket.class, + "DebugEntityValue", + "Handles ClientboundDebugEntityValuePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDebugEntityValuePacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("EntityId"), Component.text(packet.entityId())), + PacketInfoSegment.of(Component.text("UpdateSubscription"), Component.text(packet.update().subscription().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugEventHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugEventHandler.java new file mode 100644 index 0000000..1d8e884 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugEventHandler.java @@ -0,0 +1,37 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDebugEntityValuePacket; +import net.minecraft.network.protocol.game.ClientboundDebugEventPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DebugEventHandler extends PacketHandler<@NotNull ClientboundDebugEventPacket> { + + public DebugEventHandler() { + super( + ClientboundDebugEventPacket.class, + "DebugEvent", + "Handles ClientboundDebugEventPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDebugEventPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("EventSubscription"), Component.text(packet.event().subscription().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugSampleHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugSampleHandler.java new file mode 100644 index 0000000..d7731bb --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DebugSampleHandler.java @@ -0,0 +1,41 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDebugEventPacket; +import net.minecraft.network.protocol.game.ClientboundDebugSamplePacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.Arrays; +import java.util.List; + +public class DebugSampleHandler extends PacketHandler<@NotNull ClientboundDebugSamplePacket> { + + public DebugSampleHandler() { + super( + ClientboundDebugSamplePacket.class, + "DebugSample", + "Handles ClientboundDebugSamplePacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDebugSamplePacket packet) { + String sampleString = FormatHelper.formatList(List.of(packet.sample()), MAX_DISPLAYED_ENTRIES); + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Sample"), Component.text(sampleString)), + PacketInfoSegment.of(Component.text("SampleType"), Component.text(packet.debugSampleType().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DeleteChatHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DeleteChatHandler.java new file mode 100644 index 0000000..493c1f9 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DeleteChatHandler.java @@ -0,0 +1,38 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDebugSamplePacket; +import net.minecraft.network.protocol.game.ClientboundDeleteChatPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.FormatHelper; +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DeleteChatHandler extends PacketHandler<@NotNull ClientboundDeleteChatPacket> { + + public DeleteChatHandler() { + super( + ClientboundDeleteChatPacket.class, + "DeleteChat", + "Handles ClientboundDeleteChatPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDeleteChatPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("Signature"), Component.text(packet.messageSignature().toString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DisguisedChatHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DisguisedChatHandler.java new file mode 100644 index 0000000..905df4d --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/DisguisedChatHandler.java @@ -0,0 +1,38 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDeleteChatPacket; +import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class DisguisedChatHandler extends PacketHandler<@NotNull ClientboundDisguisedChatPacket> { + + public DisguisedChatHandler() { + super( + ClientboundDisguisedChatPacket.class, + "DisguisedChat", + "Handles ClientboundDisguisedChatPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundDisguisedChatPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("ChatType"), Component.text(packet.chatType().chatType().getRegisteredName())), + PacketInfoSegment.of(Component.text("Message"), Component.text(packet.message().getString())) + ) + ); + } + +} diff --git a/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/EntityEventHandler.java b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/EntityEventHandler.java new file mode 100644 index 0000000..e414b63 --- /dev/null +++ b/src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/EntityEventHandler.java @@ -0,0 +1,37 @@ +package xyz.bitsquidd.ninja.handler.impl.clientbound; + +import net.kyori.adventure.text.Component; +import net.minecraft.network.protocol.game.ClientboundDisguisedChatPacket; +import net.minecraft.network.protocol.game.ClientboundEntityEventPacket; +import org.jetbrains.annotations.NotNull; + +import xyz.bitsquidd.ninja.format.PacketInfoBundle; +import xyz.bitsquidd.ninja.format.PacketInfoSegment; +import xyz.bitsquidd.ninja.handler.PacketHandler; +import xyz.bitsquidd.ninja.handler.PacketType; + +import java.util.List; + +public class EntityEventHandler extends PacketHandler<@NotNull ClientboundEntityEventPacket> { + + public EntityEventHandler() { + super( + ClientboundEntityEventPacket.class, + "EntityEvent", + "Handles ClientboundEntityEventPacket.", + PacketType.CLIENTBOUND + ); + } + + @Override + protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundEntityEventPacket packet) { + return PacketInfoBundle.of( + packetType, + Component.text(friendlyName), + List.of( + PacketInfoSegment.of(Component.text("EventId"), Component.text(packet.getEventId())) + ) + ); + } + +}