mirror of
https://github.com/barkeser2002/CatServer.git
synced 2026-09-25 14:26:00 +03:00
78 lines
2.7 KiB
Diff
78 lines
2.7 KiB
Diff
--- ../src-base/minecraft/net/minecraftforge/fml/common/registry/GameData.java
|
|
+++ ../src-work/minecraft/net/minecraftforge/fml/common/registry/GameData.java
|
|
@@ -20,6 +20,9 @@
|
|
package net.minecraftforge.fml.common.registry;
|
|
|
|
import java.lang.reflect.Field;
|
|
+import java.util.ArrayList;
|
|
+import java.util.Collections;
|
|
+import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import com.google.common.base.Throwables;
|
|
@@ -67,6 +70,8 @@
|
|
|
|
private static Field blockField;
|
|
|
|
+ public static boolean initializedBukkit = false; // CatServer
|
|
+
|
|
public GameData()
|
|
{
|
|
iBlockRegistry = PersistentRegistryManager.createRegistry(PersistentRegistryManager.BLOCKS, Block.class, new ResourceLocation("minecraft:air"), MIN_BLOCK_ID, MAX_BLOCK_ID, true, BlockCallbacks.INSTANCE, BlockCallbacks.INSTANCE, BlockCallbacks.INSTANCE, BlockCallbacks.INSTANCE);
|
|
@@ -464,4 +469,55 @@
|
|
// no op for the minute?
|
|
}
|
|
}
|
|
+
|
|
+ // Cauldron start
|
|
+ public static void injectItemBukkitMaterials()
|
|
+ {
|
|
+ FMLControlledNamespacedRegistry<Item> itemRegistry = getItemRegistry();
|
|
+ List<Integer> ids = new ArrayList<Integer>();
|
|
+
|
|
+ for (Item thing : itemRegistry.typeSafeIterable())
|
|
+ {
|
|
+ ids.add(itemRegistry.getId(thing));
|
|
+ }
|
|
+
|
|
+ // sort by id
|
|
+ Collections.sort(ids);
|
|
+
|
|
+ for (int id : ids)
|
|
+ {
|
|
+ Item item = itemRegistry.getRaw(id);
|
|
+ // inject item materials into Bukkit for FML
|
|
+ org.bukkit.Material material = org.bukkit.Material.addMaterial(id, itemRegistry.getNameForObject(item).toString());
|
|
+ if (material != null)
|
|
+ {
|
|
+ FMLLog.log(Level.DEBUG, "Injected new Forge item material %s with ID %d.", material.name(), material.getId());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ public static void injectBlockBukkitMaterials()
|
|
+ {
|
|
+ FMLControlledNamespacedRegistry<Block> blockRegistry = getBlockRegistry();
|
|
+ List<Integer> ids = new ArrayList<Integer>();
|
|
+
|
|
+ for (Block block : blockRegistry.typeSafeIterable())
|
|
+ {
|
|
+ ids.add(blockRegistry.getId(block));
|
|
+ }
|
|
+
|
|
+ // sort by id
|
|
+ Collections.sort(ids);
|
|
+
|
|
+ for (int id : ids)
|
|
+ {
|
|
+ Block block = blockRegistry.getRaw(id);
|
|
+ // inject block materials into Bukkit for FML
|
|
+ org.bukkit.Material material = org.bukkit.Material.addMaterial(id, blockRegistry.getNameForObject(block).toString());
|
|
+ if (material != null)
|
|
+ {
|
|
+ FMLLog.log(Level.DEBUG, "Injected new Forge block material %s with ID %d.", material.name(), material.getId());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ // Cauldron end
|
|
}
|