Skip to content

Commit dcee8b4

Browse files
committed
Update to NeoForge 20.4.70-beta
1 parent d6fc939 commit dcee8b4

File tree

11 files changed

+39
-74
lines changed

11 files changed

+39
-74
lines changed

common/src/main/java/org/embeddedt/modernfix/packet/EntityIDSyncPacket.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@
22

33
import com.mojang.datafixers.util.Pair;
44
import net.minecraft.network.FriendlyByteBuf;
5+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
56
import net.minecraft.network.syncher.EntityDataAccessor;
7+
import net.minecraft.resources.ResourceLocation;
68
import net.minecraft.world.entity.Entity;
79
import org.embeddedt.modernfix.ModernFix;
810

911
import java.lang.reflect.Field;
1012
import java.lang.reflect.Modifier;
1113
import java.util.*;
1214

13-
public class EntityIDSyncPacket {
15+
public class EntityIDSyncPacket implements CustomPacketPayload {
16+
public static final ResourceLocation ID = new ResourceLocation(ModernFix.MODID, "entity_id_sync");
1417
private Map<Class<? extends Entity>, List<Pair<String, Integer>>> map;
1518

1619
public EntityIDSyncPacket(Map<Class<? extends Entity>, List<Pair<String, Integer>>> map) {
@@ -21,11 +24,8 @@ public Map<Class<? extends Entity>, List<Pair<String, Integer>>> getFieldInfo()
2124
return this.map;
2225
}
2326

24-
public EntityIDSyncPacket() {
25-
this.map = new HashMap<>();
26-
}
27-
28-
public void serialize(FriendlyByteBuf buf) {
27+
@Override
28+
public void write(FriendlyByteBuf buf) {
2929
buf.writeVarInt(map.keySet().size());
3030
for(Map.Entry<Class<? extends Entity>, List<Pair<String, Integer>>> entry : map.entrySet()) {
3131
buf.writeUtf(entry.getKey().getName());
@@ -38,8 +38,8 @@ public void serialize(FriendlyByteBuf buf) {
3838
}
3939

4040
@SuppressWarnings("unchecked")
41-
public static EntityIDSyncPacket deserialize(FriendlyByteBuf buf) {
42-
EntityIDSyncPacket self = new EntityIDSyncPacket();
41+
public EntityIDSyncPacket(FriendlyByteBuf buf) {
42+
EntityIDSyncPacket self = this;
4343
int numEntityClasses = buf.readVarInt();
4444
for(int i = 0; i < numEntityClasses; i++) {
4545
String clzName = buf.readUtf();
@@ -73,6 +73,10 @@ public static EntityIDSyncPacket deserialize(FriendlyByteBuf buf) {
7373
ModernFix.LOGGER.error("Error deserializing packet", e);
7474
}
7575
}
76-
return self;
76+
}
77+
78+
@Override
79+
public ResourceLocation id() {
80+
return ID;
7781
}
7882
}

common/src/main/java/org/embeddedt/modernfix/platform/ModernFixPlatformHooks.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.mojang.brigadier.CommandDispatcher;
55
import net.minecraft.client.searchtree.SearchRegistry;
66
import net.minecraft.commands.CommandSourceStack;
7+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
78
import net.minecraft.server.MinecraftServer;
89
import net.minecraft.server.level.ServerPlayer;
910
import net.minecraft.world.item.ItemStack;
@@ -39,7 +40,7 @@ public interface ModernFixPlatformHooks {
3940

4041
Path getGameDirectory();
4142

42-
void sendPacket(ServerPlayer player, Object packet);
43+
void sendPacket(ServerPlayer player, CustomPacketPayload packet);
4344

4445
Multimap<String, String> getCustomModOptions();
4546

fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import net.fabricmc.loader.api.metadata.ModMetadata;
1212
import net.minecraft.client.searchtree.SearchRegistry;
1313
import net.minecraft.commands.CommandSourceStack;
14+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
1415
import net.minecraft.server.MinecraftServer;
1516
import net.minecraft.server.level.ServerPlayer;
1617
import net.minecraft.world.item.CreativeModeTabs;
@@ -72,7 +73,7 @@ public Path getGameDirectory() {
7273
return FabricLoader.getInstance().getGameDir();
7374
}
7475

75-
public void sendPacket(ServerPlayer player, Object packet) {
76+
public void sendPacket(ServerPlayer player, CustomPacketPayload packet) {
7677
//PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), packet);
7778
}
7879

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ mixinextras_version=0.3.2
77
mod_id=modernfix
88
minecraft_version=1.20.4
99
enabled_platforms=fabric,neoforge
10-
forge_version=20.4.22-beta
10+
forge_version=20.4.70-beta
1111
# parchment_version=2023.07.09
1212
refined_storage_version=4392788
1313
jei_version=16.0.0.28

neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/bugfix/recipe_book_type_desync/RecipeBookSettingsMixin.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
package org.embeddedt.modernfix.neoforge.mixin.bugfix.recipe_book_type_desync;
22

3-
import com.llamalad7.mixinextras.sugar.Local;
4-
import net.minecraft.network.FriendlyByteBuf;
53
import net.minecraft.stats.RecipeBookSettings;
64
import net.minecraft.world.inventory.RecipeBookType;
7-
import org.embeddedt.modernfix.ModernFix;
85
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
9-
import org.embeddedt.modernfix.neoforge.packet.NetworkUtils;
106
import org.spongepowered.asm.mixin.Mixin;
11-
import org.spongepowered.asm.mixin.injection.At;
12-
import org.spongepowered.asm.mixin.injection.Redirect;
137

148
import java.lang.reflect.Field;
159
import java.lang.reflect.Modifier;
@@ -36,12 +30,14 @@ public class RecipeBookSettingsMixin {
3630
}
3731
mfix$maxVanillaOrdinal = ord;
3832
}
33+
/*
3934
@Redirect(method = "read(Lnet/minecraft/network/FriendlyByteBuf;)Lnet/minecraft/stats/RecipeBookSettings;", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/FriendlyByteBuf;readBoolean()Z"))
4035
private static boolean useDefaultBooleanIfVanilla(FriendlyByteBuf buf, @Local(ordinal = 0) RecipeBookType type) {
41-
if(type.ordinal() >= (mfix$maxVanillaOrdinal + 1) && NetworkUtils.isCurrentlyVanilla) {
36+
if(type.ordinal() >= (mfix$maxVanillaOrdinal + 1)) {
4237
ModernFix.LOGGER.warn("Not reading recipe book data for type '{}' as we are using vanilla connection", type.name());
4338
return false; // skip actually reading buffer
4439
}
4540
return buf.readBoolean();
4641
}
42+
*/
4743
}

neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/core/BootstrapMixin.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.embeddedt.modernfix.neoforge.mixin.core;
22

33
import net.minecraft.server.Bootstrap;
4-
import net.neoforged.neoforge.network.NetworkConstants;
54
import org.embeddedt.modernfix.util.TimeFormatter;
65
import org.slf4j.Logger;
76
import org.spongepowered.asm.mixin.Final;
@@ -25,10 +24,4 @@ private static void doModernFixBootstrap(CallbackInfo ci) {
2524
LOGGER.info("ModernFix reached bootstrap stage ({} after launch)", TimeFormatter.formatNanos(ManagementFactory.getRuntimeMXBean().getUptime() * 1000L * 1000L));
2625
}
2726
}
28-
29-
/* for https://github.com/MinecraftForge/MinecraftForge/issues/9505 */
30-
@Inject(method = "bootStrap", at = @At("RETURN"))
31-
private static void doClassloadHack(CallbackInfo ci) {
32-
NetworkConstants.init();
33-
}
3427
}

neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/core/NetworkHooksMixin.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

neoforge/src/main/java/org/embeddedt/modernfix/neoforge/packet/NetworkUtils.java

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,24 @@
11
package org.embeddedt.modernfix.neoforge.packet;
22

3-
import net.minecraft.resources.ResourceLocation;
4-
import net.neoforged.api.distmarker.Dist;
5-
import net.neoforged.fml.DistExecutor;
6-
import net.neoforged.neoforge.network.NetworkEvent;
7-
import net.neoforged.neoforge.network.NetworkRegistry;
8-
import net.neoforged.neoforge.network.simple.SimpleChannel;
3+
import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext;
4+
import net.neoforged.neoforge.network.event.RegisterPayloadHandlerEvent;
5+
import net.neoforged.neoforge.network.handling.PlayPayloadContext;
6+
import net.neoforged.neoforge.network.registration.IPayloadRegistrar;
97
import org.embeddedt.modernfix.ModernFix;
108
import org.embeddedt.modernfix.ModernFixClient;
119
import org.embeddedt.modernfix.packet.EntityIDSyncPacket;
1210

1311
public class PacketHandler {
14-
private static final String PROTOCOL_VERSION = "1";
15-
public static final SimpleChannel INSTANCE = NetworkRegistry.newSimpleChannel(
16-
new ResourceLocation(ModernFix.MODID, "main"),
17-
() -> PROTOCOL_VERSION,
18-
NetworkRegistry.acceptMissingOr(PROTOCOL_VERSION),
19-
NetworkRegistry.acceptMissingOr(PROTOCOL_VERSION)
20-
);
12+
private static void registerPackets(final RegisterPayloadHandlerEvent event) {
13+
final IPayloadRegistrar registrar = event.registrar(ModernFix.MODID).optional();
14+
registrar.play(EntityIDSyncPacket.ID, EntityIDSyncPacket::new, PacketHandler::handleSyncPacket);
15+
}
2116

2217
public static void register() {
23-
int id = 1;
24-
INSTANCE.registerMessage(id++, EntityIDSyncPacket.class, EntityIDSyncPacket::serialize, EntityIDSyncPacket::deserialize, PacketHandler::handleSyncPacket);
18+
FMLJavaModLoadingContext.get().getModEventBus().addListener(PacketHandler::registerPackets);
2519
}
2620

27-
private static void handleSyncPacket(EntityIDSyncPacket packet, NetworkEvent.Context contextSupplier) {
28-
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
29-
contextSupplier.enqueueWork(() -> ModernFixClient.handleEntityIDSync(packet));
30-
contextSupplier.setPacketHandled(true);
31-
});
21+
private static void handleSyncPacket(EntityIDSyncPacket packet, PlayPayloadContext context) {
22+
context.workHandler().execute(() -> ModernFixClient.handleEntityIDSync(packet));
3223
}
3324
}

neoforge/src/main/java/org/embeddedt/modernfix/platform/neoforge/ModernFixPlatformHooksImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.mojang.brigadier.CommandDispatcher;
66
import net.minecraft.client.searchtree.SearchRegistry;
77
import net.minecraft.commands.CommandSourceStack;
8+
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
89
import net.minecraft.server.MinecraftServer;
910
import net.minecraft.server.level.ServerPlayer;
1011
import net.minecraft.world.item.CreativeModeTab;
@@ -87,8 +88,8 @@ public Path getGameDirectory() {
8788
return FMLPaths.GAMEDIR.get();
8889
}
8990

90-
public void sendPacket(ServerPlayer player, Object packet) {
91-
PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), packet);
91+
public void sendPacket(ServerPlayer player, CustomPacketPayload packet) {
92+
PacketDistributor.PLAYER.with(player).send(packet);
9293
}
9394

9495
public void injectPlatformSpecificHacks() {

0 commit comments

Comments
 (0)