@SubscribeEvent public void registerBlocks(RegistryEvent.Register<Block> event) { ModFixs modFixs = FMLCommonHandler.instance().getDataFixer().init(XNet.MODID, 2); McJtyRegister.registerBlocks(XNet.instance, event.getRegistry(), modFixs, 1); // We used to accidentally register TEs with names like "minecraft:xnet_facade" instead of "xnet:facade". // Set up a DataFixer to map these incorrect names to the correct ones, so that we don't break old saved games. // @todo Remove all this if we ever break saved-game compatibility. Map<String, String> oldToNewIdMap = new HashMap<>(); oldToNewIdMap.put(XNet.MODID + "_facade", XNet.MODID + ":facade"); oldToNewIdMap.put("minecraft:" + XNet.MODID + "_facade", XNet.MODID + ":facade"); oldToNewIdMap.put(XNet.MODID + "_connector", XNet.MODID + ":connector"); oldToNewIdMap.put("minecraft:" + XNet.MODID + "_connector", XNet.MODID + ":connector"); oldToNewIdMap.put(XNet.MODID + "_advanced_connector", XNet.MODID + ":advanced_connector"); oldToNewIdMap.put("minecraft:" + XNet.MODID + "_advanced_connector", XNet.MODID + ":advanced_connector"); modFixs.registerFix(FixTypes.BLOCK_ENTITY, new TileEntityNamespace(oldToNewIdMap, 2)); }
public static ItemStack loadAndFixItemStackFromNBT(NBTTagCompound nbt) { NBTTagCompound fixed = FMLCommonHandler.instance().getDataFixer().process(FixTypes.ITEM_INSTANCE, nbt); return new ItemStack(fixed); } }
public static void registerFixable() { TileEntityDataFixable tileFixable = new TileEntityDataFixable(); CompoundDataFixer fixer = FMLCommonHandler.instance().getDataFixer(); ModFixs modFixs = fixer.init(Constants.MOD_ID, tileFixable.getFixVersion()); //is there a current save format version? modFixs.registerFix(FixTypes.BLOCK_ENTITY, tileFixable); }
public static void register() { if (ENABLED) { ModFixs fixs = FMLCommonHandler.instance().getDataFixer().init(EnderIOMachines.MODID, 1); fixs.registerFix(FixTypes.CHUNK, new TankBlockStateFixer()); fixs.registerFix(FixTypes.ITEM_INSTANCE, new TankItemDamageFixer()); } }
public void registerBlocks(Class<? extends BlockInstances> klazz, IForgeRegistry<Block> blocks, IForgeRegistry<Item> items) { final CachedInstanceFactory<IFixerFactory> fixerFactories = CachedInstanceFactory.create(); final DataFixer fixerRegistry = FMLCommonHandler.instance().getDataFixer(); processAnnotations(klazz, Block.class, RegisterBlock.class, blockFactory, new IAnnotationAccess<RegisterBlock, Block>() {
public void init() { ModFixs mf = FMLCommonHandler.instance().getDataFixer().init(LPConstants.LP_MOD_ID, VERSION); mf.registerFix(DataFixerTE.TYPE, new DataFixerTE()); mf.registerFix(DataFixerSolidBlockItems.TYPE, new DataFixerSolidBlockItems()); MinecraftForge.EVENT_BUS.register(new MissingMappingHandler()); }
/** * Event handler for forge pre init event. * * @param event the forge pre init event. */ @Mod.EventHandler public void preInit(@NotNull final FMLPreInitializationEvent event) { FMLCommonHandler.instance().getDataFixer().init(Constants.MOD_ID, TileEntityIdFixer.VERSION).registerFix(FixTypes.BLOCK_ENTITY, new TileEntityIdFixer()); Structure.originFolders.add(Constants.MOD_ID); CapabilityManager.INSTANCE.register(IColonyTagCapability.class, new IColonyTagCapability.Storage(), IColonyTagCapability.Impl::new); CapabilityManager.INSTANCE.register(IChunkmanagerCapability.class, new IChunkmanagerCapability.Storage(), IChunkmanagerCapability.Impl::new); CapabilityManager.INSTANCE.register(IColonyManagerCapability.class, new IColonyManagerCapability.Storage(), IColonyManagerCapability.Impl::new); StandardFactoryControllerInitializer.onPreInit(); proxy.registerEntities(); proxy.registerEntityRendering(); proxy.registerEvents(); @NotNull final Configuration configuration = new Configuration(event.getSuggestedConfigurationFile()); configuration.load(); if (configuration.hasChanged()) { configuration.save(); } }
@EventHandler public void load(FMLInitializationEvent event) { proxy.registerLayerRenderers(); CompoundDataFixer fixer = FMLCommonHandler.instance().getDataFixer(); ModFixs modFixer = fixer.init(MODID, DATA_VERSION); // Fixers modFixer.registerFix(FixTypes.BLOCK_ENTITY, new TENameFix()); // Walkers // These two do not have extra layer of indirection so can use the vanilla walker fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(AlchChestTile.class, "Items")); fixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemStackDataLists(DMPedestalTile.class, "Items")); fixer.registerWalker(FixTypes.BLOCK_ENTITY, new CapInventoryWalker( ImmutableSet.of(CollectorMK1Tile.class, CollectorMK2Tile.class, CollectorMK3Tile.class), "Input", "AuxSlots")); fixer.registerWalker(FixTypes.BLOCK_ENTITY, new CapInventoryWalker(CondenserTile.class, "Input", "LockSlot")); fixer.registerWalker(FixTypes.BLOCK_ENTITY, new CapInventoryWalker(CondenserMK2Tile.class, "Input", "LockSlot", "Output")); fixer.registerWalker(FixTypes.BLOCK_ENTITY, new CapInventoryWalker( ImmutableSet.of(DMFurnaceTile.class, RMFurnaceTile.class), "Input", "Output", "Fuel")); fixer.registerWalker(FixTypes.BLOCK_ENTITY, new CapInventoryWalker( ImmutableSet.of(RelayMK1Tile.class, RelayMK2Tile.class, RelayMK3Tile.class), "Input", "Output")); }
@EventHandler public void load(FMLInitializationEvent event) { GaiaItems.RegistrationHandler.registerOres(); MinecraftForge.EVENT_BUS.register(this); // if (GaiaConfig.DEBUG.biomeTweaks) { // GaiaSpawning.biomeTweaks(); // } proxy.registerTileRenders(); proxy.registerLayerRenders(); ModFixs fixes = FMLCommonHandler.instance().getDataFixer().init(MOD_ID, DATA_FIXER_VERSION); fixes.registerFix(FixTypes.BLOCK_ENTITY, new BustTileIdFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new ItemIdFixer()); fixes.registerFix(FixTypes.ENTITY, new EntityIdFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new BlockIdFixer()); }
@Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { checkDevEnv(); HunterPlayer.registerCapability(); VampirePlayer.registerCapability(); FactionPlayerHandler.registerCapability(); ExtendedCreature.registerCapability(); VampirismVillage.registerCapability(); setupAPI2(); Configs.init(new File(event.getModConfigurationDirectory(), REFERENCE.MODID), inDev); Balance.init(new File(event.getModConfigurationDirectory(), REFERENCE.MODID), inDev); BloodValueLoader.init(new File(event.getModConfigurationDirectory(), REFERENCE.MODID)); BloodGrinderValueLoader.init(new File(event.getModConfigurationDirectory(), REFERENCE.MODID)); modCompatLoader.onInitStep(IInitListener.Step.PRE_INIT, event); setupAPI3(); // Data Fixer ModFixs fixer = FMLCommonHandler.instance().getDataFixer().init(REFERENCE.MODID, 5);// Fixes that should have the id of the ModFix version when added. // If adding new fixes to this, bump ModFix version and use the same one for the fixer fixer.registerFix(FixTypes.ENTITY, ModEntities.getEntityIDFixer()); fixer.registerFix(FixTypes.BLOCK_ENTITY, ModBlocks.getTileEntityIDFixer()); fixer.registerFix(FixTypes.BLOCK_ENTITY, TileTent.getTentFixer()); fixer.registerFix(FixTypes.ENTITY, ModEntities.getEntityCapabilityFixer()); fixer.registerFix(FixTypes.PLAYER, ModEntities.getPlayerCapabilityFixer()); dispatcher.registerPackets(); NetworkRegistry.INSTANCE.registerGuiHandler(instance, new ModGuiHandler()); registryManager.onInitStep(IInitListener.Step.PRE_INIT, event); proxy.onInitStep(IInitListener.Step.PRE_INIT, event); ScoreboardUtil.init(); }
public static void registerDataFixes() { CompoundDataFixer dataFixer = FMLCommonHandler.instance().getDataFixer(); AWNPCEntities.getNpcMap().values().forEach(npc -> NpcBase.registerFixesNpc(dataFixer, npc.getEntityClass())); ModFixs fixes = dataFixer.init(MOD_ID, DATA_FIXER_VERSION); fixes.registerFix(FixTypes.ENTITY, new VehicleOwnerFixer()); fixes.registerFix(FixTypes.BLOCK_ENTITY, new TileOwnerFixer()); fixes.registerFix(FixTypes.BLOCK_ENTITY, new TileIdFixer()); fixes.registerFix(FixTypes.ENTITY, new FactionEntityFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new FactionSpawnerItemFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new ResearchNoteFixer()); fixes.registerFix(FixTypes.ENTITY, new FactionExpansionEntityFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new FactionExpansionItemFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new RoutingOrderFilterCountsFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new RoutingOrderFilterCountsFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new FoodBundleDataFixer()); dataFixer.registerWalker(FixTypes.BLOCK_ENTITY, new ItemMapDataWalker( new Class<?>[] {TileWarehouseStorage.class, TileWarehouseStorageMedium.class, TileWarehouseStorageLarge.class}, "inventory/itemMap/entryList")); } }
@Override public void setBlock(int x, int y, int z, LocalMaterialData material, NamedBinaryTag tag) { setBlock(x, y, z, material); if (tag == null) return; // Convert Tag to a native nms tag NBTTagCompound nmsTag = NBTHelper.getNMSFromNBTTagCompound(tag); // Add the id and position to it nmsTag.setString("id", material.withDefaultBlockData().getName()); nmsTag.setInteger("x", x); nmsTag.setInteger("y", y); nmsTag.setInteger("z", z); // Update to current Minecraft format (maybe we want to do this at // server startup instead, and then save the result?) nmsTag = FMLCommonHandler.instance().getDataFixer().process(FixTypes.BLOCK_ENTITY, nmsTag); // Add that data to the current tile entity in the world TileEntity tileEntity = this.world.getTileEntity(new BlockPos(x, y, z)); if (tileEntity != null) { tileEntity.readFromNBT(nmsTag); } else { TerrainControl.log(LogMarker.DEBUG, "Skipping tile entity with id {}, cannot be placed at {},{},{} on id {}", nmsTag.getString("id"), x, y, z, getMaterial(x, y, z)); } }
@Mod.EventHandler public void init(FMLInitializationEvent event) { IRegistryContainer registries = AEApi.instance().registries(); registries.wireless().registerWirelessHandler(new AEWirelessTermHandler()); ExtraCellsEventHandler handler = new ExtraCellsEventHandler(); MinecraftForge.EVENT_BUS.register(handler); proxy.registerMovables(); proxy.registerRenderers(); proxy.registerTileEntities(); proxy.registerFluidBurnTimes(); proxy.addRecipes(configFolder); proxy.registerPackets(); //RenderingRegistry.registerBlockHandler(new RenderHandler(RenderingRegistry.getNextAvailableRenderId)) integration.init(); ModFixs fixes = FMLCommonHandler.instance().getDataFixer().init(Constants.MOD_ID, 4); fixes.registerFix(FixTypes.ITEM_INSTANCE, new BasicCellDataFixer()); fixes.registerFix(FixTypes.ITEM_INSTANCE, new PortableCellDataFixer()); }
@EventHandler public void preInit(FMLPreInitializationEvent evt) { new TypeVariableHolderHandler().fillAllHolders(evt.getAsmData()); SyncChannelHolder.ensureLoaded(); final File configFile = evt.getSuggestedConfigurationFile(); Configuration config = new Configuration(configFile); ConfigProcessing.processAnnotations(MODID, config, LibConfig.class); MinecraftForge.EVENT_BUS.register(new ConfigChangeListener(MODID, config)); if (config.hasChanged()) config.save(); MinecraftForge.EVENT_BUS.register(DelayedEntityLoadManager.instance); MinecraftForge.EVENT_BUS.register(FakePlayerPool.instance); MinecraftForge.EVENT_BUS.register(DropCapture.instance); MinecraftForge.EVENT_BUS.register(DelayedActionTickHandler.INSTANCE); MinecraftForge.EVENT_BUS.register(ConfigStorage.instance); collector = new ClassSourceCollector(evt.getAsmData()); ItemTextureCapability.register(); final CompoundDataFixer dataFixer = FMLCommonHandler.instance().getDataFixer(); EntityRegistry.registerModEntity(OpenMods.location("block"), EntityBlock.class, "Block", ENTITY_BLOCK_ID, instance, 64, 1, true); EntityBlock.registerFixes(dataFixer, EntityBlock.class); proxy.preInit(); }