From 2cce200e4d10ff625e013ab2b7e837076b2c14d9 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 24 Apr 2024 08:40:11 -0400 Subject: [PATCH] Update to 1.20.5 --- .../modernfix/packet/EntityIDSyncPacket.java | 87 ------------------- gradle.properties | 8 +- neoforge/build.gradle | 2 +- .../neoforge/config/NightConfigFixer.java | 4 +- .../neoforge/datagen/RuntimeDatagen.java | 6 +- .../neoforge/init/ModernFixClientForge.java | 19 ++-- .../neoforge/init/ModernFixForge.java | 31 ++----- .../ServerChunkCache_CurrentLoadingMixin.java | 57 ------------ .../GameDataMixin.java | 6 +- .../neoforge/packet/PacketHandler.java | 24 ----- .../neoforge/ModernFixPlatformHooksImpl.java | 2 +- .../{mods.toml => neoforge.mods.toml} | 2 +- 12 files changed, 31 insertions(+), 217 deletions(-) delete mode 100644 common/src/main/java/org/embeddedt/modernfix/packet/EntityIDSyncPacket.java delete mode 100644 neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/bugfix/chunk_deadlock/ServerChunkCache_CurrentLoadingMixin.java delete mode 100644 neoforge/src/main/java/org/embeddedt/modernfix/neoforge/packet/PacketHandler.java rename neoforge/src/main/resources/META-INF/{mods.toml => neoforge.mods.toml} (98%) diff --git a/common/src/main/java/org/embeddedt/modernfix/packet/EntityIDSyncPacket.java b/common/src/main/java/org/embeddedt/modernfix/packet/EntityIDSyncPacket.java deleted file mode 100644 index 09f48de3..00000000 --- a/common/src/main/java/org/embeddedt/modernfix/packet/EntityIDSyncPacket.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.embeddedt.modernfix.packet; - -import com.mojang.datafixers.util.Pair; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.codec.StreamCodec; -import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import org.embeddedt.modernfix.ModernFix; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.*; - -public class EntityIDSyncPacket implements CustomPacketPayload { - public static final StreamCodec STREAM_CODEC = CustomPacketPayload.codec(EntityIDSyncPacket::write, EntityIDSyncPacket::new); - - public static final ResourceLocation ID = new ResourceLocation(ModernFix.MODID, "entity_id_sync"); - public static final CustomPacketPayload.Type TYPE = CustomPacketPayload.createType(ID.toString()); - - private Map, List>> map; - - public EntityIDSyncPacket(Map, List>> map) { - this.map = map; - } - - public Map, List>> getFieldInfo() { - return this.map; - } - - public void write(FriendlyByteBuf buf) { - buf.writeVarInt(map.keySet().size()); - for(Map.Entry, List>> entry : map.entrySet()) { - buf.writeUtf(entry.getKey().getName()); - buf.writeVarInt(entry.getValue().size()); - for(Pair field : entry.getValue()) { - buf.writeUtf(field.getFirst()); - buf.writeVarInt(field.getSecond()); - } - } - } - - @SuppressWarnings("unchecked") - public EntityIDSyncPacket(FriendlyByteBuf buf) { - this.map = new HashMap<>(); - EntityIDSyncPacket self = this; - int numEntityClasses = buf.readVarInt(); - for(int i = 0; i < numEntityClasses; i++) { - String clzName = buf.readUtf(); - try { - Class clz; - try { - clz = Class.forName(clzName); - } catch(ClassNotFoundException e) { - ModernFix.LOGGER.warn("Entity class not found: {}", clzName); - break; - } - if(!Entity.class.isAssignableFrom(clz)) { - ModernFix.LOGGER.error("Not an entity: " + clzName); - break; - } - int numFields = buf.readVarInt(); - for(int j = 0; j < numFields; j++) { - String fieldName = buf.readUtf(); - int id = buf.readVarInt(); - Field f = clz.getDeclaredField(fieldName); - if(!Modifier.isStatic(f.getModifiers())) - continue; - f.setAccessible(true); - if(!EntityDataAccessor.class.isAssignableFrom(f.get(null).getClass())) { - ModernFix.LOGGER.error("Not a data accessor field: " + clz + "." + fieldName); - continue; - } - self.map.computeIfAbsent((Class)clz, k -> new ArrayList<>()).add(Pair.of(fieldName, id)); - } - } catch(ReflectiveOperationException e) { - ModernFix.LOGGER.error("Error deserializing packet", e); - } - } - } - - @Override - public Type type() { - return TYPE; - } -} diff --git a/gradle.properties b/gradle.properties index b5f4581b..54f6af44 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,9 +5,9 @@ junit_version=5.10.0-M1 mixinextras_version=0.3.2 mod_id=modernfix -minecraft_version=1.20.5-rc2 -enabled_platforms=fabric -forge_version=20.4.190 +minecraft_version=1.20.5 +enabled_platforms=fabric,neoforge +forge_version=20.5.0-beta # parchment_version=2023.07.09 refined_storage_version=4392788 jei_version=16.0.0.28 @@ -15,7 +15,7 @@ rei_version=13.0.678 ctm_version=1.20.1-1.1.8+4 kubejs_version=1902.6.0-build.142 rhino_version=1902.2.2-build.268 -supported_minecraft_versions=1.20.5-rc2 +supported_minecraft_versions=1.20.5 fabric_loader_version=0.15.9 fabric_api_version=0.97.5+1.20.5 diff --git a/neoforge/build.gradle b/neoforge/build.gradle index 2f6a5aba..0a795816 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -69,7 +69,7 @@ dependencies { processResources { inputs.property "version", project.version - filesMatching("META-INF/mods.toml") { + filesMatching("META-INF/neoforge.mods.toml") { expand "version": project.version } } diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/config/NightConfigFixer.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/config/NightConfigFixer.java index 69fc507c..64587d03 100644 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/config/NightConfigFixer.java +++ b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/config/NightConfigFixer.java @@ -1,7 +1,7 @@ package org.embeddedt.modernfix.neoforge.config; import com.electronwill.nightconfig.core.file.FileWatcher; -import cpw.mods.modlauncher.api.LamdbaExceptionUtils; +import cpw.mods.modlauncher.api.LambdaExceptionUtils; import net.neoforged.fml.loading.FMLLoader; import net.neoforged.fml.util.ObfuscationReflectionHelper; import org.embeddedt.modernfix.ModernFix; @@ -51,7 +51,7 @@ public class NightConfigFixer { } static class MonitoringMap extends ConcurrentHashMap { - private static final Class WATCHED_FILE = LamdbaExceptionUtils.uncheck(() -> Class.forName("com.electronwill.nightconfig.core.file.FileWatcher$WatchedFile")); + private static final Class WATCHED_FILE = LambdaExceptionUtils.uncheck(() -> Class.forName("com.electronwill.nightconfig.core.file.FileWatcher$WatchedFile")); private static final Field CHANGE_HANDLER = ObfuscationReflectionHelper.findField(WATCHED_FILE, "changeHandler"); public MonitoringMap(ConcurrentHashMap oldMap) { diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/datagen/RuntimeDatagen.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/datagen/RuntimeDatagen.java index c2c8dc1b..e93afa5c 100644 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/datagen/RuntimeDatagen.java +++ b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/datagen/RuntimeDatagen.java @@ -13,7 +13,7 @@ import net.minecraft.server.packs.resources.MultiPackResourceManager; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModLoader; -import net.neoforged.fml.common.Mod; +import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.util.ObfuscationReflectionHelper; import net.neoforged.neoforge.client.event.ScreenEvent; import net.neoforged.neoforge.common.data.ExistingFileHelper; @@ -27,7 +27,7 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; -@Mod.EventBusSubscriber(value = Dist.CLIENT) +@EventBusSubscriber(value = Dist.CLIENT) public class RuntimeDatagen { private static final String RESOURCES_OUT_DIR = getPropertyOrBlank("modernfix.datagen.output"); private static final String RESOURCES_IN_DIR = getPropertyOrBlank("modernfix.datagen.existing"); @@ -67,7 +67,7 @@ public class RuntimeDatagen { List oldPacks = new ArrayList<>(manager.listPacks().collect(Collectors.toList())); oldPacks.add(Minecraft.getInstance().getVanillaPackResources()); ObfuscationReflectionHelper.setPrivateValue(ExistingFileHelper.class, existingFileHelper, new MultiPackResourceManager(PackType.CLIENT_RESOURCES, oldPacks), "clientResources"); - ModLoader.get().runEventGenerator(mc->new GatherDataEvent(mc, dataGeneratorConfig.makeGenerator(p->dataGeneratorConfig.isFlat() ? p : p.resolve(mc.getModId()), dataGeneratorConfig.getMods().contains(mc.getModId())), dataGeneratorConfig, existingFileHelper)); + ModLoader.runEventGenerator(mc->new GatherDataEvent(mc, dataGeneratorConfig.makeGenerator(p->dataGeneratorConfig.isFlat() ? p : p.resolve(mc.getModId()), dataGeneratorConfig.getMods().contains(mc.getModId())), dataGeneratorConfig, existingFileHelper)); dataGeneratorConfig.runAll(); ObfuscationReflectionHelper.setPrivateValue(DatagenModLoader.class, null, false, "runningDataGen"); ModernFix.LOGGER.info("Finished runtime datagen."); diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixClientForge.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixClientForge.java index aabfe6e8..95f3263f 100644 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixClientForge.java +++ b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixClientForge.java @@ -7,18 +7,18 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.DebugScreenOverlay; import net.minecraft.commands.CommandSourceStack; import net.neoforged.bus.api.EventPriority; +import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.ModContainer; import net.neoforged.fml.ModLoader; import net.neoforged.fml.ModLoadingContext; -import net.neoforged.fml.ModLoadingStage; import net.neoforged.fml.ModLoadingWarning; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; -import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext; -import net.neoforged.neoforge.client.ConfigScreenHandler; import net.neoforged.neoforge.client.event.CustomizeGuiOverlayEvent; import net.neoforged.neoforge.client.event.RecipesUpdatedEvent; import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent; import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent; +import net.neoforged.neoforge.client.gui.IConfigScreenFactory; import net.neoforged.neoforge.client.settings.KeyConflictContext; import net.neoforged.neoforge.event.TagsUpdatedEvent; import net.neoforged.neoforge.event.TickEvent; @@ -34,14 +34,11 @@ import java.util.List; public class ModernFixClientForge { private static ModernFixClient commonMod; - public ModernFixClientForge() { + public ModernFixClientForge(ModContainer modContainer, IEventBus modBus) { commonMod = new ModernFixClient(); - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::keyBindRegister); - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onClientSetup); - ModLoadingContext.get().registerExtensionPoint( - ConfigScreenHandler.ConfigScreenFactory.class, - () -> new ConfigScreenHandler.ConfigScreenFactory((mc, screen) -> new ModernFixConfigScreen(screen)) - ); + modBus.addListener(this::keyBindRegister); + modBus.addListener(this::onClientSetup); + modContainer.registerExtensionPoint(IConfigScreenFactory.class, (mc, screen) -> new ModernFixConfigScreen(screen)); } private KeyMapping configKey; @@ -54,7 +51,7 @@ public class ModernFixClientForge { private void onClientSetup(FMLClientSetupEvent event) { if(false) { event.enqueueWork(() -> { - ModLoader.get().addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), ModLoadingStage.SIDED_SETUP, "modernfix.connectedness_dynresoruces")); + ModLoader.addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), "modernfix.connectedness_dynresoruces")); }); } } diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixForge.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixForge.java index 12b0d28f..52e208f6 100644 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixForge.java +++ b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/init/ModernFixForge.java @@ -8,29 +8,25 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.EventPriority; +import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.*; import net.neoforged.fml.common.Mod; import net.neoforged.fml.config.ModConfig; import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; -import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext; import net.neoforged.fml.loading.FMLLoader; import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.neoforge.event.OnDatapackSyncEvent; import net.neoforged.neoforge.event.RegisterCommandsEvent; import net.neoforged.neoforge.event.server.ServerStartedEvent; import net.neoforged.neoforge.event.server.ServerStoppedEvent; import net.neoforged.neoforge.registries.RegisterEvent; -import net.neoforged.neoforge.server.ServerLifecycleHooks; import org.apache.commons.lang3.tuple.Pair; import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.core.ModernFixMixinPlugin; -import org.embeddedt.modernfix.entity.EntityDataIDSyncHandler; import org.embeddedt.modernfix.neoforge.ModernFixConfig; import org.embeddedt.modernfix.neoforge.classloading.ClassLoadHack; import org.embeddedt.modernfix.neoforge.classloading.ModFileScanDataDeduplicator; import org.embeddedt.modernfix.neoforge.config.NightConfigFixer; -import org.embeddedt.modernfix.neoforge.packet.PacketHandler; import java.util.List; @@ -39,16 +35,14 @@ public class ModernFixForge { private static ModernFix commonMod; public static boolean launchDone = false; - public ModernFixForge() { + public ModernFixForge(ModContainer modContainer, IEventBus modBus) { commonMod = new ModernFix(); // Register ourselves for server and other game events we are interested in NeoForge.EVENT_BUS.register(this); - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup); - FMLJavaModLoadingContext.get().getModEventBus().addListener(this::registerItems); - DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> NeoForge.EVENT_BUS.register(new ModernFixClientForge())); - ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> IExtensionPoint.DisplayTest.IGNORESERVERONLY, (a, b) -> true)); - ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, ModernFixConfig.COMMON_CONFIG); - PacketHandler.register(); + modBus.addListener(this::commonSetup); + modBus.addListener(this::registerItems); + DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> NeoForge.EVENT_BUS.register(new ModernFixClientForge(modContainer, modBus))); + modContainer.registerConfig(ModConfig.Type.COMMON, ModernFixConfig.COMMON_CONFIG); ModFileScanDataDeduplicator.deduplicate(); ClassLoadHack.loadModClasses(); //ConfigFixer.replaceConfigHandlers(); @@ -66,15 +60,6 @@ public class ModernFixForge { } } - @SubscribeEvent - public void onDatapackSync(OnDatapackSyncEvent event) { - if(event.getPlayer() != null) { - if(!ServerLifecycleHooks.getCurrentServer().isDedicatedServer() && event.getPlayerList().getPlayerCount() == 0) - return; - EntityDataIDSyncHandler.onDatapackSyncEvent(event.getPlayer()); - } - } - private void registerItems(RegisterEvent event) { if(Boolean.getBoolean("modernfix.largeRegistryTest")) { event.register(Registries.ITEM, helper -> { @@ -98,11 +83,11 @@ public class ModernFixForge { boolean isPresent = !FMLLoader.isProduction() || warning.getLeft().stream().anyMatch(name -> ModList.get().isLoaded(name)); if(!isPresent) { atLeastOneWarning = true; - ModLoader.get().addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), ModLoadingStage.COMMON_SETUP, warning.getRight())); + ModLoader.addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), warning.getRight())); } } if(atLeastOneWarning) - ModLoader.get().addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), ModLoadingStage.COMMON_SETUP, "modernfix.perf_mod_warning")); + ModLoader.addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), "modernfix.perf_mod_warning")); }); } } diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/bugfix/chunk_deadlock/ServerChunkCache_CurrentLoadingMixin.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/bugfix/chunk_deadlock/ServerChunkCache_CurrentLoadingMixin.java deleted file mode 100644 index 3fac95fd..00000000 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/bugfix/chunk_deadlock/ServerChunkCache_CurrentLoadingMixin.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.embeddedt.modernfix.neoforge.mixin.bugfix.chunk_deadlock; - -import net.minecraft.server.level.ChunkHolder; -import net.minecraft.server.level.ServerChunkCache; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.chunk.ChunkAccess; -import net.minecraft.world.level.chunk.ChunkStatus; -import net.minecraft.world.level.chunk.LevelChunk; -import net.neoforged.fml.util.ObfuscationReflectionHelper; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.reflect.Field; - -@Mixin(value = ServerChunkCache.class, priority = 1100) -public abstract class ServerChunkCache_CurrentLoadingMixin { - @Shadow @Nullable protected abstract ChunkHolder getVisibleChunkIfPresent(long l); - - private static final MethodHandle CURRENTLY_LOADING; - - static { - try { - Field currentlyLoadingField = ObfuscationReflectionHelper.findField(ChunkHolder.class, "currentlyLoading"); - currentlyLoadingField.setAccessible(true); - CURRENTLY_LOADING = MethodHandles.lookup().unreflectGetter(currentlyLoadingField); - } catch(Exception e) { - throw new RuntimeException("Failed to get currentlyLoading field", e); - } - } - - /** - * Check the currentlyLoading field before going to the future chain, as was done in 1.16. In 1.18 upstream seems - * to have only applied this to getChunkNow(). - */ - @Inject(method = "getChunk", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerChunkCache;getChunkFutureMainThread(IILnet/minecraft/world/level/chunk/ChunkStatus;Z)Ljava/util/concurrent/CompletableFuture;"), cancellable = true, require = 0) - private void checkCurrentlyLoading(int chunkX, int chunkZ, ChunkStatus requiredStatus, boolean load, CallbackInfoReturnable cir) { - long i = ChunkPos.asLong(chunkX, chunkZ); - ChunkHolder holder = this.getVisibleChunkIfPresent(i); - if(holder != null) { - LevelChunk c; - try { - c = (LevelChunk)CURRENTLY_LOADING.invokeExact(holder); - } catch(Throwable e) { - e.printStackTrace(); - c = null; - } - if(c != null) - cir.setReturnValue(c); - } - } -} \ No newline at end of file diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/feature/registry_event_progress/GameDataMixin.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/feature/registry_event_progress/GameDataMixin.java index 4302fdf2..e0f7594b 100644 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/feature/registry_event_progress/GameDataMixin.java +++ b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/mixin/feature/registry_event_progress/GameDataMixin.java @@ -5,8 +5,8 @@ import net.neoforged.bus.api.EventPriority; import net.neoforged.fml.ModList; import net.neoforged.fml.ModLoader; import net.neoforged.fml.ModLoadingContext; -import net.neoforged.fml.StartupMessageManager; import net.neoforged.fml.event.IModBusEvent; +import net.neoforged.fml.loading.progress.StartupNotificationManager; import net.neoforged.neoforge.registries.GameData; import net.neoforged.neoforge.registries.RegisterEvent; import org.embeddedt.modernfix.annotation.ClientOnlyMixin; @@ -35,12 +35,12 @@ public class GameDataMixin { } @Redirect(method = "postRegisterEvents", at = @At(value = "INVOKE", target = "Lnet/neoforged/fml/ModLoader;postEventWrapContainerInModOrder(Lnet/neoforged/bus/api/Event;)V")) - private static void swapThreadAndPost(ModLoader loader, T event) { + private static void swapThreadAndPost(T event) { RegisterEvent registryEvent = (RegisterEvent)event; // We control phases ourselves so we can make a separate progress bar for each phase. String registryName = registryEvent.getRegistryKey().location().toString(); for(EventPriority phase : EventPriority.values()) { - var pb = StartupMessageManager.addProgressBar(registryName, ModList.get().size()); + var pb = StartupNotificationManager.addProgressBar(registryName, ModList.get().size()); try { ModList.get().forEachModInOrder(mc -> { ModLoadingContext.get().setActiveContainer(mc); diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/packet/PacketHandler.java b/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/packet/PacketHandler.java deleted file mode 100644 index 9f6caaf2..00000000 --- a/neoforge/src/main/java/org/embeddedt/modernfix/neoforge/packet/PacketHandler.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.embeddedt.modernfix.neoforge.packet; - -import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext; -import net.neoforged.neoforge.network.event.RegisterPayloadHandlerEvent; -import net.neoforged.neoforge.network.handling.PlayPayloadContext; -import net.neoforged.neoforge.network.registration.IPayloadRegistrar; -import org.embeddedt.modernfix.ModernFix; -import org.embeddedt.modernfix.ModernFixClient; -import org.embeddedt.modernfix.packet.EntityIDSyncPacket; - -public class PacketHandler { - private static void registerPackets(final RegisterPayloadHandlerEvent event) { - final IPayloadRegistrar registrar = event.registrar(ModernFix.MODID).optional(); - registrar.play(EntityIDSyncPacket.ID, EntityIDSyncPacket::new, PacketHandler::handleSyncPacket); - } - - public static void register() { - FMLJavaModLoadingContext.get().getModEventBus().addListener(PacketHandler::registerPackets); - } - - private static void handleSyncPacket(EntityIDSyncPacket packet, PlayPayloadContext context) { - context.workHandler().execute(() -> ModernFixClient.handleEntityIDSync(packet)); - } -} diff --git a/neoforge/src/main/java/org/embeddedt/modernfix/platform/neoforge/ModernFixPlatformHooksImpl.java b/neoforge/src/main/java/org/embeddedt/modernfix/platform/neoforge/ModernFixPlatformHooksImpl.java index 5f5d1931..eb66f11a 100644 --- a/neoforge/src/main/java/org/embeddedt/modernfix/platform/neoforge/ModernFixPlatformHooksImpl.java +++ b/neoforge/src/main/java/org/embeddedt/modernfix/platform/neoforge/ModernFixPlatformHooksImpl.java @@ -83,7 +83,7 @@ public class ModernFixPlatformHooksImpl implements ModernFixPlatformHooks { } public void sendPacket(ServerPlayer player, CustomPacketPayload packet) { - PacketDistributor.PLAYER.with(player).send(packet); + PacketDistributor.sendToPlayer(player, packet); } public void injectPlatformSpecificHacks() { diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml similarity index 98% rename from neoforge/src/main/resources/META-INF/mods.toml rename to neoforge/src/main/resources/META-INF/neoforge.mods.toml index 84fd1d64..84a21e33 100644 --- a/neoforge/src/main/resources/META-INF/mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -47,7 +47,7 @@ modId = "neoforge" #mandatory # Does this dependency have to exist - if not, ordering below must be specified type = "required" #mandatory # The version range of the dependency -versionRange = "[20.4.132-beta,)" #mandatory +versionRange = "[20.5.0-beta,)" #mandatory # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory ordering = "NONE" # Side this dependency is applied on - BOTH, CLIENT or SERVER