use of net.minecraft.server.v1_11_R1.RegistryMaterials in project MyPet by xXKeyleXx.
the class EntityRegistry method registerEntityTypes.
@Override
@SuppressWarnings("unchecked")
public void registerEntityTypes() {
RegistryMaterials registry = getRegistry();
Object[] backup = backupRegistryID(registry);
for (MyPetType type : entityClasses.keySet()) {
try {
registry.a(type.getTypeID(), null, entityClasses.get(type));
} catch (NullPointerException ignored) {
// NPE means that the entity was registered successfully but the key was not
}
}
restoreRegistryID(registry, backup);
}
use of net.minecraft.server.v1_11_R1.RegistryMaterials in project MyPet by xXKeyleXx.
the class EntityRegistry method unregisterEntityTypes.
@Override
@SuppressWarnings("unchecked")
public void unregisterEntityTypes() {
RegistryMaterials registry = getRegistry();
RegistryID registryID = (RegistryID) ReflectionUtil.getFieldValue(RegistryMaterials_a, registry);
Object[] entityClasses = (Object[]) ReflectionUtil.getFieldValue(RegistryID_b, registryID);
int[] entityIDs = (int[]) ReflectionUtil.getFieldValue(RegistryID_c, registryID);
if (entityClasses != null && entityIDs != null) {
for (int i = 0; i < entityClasses.length; i++) {
if (entityClasses[i] != null) {
if (EntityMyPet.class.isAssignableFrom((Class<?>) entityClasses[i])) {
entityClasses[i] = null;
entityIDs[i] = 0;
}
}
}
}
}
use of net.minecraft.server.v1_11_R1.RegistryMaterials in project MyPet by xXKeyleXx.
the class EntityRegistry method backupRegistryID.
protected Object[] backupRegistryID(RegistryMaterials registry) {
RegistryID a = (RegistryID) ReflectionUtil.getFieldValue(RegistryMaterials_a, registry);
Object[] d = (Object[]) ReflectionUtil.getFieldValue(RegistryID_d, a);
return Arrays.copyOf(d, d.length);
}
use of net.minecraft.server.v1_11_R1.RegistryMaterials in project MyPet by xXKeyleXx.
the class EntityRegistry method restoreRegistryID.
protected void restoreRegistryID(RegistryMaterials registry, Object[] backup) {
RegistryID a = (RegistryID) ReflectionUtil.getFieldValue(RegistryMaterials_a, registry);
Object[] d = (Object[]) ReflectionUtil.getFieldValue(RegistryID_d, a);
if (d != null) {
for (int i = 0; i < backup.length; i++) {
if (backup[i] != null) {
d[i] = backup[i];
}
}
}
}
use of net.minecraft.server.v1_11_R1.RegistryMaterials in project MyPet by xXKeyleXx.
the class EntityRegistry method unregisterEntityTypes.
@Override
@SuppressWarnings("unchecked")
public void unregisterEntityTypes() {
RegistryMaterials registry = getRegistry();
RegistryID registryID = (RegistryID) ReflectionUtil.getFieldValue(RegistryMaterials_a, registry);
Object[] entityClasses = (Object[]) ReflectionUtil.getFieldValue(RegistryID_b, registryID);
int[] entityIDs = (int[]) ReflectionUtil.getFieldValue(RegistryID_c, registryID);
if (entityClasses != null && entityIDs != null) {
for (int i = 0; i < entityClasses.length; i++) {
if (entityClasses[i] != null) {
if (EntityMyPet.class.isAssignableFrom((Class<?>) entityClasses[i])) {
entityClasses[i] = null;
entityIDs[i] = 0;
}
}
}
}
}
Aggregations