Skip to content

Commit a7505f1

Browse files
committed
fix: enforce all config tasks to be on main
Thanks Mojang Related to RelativityMC/VMP-fabric#105
1 parent 4630492 commit a7505f1

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.ishland.c2me.base.mixin.bugfixes.config_enforce_main;
2+
3+
import net.minecraft.network.ClientConnection;
4+
import net.minecraft.network.NetworkThreadUtils;
5+
import net.minecraft.network.listener.ServerConfigurationPacketListener;
6+
import net.minecraft.network.listener.TickablePacketListener;
7+
import net.minecraft.network.packet.c2s.common.ResourcePackStatusC2SPacket;
8+
import net.minecraft.network.packet.c2s.config.AcceptCodeOfConductC2SPacket;
9+
import net.minecraft.server.MinecraftServer;
10+
import net.minecraft.server.network.ConnectedClientData;
11+
import net.minecraft.server.network.ServerCommonNetworkHandler;
12+
import net.minecraft.server.network.ServerConfigurationNetworkHandler;
13+
import org.spongepowered.asm.mixin.Mixin;
14+
import org.spongepowered.asm.mixin.injection.At;
15+
import org.spongepowered.asm.mixin.injection.Inject;
16+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
17+
18+
@Mixin(ServerConfigurationNetworkHandler.class)
19+
public abstract class MixinServerConfigurationNetworkHandler extends ServerCommonNetworkHandler implements ServerConfigurationPacketListener, TickablePacketListener {
20+
21+
public MixinServerConfigurationNetworkHandler(MinecraftServer server, ClientConnection connection, ConnectedClientData clientData) {
22+
super(server, connection, clientData);
23+
}
24+
25+
@Inject(method = "onResourcePackStatus", at = @At("HEAD"))
26+
private void onResourcePackStatus(ResourcePackStatusC2SPacket packet, CallbackInfo ci) {
27+
NetworkThreadUtils.forceMainThread(packet, this, this.server.getPacketApplyBatcher());
28+
}
29+
30+
@Inject(method = "onAcceptCodeOfConduct", at = @At("HEAD"))
31+
private void onAcceptCodeOfConduct(AcceptCodeOfConductC2SPacket packet, CallbackInfo ci) {
32+
NetworkThreadUtils.forceMainThread(packet, this, this.server.getPacketApplyBatcher());
33+
}
34+
35+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package com.ishland.c2me.base.mixin.bugfixes;

c2me-base/src/main/resources/c2me-base.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
"access.IXoroshiro128PlusPlusRandomDeriver",
5757
"access.IXoroshiro128PlusPlusRandomImpl",
5858
"access.fapi.IArrayBackedEvent",
59+
"bugfixes.config_enforce_main.MixinServerConfigurationNetworkHandler",
5960
"client_movement.MixinPlayerEntity",
6061
"instrumentation.MixinServerChunkManager",
6162
"report.MixinDedicatedServerWatchdog",

0 commit comments

Comments
 (0)