11
11
import org .bukkit .Location ;
12
12
import org .bukkit .OfflinePlayer ;
13
13
import org .bukkit .World ;
14
+ import org .bukkit .World .Environment ;
14
15
import org .bukkit .block .Block ;
15
16
import org .bukkit .configuration .file .FileConfiguration ;
16
17
import org .bukkit .craftbukkit .entity .CraftEntity ;
17
18
import org .bukkit .entity .AnimalTamer ;
18
19
import org .bukkit .entity .Entity ;
19
20
import org .bukkit .entity .Ocelot ;
21
+ import org .bukkit .entity .Skeleton ;
22
+ import org .bukkit .entity .Skeleton .SkeletonType ;
20
23
import org .bukkit .entity .Villager ;
21
24
import org .bukkit .entity .Villager .Profession ;
22
25
import org .bukkit .entity .Wolf ;
26
+ import org .bukkit .entity .Zombie ;
23
27
import org .bukkit .event .EventHandler ;
24
28
import org .bukkit .event .EventPriority ;
25
29
import org .bukkit .event .Listener ;
@@ -121,11 +125,14 @@ private static class MobMapping {
121
125
new MobMapping ("snake" , "org.bukkit.entity.Animals" , "Snake" , "net.minecraft.server.MoCEntitySnake" ),
122
126
new MobMapping ("ostrich" , "org.bukkit.entity.Animals" , "Ostrich" , "net.minecraft.server.MoCEntityOstrich" ),
123
127
// Standard
128
+ new MobMapping ("bat" , "org.bukkit.entity.Bat" , "Bat" ),
129
+ new MobMapping ("witch" , "org.bukkit.entity.Witch" , "Witch" ),
130
+ new MobMapping ("wither" , "org.bukkit.entity.Wither" , "Wither" ),
124
131
new MobMapping ("blaze" , "org.bukkit.entity.Blaze" , "Blaze" ),
125
- new MobMapping ("enderdragon" , "org.bukkit.entity.EnderDragon" , "Enderdragon " ),
132
+ new MobMapping ("enderdragon" , "org.bukkit.entity.EnderDragon" , "Ender Dragon " ),
126
133
new MobMapping ("ghast" , "org.bukkit.entity.EnderDragon" , "Ghast" ),
127
- new MobMapping ("cow" , "org.bukkit.entity.Cow" , "Cow" ),
128
134
new MobMapping ("mooshroom" , "org.bukkit.entity.MushroomCow" , "Mooshroom" ),
135
+ new MobMapping ("cow" , "org.bukkit.entity.Cow" , "Cow" ),
129
136
new MobMapping ("silverfish" , "org.bukkit.entity.Silverfish" , "Silverfish" ),
130
137
new MobMapping ("slime" , "org.bukkit.entity.Slime" , "Slime" ),
131
138
new MobMapping ("snowgolem" , "org.bukkit.entity.Snowman" , "Snow Golem" ),
@@ -139,8 +146,10 @@ private static class MobMapping {
139
146
new MobMapping ("zombiepigman" , "org.bukkit.entity.PigZombie" , "Zombie Pigman" ),
140
147
new MobMapping ("creeper" , "org.bukkit.entity.Creeper" , "Creeper" ),
141
148
new MobMapping ("skeleton" , "org.bukkit.entity.Skeleton" , "Skeleton" ),
149
+ new MobMapping ("witherskeleton" , "org.bukkit.entity.Skeleton" , "Wither Skeleton" ), /* Must be just after "skeleton" */
142
150
new MobMapping ("enderman" , "org.bukkit.entity.Enderman" , "Enderman" ),
143
151
new MobMapping ("zombie" , "org.bukkit.entity.Zombie" , "Zombie" ),
152
+ new MobMapping ("zombievilager" , "org.bukkit.entity.Zombie" , "Zombie Villager" ), /* Must be just after "zomnie" */
144
153
new MobMapping ("giant" , "org.bukkit.entity.Giant" , "Giant" ),
145
154
new MobMapping ("chicken" , "org.bukkit.entity.Chicken" , "Chicken" ),
146
155
new MobMapping ("pig" , "org.bukkit.entity.Pig" , "Pig" ),
@@ -189,11 +198,10 @@ else if ((mobs[i].entclass != null) && (mobs[i].entclass.isInstance(ce.getHandle
189
198
if (i >= mobs .length ) {
190
199
continue ;
191
200
}
192
- String label = mobs [ i ]. label ;
201
+ String label = null ;
193
202
if (mobs [i ].mobid .equals ("spider" )) { /* Check for jockey */
194
203
if (le .getPassenger () != null ) { /* Has passenger? */
195
204
i ++; /* Make jockey */
196
- label = mobs [i ].label ;
197
205
}
198
206
}
199
207
else if (mobs [i ].mobid .equals ("wolf" )) { /* Check for tamed wolf */
@@ -216,6 +224,18 @@ else if(mobs[i].mobid.equals("ocelot")) { /* Check for tamed ocelot */
216
224
}
217
225
}
218
226
}
227
+ else if (mobs [i ].mobid .equals ("zombie" )) {
228
+ Zombie zom = (Zombie )le ;
229
+ if (zom .isVillager ()) {
230
+ i ++; /* Make in to zombie villager */
231
+ }
232
+ }
233
+ else if (mobs [i ].mobid .equals ("skeleton" )) {
234
+ Skeleton sk = (Skeleton )le ;
235
+ if (sk .getSkeletonType () == SkeletonType .WITHER ) {
236
+ i ++; /* Make in to wither skeleton */
237
+ }
238
+ }
219
239
else if (mobs [i ].mobid .equals ("villager" )) {
220
240
Villager v = (Villager )le ;
221
241
Profession p = v .getProfession ();
@@ -239,6 +259,12 @@ else if(mobs[i].mobid.equals("villager")) {
239
259
}
240
260
}
241
261
}
262
+ if (i >= mobs .length ) {
263
+ continue ;
264
+ }
265
+ if (label == null ) {
266
+ label = mobs [i ].label ;
267
+ }
242
268
Location loc = le .getLocation ();
243
269
Block blk = null ;
244
270
if (hideifshadow < 15 ) {
0 commit comments