Add large registry test option

This commit is contained in:
embeddedt 2023-04-28 22:06:35 -04:00
parent 39e9dfab99
commit 12a7483d4d
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -5,8 +5,10 @@ import net.minecraft.Util;
import net.minecraft.server.level.ChunkHolder;
import net.minecraft.server.level.ChunkMap;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.Item;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.*;
@ -21,6 +23,7 @@ import net.minecraftforge.fml.event.server.FMLServerStoppedEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.loading.FMLLoader;
import net.minecraftforge.fml.network.FMLNetworkConstants;
import net.minecraftforge.registries.ForgeRegistries;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -101,6 +104,7 @@ public class ModernFix {
MinecraftForge.EVENT_BUS.register(this);
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup);
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onLoadComplete);
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(Item.class, this::registerItems);
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> MinecraftForge.EVENT_BUS.register(new ModernFixClient()));
ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.DISPLAYTEST, () -> Pair.of(() -> FMLNetworkConstants.IGNORESERVERONLY, (a, b) -> true));
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, ModernFixConfig.COMMON_CONFIG);
@ -111,6 +115,15 @@ public class ModernFix {
ModFileScanDataDeduplicator.deduplicate();
}
private void registerItems(RegistryEvent<Item> event) {
if(Boolean.getBoolean("modernfix.largeRegistryTest")) {
Item.Properties props = new Item.Properties();
for(int i = 0; i < 1000000; i++) {
ForgeRegistries.ITEMS.register(new Item(props).setRegistryName("modernfix", "item_" + i));
}
}
}
private static boolean dfuModPresent() {
for(String modId : new String[] { "lazydfu", "datafixerslayer" }) {
if(ModList.get().isLoaded(modId))