Search in sources :

Example 1 with RegistryMaterials

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);
}
Also used : RegistryMaterials(net.minecraft.server.v1_11_R1.RegistryMaterials) MyPetType(de.Keyle.MyPet.api.entity.MyPetType)

Example 2 with RegistryMaterials

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;
                }
            }
        }
    }
}
Also used : RegistryMaterials(net.minecraft.server.v1_11_R1.RegistryMaterials) RegistryID(net.minecraft.server.v1_11_R1.RegistryID)

Example 3 with RegistryMaterials

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);
}
Also used : RegistryID(net.minecraft.server.v1_11_R1.RegistryID)

Example 4 with RegistryMaterials

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];
            }
        }
    }
}
Also used : RegistryID(net.minecraft.server.v1_11_R1.RegistryID)

Example 5 with RegistryMaterials

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;
                }
            }
        }
    }
}
Also used : RegistryMaterials(net.minecraft.server.v1_12_R1.RegistryMaterials) RegistryID(net.minecraft.server.v1_12_R1.RegistryID)

Aggregations

RegistryID (net.minecraft.server.v1_11_R1.RegistryID)3 MyPetType (de.Keyle.MyPet.api.entity.MyPetType)2 RegistryMaterials (net.minecraft.server.v1_11_R1.RegistryMaterials)2 RegistryMaterials (net.minecraft.server.v1_12_R1.RegistryMaterials)2 RegistryID (net.minecraft.server.v1_12_R1.RegistryID)1