aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kubatech
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kubatech')
-rw-r--r--src/main/java/kubatech/loaders/MobRecipeLoader.java27
-rw-r--r--src/main/java/kubatech/nei/Mob_Handler.java5
2 files changed, 25 insertions, 7 deletions
diff --git a/src/main/java/kubatech/loaders/MobRecipeLoader.java b/src/main/java/kubatech/loaders/MobRecipeLoader.java
index c7e64da29d..cacc2d4e42 100644
--- a/src/main/java/kubatech/loaders/MobRecipeLoader.java
+++ b/src/main/java/kubatech/loaders/MobRecipeLoader.java
@@ -64,6 +64,7 @@ import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntitySlime;
import net.minecraft.entity.monster.IMob;
import net.minecraft.init.Items;
@@ -611,10 +612,15 @@ public class MobRecipeLoader {
if (s.version.equals(ModUtils.getModListVersion())) {
for (Map.Entry<String, ArrayList<MobDrop>> entry : s.moblist.entrySet()) {
try {
- EntityLiving e =
- (EntityLiving) ((Class<?>) EntityList.stringToClassMapping.get(entry.getKey()))
- .getConstructor(new Class[] {World.class})
- .newInstance(new Object[] {f});
+ EntityLiving e;
+ if (entry.getKey().equals("witherSkeleton")
+ && !EntityList.stringToClassMapping.containsKey("witherSkeleton")) {
+ e = new EntitySkeleton(f);
+ ((EntitySkeleton) e).setSkeletonType(1);
+ } else
+ e = (EntityLiving) ((Class<?>) EntityList.stringToClassMapping.get(entry.getKey()))
+ .getConstructor(new Class[] {World.class})
+ .newInstance(new Object[] {f});
ArrayList<MobDrop> drops = entry.getValue();
drops.forEach(MobDrop::reconstructStack);
GeneralMobList.put(entry.getKey(), new GeneralMappedMob(e, new MobRecipe(e, drops), drops));
@@ -674,7 +680,12 @@ public class MobRecipeLoader {
dropCollector collector = new dropCollector();
// Stupid MC code, I need to cast myself
- ((Map<String, Class<? extends Entity>>) EntityList.stringToClassMapping).forEach((k, v) -> {
+ Map<String, Class<? extends Entity>> stringToClassMapping =
+ (Map<String, Class<? extends Entity>>) EntityList.stringToClassMapping;
+ boolean registeringWitherSkeleton = !stringToClassMapping.containsKey("witherSkeleton");
+ if (registeringWitherSkeleton) stringToClassMapping.put("witherSkeleton", EntitySkeleton.class);
+
+ stringToClassMapping.forEach((k, v) -> {
if (v == null) return;
if (Modifier.isAbstract(v.getModifiers())) {
@@ -702,7 +713,9 @@ public class MobRecipeLoader {
return;
}
- if (StatCollector.translateToLocal("entity." + k + ".name").equals("entity." + k + ".name")) {
+ if (registeringWitherSkeleton && e instanceof EntitySkeleton && k.equals("witherSkeleton"))
+ ((EntitySkeleton) e).setSkeletonType(1);
+ else if (StatCollector.translateToLocal("entity." + k + ".name").equals("entity." + k + ".name")) {
LOG.info("Entity " + k + " does't have localized name, skipping");
return;
}
@@ -1062,6 +1075,8 @@ public class MobRecipeLoader {
LOG.info("Mapped " + k);
});
+ if (registeringWitherSkeleton) stringToClassMapping.remove("witherSkeleton");
+
time -= System.currentTimeMillis();
time = -time;
diff --git a/src/main/java/kubatech/nei/Mob_Handler.java b/src/main/java/kubatech/nei/Mob_Handler.java
index 6b9aac78d0..3c83006e3d 100644
--- a/src/main/java/kubatech/nei/Mob_Handler.java
+++ b/src/main/java/kubatech/nei/Mob_Handler.java
@@ -54,6 +54,7 @@ import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@@ -530,7 +531,9 @@ public class Mob_Handler extends TemplateRecipeHandler {
this.mInput = new ArrayList<>();
int id = EntityList.getEntityID(mob);
mobname = EntityList.getEntityString(mob);
- localizedName = StatCollector.translateToLocal("entity." + mobname + ".name");
+ localizedName = mobname.equals("Skeleton") && ((EntitySkeleton) mob).getSkeletonType() == 1
+ ? "Wither Skeleton"
+ : StatCollector.translateToLocal("entity." + mobname + ".name");
if (id != 0) {
this.mInput.add(new ItemStack(Items.spawn_egg, 1, id));
this.mInput.add(new ItemStack(Blocks.mob_spawner, 1, id));