|
13 | 13 | import java.util.Random; |
14 | 14 | import java.util.Set; |
15 | 15 |
|
16 | | -import net.minecraft.server.v1_13_R2.*; |
17 | 16 | import org.bukkit.Bukkit; |
18 | 17 | import org.bukkit.DyeColor; |
19 | 18 | import org.bukkit.Location; |
|
183 | 182 | import net.citizensnpcs.util.PlayerAnimation; |
184 | 183 | import net.citizensnpcs.util.PlayerUpdateTask; |
185 | 184 | import net.citizensnpcs.util.Util; |
| 185 | +import net.minecraft.server.v1_13_R2.AttributeInstance; |
| 186 | +import net.minecraft.server.v1_13_R2.AxisAlignedBB; |
| 187 | +import net.minecraft.server.v1_13_R2.Block; |
| 188 | +import net.minecraft.server.v1_13_R2.BlockPosition; |
| 189 | +import net.minecraft.server.v1_13_R2.BossBattleServer; |
| 190 | +import net.minecraft.server.v1_13_R2.ControllerJump; |
| 191 | +import net.minecraft.server.v1_13_R2.CrashReport; |
| 192 | +import net.minecraft.server.v1_13_R2.CrashReportSystemDetails; |
| 193 | +import net.minecraft.server.v1_13_R2.DamageSource; |
| 194 | +import net.minecraft.server.v1_13_R2.DataWatcherObject; |
| 195 | +import net.minecraft.server.v1_13_R2.EnchantmentManager; |
| 196 | +import net.minecraft.server.v1_13_R2.Enchantments; |
| 197 | +import net.minecraft.server.v1_13_R2.EnderDragonBattle; |
| 198 | +import net.minecraft.server.v1_13_R2.Entity; |
| 199 | +import net.minecraft.server.v1_13_R2.EntityBird; |
| 200 | +import net.minecraft.server.v1_13_R2.EntityEnderDragon; |
| 201 | +import net.minecraft.server.v1_13_R2.EntityFish; |
| 202 | +import net.minecraft.server.v1_13_R2.EntityFishingHook; |
| 203 | +import net.minecraft.server.v1_13_R2.EntityHorse; |
| 204 | +import net.minecraft.server.v1_13_R2.EntityHorseAbstract; |
| 205 | +import net.minecraft.server.v1_13_R2.EntityHuman; |
| 206 | +import net.minecraft.server.v1_13_R2.EntityInsentient; |
| 207 | +import net.minecraft.server.v1_13_R2.EntityLiving; |
| 208 | +import net.minecraft.server.v1_13_R2.EntityMinecartAbstract; |
| 209 | +import net.minecraft.server.v1_13_R2.EntityPlayer; |
| 210 | +import net.minecraft.server.v1_13_R2.EntityPolarBear; |
| 211 | +import net.minecraft.server.v1_13_R2.EntityRabbit; |
| 212 | +import net.minecraft.server.v1_13_R2.EntityShulker; |
| 213 | +import net.minecraft.server.v1_13_R2.EntityTameableAnimal; |
| 214 | +import net.minecraft.server.v1_13_R2.EntityTracker; |
| 215 | +import net.minecraft.server.v1_13_R2.EntityTrackerEntry; |
| 216 | +import net.minecraft.server.v1_13_R2.EntityTypes; |
| 217 | +import net.minecraft.server.v1_13_R2.EntityWither; |
| 218 | +import net.minecraft.server.v1_13_R2.EnumMoveType; |
| 219 | +import net.minecraft.server.v1_13_R2.GenericAttributes; |
| 220 | +import net.minecraft.server.v1_13_R2.IRegistry; |
| 221 | +import net.minecraft.server.v1_13_R2.MathHelper; |
| 222 | +import net.minecraft.server.v1_13_R2.MinecraftKey; |
| 223 | +import net.minecraft.server.v1_13_R2.MobEffects; |
| 224 | +import net.minecraft.server.v1_13_R2.NavigationAbstract; |
| 225 | +import net.minecraft.server.v1_13_R2.NetworkManager; |
| 226 | +import net.minecraft.server.v1_13_R2.Packet; |
| 227 | +import net.minecraft.server.v1_13_R2.PacketPlayOutEntityTeleport; |
| 228 | +import net.minecraft.server.v1_13_R2.PacketPlayOutPlayerInfo; |
| 229 | +import net.minecraft.server.v1_13_R2.PathEntity; |
| 230 | +import net.minecraft.server.v1_13_R2.PathPoint; |
| 231 | +import net.minecraft.server.v1_13_R2.PathfinderGoalSelector; |
| 232 | +import net.minecraft.server.v1_13_R2.RegistryMaterials; |
| 233 | +import net.minecraft.server.v1_13_R2.ReportedException; |
| 234 | +import net.minecraft.server.v1_13_R2.SoundEffect; |
| 235 | +import net.minecraft.server.v1_13_R2.SoundEffects; |
| 236 | +import net.minecraft.server.v1_13_R2.Vec3D; |
| 237 | +import net.minecraft.server.v1_13_R2.WorldServer; |
186 | 238 |
|
187 | 239 | @SuppressWarnings("unchecked") |
188 | 240 | public class NMSImpl implements NMSBridge { |
@@ -748,6 +800,11 @@ public void registerEntityClass(Class<?> clazz) { |
748 | 800 | throw new IllegalArgumentException("unable to find valid entity superclass for class " + clazz.toString()); |
749 | 801 | } |
750 | 802 |
|
| 803 | + @Override |
| 804 | + public void remove(org.bukkit.entity.Entity entity) { |
| 805 | + NMSImpl.getHandle(entity).die(); |
| 806 | + } |
| 807 | + |
751 | 808 | @Override |
752 | 809 | public void removeFromServerPlayerList(Player player) { |
753 | 810 | EntityPlayer handle = (EntityPlayer) NMSImpl.getHandle(player); |
@@ -1280,7 +1337,8 @@ public static void flyingMoveLogic(EntityLiving entity, float f, float f1, float |
1280 | 1337 | entity.a(f, f1, f2, f3); |
1281 | 1338 | f9 = 0.91F; |
1282 | 1339 | if (entity.onGround) { |
1283 | | - f9 = entity.world.getType(getBlockPositionBE(blockposition_b, entity.locX, bb.minY - 1.0D, entity.locZ)) |
| 1340 | + f9 = entity.world |
| 1341 | + .getType(getBlockPositionBE(blockposition_b, entity.locX, bb.minY - 1.0D, entity.locZ)) |
1284 | 1342 | .getBlock().n() * 0.91F; |
1285 | 1343 | } |
1286 | 1344 | if (entity.z_()) { |
@@ -1352,35 +1410,29 @@ public static void flyingMoveLogic(EntityLiving entity, float f, float f1, float |
1352 | 1410 | private static BlockPosition.b getBlockPositionBE(BlockPosition.b blockPos, double x, double y, double z) { |
1353 | 1411 | try { |
1354 | 1412 | return blockPos.c(x, y, z); |
1355 | | - } |
1356 | | - catch (NoSuchMethodError ex) { |
| 1413 | + } catch (NoSuchMethodError ex) { |
1357 | 1414 | try { |
1358 | 1415 | return (BlockPosition.b) BLOCK_POSITION_B_D.invoke(blockPos, x, y, z); |
1359 | | - } |
1360 | | - catch (Throwable ex2) { |
| 1416 | + } catch (Throwable ex2) { |
1361 | 1417 | ex2.printStackTrace(); |
1362 | 1418 | return null; |
1363 | 1419 | } |
1364 | 1420 | } |
1365 | 1421 | } |
1366 | 1422 |
|
1367 | | - private static final Method BLOCK_POSITION_B_D = NMS.getMethod(BlockPosition.b.class, "e", false, double.class, double.class, double.class); |
1368 | | - |
1369 | 1423 | public static BossBar getBossBar(org.bukkit.entity.Entity entity) { |
1370 | 1424 | BossBattleServer bserver = null; |
1371 | 1425 | try { |
1372 | 1426 | if (entity.getType() == EntityType.WITHER) { |
1373 | 1427 | try { |
1374 | 1428 | bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle; |
1375 | | - } |
1376 | | - catch (NoSuchFieldError ex) { |
| 1429 | + } catch (NoSuchFieldError ex) { |
1377 | 1430 | bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity)); |
1378 | 1431 | } |
1379 | 1432 | } else if (entity.getType() == EntityType.ENDER_DRAGON) { |
1380 | 1433 | try { |
1381 | 1434 | bserver = ((EnderDragonBattle) ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))).bossBattle; |
1382 | | - } |
1383 | | - catch (NoSuchFieldError ex) { |
| 1435 | + } catch (NoSuchFieldError ex) { |
1384 | 1436 | bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD |
1385 | 1437 | .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))); |
1386 | 1438 | } |
@@ -1443,18 +1495,15 @@ public static void initNetworkManager(NetworkManager network) { |
1443 | 1495 | }; |
1444 | 1496 | try { |
1445 | 1497 | network.socketAddress = socketAddress; |
1446 | | - } |
1447 | | - catch (NoSuchFieldError ex) { |
| 1498 | + } catch (NoSuchFieldError ex) { |
1448 | 1499 | if (NETWORK_ADDRESS == null) { |
1449 | 1500 | return; |
1450 | 1501 | } |
1451 | 1502 | try { |
1452 | 1503 | NETWORK_ADDRESS.set(network, socketAddress); |
1453 | | - } |
1454 | | - catch (IllegalArgumentException e) { |
| 1504 | + } catch (IllegalArgumentException e) { |
1455 | 1505 | e.printStackTrace(); |
1456 | | - } |
1457 | | - catch (IllegalAccessException e) { |
| 1506 | + } catch (IllegalAccessException e) { |
1458 | 1507 | e.printStackTrace(); |
1459 | 1508 | } |
1460 | 1509 | } |
@@ -1570,6 +1619,8 @@ public static void updateNavigation(NavigationAbstract navigation) { |
1570 | 1619 | private static final Set<EntityType> BAD_CONTROLLER_LOOK = EnumSet.of(EntityType.POLAR_BEAR, EntityType.SILVERFISH, |
1571 | 1620 | EntityType.SHULKER, EntityType.ENDERMITE, EntityType.ENDER_DRAGON, EntityType.BAT, EntityType.SLIME, |
1572 | 1621 | EntityType.MAGMA_CUBE, EntityType.HORSE, EntityType.GHAST); |
| 1622 | + private static final Method BLOCK_POSITION_B_D = NMS.getMethod(BlockPosition.b.class, "e", false, double.class, |
| 1623 | + double.class, double.class); |
1573 | 1624 | private static final Field CRAFT_BOSSBAR_HANDLE_FIELD = NMS.getField(CraftBossBar.class, "handle"); |
1574 | 1625 | private static final float DEFAULT_SPEED = 1F; |
1575 | 1626 | private static final Field ENDERDRAGON_BATTLE_BAR_FIELD = NMS.getField(EnderDragonBattle.class, "c", false); |
|
0 commit comments