Skip to content

Commit b5f891d

Browse files
author
tonimatasdev
committed
Version 2.0.0
1 parent 06d72fa commit b5f891d

15 files changed

+138
-51
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package dev.tonimatas.packetfixer;
22

3+
import dev.tonimatas.packetfixer.util.Config;
34
import org.apache.logging.log4j.LogManager;
45

56
public class PacketFixer {
67
public static void init() {
78
LogManager.getLogger().info("PacketFixer has been initialized successfully.");
89
}
10+
11+
public static String getPayloadMessage() {
12+
return "Payload may not be larger than " + Config.getPacketSize() + " bytes. You can modify it in the Packet Fixer config.";
13+
}
914
}
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
package dev.tonimatas.packetfixer.mixins;
22

3+
import dev.tonimatas.packetfixer.PacketFixer;
34
import dev.tonimatas.packetfixer.util.Config;
45
import net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket;
56
import org.spongepowered.asm.mixin.Mixin;
67
import org.spongepowered.asm.mixin.injection.Constant;
78
import org.spongepowered.asm.mixin.injection.ModifyConstant;
89

9-
@Mixin(value = ClientboundCustomPayloadPacket.class, priority = 999)
10+
@Mixin(ClientboundCustomPayloadPacket.class)
1011
public class ClientboundCustomPayloadPacketMixin {
11-
@ModifyConstant(method = {"read", "<init>(Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/network/FriendlyByteBuf;)V"}, constant = @Constant(intValue = 1048576))
12+
@ModifyConstant(method = {"<init>(Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/network/FriendlyByteBuf;)V", "read"}, constant = @Constant(intValue = 1048576))
1213
private int newSize(int value) {
1314
return Config.getPacketSize();
1415
}
1516

16-
@ModifyConstant(method = {"read", "<init>(Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/network/FriendlyByteBuf;)V"}, constant = @Constant(stringValue = "Payload may not be larger than 1048576 bytes"))
17-
private String newSize(String constant) {
18-
return "Payload may not be larger than " + Config.getPacketSize() + " bytes. You can modify it in the Packet Fixer config.";
17+
@ModifyConstant(method = {"<init>(Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/network/FriendlyByteBuf;)V", "read"}, constant = @Constant(stringValue = "Payload may not be larger than 1048576 bytes"))
18+
private String newSize(String value) {
19+
return PacketFixer.getPayloadMessage();
1920
}
2021
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package dev.tonimatas.packetfixer.mixins;
22

3+
import dev.tonimatas.packetfixer.PacketFixer;
34
import dev.tonimatas.packetfixer.util.Config;
45
import net.minecraft.network.protocol.login.ClientboundCustomQueryPacket;
5-
import org.apache.logging.log4j.LogManager;
66
import org.spongepowered.asm.mixin.Mixin;
77
import org.spongepowered.asm.mixin.injection.Constant;
88
import org.spongepowered.asm.mixin.injection.ModifyConstant;
99

10-
@Mixin(value = ClientboundCustomQueryPacket.class, priority = 999)
10+
@Mixin(ClientboundCustomQueryPacket.class)
1111
public class ClientboundCustomQueryPacketMixin {
1212
@ModifyConstant(method = "read", constant = @Constant(intValue = 1048576))
1313
private int newSize(int value) {
1414
return Config.getPacketSize();
1515
}
1616

1717
@ModifyConstant(method = "read", constant = @Constant(stringValue = "Payload may not be larger than 1048576 bytes"))
18-
private String newSize(String constant) {
19-
return "Payload may not be larger than " + Config.getPacketSize() + " bytes. You can modify it in the Packet Fixer config.";
18+
private String newSize(String value) {
19+
return PacketFixer.getPayloadMessage();
2020
}
2121
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package dev.tonimatas.packetfixer.mixins;
2+
3+
import dev.tonimatas.packetfixer.util.Config;
4+
import net.minecraft.network.protocol.game.ClientboundLevelChunkPacket;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.Constant;
7+
import org.spongepowered.asm.mixin.injection.ModifyConstant;
8+
9+
@Mixin(ClientboundLevelChunkPacket.class)
10+
public class ClientboundLevelChunkPacketDataMixin {
11+
@ModifyConstant(method = "read", constant = @Constant(intValue = 2097152))
12+
private int init$size(int value) {
13+
return Config.getChunkPacketData();
14+
}
15+
16+
@ModifyConstant(method = "read", constant = @Constant(stringValue = "Chunk Packet trying to allocate too much memory on read."))
17+
private String init$message(String constant) {
18+
return constant + " (" + Config.getChunkPacketData() + ") Modify it in the Packet Fixer config.";
19+
}
20+
}

common/src/main/java/dev/tonimatas/packetfixer/mixins/CompressionDecoderMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.spongepowered.asm.mixin.injection.Constant;
77
import org.spongepowered.asm.mixin.injection.ModifyConstant;
88

9-
@Mixin(value = CompressionDecoder.class, priority = 999)
9+
@Mixin(CompressionDecoder.class)
1010
public class CompressionDecoderMixin {
1111
@ModifyConstant(method = "decode", constant = @Constant(intValue = 2097152))
1212
private int newSize(int value) {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package dev.tonimatas.packetfixer.mixins;
2+
3+
import dev.tonimatas.packetfixer.util.Config;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.injection.Constant;
6+
import org.spongepowered.asm.mixin.injection.ModifyConstant;
7+
8+
@Mixin(targets = "net.minecraft.network.Connection$1")
9+
public class ConnectionMixin {
10+
@ModifyConstant(method = "initChannel", constant = @Constant(intValue = 30))
11+
private int timeout(int value) {
12+
return Config.getTimeout();
13+
}
14+
}

common/src/main/java/dev/tonimatas/packetfixer/mixins/FriendlyByteBufMixin.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,29 @@
77
import org.spongepowered.asm.mixin.injection.ModifyConstant;
88

99
@Mixin(FriendlyByteBuf.class)
10-
public class FriendlyByteBufMixin {
10+
public abstract class FriendlyByteBufMixin {
1111
@ModifyConstant(method = "readNbt()Lnet/minecraft/nbt/CompoundTag;", constant = @Constant(longValue = 2097152L))
12-
public long newSize(long value) {
12+
private long newSize(long value) {
1313
return Config.getNbtMaxSize();
1414
}
15+
16+
@ModifyConstant(method = "readVarInt", constant = @Constant(intValue = 5))
17+
private int readInt$size(int value) {
18+
return Config.getVarIntSize();
19+
}
20+
21+
@ModifyConstant(method = "readVarInt", constant = @Constant(stringValue = "VarInt too big"))
22+
private String readInt$size(String constant) {
23+
return "VarInt too big. Packet Fixer configured to " + Config.getVarIntSize() + ". You can modify it in the Packet Fixer config.";
24+
}
25+
26+
@ModifyConstant(method = "readVarLong", constant = @Constant(intValue = 10))
27+
private int readLong$size(int constant) {
28+
return Config.getVarLong();
29+
}
30+
31+
@ModifyConstant(method = "readVarLong", constant = @Constant(stringValue = "VarLong too big"))
32+
private String readLong$size(String constant) {
33+
return "VarInt too big. Packet Fixer configured to " + Config.getVarLong() + ". You can modify it in the Packet Fixer config.";
34+
}
1535
}

common/src/main/java/dev/tonimatas/packetfixer/mixins/MixinConfigPlugin.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package dev.tonimatas.packetfixer.mixins;
22

33
import dev.tonimatas.packetfixer.util.Config;
4-
import dev.tonimatas.packetfixer.util.Hooks;
5-
import dev.tonimatas.packetfixer.util.MixinCheck;
64
import org.objectweb.asm.tree.ClassNode;
75
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
86
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
@@ -25,15 +23,6 @@ public String getRefMapperConfig() {
2523
@SuppressWarnings("UnreachableCode")
2624
@Override
2725
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
28-
boolean randomPatches = Hooks.isModLoaded("randompatches");
29-
boolean krypton = Hooks.isModLoaded("krypton") || Hooks.isModLoaded("pluto");
30-
31-
if (MixinCheck.with(mixinClassName, "ServerboundCustomPayloadPacketMixin")) return !randomPatches;
32-
if (MixinCheck.with(mixinClassName, "FriendlyByteBufMixin")) return !randomPatches;
33-
if (MixinCheck.with(mixinClassName, "CompressionDecoderMixin")) return !randomPatches;
34-
if (MixinCheck.with(mixinClassName, "Varint21FrameDecoderMixin") ||
35-
MixinCheck.with(mixinClassName, "Varint21LengthFieldPrependerMixin")) return !krypton;
36-
3726
return true;
3827
}
3928

@@ -49,10 +38,11 @@ public List<String> getMixins() {
4938

5039
@Override
5140
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
41+
5242
}
5343

5444
@Override
5545
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
5646

5747
}
58-
}
48+
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package dev.tonimatas.packetfixer.mixins;
22

3+
import dev.tonimatas.packetfixer.PacketFixer;
34
import dev.tonimatas.packetfixer.util.Config;
45
import net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket;
5-
import org.apache.logging.log4j.LogManager;
66
import org.spongepowered.asm.mixin.Mixin;
77
import org.spongepowered.asm.mixin.injection.Constant;
88
import org.spongepowered.asm.mixin.injection.ModifyConstant;
99

10-
@Mixin(value = ServerboundCustomPayloadPacket.class, priority = 999)
10+
@Mixin(ServerboundCustomPayloadPacket.class)
1111
public class ServerboundCustomPayloadPacketMixin {
1212
@ModifyConstant(method = "read", constant = @Constant(intValue = 32767))
1313
private int newSize(int value) {
1414
return Config.getPacketSize();
1515
}
1616

1717
@ModifyConstant(method = "read", constant = @Constant(stringValue = "Payload may not be larger than 32767 bytes"))
18-
private String newSize(String constant) {
19-
return "Payload may not be larger than " + Config.getPacketSize() + " bytes. You can modify it in the Packet Fixer config.";
18+
private String newSize(String value) {
19+
return PacketFixer.getPayloadMessage();
2020
}
2121
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package dev.tonimatas.packetfixer.mixins;
22

3+
import dev.tonimatas.packetfixer.PacketFixer;
34
import dev.tonimatas.packetfixer.util.Config;
45
import net.minecraft.network.protocol.login.ServerboundCustomQueryPacket;
5-
import org.apache.logging.log4j.LogManager;
66
import org.spongepowered.asm.mixin.Mixin;
77
import org.spongepowered.asm.mixin.injection.Constant;
88
import org.spongepowered.asm.mixin.injection.ModifyConstant;
99

10-
@Mixin(value = ServerboundCustomQueryPacket.class, priority = 999)
10+
@Mixin(ServerboundCustomQueryPacket.class)
1111
public class ServerboundCustomQueryPacketMixin {
1212
@ModifyConstant(method = "read", constant = @Constant(intValue = 1048576))
1313
private int newSize(int value) {
1414
return Config.getPacketSize();
1515
}
1616

1717
@ModifyConstant(method = "read", constant = @Constant(stringValue = "Payload may not be larger than 1048576 bytes"))
18-
private String newSize(String constant) {
19-
return "Payload may not be larger than " + Config.getPacketSize() + " bytes. You can modify it in the Packet Fixer config.";
18+
private String newSize(String value) {
19+
return PacketFixer.getPayloadMessage();
2020
}
21-
}
21+
}

0 commit comments

Comments
 (0)