Skip to content

Commit f055c77

Browse files
committed
Make stationapi more compatible with mods adding custom packet stuff
1 parent 98ecb7b commit f055c77

3 files changed

Lines changed: 11 additions & 5 deletions

File tree

station-networking-v0/src/main/java/net/modificationstation/stationapi/mixin/network/ConnectionMixin.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.modificationstation.stationapi.mixin.network;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
import net.minecraft.network.Connection;
46
import net.minecraft.network.NetworkHandler;
57
import net.minecraft.network.packet.Packet;
@@ -11,14 +13,14 @@
1113

1214
@Mixin(Connection.class)
1315
class ConnectionMixin {
14-
@Redirect(
16+
@WrapOperation(
1517
method = "method_1129",
1618
at = @At(
1719
value = "INVOKE",
1820
target = "Lnet/minecraft/network/packet/Packet;apply(Lnet/minecraft/network/NetworkHandler;)V"
1921
)
2022
)
21-
private void stationapi_ifIdentifiable(Packet instance, NetworkHandler packetHandler) {
23+
private void stationapi_ifIdentifiable(Packet instance, NetworkHandler packetHandler, Operation<Void> original) {
2224
instance.apply(
2325
instance instanceof IdentifiablePacket identifiablePacket ?
2426
IdentifiablePacketImpl.HANDLERS.getOrDefault(identifiablePacket.getId(), packetHandler) :

station-networking-v0/src/main/java/net/modificationstation/stationapi/mixin/network/PacketMixin.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package net.modificationstation.stationapi.mixin.network;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5+
import com.llamalad7.mixinextras.sugar.Local;
36
import net.minecraft.network.packet.Packet;
47
import net.modificationstation.stationapi.api.StationAPI;
58
import net.modificationstation.stationapi.api.event.network.packet.PacketRegisterEvent;
@@ -64,14 +67,14 @@ private static void stationapi_ifIdentifiable(Packet packet, DataOutputStream ou
6467
writeString(idPacket.getId().toString(), out);
6568
}
6669

67-
@Redirect(
70+
@WrapOperation(
6871
method = "read(Ljava/io/DataInputStream;Z)Lnet/minecraft/network/packet/Packet;",
6972
at = @At(
7073
value = "INVOKE",
7174
target = "Lnet/minecraft/network/packet/Packet;create(I)Lnet/minecraft/network/packet/Packet;"
7275
)
7376
)
74-
private static Packet stationapi_ifIdentifiable(int id, DataInputStream in, boolean server) throws IOException {
77+
private static Packet stationapi_ifIdentifiable(int id, Operation<Packet> original, @Local(argsOnly = true) DataInputStream in, @Local(argsOnly = true) boolean server) throws IOException {
7578
if (id == IdentifiablePacket.PACKET_ID) {
7679
Identifier identifier = Identifier.of(readString(in, Short.MAX_VALUE));
7780
if (

station-vanilla-checker-v0/src/main/java/net/modificationstation/stationapi/mixin/network/LoginHelloPacketMixin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ private void stationapi_injectStAPIFlag(String username, int protocolVersion, Ca
5252
constant = @Constant(
5353
ordinal = 0,
5454
intValue = 16
55-
)
55+
),
56+
require = 0
5657
)
5758
private int stationapi_injectHugeStringLimit(int constant) {
5859
return Short.MAX_VALUE;

0 commit comments

Comments
 (0)