Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d6d13e0b9a | ||
|
|
c528bdb113 |
@ -1,2 +1,6 @@
|
|||||||
See Incoming and Outgoing Packets in Minecraft
|
See Incoming and Outgoing Packets in Minecraft
|
||||||

|

|
||||||
|
|
||||||
|
### Keybindings
|
||||||
|
|
||||||
|
- Stop/Start listening for Packets: (Default: K)
|
||||||
@ -1,7 +1,7 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '1.10-SNAPSHOT'
|
id 'fabric-loom' version '1.10-SNAPSHOT'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
id "org.jetbrains.kotlin.jvm" version "2.1.10"
|
id "org.jetbrains.kotlin.jvm" version "2.1.20"
|
||||||
}
|
}
|
||||||
|
|
||||||
version = project.mod_version
|
version = project.mod_version
|
||||||
|
|||||||
@ -4,15 +4,15 @@ org.gradle.parallel=true
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/develop
|
# check these on https://fabricmc.net/develop
|
||||||
minecraft_version=1.21.4
|
minecraft_version=1.21.5
|
||||||
yarn_mappings=1.21.4+build.8
|
yarn_mappings=1.21.5+build.1
|
||||||
loader_version=0.16.10
|
loader_version=0.16.13
|
||||||
fabric_kotlin_version=1.13.1+kotlin.2.1.10
|
fabric_kotlin_version=1.13.2+kotlin.2.1.20
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.0.0
|
mod_version=1.0.1
|
||||||
maven_group=com.pumpkinmc
|
maven_group=com.pumpkinmc
|
||||||
archives_base_name=packeto
|
archives_base_name=packeto
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
fabric_version=0.118.0+1.21.4
|
fabric_version=0.120.0+1.21.5
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package com.pumpkinmc.mixin;
|
package com.pumpkinmc.mixin;
|
||||||
|
|
||||||
|
import com.pumpkinmc.Packeto;
|
||||||
import com.pumpkinmc.Screen;
|
import com.pumpkinmc.Screen;
|
||||||
import net.minecraft.network.ClientConnection;
|
import net.minecraft.network.ClientConnection;
|
||||||
import net.minecraft.network.PacketCallbacks;
|
import net.minecraft.network.PacketCallbacks;
|
||||||
@ -17,15 +18,19 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
|
|
||||||
@Mixin(ClientConnection.class)
|
@Mixin(ClientConnection.class)
|
||||||
public class ClientConnectionMixin {
|
public class ClientConnectionMixin {
|
||||||
|
@Inject(at = @At("HEAD"), method = "handlePacket")
|
||||||
|
private static <T extends PacketListener> void handlePacket(Packet<T> packet, PacketListener listener, CallbackInfo ci) {
|
||||||
|
if (!Packeto.INSTANCE.getStopped()) {
|
||||||
|
Screen.INSTANCE.getReceived_packets().add(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Inject(at = @At("HEAD"), method = "send(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/PacketCallbacks;Z)V")
|
@Inject(at = @At("HEAD"), method = "send(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/PacketCallbacks;Z)V")
|
||||||
private void send(Packet<?> packet, @Nullable PacketCallbacks callbacks, boolean flush, CallbackInfo ci) {
|
private void send(Packet<?> packet, @Nullable PacketCallbacks callbacks, boolean flush, CallbackInfo ci) {
|
||||||
|
if (!Packeto.INSTANCE.getStopped()) {
|
||||||
if (packet instanceof ClientTickEndC2SPacket || packet instanceof PlayerMoveC2SPacket || packet instanceof EntitySetHeadYawS2CPacket
|
if (packet instanceof ClientTickEndC2SPacket || packet instanceof PlayerMoveC2SPacket || packet instanceof EntitySetHeadYawS2CPacket
|
||||||
|| packet instanceof EntityS2CPacket) return;
|
|| packet instanceof EntityS2CPacket) return;
|
||||||
Screen.INSTANCE.getSent_packets().add(packet);
|
Screen.INSTANCE.getSent_packets().add(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(at = @At("HEAD"), method = "handlePacket")
|
|
||||||
private static <T extends PacketListener> void handlePacket(Packet<T> packet, PacketListener listener, CallbackInfo ci) {
|
|
||||||
Screen.INSTANCE.getReceived_packets().add(packet);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,18 +1,54 @@
|
|||||||
package com.pumpkinmc
|
package com.pumpkinmc
|
||||||
|
|
||||||
import net.fabricmc.api.ModInitializer
|
import net.fabricmc.api.ModInitializer
|
||||||
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents
|
||||||
|
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper
|
||||||
import net.fabricmc.fabric.api.client.rendering.v1.HudLayerRegistrationCallback
|
import net.fabricmc.fabric.api.client.rendering.v1.HudLayerRegistrationCallback
|
||||||
import net.fabricmc.fabric.api.client.rendering.v1.IdentifiedLayer
|
import net.fabricmc.fabric.api.client.rendering.v1.IdentifiedLayer
|
||||||
import net.minecraft.network.packet.Packet
|
import net.minecraft.client.MinecraftClient
|
||||||
|
import net.minecraft.client.option.KeyBinding
|
||||||
|
import net.minecraft.client.util.InputUtil
|
||||||
|
import net.minecraft.text.Text
|
||||||
|
import net.minecraft.util.Colors
|
||||||
import net.minecraft.util.Identifier
|
import net.minecraft.util.Identifier
|
||||||
|
import org.lwjgl.glfw.GLFW
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
|
|
||||||
|
|
||||||
object Packeto : ModInitializer {
|
object Packeto : ModInitializer {
|
||||||
private val logger = LoggerFactory.getLogger("packeto")
|
private val logger = LoggerFactory.getLogger("packeto")
|
||||||
|
private lateinit var key_bind: KeyBinding
|
||||||
|
var stopped = false
|
||||||
|
|
||||||
|
|
||||||
override fun onInitialize() {
|
override fun onInitialize() {
|
||||||
HudLayerRegistrationCallback.EVENT.register { layer ->
|
HudLayerRegistrationCallback.EVENT.register { layer ->
|
||||||
layer.addLayer(IdentifiedLayer.of(Identifier.of("packeto", "packets"), Screen))
|
layer.addLayer(IdentifiedLayer.of(Identifier.of("packeto", "packets"), Screen))
|
||||||
}
|
}
|
||||||
|
key_bind = KeyBindingHelper.registerKeyBinding(
|
||||||
|
KeyBinding(
|
||||||
|
"key.packeto.stop",
|
||||||
|
InputUtil.Type.KEYSYM,
|
||||||
|
GLFW.GLFW_KEY_K,
|
||||||
|
"category.packeto"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
ClientTickEvents.END_CLIENT_TICK.register(ClientTickEvents.EndTick { client: MinecraftClient ->
|
||||||
|
while (key_bind.wasPressed()) {
|
||||||
|
stopped = !stopped
|
||||||
|
if (stopped) {
|
||||||
|
client.player!!.sendMessage(
|
||||||
|
Text.literal("Stopped listening for Packets").withColor(Colors.RED),
|
||||||
|
true
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
client.player!!.sendMessage(
|
||||||
|
Text.literal("Started listening for Packets").withColor(Colors.GREEN),
|
||||||
|
true
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,25 +1,16 @@
|
|||||||
package com.pumpkinmc
|
package com.pumpkinmc
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf
|
|
||||||
import net.minecraft.client.MinecraftClient
|
import net.minecraft.client.MinecraftClient
|
||||||
import net.minecraft.client.gui.DrawContext
|
import net.minecraft.client.gui.DrawContext
|
||||||
import net.minecraft.client.gui.LayeredDrawer
|
import net.minecraft.client.gui.LayeredDrawer
|
||||||
import net.minecraft.client.render.RenderTickCounter
|
import net.minecraft.client.render.RenderTickCounter
|
||||||
import net.minecraft.network.NetworkPhase
|
|
||||||
import net.minecraft.network.NetworkState
|
|
||||||
import net.minecraft.network.listener.PacketListener
|
|
||||||
import net.minecraft.network.packet.Packet
|
import net.minecraft.network.packet.Packet
|
||||||
import net.minecraft.network.state.*
|
|
||||||
import net.minecraft.util.Colors
|
import net.minecraft.util.Colors
|
||||||
import java.util.Collections
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList
|
import java.util.concurrent.CopyOnWriteArrayList
|
||||||
import java.util.function.Function
|
|
||||||
import java.util.stream.Collectors
|
|
||||||
import java.util.stream.Stream
|
|
||||||
|
|
||||||
object Screen : LayeredDrawer.Layer {
|
object Screen : LayeredDrawer.Layer {
|
||||||
var sent_packets: MutableList<Packet<*>> = CopyOnWriteArrayList();
|
var sent_packets: MutableList<Packet<*>> = CopyOnWriteArrayList()
|
||||||
var received_packets: MutableList<Packet<*>> = CopyOnWriteArrayList();
|
var received_packets: MutableList<Packet<*>> = CopyOnWriteArrayList()
|
||||||
|
|
||||||
override fun render(context: DrawContext, tickCounter: RenderTickCounter) {
|
override fun render(context: DrawContext, tickCounter: RenderTickCounter) {
|
||||||
context.drawText(
|
context.drawText(
|
||||||
@ -29,11 +20,11 @@ object Screen : LayeredDrawer.Layer {
|
|||||||
0,
|
0,
|
||||||
Colors.RED,
|
Colors.RED,
|
||||||
false
|
false
|
||||||
);
|
)
|
||||||
if (sent_packets.size >= 20) sent_packets.removeFirst();
|
if (sent_packets.size >= 20) sent_packets.removeFirst()
|
||||||
var i = 6;
|
var i = 6
|
||||||
for (packet in sent_packets) {
|
for (packet in sent_packets) {
|
||||||
i += 10;
|
i += 10
|
||||||
context.drawText(
|
context.drawText(
|
||||||
MinecraftClient.getInstance().textRenderer,
|
MinecraftClient.getInstance().textRenderer,
|
||||||
packet.packetType.id.path,
|
packet.packetType.id.path,
|
||||||
@ -41,7 +32,7 @@ object Screen : LayeredDrawer.Layer {
|
|||||||
i,
|
i,
|
||||||
Colors.WHITE,
|
Colors.WHITE,
|
||||||
false
|
false
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
context.drawText(
|
context.drawText(
|
||||||
MinecraftClient.getInstance().textRenderer,
|
MinecraftClient.getInstance().textRenderer,
|
||||||
@ -50,11 +41,11 @@ object Screen : LayeredDrawer.Layer {
|
|||||||
0,
|
0,
|
||||||
Colors.RED,
|
Colors.RED,
|
||||||
false
|
false
|
||||||
);
|
)
|
||||||
if (received_packets.size >= 20) received_packets.removeFirst();
|
if (received_packets.size >= 20) received_packets.removeFirst()
|
||||||
var x = 6;
|
var x = 6
|
||||||
for (packet in received_packets) {
|
for (packet in received_packets) {
|
||||||
x += 10;
|
x += 10
|
||||||
context.drawText(
|
context.drawText(
|
||||||
MinecraftClient.getInstance().textRenderer,
|
MinecraftClient.getInstance().textRenderer,
|
||||||
packet.packetType.id.path,
|
packet.packetType.id.path,
|
||||||
@ -62,7 +53,7 @@ object Screen : LayeredDrawer.Layer {
|
|||||||
x,
|
x,
|
||||||
Colors.WHITE,
|
Colors.WHITE,
|
||||||
false
|
false
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user