From e026a78622db8cff953aa81a91e7b9be4f783e04 Mon Sep 17 00:00:00 2001 From: filoghost Date: Mon, 20 Aug 2018 22:33:23 +0200 Subject: [PATCH] Drop 1.7 support --- Examples/DeathHolograms/pom.xml | 2 +- Examples/PowerUps/pom.xml | 2 +- .../nms/interfaces/NMSManager.java | 6 - .../nms/interfaces/entity/NMSHorse.java | 5 - .../nms/interfaces/entity/NMSWitherSkull.java | 5 - .../nms/v1_10_R1/NmsManagerImpl.java | 13 -- .../nms/v1_11_R1/NmsManagerImpl.java | 13 -- .../nms/v1_12_R1/NmsManagerImpl.java | 13 -- .../nms/v1_13_R1/NmsManagerImpl.java | 13 -- NMS/v1_7_R1/pom.xml | 51 ---- .../nms/v1_7_R1/CraftNMSHorse.java | 64 ----- .../nms/v1_7_R1/CraftNMSItem.java | 40 ---- .../nms/v1_7_R1/CraftNMSSlime.java | 47 ---- .../nms/v1_7_R1/CraftNMSWitherSkull.java | 46 ---- .../nms/v1_7_R1/EntityNMSHorse.java | 184 --------------- .../nms/v1_7_R1/EntityNMSItem.java | 219 ------------------ .../nms/v1_7_R1/EntityNMSSlime.java | 187 --------------- .../nms/v1_7_R1/EntityNMSWitherSkull.java | 165 ------------- .../nms/v1_7_R1/FancyMessageImpl.java | 169 -------------- .../nms/v1_7_R1/NmsManagerImpl.java | 170 -------------- NMS/v1_7_R2/pom.xml | 51 ---- .../nms/v1_7_R2/CraftNMSHorse.java | 64 ----- .../nms/v1_7_R2/CraftNMSItem.java | 40 ---- .../nms/v1_7_R2/CraftNMSSlime.java | 47 ---- .../nms/v1_7_R2/CraftNMSWitherSkull.java | 46 ---- .../nms/v1_7_R2/EntityNMSHorse.java | 185 --------------- .../nms/v1_7_R2/EntityNMSItem.java | 218 ----------------- .../nms/v1_7_R2/EntityNMSSlime.java | 187 --------------- .../nms/v1_7_R2/EntityNMSWitherSkull.java | 167 ------------- .../nms/v1_7_R2/FancyMessageImpl.java | 169 -------------- .../nms/v1_7_R2/NmsManagerImpl.java | 170 -------------- NMS/v1_7_R3/pom.xml | 51 ---- .../nms/v1_7_R3/CraftNMSHorse.java | 64 ----- .../nms/v1_7_R3/CraftNMSItem.java | 40 ---- .../nms/v1_7_R3/CraftNMSSlime.java | 47 ---- .../nms/v1_7_R3/CraftNMSWitherSkull.java | 46 ---- .../nms/v1_7_R3/EntityNMSHorse.java | 184 --------------- .../nms/v1_7_R3/EntityNMSItem.java | 218 ----------------- .../nms/v1_7_R3/EntityNMSSlime.java | 186 --------------- .../nms/v1_7_R3/EntityNMSWitherSkull.java | 164 ------------- .../nms/v1_7_R3/FancyMessageImpl.java | 169 -------------- .../nms/v1_7_R3/NmsManagerImpl.java | 170 -------------- NMS/v1_7_R4/pom.xml | 51 ---- .../nms/v1_7_R4/CraftNMSHorse.java | 64 ----- .../nms/v1_7_R4/CraftNMSItem.java | 40 ---- .../nms/v1_7_R4/CraftNMSSlime.java | 47 ---- .../nms/v1_7_R4/CraftNMSWitherSkull.java | 46 ---- .../nms/v1_7_R4/EntityNMSHorse.java | 185 --------------- .../nms/v1_7_R4/EntityNMSItem.java | 216 ----------------- .../nms/v1_7_R4/EntityNMSSlime.java | 186 --------------- .../nms/v1_7_R4/EntityNMSWitherSkull.java | 157 ------------- .../nms/v1_7_R4/FancyMessageImpl.java | 168 -------------- .../nms/v1_7_R4/NmsManagerImpl.java | 170 -------------- .../nms/v1_8_R1/NmsManagerImpl.java | 13 -- .../nms/v1_8_R2/NmsManagerImpl.java | 13 -- .../nms/v1_8_R3/NmsManagerImpl.java | 13 -- .../nms/v1_9_R1/NmsManagerImpl.java | 13 -- .../nms/v1_9_R2/NmsManagerImpl.java | 13 -- Plugin/pom.xml | 24 -- .../HolographicDisplays.java | 8 +- .../current/ProtocolLibHookImpl.java | 2 - .../protocollib/old/ProtocolLibHookImpl.java | 50 +--- .../main/HologramsCommandHandler.java | 2 - .../commands/main/subs/FixCommand.java | 80 ------- .../object/line/CraftItemLine.java | 25 +- .../object/line/CraftTextLine.java | 50 +--- .../object/line/CraftTouchSlimeLine.java | 11 +- .../holographicdisplays/util/NMSVersion.java | 24 +- .../holographicdisplays/util/Offsets.java | 15 +- .../util/VersionUtils.java | 10 - pom.xml | 4 - 71 files changed, 31 insertions(+), 5766 deletions(-) delete mode 100644 NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSHorse.java delete mode 100644 NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSWitherSkull.java delete mode 100644 NMS/v1_7_R1/pom.xml delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSHorse.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSItem.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSSlime.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSWitherSkull.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSHorse.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSItem.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSSlime.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSWitherSkull.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/FancyMessageImpl.java delete mode 100644 NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/NmsManagerImpl.java delete mode 100644 NMS/v1_7_R2/pom.xml delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSHorse.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSItem.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSSlime.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSWitherSkull.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSHorse.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSItem.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSSlime.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSWitherSkull.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/FancyMessageImpl.java delete mode 100644 NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/NmsManagerImpl.java delete mode 100644 NMS/v1_7_R3/pom.xml delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSHorse.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSItem.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSSlime.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSWitherSkull.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSHorse.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSItem.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSSlime.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSWitherSkull.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/FancyMessageImpl.java delete mode 100644 NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/NmsManagerImpl.java delete mode 100644 NMS/v1_7_R4/pom.xml delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSHorse.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSItem.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSSlime.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSWitherSkull.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSHorse.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSItem.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSSlime.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSWitherSkull.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/FancyMessageImpl.java delete mode 100644 NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/NmsManagerImpl.java delete mode 100644 Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/subs/FixCommand.java diff --git a/Examples/DeathHolograms/pom.xml b/Examples/DeathHolograms/pom.xml index 59c2cc02..78b7b6ce 100644 --- a/Examples/DeathHolograms/pom.xml +++ b/Examples/DeathHolograms/pom.xml @@ -30,7 +30,7 @@ org.bukkit bukkit - 1.7.2-R0.2-SNAPSHOT + 1.8-R0.1-SNAPSHOT diff --git a/Examples/PowerUps/pom.xml b/Examples/PowerUps/pom.xml index 9a6207df..c8a83be5 100644 --- a/Examples/PowerUps/pom.xml +++ b/Examples/PowerUps/pom.xml @@ -30,7 +30,7 @@ org.bukkit bukkit - 1.7.2-R0.2-SNAPSHOT + 1.8-R0.1-SNAPSHOT diff --git a/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/NMSManager.java b/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/NMSManager.java index 90986f75..6fea51cf 100644 --- a/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/NMSManager.java +++ b/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/NMSManager.java @@ -6,10 +6,8 @@ import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSSlime; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; public interface NMSManager { @@ -17,10 +15,6 @@ public interface NMSManager { public void setup() throws Exception; public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece); - - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece); - - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece); public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager); diff --git a/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSHorse.java b/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSHorse.java deleted file mode 100644 index 14f858fd..00000000 --- a/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSHorse.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.interfaces.entity; - -public interface NMSHorse extends NMSNameable, NMSCanMount { - -} diff --git a/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSWitherSkull.java b/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSWitherSkull.java deleted file mode 100644 index 17e0312d..00000000 --- a/NMS/Interfaces/src/main/java/com/gmail/filoghost/holographicdisplays/nms/interfaces/entity/NMSWitherSkull.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.interfaces.entity; - -public interface NMSWitherSkull extends NMSEntityBase { - -} diff --git a/NMS/v1_10_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_10_R1/NmsManagerImpl.java b/NMS/v1_10_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_10_R1/NmsManagerImpl.java index 49511bf5..37c99c41 100644 --- a/NMS/v1_10_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_10_R1/NmsManagerImpl.java +++ b/NMS/v1_10_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_10_R1/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_10_R1; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_10_R1.CraftChunk; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -56,16 +53,6 @@ public class NmsManagerImpl implements NMSManager { } } - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); diff --git a/NMS/v1_11_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_11_R1/NmsManagerImpl.java b/NMS/v1_11_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_11_R1/NmsManagerImpl.java index 1ebe81a7..9fe31295 100644 --- a/NMS/v1_11_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_11_R1/NmsManagerImpl.java +++ b/NMS/v1_11_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_11_R1/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_11_R1; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_11_R1.CraftChunk; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -64,16 +61,6 @@ public class NmsManagerImpl implements NMSManager { idToClassMap[id] = oldValue; } } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { diff --git a/NMS/v1_12_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_12_R1/NmsManagerImpl.java b/NMS/v1_12_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_12_R1/NmsManagerImpl.java index 0952bef8..241e96c9 100644 --- a/NMS/v1_12_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_12_R1/NmsManagerImpl.java +++ b/NMS/v1_12_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_12_R1/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_12_R1; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_12_R1.CraftChunk; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -64,16 +61,6 @@ public class NmsManagerImpl implements NMSManager { idToClassMap[id] = oldValue; } } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { diff --git a/NMS/v1_13_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_13_R1/NmsManagerImpl.java b/NMS/v1_13_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_13_R1/NmsManagerImpl.java index e5ce1c5e..812b674d 100644 --- a/NMS/v1_13_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_13_R1/NmsManagerImpl.java +++ b/NMS/v1_13_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_13_R1/NmsManagerImpl.java @@ -3,7 +3,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_13_R1; import java.lang.reflect.Method; import java.util.function.Function; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_13_R1.CraftChunk; @@ -18,9 +17,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -72,16 +69,6 @@ public class NmsManagerImpl implements NMSManager { idToClassMap[id] = oldValue; } } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { diff --git a/NMS/v1_7_R1/pom.xml b/NMS/v1_7_R1/pom.xml deleted file mode 100644 index bc7cc3e4..00000000 --- a/NMS/v1_7_R1/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - - com.gmail.filoghost.holographicdisplays - holographicdisplays-parent - 2.3.0-SNAPSHOT - ../../pom.xml - - - holographicdisplays-nms-v1_7_r1 - HolographicDisplays NMS v1_7_R1 - - - - elmakers-repo - http://maven.elmakers.com/repository/ - - - - - - ${project.groupId} - holographicdisplays-nms-interfaces - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-utils - 2.3.0-SNAPSHOT - - - - org.bukkit - bukkit - 1.7.2-R0.2-SNAPSHOT - true - - - - org.bukkit - craftbukkit - 1.7.2-R0.2-SNAPSHOT - true - - - - \ No newline at end of file diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSHorse.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSHorse.java deleted file mode 100644 index 86fd2d41..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSHorse.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R1.CraftServer; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftHorse; -import org.bukkit.entity.AnimalTamer; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSHorse extends CraftHorse { - - public CraftNMSHorse(CraftServer server, EntityNMSHorse entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Horse class - @Override public void setVariant(Variant variant) { } - @Override public void setColor(Color color) { } - @Override public void setStyle(Style style) { } - @Override public void setCarryingChest(boolean chest) { } - @Override public void setDomestication(int domestication) { } - @Override public void setJumpStrength(double jump) { } - - // Methods form Ageable class - @Override public void setAge(int age) { } - @Override public void setAgeLock(boolean lock) { } - @Override public void setBreed(boolean breed) { } - @Override public void setAdult() { } - @Override public void setBaby() { } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Tameable - @Override public void setTamed(boolean tame) { } - @Override public void setOwner(AnimalTamer owner) { } -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSItem.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSItem.java deleted file mode 100644 index 0b760639..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R1.CraftServer; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftItem; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; - -public class CraftNMSItem extends CraftItem { - - public CraftNMSItem(CraftServer server, EntityNMSItem entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Item - @Override public void setItemStack(ItemStack stack) { } - @Override public void setPickupDelay(int delay) { } -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSSlime.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSSlime.java deleted file mode 100644 index fd2640ec..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSSlime.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R1.CraftServer; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftSlime; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSSlime extends CraftSlime { - - public CraftNMSSlime(CraftServer server, EntityNMSSlime entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Slime - @Override public void setSize(int size) { } -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSWitherSkull.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSWitherSkull.java deleted file mode 100644 index a7c8ef94..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/CraftNMSWitherSkull.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R1.CraftServer; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftWitherSkull; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.util.Vector; - -public class CraftNMSWitherSkull extends CraftWitherSkull { - - public CraftNMSWitherSkull(CraftServer server, EntityNMSWitherSkull entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Method from Fireball - @Override public void setDirection(Vector dir) { } - - // Method from Projectile - @Override public void setBounce(boolean bounce) { } - - // Methods from Explosive - @Override public void setYield(float yield) { } - @Override public void setIsIncendiary(boolean fire) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSHorse.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSHorse.java deleted file mode 100644 index bc8319f6..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSHorse.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.EntityHorse; -import net.minecraft.server.v1_7_R1.NBTTagCompound; -import net.minecraft.server.v1_7_R1.World; - -public class EntityNMSHorse extends EntityHorse implements NMSHorse { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSHorse(World world, HologramLine parentPiece) { - super(world); - super.ageLocked = true; - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setAge(-1700000); // This is a magic value. No one will see the real horse. - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The horse dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public void setCustomNameNMS(String name) { - if (name != null && name.length() > 300) { - name = name.substring(0, 300); - } - super.setCustomName(name); - super.setCustomNameVisible(name != null && !name.isEmpty()); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSHorse(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public String getCustomNameNMS() { - return super.getCustomName(); - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSItem.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSItem.java deleted file mode 100644 index dbcde650..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSItem.java +++ /dev/null @@ -1,219 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftItemStack; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ItemUtils; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R1.Blocks; -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.EntityHuman; -import net.minecraft.server.v1_7_R1.EntityItem; -import net.minecraft.server.v1_7_R1.EntityPlayer; -import net.minecraft.server.v1_7_R1.ItemStack; -import net.minecraft.server.v1_7_R1.NBTTagCompound; -import net.minecraft.server.v1_7_R1.NBTTagList; -import net.minecraft.server.v1_7_R1.NBTTagString; -import net.minecraft.server.v1_7_R1.World; - -public class EntityNMSItem extends EntityItem implements NMSItem { - - private boolean lockTick; - private ItemLine parentPiece; - private ItemPickupManager itemPickupManager; - - public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) { - super(world); - super.pickupDelay = Integer.MAX_VALUE; - this.parentPiece = piece; - this.itemPickupManager = itemPickupManager; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The item dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public ItemStack getItemStack() { - // Dirty method to check if the icon is being picked up - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getClassName().contains("EntityInsentient")) { - return null; // Try to pickup this, dear entity ignoring the pickupDelay! - } - - return super.getItemStack(); - } - - // Method called when a player is near. - @Override - public void b_(EntityHuman human) { - - if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) { - itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece.getPickupHandler(), parentPiece.getParent()); - // It is never added to the inventory. - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSItem(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public void setItemStackNMS(org.bukkit.inventory.ItemStack stack) { - ItemStack newItem = CraftItemStack.asNMSCopy(stack); - - if (newItem == null) { - newItem = new ItemStack(Blocks.BEDROCK); - } - - if (newItem.tag == null) { - newItem.tag = new NBTTagCompound(); - } - NBTTagCompound display = newItem.tag.getCompound("display"); - - if (!newItem.tag.hasKey("display")) { - newItem.tag.set("display", display); - } - - NBTTagList tagList = new NBTTagList(); - tagList.add(new NBTTagString(ItemUtils.ANTISTACK_LORE)); // Antistack lore - - display.set("Lore", tagList); - newItem.count = 0; - setItemStack(newItem); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public void allowPickup(boolean pickup) { - if (pickup) { - super.pickupDelay = 0; - } else { - super.pickupDelay = Integer.MAX_VALUE; - } - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - - @Override - public Object getRawItemStack() { - return super.getItemStack(); - } -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSSlime.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSSlime.java deleted file mode 100644 index 9a706976..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSSlime.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity; -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSSlime; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R1.DamageSource; -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.EntityDamageSource; -import net.minecraft.server.v1_7_R1.EntityPlayer; -import net.minecraft.server.v1_7_R1.EntitySlime; -import net.minecraft.server.v1_7_R1.NBTTagCompound; -import net.minecraft.server.v1_7_R1.World; - -public class EntityNMSSlime extends EntitySlime implements NMSSlime { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSSlime(World world, HologramLine parentPiece) { - super(world); - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setSize(1); - setInvisible(true); - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The slime dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean damageEntity(DamageSource damageSource, float amount) { - if (damageSource instanceof EntityDamageSource) { - EntityDamageSource entityDamageSource = (EntityDamageSource) damageSource; - if (entityDamageSource.getEntity() instanceof EntityPlayer) { - Bukkit.getPluginManager().callEvent(new PlayerInteractEntityEvent(((EntityPlayer) entityDamageSource.getEntity()).getBukkitEntity(), getBukkitEntity())); - } - } - return false; - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSSlime(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSWitherSkull.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSWitherSkull.java deleted file mode 100644 index b90f173d..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/EntityNMSWitherSkull.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Utils; - -import net.minecraft.server.v1_7_R1.EntityPlayer; -import net.minecraft.server.v1_7_R1.EntityWitherSkull; -import net.minecraft.server.v1_7_R1.MathHelper; -import net.minecraft.server.v1_7_R1.NBTTagCompound; -import net.minecraft.server.v1_7_R1.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_7_R1.World; - -public class EntityNMSWitherSkull extends EntityWitherSkull implements NMSWitherSkull { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSWitherSkull(World world, HologramLine parentPiece) { - super(world); - super.motX = 0.0; - super.motY = 0.0; - super.motZ = 0.0; - super.dirX = 0.0; - super.dirY = 0.0; - super.dirZ = 0.0; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - this.parentPiece = parentPiece; - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public int getId() { - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getFileName().equals("EntityTrackerEntry.java") && element.getLineNumber() > 134 && element.getLineNumber() < 144) { - // Then this method is being called when creating a new packet, we return a fake ID! - return -1; - } - - return super.getId(); - } - - @Override - public void h() { - if (!lockTick) { - super.h(); - } - } - - @Override - public void makeSound(String sound, float f1, float f2) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSWitherSkull(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - - // Send a packet near to update the position. - PacketPlayOutEntityTeleport teleportPacket = new PacketPlayOutEntityTeleport( - getIdNMS(), - MathHelper.floor(this.locX * 32.0D), - MathHelper.floor(this.locY * 32.0D), - MathHelper.floor(this.locZ * 32.0D), - (byte) (int) (this.yaw * 256.0F / 360.0F), - (byte) (int) (this.pitch * 256.0F / 360.0F) - ); - - for (Object obj : this.world.players) { - if (obj instanceof EntityPlayer) { - EntityPlayer nmsPlayer = (EntityPlayer) obj; - - double distanceSquared = Utils.square(nmsPlayer.locX - this.locX) + Utils.square(nmsPlayer.locZ - this.locZ); - if (distanceSquared < 8192 && nmsPlayer.playerConnection != null) { - nmsPlayer.playerConnection.sendPacket(teleportPacket); - } - } - } - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public int getIdNMS() { - return super.getId(); // Return the real ID without checking the stack trace. - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - -} \ No newline at end of file diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/FancyMessageImpl.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/FancyMessageImpl.java deleted file mode 100644 index b49932cc..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/FancyMessageImpl.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.server.v1_7_R1.ChatSerializer; -import net.minecraft.server.v1_7_R1.PacketPlayOutChat; - -import org.bukkit.ChatColor; -import org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonWriter; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; - -public class FancyMessageImpl implements FancyMessage { - - private List messageParts; - - public FancyMessageImpl(String firstPartText) { - messageParts = new ArrayList(); - messageParts.add(new MessagePart(firstPartText)); - } - - @Override - public FancyMessageImpl color(ChatColor color) { - if (!color.isColor()) { - throw new IllegalArgumentException(color.name() + " is not a color"); - } - latest().color = color; - return this; - } - - @Override - public FancyMessageImpl style(ChatColor... styles) { - for (ChatColor style : styles) { - if (!style.isFormat()) { - throw new IllegalArgumentException(style.name() + " is not a style"); - } - } - latest().styles = styles; - return this; - } - - @Override - public FancyMessageImpl file(String path) { - onClick("open_file", path); - return this; - } - - @Override - public FancyMessageImpl link(String url) { - onClick("open_url", url); - return this; - } - - @Override - public FancyMessageImpl suggest(String command) { - onClick("suggest_command", command); - return this; - } - - @Override - public FancyMessageImpl command(String command) { - onClick("run_command", command); - return this; - } - - @Override - public FancyMessageImpl tooltip(String text) { - onHover("show_text", text); - return this; - } - - @Override - public FancyMessageImpl then(Object obj) { - messageParts.add(new MessagePart(obj.toString())); - return this; - } - - @Override - public String toJSONString() { - StringWriter stringWriter = new StringWriter(); - JsonWriter json = new JsonWriter(stringWriter); - - try { - if (messageParts.size() == 1) { - latest().writeJson(json); - } else { - json.beginObject().name("text").value("").name("extra").beginArray(); - for (MessagePart part : messageParts) { - part.writeJson(json); - } - json.endArray().endObject(); - } - - } catch (IOException e) { - throw new RuntimeException("invalid message"); - } - return stringWriter.toString(); - } - - @Override - public void send(Player player){ - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(toJSONString()))); - } - - private MessagePart latest() { - return messageParts.get(messageParts.size() - 1); - } - - private void onClick(String name, String data) { - MessagePart latest = latest(); - latest.clickActionName = name; - latest.clickActionData = data; - } - - private void onHover(String name, String data) { - MessagePart latest = latest(); - latest.hoverActionName = name; - latest.hoverActionData = data; - } - - static class MessagePart { - - public ChatColor color = null; - public ChatColor[] styles = null; - public String clickActionName = null; - public String clickActionData = null; - public String hoverActionName = null; - public String hoverActionData = null; - public final String text; - - public MessagePart(final String text) { - this.text = text; - } - - public JsonWriter writeJson(final JsonWriter json) throws IOException { - json.beginObject().name("text").value(text); - if (color != null) { - json.name("color").value(color.name().toLowerCase()); - } - if (styles != null) { - for (final ChatColor style : styles) { - json.name(style == ChatColor.UNDERLINE ? "underlined" : style.name().toLowerCase()).value(true); - } - } - if (clickActionName != null && clickActionData != null) { - json.name("clickEvent") - .beginObject() - .name("action").value(clickActionName) - .name("value").value(clickActionData) - .endObject(); - } - if (hoverActionName != null && hoverActionData != null) { - json.name("hoverEvent") - .beginObject() - .name("action").value(hoverActionName) - .name("value").value(hoverActionData) - .endObject(); - } - return json.endObject(); - } - - } - -} diff --git a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/NmsManagerImpl.java b/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/NmsManagerImpl.java deleted file mode 100644 index 57d5a0ab..00000000 --- a/NMS/v1_7_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R1/NmsManagerImpl.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R1; - -import java.lang.reflect.Method; - -import org.apache.commons.lang.NotImplementedException; -import org.bukkit.Bukkit; -import org.bukkit.Chunk; -import org.bukkit.craftbukkit.v1_7_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_7_R1.entity.CraftEntity; -import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -import org.bukkit.inventory.ItemStack; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Validator; -import com.gmail.filoghost.holographicdisplays.util.VersionUtils; - -import net.minecraft.server.v1_7_R1.Entity; -import net.minecraft.server.v1_7_R1.EntityTypes; -import net.minecraft.server.v1_7_R1.MathHelper; -import net.minecraft.server.v1_7_R1.World; -import net.minecraft.server.v1_7_R1.WorldServer; - -public class NmsManagerImpl implements NMSManager { - - private Method validateEntityMethod; - - @Override - public void setup() throws Exception { - registerCustomEntity(EntityNMSHorse.class, "EntityHorse", 100); - registerCustomEntity(EntityNMSWitherSkull.class, "WitherSkull", 19); - registerCustomEntity(EntityNMSItem.class, "Item", 1); - registerCustomEntity(EntityNMSSlime.class, "Slime", 55); - - if (!VersionUtils.isForgeServer()) { - validateEntityMethod = World.class.getDeclaredMethod("a", Entity.class); - validateEntityMethod.setAccessible(true); - } - } - - @SuppressWarnings("rawtypes") - public void registerCustomEntity(Class entityClass, String name, int id) throws Exception { - if (VersionUtils.isForgeServer()) { - // Forge entity registration. - Class entityTypesClass = Class.forName("net.minecraft.server.v1_7_R1.EntityTypes"); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75626_c", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75624_e", entityClass, Integer.valueOf(id)); - } else { - // Normal entity registration. - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "d", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "f", entityClass, Integer.valueOf(id)); - } - } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) world).getHandle(); - EntityNMSHorse invisibleHorse = new EntityNMSHorse(nmsWorld, parentPiece); - invisibleHorse.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, invisibleHorse)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return invisibleHorse; - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSWitherSkull staticWitherSkull = new EntityNMSWitherSkull(nmsWorld, parentPiece); - staticWitherSkull.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, staticWitherSkull)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return staticWitherSkull; - } - - @Override - public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager); - customItem.setLocationNMS(x, y, z); - customItem.setItemStackNMS(stack); - if (!addEntityToWorld(nmsWorld, customItem)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return customItem; - } - - @Override - public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece); - touchSlime.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, touchSlime)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return touchSlime; - } - - @SuppressWarnings("unchecked") - private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) { - Validator.isTrue(Bukkit.isPrimaryThread(), "Async entity add"); - - if (validateEntityMethod == null) { - return nmsWorld.addEntity(nmsEntity, SpawnReason.CUSTOM); - } - - final int chunkX = MathHelper.floor(nmsEntity.locX / 16.0); - final int chunkZ = MathHelper.floor(nmsEntity.locZ / 16.0); - - if (!nmsWorld.chunkProviderServer.isChunkLoaded(chunkX, chunkZ)) { - // This should never happen - nmsEntity.dead = true; - return false; - } - - nmsWorld.getChunkAt(chunkX, chunkZ).a(nmsEntity); - nmsWorld.entityList.add(nmsEntity); - - try { - validateEntityMethod.invoke(nmsWorld, nmsEntity); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - return true; - } - - @Override - public boolean isNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - return ((CraftEntity) bukkitEntity).getHandle() instanceof NMSEntityBase; - } - - @Override - public NMSEntityBase getNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - - Entity nmsEntity = ((CraftEntity) bukkitEntity).getHandle(); - if (nmsEntity instanceof NMSEntityBase) { - return ((NMSEntityBase) nmsEntity); - } - - return null; - } - - @Override - public FancyMessage newFancyMessage(String text) { - return new FancyMessageImpl(text); - } - - @Override - public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.8 or higher"); - } - - @Override - public boolean isUnloadUnsure(Chunk bukkitChunk) { - return bukkitChunk.getWorld().isChunkInUse(bukkitChunk.getX(), bukkitChunk.getZ()); - } - -} diff --git a/NMS/v1_7_R2/pom.xml b/NMS/v1_7_R2/pom.xml deleted file mode 100644 index 562e66de..00000000 --- a/NMS/v1_7_R2/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - - com.gmail.filoghost.holographicdisplays - holographicdisplays-parent - 2.3.0-SNAPSHOT - ../../pom.xml - - - holographicdisplays-nms-v1_7_r2 - HolographicDisplays NMS v1_7_R2 - - - - elmakers-repo - http://maven.elmakers.com/repository/ - - - - - - ${project.groupId} - holographicdisplays-nms-interfaces - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-utils - 2.3.0-SNAPSHOT - - - - org.bukkit - bukkit - 1.7.5-R0.1-SNAPSHOT - true - - - - org.bukkit - craftbukkit - 1.7.5-R0.1-SNAPSHOT - true - - - - \ No newline at end of file diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSHorse.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSHorse.java deleted file mode 100644 index 5b10a6ae..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSHorse.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R2.CraftServer; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftHorse; -import org.bukkit.entity.AnimalTamer; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSHorse extends CraftHorse { - - public CraftNMSHorse(CraftServer server, EntityNMSHorse entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Horse class - @Override public void setVariant(Variant variant) { } - @Override public void setColor(Color color) { } - @Override public void setStyle(Style style) { } - @Override public void setCarryingChest(boolean chest) { } - @Override public void setDomestication(int domestication) { } - @Override public void setJumpStrength(double jump) { } - - // Methods form Ageable class - @Override public void setAge(int age) { } - @Override public void setAgeLock(boolean lock) { } - @Override public void setBreed(boolean breed) { } - @Override public void setAdult() { } - @Override public void setBaby() { } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Tameable - @Override public void setTamed(boolean tame) { } - @Override public void setOwner(AnimalTamer owner) { } -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSItem.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSItem.java deleted file mode 100644 index 0824a018..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R2.CraftServer; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftItem; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; - -public class CraftNMSItem extends CraftItem { - - public CraftNMSItem(CraftServer server, EntityNMSItem entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Item - @Override public void setItemStack(ItemStack stack) { } - @Override public void setPickupDelay(int delay) { } -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSSlime.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSSlime.java deleted file mode 100644 index 02c2e7e2..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSSlime.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R2.CraftServer; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftSlime; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSSlime extends CraftSlime { - - public CraftNMSSlime(CraftServer server, EntityNMSSlime entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Slime - @Override public void setSize(int size) { } -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSWitherSkull.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSWitherSkull.java deleted file mode 100644 index 3a0976a3..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/CraftNMSWitherSkull.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R2.CraftServer; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftWitherSkull; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.util.Vector; - -public class CraftNMSWitherSkull extends CraftWitherSkull { - - public CraftNMSWitherSkull(CraftServer server, EntityNMSWitherSkull entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Method from Fireball - @Override public void setDirection(Vector dir) { } - - // Method from Projectile - @Override public void setBounce(boolean bounce) { } - - // Methods from Explosive - @Override public void setYield(float yield) { } - @Override public void setIsIncendiary(boolean fire) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSHorse.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSHorse.java deleted file mode 100644 index ae9e8dd2..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSHorse.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R2.Entity; -import net.minecraft.server.v1_7_R2.EntityHorse; -import net.minecraft.server.v1_7_R2.NBTTagCompound; -import net.minecraft.server.v1_7_R2.World; - -public class EntityNMSHorse extends EntityHorse implements NMSHorse { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSHorse(World world, HologramLine parentPiece) { - super(world); - super.ageLocked = true; - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setAge(-1700000); // This is a magic value. No one will see the real horse. - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The horse dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public void setCustomNameNMS(String name) { - if (name != null && name.length() > 300) { - name = name.substring(0, 300); - } - super.setCustomName(name); - super.setCustomNameVisible(name != null && !name.isEmpty()); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSHorse(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public String getCustomNameNMS() { - return super.getCustomName(); - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSItem.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSItem.java deleted file mode 100644 index 2e65f23e..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSItem.java +++ /dev/null @@ -1,218 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_7_R2.inventory.CraftItemStack; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ItemUtils; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R2.Blocks; -import net.minecraft.server.v1_7_R2.Entity; -import net.minecraft.server.v1_7_R2.EntityHuman; -import net.minecraft.server.v1_7_R2.EntityItem; -import net.minecraft.server.v1_7_R2.EntityPlayer; -import net.minecraft.server.v1_7_R2.ItemStack; -import net.minecraft.server.v1_7_R2.NBTTagCompound; -import net.minecraft.server.v1_7_R2.NBTTagList; -import net.minecraft.server.v1_7_R2.NBTTagString; -import net.minecraft.server.v1_7_R2.World; - -public class EntityNMSItem extends EntityItem implements NMSItem { - - private boolean lockTick; - private ItemLine parentPiece; - private ItemPickupManager itemPickupManager; - - public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) { - super(world); - super.pickupDelay = Integer.MAX_VALUE; - this.parentPiece = piece; - this.itemPickupManager = itemPickupManager; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The item dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public ItemStack getItemStack() { - // Dirty method to check if the icon is being picked up - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getClassName().contains("EntityInsentient")) { - return null; // Try to pickup this, dear entity ignoring the pickupDelay! - } - - return super.getItemStack(); - } - - // Method called when a player is near. - @Override - public void b_(EntityHuman human) { - - if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) { - itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece.getPickupHandler(), parentPiece.getParent()); - // It is never added to the inventory. - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSItem(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public void setItemStackNMS(org.bukkit.inventory.ItemStack stack) { - ItemStack newItem = CraftItemStack.asNMSCopy(stack); - - if (newItem == null) { - newItem = new ItemStack(Blocks.BEDROCK); - } - - if (newItem.tag == null) { - newItem.tag = new NBTTagCompound(); - } - NBTTagCompound display = newItem.tag.getCompound("display"); - - if (!newItem.tag.hasKey("display")) { - newItem.tag.set("display", display); - } - - NBTTagList tagList = new NBTTagList(); - tagList.add(new NBTTagString(ItemUtils.ANTISTACK_LORE)); // Antistack lore - - display.set("Lore", tagList); - newItem.count = 0; - setItemStack(newItem); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public ItemLine getHologramLine() { - return parentPiece; - } - - @Override - public void allowPickup(boolean pickup) { - if (pickup) { - super.pickupDelay = 0; - } else { - super.pickupDelay = Integer.MAX_VALUE; - } - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - - @Override - public Object getRawItemStack() { - return super.getItemStack(); - } -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSSlime.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSSlime.java deleted file mode 100644 index e2b1244a..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSSlime.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftEntity; -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSSlime; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R2.DamageSource; -import net.minecraft.server.v1_7_R2.Entity; -import net.minecraft.server.v1_7_R2.EntityDamageSource; -import net.minecraft.server.v1_7_R2.EntityPlayer; -import net.minecraft.server.v1_7_R2.EntitySlime; -import net.minecraft.server.v1_7_R2.NBTTagCompound; -import net.minecraft.server.v1_7_R2.World; - -public class EntityNMSSlime extends EntitySlime implements NMSSlime { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSSlime(World world, HologramLine parentPiece) { - super(world); - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setSize(1); - setInvisible(true); - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The slime dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean damageEntity(DamageSource damageSource, float amount) { - if (damageSource instanceof EntityDamageSource) { - EntityDamageSource entityDamageSource = (EntityDamageSource) damageSource; - if (entityDamageSource.getEntity() instanceof EntityPlayer) { - Bukkit.getPluginManager().callEvent(new PlayerInteractEntityEvent(((EntityPlayer) entityDamageSource.getEntity()).getBukkitEntity(), getBukkitEntity())); - } - } - return false; - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSSlime(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSWitherSkull.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSWitherSkull.java deleted file mode 100644 index 7284d771..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/EntityNMSWitherSkull.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Utils; - -import net.minecraft.server.v1_7_R2.EntityPlayer; -import net.minecraft.server.v1_7_R2.EntityWitherSkull; -import net.minecraft.server.v1_7_R2.MathHelper; -import net.minecraft.server.v1_7_R2.NBTTagCompound; -import net.minecraft.server.v1_7_R2.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_7_R2.World; - -public class EntityNMSWitherSkull extends EntityWitherSkull implements NMSWitherSkull { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSWitherSkull(World world, HologramLine parentPiece) { - super(world); - super.motX = 0.0; - super.motY = 0.0; - super.motZ = 0.0; - super.dirX = 0.0; - super.dirY = 0.0; - super.dirZ = 0.0; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - this.parentPiece = parentPiece; - } - - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public int getId() { - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getFileName().equals("EntityTrackerEntry.java") && element.getLineNumber() > 134 && element.getLineNumber() < 144) { - // Then this method is being called when creating a new packet, we return a fake ID! - return -1; - } - - return super.getId(); - } - - @Override - public void h() { - if (!lockTick) { - super.h(); - } - } - - @Override - public void makeSound(String sound, float f1, float f2) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSWitherSkull(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - - // Send a packet near to update the position. - PacketPlayOutEntityTeleport teleportPacket = new PacketPlayOutEntityTeleport( - getIdNMS(), - MathHelper.floor(this.locX * 32.0D), - MathHelper.floor(this.locY * 32.0D), - MathHelper.floor(this.locZ * 32.0D), - (byte) (int) (this.yaw * 256.0F / 360.0F), - (byte) (int) (this.pitch * 256.0F / 360.0F) - ); - - for (Object obj : this.world.players) { - if (obj instanceof EntityPlayer) { - EntityPlayer nmsPlayer = (EntityPlayer) obj; - - double distanceSquared = Utils.square(nmsPlayer.locX - this.locX) + Utils.square(nmsPlayer.locZ - this.locZ); - if (distanceSquared < 8192 && nmsPlayer.playerConnection != null) { - nmsPlayer.playerConnection.sendPacket(teleportPacket); - } - } - } - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public int getIdNMS() { - return super.getId(); // Return the real ID without checking the stack trace. - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - -} \ No newline at end of file diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/FancyMessageImpl.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/FancyMessageImpl.java deleted file mode 100644 index 7d4cb3bc..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/FancyMessageImpl.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.server.v1_7_R2.ChatSerializer; -import net.minecraft.server.v1_7_R2.PacketPlayOutChat; - -import org.bukkit.ChatColor; -import org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonWriter; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftPlayer; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; - -public class FancyMessageImpl implements FancyMessage { - - private List messageParts; - - public FancyMessageImpl(String firstPartText) { - messageParts = new ArrayList(); - messageParts.add(new MessagePart(firstPartText)); - } - - @Override - public FancyMessageImpl color(ChatColor color) { - if (!color.isColor()) { - throw new IllegalArgumentException(color.name() + " is not a color"); - } - latest().color = color; - return this; - } - - @Override - public FancyMessageImpl style(ChatColor... styles) { - for (ChatColor style : styles) { - if (!style.isFormat()) { - throw new IllegalArgumentException(style.name() + " is not a style"); - } - } - latest().styles = styles; - return this; - } - - @Override - public FancyMessageImpl file(String path) { - onClick("open_file", path); - return this; - } - - @Override - public FancyMessageImpl link(String url) { - onClick("open_url", url); - return this; - } - - @Override - public FancyMessageImpl suggest(String command) { - onClick("suggest_command", command); - return this; - } - - @Override - public FancyMessageImpl command(String command) { - onClick("run_command", command); - return this; - } - - @Override - public FancyMessageImpl tooltip(String text) { - onHover("show_text", text); - return this; - } - - @Override - public FancyMessageImpl then(Object obj) { - messageParts.add(new MessagePart(obj.toString())); - return this; - } - - @Override - public String toJSONString() { - StringWriter stringWriter = new StringWriter(); - JsonWriter json = new JsonWriter(stringWriter); - - try { - if (messageParts.size() == 1) { - latest().writeJson(json); - } else { - json.beginObject().name("text").value("").name("extra").beginArray(); - for (MessagePart part : messageParts) { - part.writeJson(json); - } - json.endArray().endObject(); - } - - } catch (IOException e) { - throw new RuntimeException("invalid message"); - } - return stringWriter.toString(); - } - - @Override - public void send(Player player){ - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(toJSONString()))); - } - - private MessagePart latest() { - return messageParts.get(messageParts.size() - 1); - } - - private void onClick(String name, String data) { - MessagePart latest = latest(); - latest.clickActionName = name; - latest.clickActionData = data; - } - - private void onHover(String name, String data) { - MessagePart latest = latest(); - latest.hoverActionName = name; - latest.hoverActionData = data; - } - - static class MessagePart { - - public ChatColor color = null; - public ChatColor[] styles = null; - public String clickActionName = null; - public String clickActionData = null; - public String hoverActionName = null; - public String hoverActionData = null; - public final String text; - - public MessagePart(final String text) { - this.text = text; - } - - public JsonWriter writeJson(final JsonWriter json) throws IOException { - json.beginObject().name("text").value(text); - if (color != null) { - json.name("color").value(color.name().toLowerCase()); - } - if (styles != null) { - for (final ChatColor style : styles) { - json.name(style == ChatColor.UNDERLINE ? "underlined" : style.name().toLowerCase()).value(true); - } - } - if (clickActionName != null && clickActionData != null) { - json.name("clickEvent") - .beginObject() - .name("action").value(clickActionName) - .name("value").value(clickActionData) - .endObject(); - } - if (hoverActionName != null && hoverActionData != null) { - json.name("hoverEvent") - .beginObject() - .name("action").value(hoverActionName) - .name("value").value(hoverActionData) - .endObject(); - } - return json.endObject(); - } - - } - -} diff --git a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/NmsManagerImpl.java b/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/NmsManagerImpl.java deleted file mode 100644 index fd085ebb..00000000 --- a/NMS/v1_7_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R2/NmsManagerImpl.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R2; - -import java.lang.reflect.Method; - -import org.apache.commons.lang.NotImplementedException; -import org.bukkit.Bukkit; -import org.bukkit.Chunk; -import org.bukkit.craftbukkit.v1_7_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_7_R2.entity.CraftEntity; -import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -import org.bukkit.inventory.ItemStack; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Validator; -import com.gmail.filoghost.holographicdisplays.util.VersionUtils; - -import net.minecraft.server.v1_7_R2.Entity; -import net.minecraft.server.v1_7_R2.EntityTypes; -import net.minecraft.server.v1_7_R2.MathHelper; -import net.minecraft.server.v1_7_R2.World; -import net.minecraft.server.v1_7_R2.WorldServer; - -public class NmsManagerImpl implements NMSManager { - - private Method validateEntityMethod; - - @Override - public void setup() throws Exception { - registerCustomEntity(EntityNMSHorse.class, "EntityHorse", 100); - registerCustomEntity(EntityNMSWitherSkull.class, "WitherSkull", 19); - registerCustomEntity(EntityNMSItem.class, "Item", 1); - registerCustomEntity(EntityNMSSlime.class, "Slime", 55); - - if (!VersionUtils.isForgeServer()) { - validateEntityMethod = World.class.getDeclaredMethod("a", Entity.class); - validateEntityMethod.setAccessible(true); - } - } - - @SuppressWarnings("rawtypes") - public void registerCustomEntity(Class entityClass, String name, int id) throws Exception { - if (VersionUtils.isForgeServer()) { - // Forge entity registration. - Class entityTypesClass = Class.forName("net.minecraft.server.v1_7_R2.EntityTypes"); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75626_c", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75624_e", entityClass, Integer.valueOf(id)); - } else { - // Normal entity registration. - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "d", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "f", entityClass, Integer.valueOf(id)); - } - } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) world).getHandle(); - EntityNMSHorse invisibleHorse = new EntityNMSHorse(nmsWorld, parentPiece); - invisibleHorse.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, invisibleHorse)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return invisibleHorse; - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSWitherSkull staticWitherSkull = new EntityNMSWitherSkull(nmsWorld, parentPiece); - staticWitherSkull.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, staticWitherSkull)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return staticWitherSkull; - } - - @Override - public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager); - customItem.setLocationNMS(x, y, z); - customItem.setItemStackNMS(stack); - if (!addEntityToWorld(nmsWorld, customItem)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return customItem; - } - - @Override - public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece); - touchSlime.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, touchSlime)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return touchSlime; - } - - @SuppressWarnings("unchecked") - private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) { - Validator.isTrue(Bukkit.isPrimaryThread(), "Async entity add"); - - if (validateEntityMethod == null) { - return nmsWorld.addEntity(nmsEntity, SpawnReason.CUSTOM); - } - - final int chunkX = MathHelper.floor(nmsEntity.locX / 16.0); - final int chunkZ = MathHelper.floor(nmsEntity.locZ / 16.0); - - if (!nmsWorld.chunkProviderServer.isChunkLoaded(chunkX, chunkZ)) { - // This should never happen - nmsEntity.dead = true; - return false; - } - - nmsWorld.getChunkAt(chunkX, chunkZ).a(nmsEntity); - nmsWorld.entityList.add(nmsEntity); - - try { - validateEntityMethod.invoke(nmsWorld, nmsEntity); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - return true; - } - - @Override - public boolean isNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - return ((CraftEntity) bukkitEntity).getHandle() instanceof NMSEntityBase; - } - - @Override - public NMSEntityBase getNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - - Entity nmsEntity = ((CraftEntity) bukkitEntity).getHandle(); - if (nmsEntity instanceof NMSEntityBase) { - return ((NMSEntityBase) nmsEntity); - } - - return null; - } - - @Override - public FancyMessage newFancyMessage(String text) { - return new FancyMessageImpl(text); - } - - @Override - public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.8 or higher"); - } - - @Override - public boolean isUnloadUnsure(Chunk bukkitChunk) { - return bukkitChunk.getWorld().isChunkInUse(bukkitChunk.getX(), bukkitChunk.getZ()); - } - -} diff --git a/NMS/v1_7_R3/pom.xml b/NMS/v1_7_R3/pom.xml deleted file mode 100644 index dbfe2e55..00000000 --- a/NMS/v1_7_R3/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - - com.gmail.filoghost.holographicdisplays - holographicdisplays-parent - 2.3.0-SNAPSHOT - ../../pom.xml - - - holographicdisplays-nms-v1_7_r3 - HolographicDisplays NMS v1_7_R3 - - - - elmakers-repo - http://maven.elmakers.com/repository/ - - - - - - ${project.groupId} - holographicdisplays-nms-interfaces - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-utils - 2.3.0-SNAPSHOT - - - - org.bukkit - bukkit - 1.7.9-R0.1-SNAPSHOT - true - - - - org.bukkit - craftbukkit - 1.7.9-R0.1-SNAPSHOT - true - - - - \ No newline at end of file diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSHorse.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSHorse.java deleted file mode 100644 index 2597daa5..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSHorse.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R3.CraftServer; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftHorse; -import org.bukkit.entity.AnimalTamer; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSHorse extends CraftHorse { - - public CraftNMSHorse(CraftServer server, EntityNMSHorse entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Horse class - @Override public void setVariant(Variant variant) { } - @Override public void setColor(Color color) { } - @Override public void setStyle(Style style) { } - @Override public void setCarryingChest(boolean chest) { } - @Override public void setDomestication(int domestication) { } - @Override public void setJumpStrength(double jump) { } - - // Methods form Ageable class - @Override public void setAge(int age) { } - @Override public void setAgeLock(boolean lock) { } - @Override public void setBreed(boolean breed) { } - @Override public void setAdult() { } - @Override public void setBaby() { } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Tameable - @Override public void setTamed(boolean tame) { } - @Override public void setOwner(AnimalTamer owner) { } -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSItem.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSItem.java deleted file mode 100644 index f260125e..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R3.CraftServer; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftItem; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; - -public class CraftNMSItem extends CraftItem { - - public CraftNMSItem(CraftServer server, EntityNMSItem entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Item - @Override public void setItemStack(ItemStack stack) { } - @Override public void setPickupDelay(int delay) { } -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSSlime.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSSlime.java deleted file mode 100644 index 86ae81da..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSSlime.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R3.CraftServer; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftSlime; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSSlime extends CraftSlime { - - public CraftNMSSlime(CraftServer server, EntityNMSSlime entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Slime - @Override public void setSize(int size) { } -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSWitherSkull.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSWitherSkull.java deleted file mode 100644 index 87aa0092..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/CraftNMSWitherSkull.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R3.CraftServer; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftWitherSkull; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.util.Vector; - -public class CraftNMSWitherSkull extends CraftWitherSkull { - - public CraftNMSWitherSkull(CraftServer server, EntityNMSWitherSkull entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Method from Fireball - @Override public void setDirection(Vector dir) { } - - // Method from Projectile - @Override public void setBounce(boolean bounce) { } - - // Methods from Explosive - @Override public void setYield(float yield) { } - @Override public void setIsIncendiary(boolean fire) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSHorse.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSHorse.java deleted file mode 100644 index 7cdc875d..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSHorse.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R3.Entity; -import net.minecraft.server.v1_7_R3.EntityHorse; -import net.minecraft.server.v1_7_R3.NBTTagCompound; -import net.minecraft.server.v1_7_R3.World; - -public class EntityNMSHorse extends EntityHorse implements NMSHorse { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSHorse(World world, HologramLine parentPiece) { - super(world); - super.ageLocked = true; - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setAge(-1700000); // This is a magic value. No one will see the real horse. - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The horse dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public void setCustomNameNMS(String name) { - if (name != null && name.length() > 300) { - name = name.substring(0, 300); - } - super.setCustomName(name); - super.setCustomNameVisible(name != null && !name.isEmpty()); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSHorse(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public String getCustomNameNMS() { - return super.getCustomName(); - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSItem.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSItem.java deleted file mode 100644 index ac44ab4d..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSItem.java +++ /dev/null @@ -1,218 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_7_R3.inventory.CraftItemStack; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ItemUtils; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R3.Blocks; -import net.minecraft.server.v1_7_R3.Entity; -import net.minecraft.server.v1_7_R3.EntityHuman; -import net.minecraft.server.v1_7_R3.EntityItem; -import net.minecraft.server.v1_7_R3.EntityPlayer; -import net.minecraft.server.v1_7_R3.ItemStack; -import net.minecraft.server.v1_7_R3.NBTTagCompound; -import net.minecraft.server.v1_7_R3.NBTTagList; -import net.minecraft.server.v1_7_R3.NBTTagString; -import net.minecraft.server.v1_7_R3.World; - -public class EntityNMSItem extends EntityItem implements NMSItem { - - private boolean lockTick; - private ItemLine parentPiece; - private ItemPickupManager itemPickupManager; - - public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) { - super(world); - super.pickupDelay = Integer.MAX_VALUE; - this.parentPiece = piece; - this.itemPickupManager = itemPickupManager; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The item dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public ItemStack getItemStack() { - // Dirty method to check if the icon is being picked up - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getClassName().contains("EntityInsentient")) { - return null; // Try to pickup this, dear entity ignoring the pickupDelay! - } - - return super.getItemStack(); - } - - // Method called when a player is near. - @Override - public void b_(EntityHuman human) { - - if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) { - itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece.getPickupHandler(), parentPiece.getParent()); - // It is never added to the inventory. - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSItem(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public void setItemStackNMS(org.bukkit.inventory.ItemStack stack) { - ItemStack newItem = CraftItemStack.asNMSCopy(stack); - - if (newItem == null) { - newItem = new ItemStack(Blocks.BEDROCK); - } - - if (newItem.tag == null) { - newItem.tag = new NBTTagCompound(); - } - NBTTagCompound display = newItem.tag.getCompound("display"); - - if (!newItem.tag.hasKey("display")) { - newItem.tag.set("display", display); - } - - NBTTagList tagList = new NBTTagList(); - tagList.add(new NBTTagString(ItemUtils.ANTISTACK_LORE)); // Antistack lore - - display.set("Lore", tagList); - newItem.count = 0; - setItemStack(newItem); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public ItemLine getHologramLine() { - return parentPiece; - } - - @Override - public void allowPickup(boolean pickup) { - if (pickup) { - super.pickupDelay = 0; - } else { - super.pickupDelay = Integer.MAX_VALUE; - } - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - - @Override - public Object getRawItemStack() { - return super.getItemStack(); - } -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSSlime.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSSlime.java deleted file mode 100644 index daf94aba..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSSlime.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftEntity; -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSSlime; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R3.DamageSource; -import net.minecraft.server.v1_7_R3.Entity; -import net.minecraft.server.v1_7_R3.EntityDamageSource; -import net.minecraft.server.v1_7_R3.EntityPlayer; -import net.minecraft.server.v1_7_R3.EntitySlime; -import net.minecraft.server.v1_7_R3.NBTTagCompound; -import net.minecraft.server.v1_7_R3.World; - -public class EntityNMSSlime extends EntitySlime implements NMSSlime { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSSlime(World world, HologramLine parentPiece) { - super(world); - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setSize(1); - setInvisible(true); - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The slime dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean damageEntity(DamageSource damageSource, float amount) { - if (damageSource instanceof EntityDamageSource) { - EntityDamageSource entityDamageSource = (EntityDamageSource) damageSource; - if (entityDamageSource.getEntity() instanceof EntityPlayer) { - Bukkit.getPluginManager().callEvent(new PlayerInteractEntityEvent(((EntityPlayer) entityDamageSource.getEntity()).getBukkitEntity(), getBukkitEntity())); - } - } - return false; - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSSlime(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSWitherSkull.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSWitherSkull.java deleted file mode 100644 index 93074090..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/EntityNMSWitherSkull.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Utils; - -import net.minecraft.server.v1_7_R3.EntityPlayer; -import net.minecraft.server.v1_7_R3.EntityWitherSkull; -import net.minecraft.server.v1_7_R3.MathHelper; -import net.minecraft.server.v1_7_R3.NBTTagCompound; -import net.minecraft.server.v1_7_R3.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_7_R3.World; - -public class EntityNMSWitherSkull extends EntityWitherSkull implements NMSWitherSkull { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSWitherSkull(World world, HologramLine parentPiece) { - super(world); - super.motX = 0.0; - super.motY = 0.0; - super.motZ = 0.0; - super.dirX = 0.0; - super.dirY = 0.0; - super.dirZ = 0.0; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - this.parentPiece = parentPiece; - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public int getId() { - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getFileName().equals("EntityTrackerEntry.java") && element.getLineNumber() > 134 && element.getLineNumber() < 144) { - // Then this method is being called when creating a new packet, we return a fake ID! - return -1; - } - - return super.getId(); - } - - @Override - public void h() { - if (!lockTick) { - super.h(); - } - } - - @Override - public void makeSound(String sound, float f1, float f2) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSWitherSkull(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - - // Send a packet near to update the position. - PacketPlayOutEntityTeleport teleportPacket = new PacketPlayOutEntityTeleport( - getIdNMS(), - MathHelper.floor(this.locX * 32.0D), - MathHelper.floor(this.locY * 32.0D), - MathHelper.floor(this.locZ * 32.0D), - (byte) (int) (this.yaw * 256.0F / 360.0F), - (byte) (int) (this.pitch * 256.0F / 360.0F) - ); - - for (Object obj : this.world.players) { - if (obj instanceof EntityPlayer) { - EntityPlayer nmsPlayer = (EntityPlayer) obj; - - double distanceSquared = Utils.square(nmsPlayer.locX - this.locX) + Utils.square(nmsPlayer.locZ - this.locZ); - if (distanceSquared < 8192 && nmsPlayer.playerConnection != null) { - nmsPlayer.playerConnection.sendPacket(teleportPacket); - } - } - } - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public int getIdNMS() { - return super.getId(); // Return the real ID without checking the stack trace. - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } -} \ No newline at end of file diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/FancyMessageImpl.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/FancyMessageImpl.java deleted file mode 100644 index 03b6fb0a..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/FancyMessageImpl.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.server.v1_7_R3.ChatSerializer; -import net.minecraft.server.v1_7_R3.PacketPlayOutChat; - -import org.bukkit.ChatColor; -import org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonWriter; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; - -public class FancyMessageImpl implements FancyMessage { - - private List messageParts; - - public FancyMessageImpl(String firstPartText) { - messageParts = new ArrayList(); - messageParts.add(new MessagePart(firstPartText)); - } - - @Override - public FancyMessageImpl color(ChatColor color) { - if (!color.isColor()) { - throw new IllegalArgumentException(color.name() + " is not a color"); - } - latest().color = color; - return this; - } - - @Override - public FancyMessageImpl style(ChatColor... styles) { - for (ChatColor style : styles) { - if (!style.isFormat()) { - throw new IllegalArgumentException(style.name() + " is not a style"); - } - } - latest().styles = styles; - return this; - } - - @Override - public FancyMessageImpl file(String path) { - onClick("open_file", path); - return this; - } - - @Override - public FancyMessageImpl link(String url) { - onClick("open_url", url); - return this; - } - - @Override - public FancyMessageImpl suggest(String command) { - onClick("suggest_command", command); - return this; - } - - @Override - public FancyMessageImpl command(String command) { - onClick("run_command", command); - return this; - } - - @Override - public FancyMessageImpl tooltip(String text) { - onHover("show_text", text); - return this; - } - - @Override - public FancyMessageImpl then(Object obj) { - messageParts.add(new MessagePart(obj.toString())); - return this; - } - - @Override - public String toJSONString() { - StringWriter stringWriter = new StringWriter(); - JsonWriter json = new JsonWriter(stringWriter); - - try { - if (messageParts.size() == 1) { - latest().writeJson(json); - } else { - json.beginObject().name("text").value("").name("extra").beginArray(); - for (MessagePart part : messageParts) { - part.writeJson(json); - } - json.endArray().endObject(); - } - - } catch (IOException e) { - throw new RuntimeException("invalid message"); - } - return stringWriter.toString(); - } - - @Override - public void send(Player player){ - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(toJSONString()))); - } - - private MessagePart latest() { - return messageParts.get(messageParts.size() - 1); - } - - private void onClick(String name, String data) { - MessagePart latest = latest(); - latest.clickActionName = name; - latest.clickActionData = data; - } - - private void onHover(String name, String data) { - MessagePart latest = latest(); - latest.hoverActionName = name; - latest.hoverActionData = data; - } - - static class MessagePart { - - public ChatColor color = null; - public ChatColor[] styles = null; - public String clickActionName = null; - public String clickActionData = null; - public String hoverActionName = null; - public String hoverActionData = null; - public final String text; - - public MessagePart(final String text) { - this.text = text; - } - - public JsonWriter writeJson(final JsonWriter json) throws IOException { - json.beginObject().name("text").value(text); - if (color != null) { - json.name("color").value(color.name().toLowerCase()); - } - if (styles != null) { - for (final ChatColor style : styles) { - json.name(style == ChatColor.UNDERLINE ? "underlined" : style.name().toLowerCase()).value(true); - } - } - if (clickActionName != null && clickActionData != null) { - json.name("clickEvent") - .beginObject() - .name("action").value(clickActionName) - .name("value").value(clickActionData) - .endObject(); - } - if (hoverActionName != null && hoverActionData != null) { - json.name("hoverEvent") - .beginObject() - .name("action").value(hoverActionName) - .name("value").value(hoverActionData) - .endObject(); - } - return json.endObject(); - } - - } - -} diff --git a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/NmsManagerImpl.java b/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/NmsManagerImpl.java deleted file mode 100644 index 39765f77..00000000 --- a/NMS/v1_7_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R3/NmsManagerImpl.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R3; - -import java.lang.reflect.Method; - -import org.apache.commons.lang.NotImplementedException; -import org.bukkit.Bukkit; -import org.bukkit.Chunk; -import org.bukkit.craftbukkit.v1_7_R3.CraftWorld; -import org.bukkit.craftbukkit.v1_7_R3.entity.CraftEntity; -import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -import org.bukkit.inventory.ItemStack; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Validator; -import com.gmail.filoghost.holographicdisplays.util.VersionUtils; - -import net.minecraft.server.v1_7_R3.Entity; -import net.minecraft.server.v1_7_R3.EntityTypes; -import net.minecraft.server.v1_7_R3.MathHelper; -import net.minecraft.server.v1_7_R3.World; -import net.minecraft.server.v1_7_R3.WorldServer; - -public class NmsManagerImpl implements NMSManager { - - private Method validateEntityMethod; - - @Override - public void setup() throws Exception { - registerCustomEntity(EntityNMSHorse.class, "EntityHorse", 100); - registerCustomEntity(EntityNMSWitherSkull.class, "WitherSkull", 19); - registerCustomEntity(EntityNMSItem.class, "Item", 1); - registerCustomEntity(EntityNMSSlime.class, "Slime", 55); - - if (!VersionUtils.isForgeServer()) { - validateEntityMethod = World.class.getDeclaredMethod("a", Entity.class); - validateEntityMethod.setAccessible(true); - } - } - - @SuppressWarnings("rawtypes") - public void registerCustomEntity(Class entityClass, String name, int id) throws Exception { - if (VersionUtils.isForgeServer()) { - // Forge entity registration. - Class entityTypesClass = Class.forName("net.minecraft.server.v1_7_R3.EntityTypes"); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75626_c", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75624_e", entityClass, Integer.valueOf(id)); - } else { - // Normal entity registration. - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "d", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "f", entityClass, Integer.valueOf(id)); - } - } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) world).getHandle(); - EntityNMSHorse invisibleHorse = new EntityNMSHorse(nmsWorld, parentPiece); - invisibleHorse.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, invisibleHorse)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return invisibleHorse; - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSWitherSkull staticWitherSkull = new EntityNMSWitherSkull(nmsWorld, parentPiece); - staticWitherSkull.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, staticWitherSkull)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return staticWitherSkull; - } - - @Override - public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager); - customItem.setLocationNMS(x, y, z); - customItem.setItemStackNMS(stack); - if (!addEntityToWorld(nmsWorld, customItem)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return customItem; - } - - @Override - public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece); - touchSlime.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, touchSlime)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return touchSlime; - } - - @SuppressWarnings("unchecked") - private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) { - Validator.isTrue(Bukkit.isPrimaryThread(), "Async entity add"); - - if (validateEntityMethod == null) { - return nmsWorld.addEntity(nmsEntity, SpawnReason.CUSTOM); - } - - final int chunkX = MathHelper.floor(nmsEntity.locX / 16.0); - final int chunkZ = MathHelper.floor(nmsEntity.locZ / 16.0); - - if (!nmsWorld.chunkProviderServer.isChunkLoaded(chunkX, chunkZ)) { - // This should never happen - nmsEntity.dead = true; - return false; - } - - nmsWorld.getChunkAt(chunkX, chunkZ).a(nmsEntity); - nmsWorld.entityList.add(nmsEntity); - - try { - validateEntityMethod.invoke(nmsWorld, nmsEntity); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - return true; - } - - @Override - public boolean isNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - return ((CraftEntity) bukkitEntity).getHandle() instanceof NMSEntityBase; - } - - @Override - public NMSEntityBase getNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - - Entity nmsEntity = ((CraftEntity) bukkitEntity).getHandle(); - if (nmsEntity instanceof NMSEntityBase) { - return ((NMSEntityBase) nmsEntity); - } - - return null; - } - - @Override - public FancyMessage newFancyMessage(String text) { - return new FancyMessageImpl(text); - } - - @Override - public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.8 or higher"); - } - - @Override - public boolean isUnloadUnsure(Chunk bukkitChunk) { - return bukkitChunk.getWorld().isChunkInUse(bukkitChunk.getX(), bukkitChunk.getZ()); - } - -} diff --git a/NMS/v1_7_R4/pom.xml b/NMS/v1_7_R4/pom.xml deleted file mode 100644 index e31b96b6..00000000 --- a/NMS/v1_7_R4/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - 4.0.0 - - - com.gmail.filoghost.holographicdisplays - holographicdisplays-parent - 2.3.0-SNAPSHOT - ../../pom.xml - - - holographicdisplays-nms-v1_7_r4 - HolographicDisplays NMS v1_7_R4 - - - - elmakers-repo - http://maven.elmakers.com/repository/ - - - - - - ${project.groupId} - holographicdisplays-nms-interfaces - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-utils - 2.3.0-SNAPSHOT - - - - org.bukkit - bukkit - 1.7.10-R0.1-SNAPSHOT - true - - - - org.bukkit - craftbukkit - 1.7.10-R0.1-SNAPSHOT - true - - - - \ No newline at end of file diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSHorse.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSHorse.java deleted file mode 100644 index 8fe0f34f..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSHorse.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R4.CraftServer; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftHorse; -import org.bukkit.entity.AnimalTamer; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSHorse extends CraftHorse { - - public CraftNMSHorse(CraftServer server, EntityNMSHorse entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Horse class - @Override public void setVariant(Variant variant) { } - @Override public void setColor(Color color) { } - @Override public void setStyle(Style style) { } - @Override public void setCarryingChest(boolean chest) { } - @Override public void setDomestication(int domestication) { } - @Override public void setJumpStrength(double jump) { } - - // Methods form Ageable class - @Override public void setAge(int age) { } - @Override public void setAgeLock(boolean lock) { } - @Override public void setBreed(boolean breed) { } - @Override public void setAdult() { } - @Override public void setBaby() { } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Tameable - @Override public void setTamed(boolean tame) { } - @Override public void setOwner(AnimalTamer owner) { } -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSItem.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSItem.java deleted file mode 100644 index f0e9a63b..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R4.CraftServer; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftItem; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; - -public class CraftNMSItem extends CraftItem { - - public CraftNMSItem(CraftServer server, EntityNMSItem entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Item - @Override public void setItemStack(ItemStack stack) { } - @Override public void setPickupDelay(int delay) { } -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSSlime.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSSlime.java deleted file mode 100644 index 764f3c01..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSSlime.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import java.util.Collection; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R4.CraftServer; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftSlime; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.util.Vector; - -public class CraftNMSSlime extends CraftSlime { - - public CraftNMSSlime(CraftServer server, EntityNMSSlime entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Methods from LivingEntity class - @Override public boolean addPotionEffect(PotionEffect effect) { return false; } - @Override public boolean addPotionEffect(PotionEffect effect, boolean param) { return false; } - @Override public boolean addPotionEffects(Collection effects) { return false; } - @Override public void setRemoveWhenFarAway(boolean remove) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - - // Methods from Slime - @Override public void setSize(int size) { } -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSWitherSkull.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSWitherSkull.java deleted file mode 100644 index 6266b623..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/CraftNMSWitherSkull.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import org.bukkit.EntityEffect; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_7_R4.CraftServer; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftWitherSkull; -import org.bukkit.entity.Entity; -import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.util.Vector; - -public class CraftNMSWitherSkull extends CraftWitherSkull { - - public CraftNMSWitherSkull(CraftServer server, EntityNMSWitherSkull entity) { - super(server, entity); - } - - // Disallow all the bukkit methods. - - @Override - public void remove() { - // Cannot be removed, this is the most important to override. - } - - // Method from Fireball - @Override public void setDirection(Vector dir) { } - - // Method from Projectile - @Override public void setBounce(boolean bounce) { } - - // Methods from Explosive - @Override public void setYield(float yield) { } - @Override public void setIsIncendiary(boolean fire) { } - - // Methods from Entity - @Override public void setVelocity(Vector vel) { } - @Override public boolean teleport(Location loc) { return false; } - @Override public boolean teleport(Entity entity) { return false; } - @Override public boolean teleport(Location loc, TeleportCause cause) { return false; } - @Override public boolean teleport(Entity entity, TeleportCause cause) { return false; } - @Override public void setFireTicks(int ticks) { } - @Override public boolean setPassenger(Entity entity) { return false; } - @Override public boolean eject() { return false; } - @Override public boolean leaveVehicle() { return false; } - @Override public void playEffect(EntityEffect effect) { } - -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSHorse.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSHorse.java deleted file mode 100644 index 2c23c9f4..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSHorse.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R4.Entity; -import net.minecraft.server.v1_7_R4.EntityHorse; -import net.minecraft.server.v1_7_R4.NBTTagCompound; -import net.minecraft.server.v1_7_R4.World; - -public class EntityNMSHorse extends EntityHorse implements NMSHorse { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSHorse(World world, HologramLine parentPiece) { - super(world); - super.ageLocked = true; - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setAge(-1700000); // This is a magic value. No one will see the real horse. - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The horse dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public void setCustomNameNMS(String name) { - if (name != null && name.length() > 300) { - name = name.substring(0, 300); - } - super.setCustomName(name); - super.setCustomNameVisible(name != null && !name.isEmpty()); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSHorse(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public String getCustomNameNMS() { - return super.getCustomName(); - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", (double) 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", (double) 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSItem.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSItem.java deleted file mode 100644 index 7f55cd49..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSItem.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ItemUtils; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R4.Blocks; -import net.minecraft.server.v1_7_R4.Entity; -import net.minecraft.server.v1_7_R4.EntityHuman; -import net.minecraft.server.v1_7_R4.EntityItem; -import net.minecraft.server.v1_7_R4.EntityPlayer; -import net.minecraft.server.v1_7_R4.ItemStack; -import net.minecraft.server.v1_7_R4.NBTTagCompound; -import net.minecraft.server.v1_7_R4.NBTTagList; -import net.minecraft.server.v1_7_R4.NBTTagString; -import net.minecraft.server.v1_7_R4.World; - -public class EntityNMSItem extends EntityItem implements NMSItem { - - private boolean lockTick; - private ItemLine parentPiece; - private ItemPickupManager itemPickupManager; - - public EntityNMSItem(World world, ItemLine piece, ItemPickupManager itemPickupManager) { - super(world); - super.pickupDelay = Integer.MAX_VALUE; - this.parentPiece = piece; - this.itemPickupManager = itemPickupManager; - } - - @Override - public void h() { - - // So it won't get removed. - ticksLived = 0; - age = 0; - pickupDelay = Integer.MAX_VALUE; - - if (!lockTick) { - super.h(); - } - } - - @Override - public ItemStack getItemStack() { - // Dirty method to check if the icon is being picked up - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getClassName().contains("EntityInsentient")) { - return null; // Try to pickup this, dear entity ignoring the pickupDelay! - } - - return super.getItemStack(); - } - - // Method called when a player is near. - @Override - public void b_(EntityHuman human) { - - if (parentPiece.getPickupHandler() != null && human instanceof EntityPlayer) { - itemPickupManager.handleItemLinePickup((Player) human.getBukkitEntity(), parentPiece.getPickupHandler(), parentPiece.getParent()); - // It is never added to the inventory. - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSItem(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public void setItemStackNMS(org.bukkit.inventory.ItemStack stack) { - ItemStack newItem = CraftItemStack.asNMSCopy(stack); - - if (newItem == null) { - newItem = new ItemStack(Blocks.BEDROCK); - } - - if (newItem.tag == null) { - newItem.tag = new NBTTagCompound(); - } - NBTTagCompound display = newItem.tag.getCompound("display"); - - if (!newItem.tag.hasKey("display")) { - newItem.tag.set("display", display); - } - - NBTTagList tagList = new NBTTagList(); - tagList.add(new NBTTagString(ItemUtils.ANTISTACK_LORE)); // Antistack lore - - display.set("Lore", tagList); - newItem.count = 0; - setItemStack(newItem); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public ItemLine getHologramLine() { - return parentPiece; - } - - @Override - public void allowPickup(boolean pickup) { - if (pickup) { - super.pickupDelay = 0; - } else { - super.pickupDelay = Integer.MAX_VALUE; - } - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } - - @Override - public Object getRawItemStack() { - return super.getItemStack(); - } -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSSlime.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSSlime.java deleted file mode 100644 index 38bc8c84..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSSlime.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftEntity; -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSSlime; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; - -import net.minecraft.server.v1_7_R4.DamageSource; -import net.minecraft.server.v1_7_R4.Entity; -import net.minecraft.server.v1_7_R4.EntityDamageSource; -import net.minecraft.server.v1_7_R4.EntityPlayer; -import net.minecraft.server.v1_7_R4.EntitySlime; -import net.minecraft.server.v1_7_R4.NBTTagCompound; -import net.minecraft.server.v1_7_R4.World; - -public class EntityNMSSlime extends EntitySlime implements NMSSlime { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSSlime(World world, HologramLine parentPiece) { - super(world); - super.persistent = true; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - setSize(1); - setInvisible(true); - this.parentPiece = parentPiece; - } - - @Override - public void h() { - // Checks every 20 ticks. - if (ticksLived % 20 == 0) { - // The slime dies without a vehicle. - if (this.vehicle == null) { - die(); - } - } - - if (!lockTick) { - super.h(); - } - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean damageEntity(DamageSource damageSource, float amount) { - if (damageSource instanceof EntityDamageSource) { - EntityDamageSource entityDamageSource = (EntityDamageSource) damageSource; - if (entityDamageSource.getEntity() instanceof EntityPlayer) { - Bukkit.getPluginManager().callEvent(new PlayerInteractEntityEvent(((EntityPlayer) entityDamageSource.getEntity()).getBukkitEntity(), getBukkitEntity())); - } - } - return false; - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public void setCustomName(String customName) { - // Locks the custom name. - } - - @Override - public void setCustomNameVisible(boolean visible) { - // Locks the custom name. - } - - @Override - public void makeSound(String sound, float volume, float pitch) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSSlime(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public boolean isDeadNMS() { - return super.dead; - } - - @Override - public void killEntityNMS() { - die(); - } - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - } - - @Override - public int getIdNMS() { - return this.getId(); - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } - - @Override - public void setPassengerOfNMS(NMSEntityBase vehicleBase) { - if (vehicleBase == null || !(vehicleBase instanceof Entity)) { - // It should never dismount - return; - } - - Entity entity = (Entity) vehicleBase; - - try { - ReflectionUtils.setPrivateField(Entity.class, this, "g", 0.0); - ReflectionUtils.setPrivateField(Entity.class, this, "h", 0.0); - } catch (Exception ex) { - DebugHandler.handleDebugException(ex); - } - - if (this.vehicle != null) { - this.vehicle.passenger = null; - } - - this.vehicle = entity; - entity.passenger = this; - } -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSWitherSkull.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSWitherSkull.java deleted file mode 100644 index 09c3f09e..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/EntityNMSWitherSkull.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftEntity; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Utils; - -import net.minecraft.server.v1_7_R4.EntityPlayer; -import net.minecraft.server.v1_7_R4.EntityWitherSkull; -import net.minecraft.server.v1_7_R4.NBTTagCompound; -import net.minecraft.server.v1_7_R4.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_7_R4.World; - -public class EntityNMSWitherSkull extends EntityWitherSkull implements NMSWitherSkull { - - private boolean lockTick; - private HologramLine parentPiece; - - public EntityNMSWitherSkull(World world, HologramLine parentPiece) { - super(world); - super.motX = 0.0; - super.motY = 0.0; - super.motZ = 0.0; - super.dirX = 0.0; - super.dirY = 0.0; - super.dirZ = 0.0; - super.boundingBox.a = 0.0; - super.boundingBox.b = 0.0; - super.boundingBox.c = 0.0; - super.boundingBox.d = 0.0; - super.boundingBox.e = 0.0; - super.boundingBox.f = 0.0; - a(0.0F, 0.0F); - this.parentPiece = parentPiece; - } - - @Override - public void b(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean c(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public boolean d(NBTTagCompound nbttagcompound) { - // Do not save NBT. - return false; - } - - @Override - public void e(NBTTagCompound nbttagcompound) { - // Do not save NBT. - } - - @Override - public boolean isInvulnerable() { - /* - * The field Entity.invulnerable is private. - * It's only used while saving NBTTags, but since the entity would be killed - * on chunk unload, we prefer to override isInvulnerable(). - */ - return true; - } - - @Override - public int getId() { - StackTraceElement element = ReflectionUtils.getStackTraceElement(2); - if (element != null && element.getFileName() != null && element.getFileName().equals("EntityTrackerEntry.java") && element.getLineNumber() > 134 && element.getLineNumber() < 144) { - // Then this method is being called when creating a new packet, we return a fake ID! - return -1; - } - - return super.getId(); - } - - @Override - public void h() { - if (!lockTick) { - super.h(); - } - } - - @Override - public void makeSound(String sound, float f1, float f2) { - // Remove sounds. - } - - @Override - public void setLockTick(boolean lock) { - lockTick = lock; - } - - @Override - public void die() { - setLockTick(false); - super.die(); - } - - @Override - public CraftEntity getBukkitEntity() { - if (super.bukkitEntity == null) { - this.bukkitEntity = new CraftNMSWitherSkull(this.world.getServer(), this); - } - return this.bukkitEntity; - } - - @Override - public void killEntityNMS() { - die(); - } - - - @Override - public void setLocationNMS(double x, double y, double z) { - super.setPosition(x, y, z); - - // Send a packet near to update the position. - PacketPlayOutEntityTeleport teleportPacket = new PacketPlayOutEntityTeleport(this); - - for (Object obj : this.world.players) { - if (obj instanceof EntityPlayer) { - EntityPlayer nmsPlayer = (EntityPlayer) obj; - - double distanceSquared = Utils.square(nmsPlayer.locX - this.locX) + Utils.square(nmsPlayer.locZ - this.locZ); - if (distanceSquared < 8192 && nmsPlayer.playerConnection != null) { - nmsPlayer.playerConnection.sendPacket(teleportPacket); - } - } - } - } - - @Override - public boolean isDeadNMS() { - return this.dead; - } - - @Override - public int getIdNMS() { - return super.getId(); // Return the real ID without checking the stack trace. - } - - @Override - public HologramLine getHologramLine() { - return parentPiece; - } - - @Override - public org.bukkit.entity.Entity getBukkitEntityNMS() { - return getBukkitEntity(); - } -} \ No newline at end of file diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/FancyMessageImpl.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/FancyMessageImpl.java deleted file mode 100644 index 2c1281e7..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/FancyMessageImpl.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import java.io.IOException; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.server.v1_7_R4.ChatSerializer; -import net.minecraft.server.v1_7_R4.PacketPlayOutChat; - -import org.bukkit.ChatColor; -import org.bukkit.craftbukkit.libs.com.google.gson.stream.JsonWriter; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; -import org.bukkit.entity.Player; - -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; - -public class FancyMessageImpl implements FancyMessage { - - private List messageParts; - - public FancyMessageImpl(String firstPartText) { - messageParts = new ArrayList(); - messageParts.add(new MessagePart(firstPartText)); - } - - @Override - public FancyMessageImpl color(ChatColor color) { - if (!color.isColor()) { - throw new IllegalArgumentException(color.name() + " is not a color"); - } - latest().color = color; - return this; - } - - @Override - public FancyMessageImpl style(ChatColor... styles) { - for (ChatColor style : styles) { - if (!style.isFormat()) { - throw new IllegalArgumentException(style.name() + " is not a style"); - } - } - latest().styles = styles; - return this; - } - - @Override - public FancyMessageImpl file(String path) { - onClick("open_file", path); - return this; - } - - @Override - public FancyMessageImpl link(String url) { - onClick("open_url", url); - return this; - } - - @Override - public FancyMessageImpl suggest(String command) { - onClick("suggest_command", command); - return this; - } - - @Override - public FancyMessageImpl command(String command) { - onClick("run_command", command); - return this; - } - - @Override - public FancyMessageImpl tooltip(String text) { - onHover("show_text", text); - return this; - } - - @Override - public FancyMessageImpl then(Object obj) { - messageParts.add(new MessagePart(obj.toString())); - return this; - } - - @Override - public String toJSONString() { - StringWriter stringWriter = new StringWriter(); - JsonWriter json = new JsonWriter(stringWriter); - - try { - if (messageParts.size() == 1) { - latest().writeJson(json); - } else { - json.beginObject().name("text").value("").name("extra").beginArray(); - for (MessagePart part : messageParts) { - part.writeJson(json); - } - json.endArray().endObject(); - } - - } catch (IOException e) { - throw new RuntimeException("invalid message"); - } - return stringWriter.toString(); - } - - @Override - public void send(Player player){ - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutChat(ChatSerializer.a(toJSONString()))); - } - - private MessagePart latest() { - return messageParts.get(messageParts.size() - 1); - } - - private void onClick(String name, String data) { - MessagePart latest = latest(); - latest.clickActionName = name; - latest.clickActionData = data; - } - - private void onHover(String name, String data) { - MessagePart latest = latest(); - latest.hoverActionName = name; - latest.hoverActionData = data; - } - - static class MessagePart { - - public ChatColor color = null; - public ChatColor[] styles = null; - public String clickActionName = null; - public String clickActionData = null; - public String hoverActionName = null; - public String hoverActionData = null; - public final String text; - - public MessagePart(final String text) { - this.text = text; - } - - public JsonWriter writeJson(final JsonWriter json) throws IOException { - json.beginObject().name("text").value(text); - if (color != null) { - json.name("color").value(color.name().toLowerCase()); - } - if (styles != null) { - for (final ChatColor style : styles) { - json.name(style == ChatColor.UNDERLINE ? "underlined" : style.name().toLowerCase()).value(true); - } - } - if (clickActionName != null && clickActionData != null) { - json.name("clickEvent") - .beginObject() - .name("action").value(clickActionName) - .name("value").value(clickActionData) - .endObject(); - } - if (hoverActionName != null && hoverActionData != null) { - json.name("hoverEvent") - .beginObject() - .name("action").value(hoverActionName) - .name("value").value(hoverActionData) - .endObject(); - } - return json.endObject(); - } - - } -} diff --git a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/NmsManagerImpl.java b/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/NmsManagerImpl.java deleted file mode 100644 index 3d27577e..00000000 --- a/NMS/v1_7_R4/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_7_R4/NmsManagerImpl.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.nms.v1_7_R4; - -import java.lang.reflect.Method; - -import org.apache.commons.lang.NotImplementedException; -import org.bukkit.Bukkit; -import org.bukkit.Chunk; -import org.bukkit.craftbukkit.v1_7_R4.CraftWorld; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftEntity; -import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; -import org.bukkit.inventory.ItemStack; - -import com.gmail.filoghost.holographicdisplays.api.line.HologramLine; -import com.gmail.filoghost.holographicdisplays.api.line.ItemLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.FancyMessage; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; -import com.gmail.filoghost.holographicdisplays.util.DebugHandler; -import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; -import com.gmail.filoghost.holographicdisplays.util.Validator; -import com.gmail.filoghost.holographicdisplays.util.VersionUtils; - -import net.minecraft.server.v1_7_R4.Entity; -import net.minecraft.server.v1_7_R4.EntityTypes; -import net.minecraft.server.v1_7_R4.MathHelper; -import net.minecraft.server.v1_7_R4.World; -import net.minecraft.server.v1_7_R4.WorldServer; - -public class NmsManagerImpl implements NMSManager { - - private Method validateEntityMethod; - - @Override - public void setup() throws Exception { - registerCustomEntity(EntityNMSHorse.class, "EntityHorse", 100); - registerCustomEntity(EntityNMSWitherSkull.class, "WitherSkull", 19); - registerCustomEntity(EntityNMSItem.class, "Item", 1); - registerCustomEntity(EntityNMSSlime.class, "Slime", 55); - - if (!VersionUtils.isForgeServer()) { - validateEntityMethod = World.class.getDeclaredMethod("a", Entity.class); - validateEntityMethod.setAccessible(true); - } - } - - @SuppressWarnings("rawtypes") - public void registerCustomEntity(Class entityClass, String name, int id) throws Exception { - if (VersionUtils.isForgeServer()) { - // Forge entity registration. - Class entityTypesClass = Class.forName("net.minecraft.server.v1_7_R4.EntityTypes"); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75626_c", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(entityTypesClass, "field_75624_e", entityClass, Integer.valueOf(id)); - } else { - // Normal entity registration. - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "d", entityClass, name); - ReflectionUtils.putInPrivateStaticMap(EntityTypes.class, "f", entityClass, Integer.valueOf(id)); - } - } - - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) world).getHandle(); - EntityNMSHorse invisibleHorse = new EntityNMSHorse(nmsWorld, parentPiece); - invisibleHorse.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, invisibleHorse)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return invisibleHorse; - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSWitherSkull staticWitherSkull = new EntityNMSWitherSkull(nmsWorld, parentPiece); - staticWitherSkull.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, staticWitherSkull)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return staticWitherSkull; - } - - @Override - public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSItem customItem = new EntityNMSItem(nmsWorld, parentPiece, itemPickupManager); - customItem.setLocationNMS(x, y, z); - customItem.setItemStackNMS(stack); - if (!addEntityToWorld(nmsWorld, customItem)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return customItem; - } - - @Override - public EntityNMSSlime spawnNMSSlime(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); - EntityNMSSlime touchSlime = new EntityNMSSlime(nmsWorld, parentPiece); - touchSlime.setLocationNMS(x, y, z); - if (!addEntityToWorld(nmsWorld, touchSlime)) { - DebugHandler.handleSpawnFail(parentPiece); - } - return touchSlime; - } - - @SuppressWarnings("unchecked") - private boolean addEntityToWorld(WorldServer nmsWorld, Entity nmsEntity) { - Validator.isTrue(Bukkit.isPrimaryThread(), "Async entity add"); - - if (validateEntityMethod == null) { - return nmsWorld.addEntity(nmsEntity, SpawnReason.CUSTOM); - } - - final int chunkX = MathHelper.floor(nmsEntity.locX / 16.0); - final int chunkZ = MathHelper.floor(nmsEntity.locZ / 16.0); - - if (!nmsWorld.chunkProviderServer.isChunkLoaded(chunkX, chunkZ)) { - // This should never happen - nmsEntity.dead = true; - return false; - } - - nmsWorld.getChunkAt(chunkX, chunkZ).a(nmsEntity); - nmsWorld.entityList.add(nmsEntity); - - try { - validateEntityMethod.invoke(nmsWorld, nmsEntity); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - return true; - } - - @Override - public boolean isNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - return ((CraftEntity) bukkitEntity).getHandle() instanceof NMSEntityBase; - } - - @Override - public NMSEntityBase getNMSEntityBase(org.bukkit.entity.Entity bukkitEntity) { - - Entity nmsEntity = ((CraftEntity) bukkitEntity).getHandle(); - if (nmsEntity instanceof NMSEntityBase) { - return ((NMSEntityBase) nmsEntity); - } - - return null; - } - - @Override - public FancyMessage newFancyMessage(String text) { - return new FancyMessageImpl(text); - } - - @Override - public NMSArmorStand spawnNMSArmorStand(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.8 or higher"); - } - - @Override - public boolean isUnloadUnsure(Chunk bukkitChunk) { - return bukkitChunk.getWorld().isChunkInUse(bukkitChunk.getX(), bukkitChunk.getZ()); - } - -} diff --git a/NMS/v1_8_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R1/NmsManagerImpl.java b/NMS/v1_8_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R1/NmsManagerImpl.java index 11794bf7..f7284388 100644 --- a/NMS/v1_8_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R1/NmsManagerImpl.java +++ b/NMS/v1_8_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R1/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_8_R1; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_8_R1.CraftWorld; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -61,16 +58,6 @@ public class NmsManagerImpl implements NMSManager { } } - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); diff --git a/NMS/v1_8_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R2/NmsManagerImpl.java b/NMS/v1_8_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R2/NmsManagerImpl.java index 4d367d52..b4838617 100644 --- a/NMS/v1_8_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R2/NmsManagerImpl.java +++ b/NMS/v1_8_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R2/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_8_R2; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_8_R2.CraftWorld; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -61,16 +58,6 @@ public class NmsManagerImpl implements NMSManager { } } - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); diff --git a/NMS/v1_8_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R3/NmsManagerImpl.java b/NMS/v1_8_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R3/NmsManagerImpl.java index b8fe44a3..d03f9969 100644 --- a/NMS/v1_8_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R3/NmsManagerImpl.java +++ b/NMS/v1_8_R3/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_8_R3/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_8_R3; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -61,16 +58,6 @@ public class NmsManagerImpl implements NMSManager { } } - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); diff --git a/NMS/v1_9_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R1/NmsManagerImpl.java b/NMS/v1_9_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R1/NmsManagerImpl.java index aed67a7e..4b8e9645 100644 --- a/NMS/v1_9_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R1/NmsManagerImpl.java +++ b/NMS/v1_9_R1/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R1/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_9_R1; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_9_R1.CraftWorld; @@ -16,9 +15,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -55,16 +52,6 @@ public class NmsManagerImpl implements NMSManager { } } - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); diff --git a/NMS/v1_9_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R2/NmsManagerImpl.java b/NMS/v1_9_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R2/NmsManagerImpl.java index 8de8e1ee..f217aa90 100644 --- a/NMS/v1_9_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R2/NmsManagerImpl.java +++ b/NMS/v1_9_R2/src/main/java/com/gmail/filoghost/holographicdisplays/nms/v1_9_R2/NmsManagerImpl.java @@ -2,7 +2,6 @@ package com.gmail.filoghost.holographicdisplays.nms.v1_9_R2; import java.lang.reflect.Method; -import org.apache.commons.lang.NotImplementedException; import org.bukkit.Bukkit; import org.bukkit.Chunk; import org.bukkit.craftbukkit.v1_9_R2.CraftChunk; @@ -17,9 +16,7 @@ import com.gmail.filoghost.holographicdisplays.nms.interfaces.ItemPickupManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.NMSManager; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSArmorStand; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSHorse; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSItem; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSWitherSkull; import com.gmail.filoghost.holographicdisplays.util.DebugHandler; import com.gmail.filoghost.holographicdisplays.util.ReflectionUtils; import com.gmail.filoghost.holographicdisplays.util.Validator; @@ -56,16 +53,6 @@ public class NmsManagerImpl implements NMSManager { } } - @Override - public NMSHorse spawnNMSHorse(org.bukkit.World world, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - - @Override - public NMSWitherSkull spawnNMSWitherSkull(org.bukkit.World bukkitWorld, double x, double y, double z, HologramLine parentPiece) { - throw new NotImplementedException("Method can only be used on 1.7 or lower"); - } - @Override public NMSItem spawnNMSItem(org.bukkit.World bukkitWorld, double x, double y, double z, ItemLine parentPiece, ItemStack stack, ItemPickupManager itemPickupManager) { WorldServer nmsWorld = ((CraftWorld) bukkitWorld).getHandle(); diff --git a/Plugin/pom.xml b/Plugin/pom.xml index 9af543ec..971f9150 100644 --- a/Plugin/pom.xml +++ b/Plugin/pom.xml @@ -47,30 +47,6 @@ holographicdisplays-nms-interfaces 2.3.0-SNAPSHOT - - - ${project.groupId} - holographicdisplays-nms-v1_7_r1 - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-nms-v1_7_r2 - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-nms-v1_7_r3 - 2.3.0-SNAPSHOT - - - - ${project.groupId} - holographicdisplays-nms-v1_7_r4 - 2.3.0-SNAPSHOT - ${project.groupId} diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/HolographicDisplays.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/HolographicDisplays.java index 405685f9..7836ebca 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/HolographicDisplays.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/HolographicDisplays.java @@ -90,7 +90,7 @@ public class HolographicDisplays extends JavaPlugin { printWarnAndDisable( "******************************************************", " This version of HolographicDisplays only", - " works on server versions from 1.7 to 1.13.", + " works on server versions from 1.8 to 1.13.", " The plugin will be disabled.", "******************************************************" ); @@ -146,11 +146,7 @@ public class HolographicDisplays extends JavaPlugin { if (versionNumbersMatcher.find()) { String versionNumbers = versionNumbersMatcher.group(); - if (NMSVersion.isBetween(NMSVersion.v1_7_R1, NMSVersion.v1_7_R4)) { - if (!VersionUtils.isVersionBetweenEqual(versionNumbers, "3.6.4", "3.7.0")) { - requiredVersionError = "between 3.6.4 and 3.7.0"; - } - } else if (NMSVersion.isBetween(NMSVersion.v1_8_R1, NMSVersion.v1_8_R3)) { + if (NMSVersion.isBetween(NMSVersion.v1_8_R1, NMSVersion.v1_8_R3)) { if (!VersionUtils.isVersionBetweenEqual(versionNumbers, "3.6.4", "3.6.5") && !VersionUtils.isVersionGreaterEqual(versionNumbers, "4.1")) { requiredVersionError = "between 3.6.4 and 3.6.5 or higher than 4.1"; } diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/current/ProtocolLibHookImpl.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/current/ProtocolLibHookImpl.java index 42818967..d04ba1c1 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/current/ProtocolLibHookImpl.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/current/ProtocolLibHookImpl.java @@ -41,8 +41,6 @@ import com.gmail.filoghost.holographicdisplays.util.Utils; /** * This is for the ProtocolLib versions containing the WrappedDataWatcher.WrappedDataWatcherObject class. - * - * These versions are only used from 1.8, there is no need to handle 1.7 entities. */ public class ProtocolLibHookImpl implements ProtocolLibHook { diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/old/ProtocolLibHookImpl.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/old/ProtocolLibHookImpl.java index 550e69bb..a6010854 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/old/ProtocolLibHookImpl.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/bridge/protocollib/old/ProtocolLibHookImpl.java @@ -27,31 +27,23 @@ import com.gmail.filoghost.holographicdisplays.object.line.CraftItemLine; import com.gmail.filoghost.holographicdisplays.object.line.CraftTextLine; import com.gmail.filoghost.holographicdisplays.object.line.CraftTouchSlimeLine; import com.gmail.filoghost.holographicdisplays.object.line.CraftTouchableLine; -import com.gmail.filoghost.holographicdisplays.util.NMSVersion; import com.gmail.filoghost.holographicdisplays.util.Utils; -import com.gmail.filoghost.holographicdisplays.util.VersionUtils; /** * This is for the ProtocolLib versions without the WrappedDataWatcher.WrappedDataWatcherObject class. * - * These versions are only used for 1.7 and 1.8. + * These versions are only used for 1.8. */ public class ProtocolLibHookImpl implements ProtocolLibHook { private NMSManager nmsManager; - private int customNameWatcherIndex; + private int customNameWatcherIndex = 2; @Override public boolean hook(Plugin plugin, NMSManager nmsManager) { this.nmsManager = nmsManager; - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - customNameWatcherIndex = 2; - } else { - customNameWatcherIndex = 10; - } - ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(plugin, ListenerPriority.NORMAL, PacketType.Play.Server.SPAWN_ENTITY_LIVING, PacketType.Play.Server.SPAWN_ENTITY, PacketType.Play.Server.ENTITY_METADATA) { @Override @@ -100,7 +92,7 @@ public class ProtocolLibHookImpl implements ProtocolLibHook { WrapperPlayServerSpawnEntity spawnEntityPacket = new WrapperPlayServerSpawnEntity(packet); int objectId = spawnEntityPacket.getType(); - if (objectId != ObjectTypes.ITEM_STACK && objectId != ObjectTypes.WITHER_SKULL && objectId != ObjectTypes.ARMOR_STAND) { + if (objectId != ObjectTypes.ITEM_STACK && objectId != ObjectTypes.ARMOR_STAND) { return; } @@ -129,8 +121,8 @@ public class ProtocolLibHookImpl implements ProtocolLibHook { return; } - if (entity.getType() != EntityType.HORSE && !VersionUtils.isArmorstand(entity.getType())) { - // Enough, only horses and armorstands are used with custom names. + if (entity.getType() != EntityType.ARMOR_STAND) { + // Enough, only armorstands are used with custom names. return; } @@ -204,19 +196,8 @@ public class ProtocolLibHookImpl implements ProtocolLibHook { CraftTextLine textLine = (CraftTextLine) line; if (textLine.isSpawned()) { - AbstractPacket nameablePacket = new WrapperPlayServerSpawnEntityLiving(textLine.getNmsNameble().getBukkitEntityNMS()); nameablePacket.sendPacket(player); - - if (textLine.getNmsSkullVehicle() != null) { - AbstractPacket vehiclePacket = new WrapperPlayServerSpawnEntity(textLine.getNmsSkullVehicle().getBukkitEntityNMS(), ObjectTypes.WITHER_SKULL, 0); - vehiclePacket.sendPacket(player); - - WrapperPlayServerAttachEntity attachPacket = new WrapperPlayServerAttachEntity(); - attachPacket.setVehicleId(textLine.getNmsSkullVehicle().getIdNMS()); - attachPacket.setEntityId(textLine.getNmsNameble().getIdNMS()); - attachPacket.sendPacket(player); - } } } else if (line instanceof CraftItemLine) { @@ -226,14 +207,7 @@ public class ProtocolLibHookImpl implements ProtocolLibHook { AbstractPacket itemPacket = new WrapperPlayServerSpawnEntity(itemLine.getNmsItem().getBukkitEntityNMS(), ObjectTypes.ITEM_STACK, 1); itemPacket.sendPacket(player); - AbstractPacket vehiclePacket; - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - // In 1.8 we have armor stands, that are living entities. - vehiclePacket = new WrapperPlayServerSpawnEntityLiving(itemLine.getNmsVehicle().getBukkitEntityNMS()); - } else { - vehiclePacket = new WrapperPlayServerSpawnEntity(itemLine.getNmsVehicle().getBukkitEntityNMS(), ObjectTypes.WITHER_SKULL, 0); - } - + AbstractPacket vehiclePacket = new WrapperPlayServerSpawnEntityLiving(itemLine.getNmsVehicle().getBukkitEntityNMS()); vehiclePacket.sendPacket(player); WrapperPlayServerAttachEntity attachPacket = new WrapperPlayServerAttachEntity(); @@ -261,15 +235,7 @@ public class ProtocolLibHookImpl implements ProtocolLibHook { CraftTouchSlimeLine touchSlime = touchableLine.getTouchSlime(); if (touchSlime.isSpawned()) { - AbstractPacket vehiclePacket; - - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - // Armor stand vehicle - vehiclePacket = new WrapperPlayServerSpawnEntityLiving(touchSlime.getNmsVehicle().getBukkitEntityNMS()); - } else { - // Wither skull vehicle - vehiclePacket = new WrapperPlayServerSpawnEntity(touchSlime.getNmsVehicle().getBukkitEntityNMS(), ObjectTypes.WITHER_SKULL, 0); - } + AbstractPacket vehiclePacket = new WrapperPlayServerSpawnEntityLiving(touchSlime.getNmsVehicle().getBukkitEntityNMS()); vehiclePacket.sendPacket(player); AbstractPacket slimePacket = new WrapperPlayServerSpawnEntityLiving(touchSlime.getNmsSlime().getBukkitEntityNMS()); @@ -300,7 +266,7 @@ public class ProtocolLibHookImpl implements ProtocolLibHook { } private boolean isHologramType(EntityType type) { - return type == EntityType.HORSE || type == EntityType.WITHER_SKULL || type == EntityType.DROPPED_ITEM || type == EntityType.SLIME || VersionUtils.isArmorstand(type); // To maintain backwards compatibility + return type == EntityType.ARMOR_STAND || type == EntityType.DROPPED_ITEM || type == EntityType.SLIME; } private Hologram getHologram(Entity bukkitEntity) { diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/HologramsCommandHandler.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/HologramsCommandHandler.java index 441bdb38..0bdf791e 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/HologramsCommandHandler.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/HologramsCommandHandler.java @@ -17,7 +17,6 @@ import com.gmail.filoghost.holographicdisplays.commands.main.subs.CopyCommand; import com.gmail.filoghost.holographicdisplays.commands.main.subs.CreateCommand; import com.gmail.filoghost.holographicdisplays.commands.main.subs.DeleteCommand; import com.gmail.filoghost.holographicdisplays.commands.main.subs.EditCommand; -import com.gmail.filoghost.holographicdisplays.commands.main.subs.FixCommand; import com.gmail.filoghost.holographicdisplays.commands.main.subs.HelpCommand; import com.gmail.filoghost.holographicdisplays.commands.main.subs.InfoCommand; import com.gmail.filoghost.holographicdisplays.commands.main.subs.InsertlineCommand; @@ -51,7 +50,6 @@ public class HologramsCommandHandler implements CommandExecutor { registerSubCommand(new AlignCommand()); registerSubCommand(new CopyCommand()); registerSubCommand(new ReloadCommand()); - registerSubCommand(new FixCommand()); registerSubCommand(new RemovelineCommand()); registerSubCommand(new SetlineCommand()); diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/subs/FixCommand.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/subs/FixCommand.java deleted file mode 100644 index 8c24c8a0..00000000 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/commands/main/subs/FixCommand.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.gmail.filoghost.holographicdisplays.commands.main.subs; - -import java.util.Arrays; -import java.util.List; - -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.command.CommandSender; - -import com.gmail.filoghost.holographicdisplays.commands.Colors; -import com.gmail.filoghost.holographicdisplays.commands.CommandValidator; -import com.gmail.filoghost.holographicdisplays.commands.Strings; -import com.gmail.filoghost.holographicdisplays.commands.main.HologramSubCommand; -import com.gmail.filoghost.holographicdisplays.exception.CommandException; -import com.gmail.filoghost.holographicdisplays.object.NamedHologram; -import com.gmail.filoghost.holographicdisplays.object.NamedHologramManager; -import com.gmail.filoghost.holographicdisplays.util.NMSVersion; - -public class FixCommand extends HologramSubCommand { - - public FixCommand() { - super("fix"); - setPermission(Strings.BASE_PERM + "fix"); - } - - @Override - public String getPossibleArguments() { - return ""; - } - - @Override - public int getMinimumArguments() { - return 1; - } - - - @Override - public void execute(CommandSender sender, String label, String[] args) throws CommandException { - - CommandValidator.isTrue(!NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1), "This command is no longer necessary in 1.8+. The holograms already use the correct ambient light."); - - NamedHologram hologram = NamedHologramManager.getHologram(args[0].toLowerCase()); - CommandValidator.notNull(hologram, Strings.noSuchHologram(args[0].toLowerCase())); - - if (args.length <= 1) { - sender.sendMessage(Colors.PRIMARY + "This command will put a glowstone 16 blocks above the hologram to fix the lightning."); - sender.sendMessage(Colors.PRIMARY + "If you're sure, type " + Colors.SECONDARY + "/" + label + " fix " + args[0].toLowerCase() + " confirm"); - return; - } - - if (args[1].equalsIgnoreCase("confirm")) { - - Block block = hologram.getWorld().getBlockAt((int) hologram.getX(), (int) hologram.getY() + 16, (int) hologram.getZ()); - String oldType = block.getType().toString().replace("_", " ").toLowerCase(); - block.setType(Material.GLOWSTONE); - - sender.sendMessage(Colors.PRIMARY + "Changed the block 16 block above the hologram (" + oldType + ") to glowstone!"); - - } else { - throw new CommandException(args[1] + " is not a valid confirmation! Use \"confirm\"."); - } - } - - @Override - public List getTutorial() { - return Arrays.asList("This command will fix the lightning of a hologram,", - "placing a glowstone block 16 blocks above it.", - "That's the only way to fix it (Only for 1.7 and lower)."); - } - - @Override - public SubCommandType getType() { - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - return SubCommandType.HIDDEN; - } else { - return SubCommandType.GENERIC; - } - } - -} diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftItemLine.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftItemLine.java index eeb18c04..88c2f34a 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftItemLine.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftItemLine.java @@ -57,19 +57,9 @@ public class CraftItemLine extends CraftTouchableLine implements ItemLine { } public void setTouchHandler(TouchHandler touchHandler) { - if (nmsItem != null) { - Location loc = nmsItem.getBukkitEntityNMS().getLocation(); - - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_9_R1)) { - super.setTouchHandler(touchHandler, loc.getWorld(), loc.getX(), loc.getY() - getItemOffset(), loc.getZ()); - } else if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - super.setTouchHandler(touchHandler, loc.getWorld(), loc.getX(), loc.getY() - getItemOffset(), loc.getZ()); - } else { - super.setTouchHandler(touchHandler, loc.getWorld(), loc.getX(), loc.getY() - getItemOffset(), loc.getZ()); - } - + super.setTouchHandler(touchHandler, loc.getWorld(), loc.getX(), loc.getY() - getItemOffset(), loc.getZ()); } else { super.setTouchHandler(touchHandler, null, 0, 0, 0); } @@ -84,13 +74,8 @@ public class CraftItemLine extends CraftTouchableLine implements ItemLine { double offset = getItemOffset(); nmsItem = HolographicDisplays.getNMSManager().spawnNMSItem(world, x, y + offset, z, this, itemStack, HolographicDisplays.getMainListener()); - - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - nmsVehicle = HolographicDisplays.getNMSManager().spawnNMSArmorStand(world, x, y + offset, z, this); - } else { - nmsVehicle = HolographicDisplays.getNMSManager().spawnNMSWitherSkull(world, x, y + offset, z, this); - } - + nmsVehicle = HolographicDisplays.getNMSManager().spawnNMSArmorStand(world, x, y + offset, z, this); + nmsItem.setPassengerOfNMS(nmsVehicle); nmsItem.setLockTick(true); @@ -153,10 +138,8 @@ public class CraftItemLine extends CraftTouchableLine implements ItemLine { private double getItemOffset() { if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_9_R1)) { return Offsets.ARMOR_STAND_WITH_ITEM_1_9; - } else if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - return Offsets.ARMOR_STAND_WITH_ITEM; } else { - return Offsets.WITHER_SKULL_WITH_ITEM; + return Offsets.ARMOR_STAND_WITH_ITEM; } } diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTextLine.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTextLine.java index 145fe425..86389826 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTextLine.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTextLine.java @@ -7,8 +7,6 @@ import org.bukkit.World; import com.gmail.filoghost.holographicdisplays.HolographicDisplays; import com.gmail.filoghost.holographicdisplays.api.handler.TouchHandler; import com.gmail.filoghost.holographicdisplays.api.line.TextLine; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSCanMount; -import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSEntityBase; import com.gmail.filoghost.holographicdisplays.nms.interfaces.entity.NMSNameable; import com.gmail.filoghost.holographicdisplays.object.CraftHologram; import com.gmail.filoghost.holographicdisplays.placeholder.PlaceholdersManager; @@ -18,12 +16,8 @@ import com.gmail.filoghost.holographicdisplays.util.Offsets; public class CraftTextLine extends CraftTouchableLine implements TextLine { private String text; - private NMSNameable nmsNameble; - // Legacy code for < 1.7, not used in 1.8 and greater - private NMSEntityBase nmsSkullVehicle; - public CraftTextLine(CraftHologram parent, String text) { super(0.23, parent); @@ -71,17 +65,8 @@ public class CraftTextLine extends CraftTouchableLine implements TextLine { public void spawn(World world, double x, double y, double z) { super.spawn(world, x, y, z); - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - nmsNameble = HolographicDisplays.getNMSManager().spawnNMSArmorStand(world, x, y + getTextOffset(), z, this); - } else { - nmsNameble = HolographicDisplays.getNMSManager().spawnNMSHorse(world, x, y + Offsets.WITHER_SKULL_WITH_HORSE, z, this); - nmsSkullVehicle = HolographicDisplays.getNMSManager().spawnNMSWitherSkull(world, x, y + Offsets.WITHER_SKULL_WITH_HORSE, z, this); - - // In 1.7 it must be an instanceof NMSCanMount - ((NMSCanMount) nmsNameble).setPassengerOfNMS(nmsSkullVehicle); - nmsSkullVehicle.setLockTick(true); - } - + nmsNameble = HolographicDisplays.getNMSManager().spawnNMSArmorStand(world, x, y + getTextOffset(), z, this); + if (text != null && !text.isEmpty()) { nmsNameble.setCustomNameNMS(text); } @@ -94,11 +79,6 @@ public class CraftTextLine extends CraftTouchableLine implements TextLine { public void despawn() { super.despawn(); - if (nmsSkullVehicle != null) { - nmsSkullVehicle.killEntityNMS(); - nmsSkullVehicle = null; - } - if (nmsNameble != null) { nmsNameble.killEntityNMS(); nmsNameble = null; @@ -110,10 +90,6 @@ public class CraftTextLine extends CraftTouchableLine implements TextLine { public void teleport(double x, double y, double z) { super.teleport(x, y, z); - if (nmsSkullVehicle != null) { - nmsSkullVehicle.setLocationNMS(x, y + Offsets.WITHER_SKULL_WITH_HORSE, z); - } - if (nmsNameble != null) { nmsNameble.setLocationNMS(x, y + getTextOffset(), z); } @@ -122,18 +98,10 @@ public class CraftTextLine extends CraftTouchableLine implements TextLine { @Override public int[] getEntitiesIDs() { if (isSpawned()) { - if (nmsSkullVehicle != null) { - if (touchSlime != null) { - return ArrayUtils.addAll(new int[] {nmsNameble.getIdNMS(), nmsSkullVehicle.getIdNMS()}, touchSlime.getEntitiesIDs()); - } else { - return new int[] {nmsNameble.getIdNMS(), nmsSkullVehicle.getIdNMS()}; - } + if (touchSlime != null) { + return ArrayUtils.add(touchSlime.getEntitiesIDs(), nmsNameble.getIdNMS()); } else { - if (touchSlime != null) { - return ArrayUtils.add(touchSlime.getEntitiesIDs(), nmsNameble.getIdNMS()); - } else { - return new int[] {nmsNameble.getIdNMS()}; - } + return new int[] {nmsNameble.getIdNMS()}; } } else { return new int[0]; @@ -144,17 +112,11 @@ public class CraftTextLine extends CraftTouchableLine implements TextLine { return nmsNameble; } - public NMSEntityBase getNmsSkullVehicle() { - return nmsSkullVehicle; - } - private double getTextOffset() { if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_9_R1)) { return Offsets.ARMOR_STAND_ALONE_1_9; - } else if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - return Offsets.ARMOR_STAND_ALONE; } else { - return Offsets.WITHER_SKULL_WITH_HORSE; + return Offsets.ARMOR_STAND_ALONE; } } diff --git a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTouchSlimeLine.java b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTouchSlimeLine.java index 0702da07..852fcae4 100644 --- a/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTouchSlimeLine.java +++ b/Plugin/src/main/java/com/gmail/filoghost/holographicdisplays/object/line/CraftTouchSlimeLine.java @@ -38,12 +38,7 @@ public class CraftTouchSlimeLine extends CraftHologramLine { double offset = getSlimeOffset(); nmsSlime = HolographicDisplays.getNMSManager().spawnNMSSlime(world, x, y + offset, z, this); - - if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - nmsVehicle = HolographicDisplays.getNMSManager().spawnNMSArmorStand(world, x, y + offset, z, this); - } else { - nmsVehicle = HolographicDisplays.getNMSManager().spawnNMSWitherSkull(world, x, y + offset, z, this); - } + nmsVehicle = HolographicDisplays.getNMSManager().spawnNMSArmorStand(world, x, y + offset, z, this); nmsSlime.setPassengerOfNMS(nmsVehicle); @@ -102,10 +97,8 @@ public class CraftTouchSlimeLine extends CraftHologramLine { private double getSlimeOffset() { if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_9_R1)) { return Offsets.ARMOR_STAND_WITH_SLIME_1_9; - } else if (NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - return Offsets.ARMOR_STAND_WITH_SLIME; } else { - return Offsets.WITHER_SKULL_WITH_SLIME; + return Offsets.ARMOR_STAND_WITH_SLIME; } } diff --git a/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/NMSVersion.java b/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/NMSVersion.java index ab48c45d..7cfd314c 100644 --- a/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/NMSVersion.java +++ b/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/NMSVersion.java @@ -5,10 +5,6 @@ package com.gmail.filoghost.holographicdisplays.util; */ public enum NMSVersion { - v1_7_R1, - v1_7_R2, - v1_7_R3, - v1_7_R4, v1_8_R1, v1_8_R2, v1_8_R3, @@ -32,25 +28,7 @@ public enum NMSVersion { return null; } } else { - // Caused by MCPC+ / Cauldron renaming packages, get the NMS version from the Minecraft version. - nmsVersionName = VersionUtils.extractMinecraftVersion(); - - if ("1.7.2".equals(nmsVersionName)) { - return v1_7_R1; - } else if ("1.7.5".equals(nmsVersionName)) { - return v1_7_R2; - } else if ("1.7.8".equals(nmsVersionName)) { - return v1_7_R3; - } else if ("1.7.10".equals(nmsVersionName)) { - return v1_7_R4; - } else if ("1.8".equals(nmsVersionName)) { - return v1_8_R1; - } else if ("1.8.3".equals(nmsVersionName)) { - return v1_8_R2; - } else { - // Cannot definitely get the version. This will cause the plugin to disable itself. - return null; - } + return null; } } diff --git a/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/Offsets.java b/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/Offsets.java index 21562aef..b2b81b7d 100644 --- a/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/Offsets.java +++ b/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/Offsets.java @@ -1,17 +1,14 @@ package com.gmail.filoghost.holographicdisplays.util; +/** + * When spawning a hologram at a location, the top part of the first line should be exactly on that location. + * The second line is below the first, and so on. + */ public class Offsets { public static final double - - // Spawning a hologram line on top of a full block, the bottom part of the nametag should be perfectly on the surface of the block. - WITHER_SKULL_WITH_HORSE = 54.56, - WITHER_SKULL_WITH_ITEM = -0.21, - - WITHER_SKULL_WITH_SLIME = -0.22, - - // For 1.8+, a single armor stand. As with wither skulls and horses, the bottom part of the nametag should be on the surface of the block. + // For 1.8+, a single armor stand. ARMOR_STAND_ALONE = -0.26, // For 1.8+, an armor stand holding an item. @@ -21,7 +18,7 @@ public class Offsets { ARMOR_STAND_WITH_SLIME = -1.49, - // For 1.9+, a single armor stand. As with wither skulls and horses, the bottom part of the nametag should be on the surface of the block. + // For 1.9+, a single armor stand. ARMOR_STAND_ALONE_1_9 = -0.29, // For 1.9+, an armor stand holding an item. diff --git a/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/VersionUtils.java b/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/VersionUtils.java index 86bc4fa4..7ae03fff 100644 --- a/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/VersionUtils.java +++ b/Utils/src/main/java/com/gmail/filoghost/holographicdisplays/util/VersionUtils.java @@ -7,7 +7,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.bukkit.Bukkit; -import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import com.google.common.collect.ImmutableList; @@ -57,15 +56,6 @@ public class VersionUtils { } } - public static boolean isArmorstand(EntityType type) { - if (!NMSVersion.isGreaterEqualThan(NMSVersion.v1_8_R1)) { - return false; - } - - return type == EntityType.ARMOR_STAND; - } - - public static Collection getOnlinePlayers() { try { diff --git a/pom.xml b/pom.xml index 320a86e0..cfbcd391 100644 --- a/pom.xml +++ b/pom.xml @@ -20,10 +20,6 @@ API Utils NMS/Interfaces - NMS/v1_7_R1 - NMS/v1_7_R2 - NMS/v1_7_R3 - NMS/v1_7_R4 NMS/v1_8_R1 NMS/v1_8_R2 NMS/v1_8_R3