package advancedsystemsmanager.compatibility.jabba;
import advancedsystemsmanager.AdvancedSystemsManager;
import advancedsystemsmanager.compatibility.CompatBase;
import advancedsystemsmanager.tileentities.manager.TileEntityManager;
import net.minecraft.tileentity.TileEntity;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
public class JabbaCompat extends CompatBase
{
private static ArrayList<Class> extensions;
private static ArrayList<String> extensionsNames;
private static HashMap<String, Class> map;
@Override
@SuppressWarnings(value = "unchecked")
protected void init()
{
try
{
Class dolly = Class.forName("mcp.mobius.betterbarrels.common.items.dolly.ItemBarrelMover");
Field classExtensions = dolly.getDeclaredField("classExtensions");
Field classExtensionsNames = dolly.getDeclaredField("classExtensionsNames");
Field classMap = dolly.getDeclaredField("classMap");
classExtensions.setAccessible(true);
classExtensionsNames.setAccessible(true);
classMap.setAccessible(true);
extensions = (ArrayList<Class>)classExtensions.get(null);
extensionsNames = (ArrayList<String>)classExtensionsNames.get(null);
map = (HashMap<String, Class>)classMap.get(null);
} catch (Exception e)
{
AdvancedSystemsManager.log.error(e, "Dolly Interaction failed: Please report to author ASAP.");
}
registerWithDolly(TileEntityManager.class);
}
public void registerWithDolly(Class<? extends TileEntity> tileEntity)
{
if (extensions != null)
{
extensions.add(tileEntity);
extensionsNames.add(tileEntity.getSimpleName());
map.put(tileEntity.getSimpleName(), tileEntity);
}
}
}