diff --git a/dist/pom.xml b/dist/pom.xml
index 561ccad8d..fe7edcf81 100644
--- a/dist/pom.xml
+++ b/dist/pom.xml
@@ -18,7 +18,7 @@
Citizens-${CITIZENS_VERSION}-b${BUILD_NUMBER}
false
- 3.1.1
+ 3.2.0
package-all
@@ -51,14 +51,7 @@
${project.version}
jar
compile
-
-
- ${project.groupId}
- citizens-v1_10_R1
- ${project.version}
- jar
- compile
-
+
${project.groupId}
citizens-v1_11_R1
diff --git a/main/pom.xml b/main/pom.xml
index ea279a832..084bb22f6 100644
--- a/main/pom.xml
+++ b/main/pom.xml
@@ -116,7 +116,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.0
+ 3.8.1
1.8
@@ -126,7 +126,7 @@
org.apache.maven.plugins
maven-jar-plugin
- 3.1.1
+ 3.2.0
@@ -168,7 +168,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.0.1
+ 3.2.0
false
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/BeeTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java
similarity index 95%
rename from v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/BeeTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java
index 50a0be088..7aa376538 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/BeeTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/BeeTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Bee;
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/BossBarTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java
similarity index 92%
rename from v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/BossBarTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java
index 33e48d1dd..e1e6c1ae3 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/BossBarTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/BossBarTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
+package net.citizensnpcs.trait.versioned;
import java.util.Collection;
import java.util.List;
@@ -14,7 +14,7 @@ import com.google.common.collect.Lists;
import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl;
+import net.citizensnpcs.util.NMS;
@TraitName("bossbar")
public class BossBarTrait extends Trait {
@@ -40,7 +40,7 @@ public class BossBarTrait extends Trait {
public void run() {
if (!npc.isSpawned() || !isBoss(npc.getEntity()))
return;
- BossBar bar = NMSImpl.getBossBar(npc.getEntity());
+ BossBar bar = (BossBar) NMS.getBossBar(npc.getEntity());
if (bar == null) {
return;
}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/CatTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java
similarity index 89%
rename from v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/CatTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java
index e081871f8..975188fd5 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/CatTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/CatTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.DyeColor;
import org.bukkit.entity.Cat;
@@ -6,7 +6,7 @@ import org.bukkit.entity.Cat;
import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl;
+import net.citizensnpcs.util.NMS;
@TraitName("cattrait")
public class CatTrait extends Trait {
@@ -36,7 +36,7 @@ public class CatTrait extends Trait {
if (collarColor != null) {
cat.setCollarColor(collarColor);
}
- NMSImpl.setLyingDown(cat, lying);
+ NMS.setLyingDown(cat, lying);
}
}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/FoxTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java
similarity index 96%
rename from v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/FoxTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java
index a1aef55dc..f6dea64ee 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/FoxTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/FoxTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Fox;
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/LlamaTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java
similarity index 94%
rename from v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/LlamaTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java
index e38c33fbf..6f496b623 100644
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/LlamaTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/LlamaTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Llama;
import org.bukkit.entity.Llama.Color;
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/MushroomCowTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java
similarity index 94%
rename from v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/MushroomCowTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java
index 0d26222cb..21baa590f 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/MushroomCowTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/MushroomCowTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.MushroomCow;
import org.bukkit.entity.MushroomCow.Variant;
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PandaTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java
similarity index 95%
rename from v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PandaTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java
index a75097bca..1c6403e0c 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PandaTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PandaTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Panda;
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/ParrotTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java
similarity index 94%
rename from v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/ParrotTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java
index eff2fa2c6..33f3f0dcd 100644
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/ParrotTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/ParrotTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Parrot;
import org.bukkit.entity.Parrot.Variant;
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PhantomTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java
similarity index 93%
rename from v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PhantomTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java
index 8e7e9947d..dd99a132c 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PhantomTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PhantomTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Phantom;
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PufferFishTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java
similarity index 93%
rename from v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PufferFishTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java
index 4e0a9a57e..f8eb2bad2 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PufferFishTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/PufferFishTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.PufferFish;
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/ShulkerTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java
similarity index 86%
rename from v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/ShulkerTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java
index cd0815fae..9077d1366 100644
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/ShulkerTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/ShulkerTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_11_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.DyeColor;
import org.bukkit.entity.Shulker;
@@ -6,7 +6,6 @@ import org.bukkit.entity.Shulker;
import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
import net.citizensnpcs.util.NMS;
@TraitName("shulkertrait")
@@ -36,7 +35,7 @@ public class ShulkerTrait extends Trait {
NMS.setPeekShulker(npc.getEntity(), peek);
lastPeekSet = peek;
}
- NMSImpl.setShulkerColor((Shulker) npc.getEntity(), color);
+ NMS.setShulkerColor((Shulker) npc.getEntity(), color);
}
}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/TropicalFishTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java
similarity index 96%
rename from v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/TropicalFishTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java
index 7430eae8d..76701021a 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/TropicalFishTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/TropicalFishTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.DyeColor;
import org.bukkit.entity.TropicalFish;
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/VillagerTrait.java b/main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java
similarity index 95%
rename from v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/VillagerTrait.java
rename to main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java
index 17c22cbc9..a44ac808b 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/VillagerTrait.java
+++ b/main/src/main/java/net/citizensnpcs/trait/versioned/VillagerTrait.java
@@ -1,4 +1,4 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
+package net.citizensnpcs.trait.versioned;
import org.bukkit.entity.Villager;
diff --git a/main/src/main/java/net/citizensnpcs/util/NMS.java b/main/src/main/java/net/citizensnpcs/util/NMS.java
index 9dab3fc82..a91569c5b 100644
--- a/main/src/main/java/net/citizensnpcs/util/NMS.java
+++ b/main/src/main/java/net/citizensnpcs/util/NMS.java
@@ -8,6 +8,7 @@ import java.lang.reflect.Modifier;
import java.util.Collection;
import java.util.List;
+import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
@@ -65,6 +66,10 @@ public class NMS {
return BRIDGE.getBlockBreaker(entity, targetBlock, config);
}
+ public static Object getBossBar(Entity entity) {
+ return BRIDGE.getBossBar(entity);
+ }
+
public static BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
return BRIDGE.getBoundingBox(handle);
}
@@ -369,6 +374,10 @@ public class NMS {
BRIDGE.setKnockbackResistance(entity, d);
}
+ public static void setLyingDown(Entity cat, boolean lying) {
+ BRIDGE.setLyingDown(cat, lying);
+ }
+
public static void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target,
float speed) {
BRIDGE.setNavigationTarget(handle, target, speed);
@@ -389,6 +398,10 @@ public class NMS {
BRIDGE.setShouldJump(entity);
}
+ public static void setShulkerColor(Entity entity, DyeColor color) {
+ BRIDGE.setShulkerColor(entity, color);
+ }
+
public static void setSitting(Ocelot ocelot, boolean sitting) {
BRIDGE.setSitting(ocelot, sitting);
}
diff --git a/main/src/main/java/net/citizensnpcs/util/NMSBridge.java b/main/src/main/java/net/citizensnpcs/util/NMSBridge.java
index 0b0b85f26..24346d1db 100644
--- a/main/src/main/java/net/citizensnpcs/util/NMSBridge.java
+++ b/main/src/main/java/net/citizensnpcs/util/NMSBridge.java
@@ -3,6 +3,7 @@ package net.citizensnpcs.util;
import java.util.Collection;
import java.util.List;
+import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
@@ -42,6 +43,8 @@ public interface NMSBridge {
public BlockBreaker getBlockBreaker(Entity entity, Block targetBlock, BlockBreakerConfiguration config);
+ public Object getBossBar(Entity entity);
+
public BoundingBox getBoundingBox(Entity handle);
public GameProfileRepository getGameProfileRepository();
@@ -120,6 +123,8 @@ public interface NMSBridge {
public void setKnockbackResistance(LivingEntity entity, double d);
+ public void setLyingDown(Entity cat, boolean lying);
+
public void setNavigationTarget(Entity handle, Entity target, float speed);
public void setPeekShulker(Entity entity, int peek);
@@ -128,6 +133,8 @@ public interface NMSBridge {
public void setShouldJump(Entity entity);
+ public void setShulkerColor(Entity entity, DyeColor color);
+
public void setSitting(Ocelot ocelot, boolean sitting);
public void setSitting(Tameable tameable, boolean sitting);
diff --git a/v1_10_R1/pom.xml b/v1_10_R1/pom.xml
index 7f0c215bf..5bfcfd491 100644
--- a/v1_10_R1/pom.xml
+++ b/v1_10_R1/pom.xml
@@ -47,7 +47,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 2.3.2
+ 3.8.1
1.8
@@ -57,13 +57,13 @@
org.apache.maven.plugins
maven-jar-plugin
- 2.3.2
+ 3.2.0
org.apache.maven.plugins
maven-shade-plugin
- 2.1
+ 3.2.1
package
diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/BossBarTrait.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/BossBarTrait.java
deleted file mode 100644
index c2371598d..000000000
--- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/BossBarTrait.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package net.citizensnpcs.nms.v1_10_R1.trait;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarFlag;
-import org.bukkit.boss.BossBar;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.EntityType;
-
-import com.google.common.collect.Lists;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
-
-@TraitName("bossbar")
-public class BossBarTrait extends Trait {
- @Persist("color")
- private BarColor color = null;
- @Persist("flags")
- private List flags = Lists.newArrayList();
- @Persist("title")
- private String title = null;
- @Persist("visible")
- private boolean visible = true;
-
- public BossBarTrait() {
- super("bossbar");
- }
-
- private boolean isBoss(Entity entity) {
- return entity.getType() == EntityType.ENDER_DRAGON || entity.getType() == EntityType.WITHER
- || entity.getType() == EntityType.GUARDIAN;
- }
-
- @Override
- public void run() {
- if (!npc.isSpawned() || !isBoss(npc.getEntity()))
- return;
- BossBar bar = NMSImpl.getBossBar(npc.getEntity());
- bar.setVisible(visible);
- if (color != null) {
- bar.setColor(color);
- }
- if (title != null) {
- bar.setTitle(title);
- }
- for (BarFlag flag : BarFlag.values()) {
- bar.removeFlag(flag);
- }
- for (BarFlag flag : flags) {
- bar.addFlag(flag);
- }
- }
-
- public void setColor(BarColor color) {
- this.color = color;
- }
-
- public void setFlags(Collection flags) {
- this.flags = Lists.newArrayList(flags);
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
-}
diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/Commands.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/Commands.java
index c1e2987c3..523b17082 100644
--- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/Commands.java
+++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/Commands.java
@@ -19,6 +19,8 @@ import net.citizensnpcs.api.command.exception.CommandUsageException;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.api.util.Messaging;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/ShulkerTrait.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/ShulkerTrait.java
deleted file mode 100644
index 45ac8f2ef..000000000
--- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/trait/ShulkerTrait.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package net.citizensnpcs.nms.v1_10_R1.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.Shulker;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl;
-import net.citizensnpcs.util.NMS;
-
-@TraitName("shulkertrait")
-public class ShulkerTrait extends Trait {
- @Persist("color")
- private DyeColor color = DyeColor.PURPLE;
- private int lastPeekSet = 0;
- @Persist("peek")
- private int peek = 0;
-
- public ShulkerTrait() {
- super("shulkertrait");
- }
-
- @Override
- public void onSpawn() {
- setPeek(peek);
- }
-
- @Override
- public void run() {
- if (color == null) {
- color = DyeColor.PURPLE;
- }
- if (npc.getEntity() instanceof Shulker) {
- if (peek != lastPeekSet) {
- NMS.setPeekShulker((Shulker) npc.getEntity(), peek);
- lastPeekSet = peek;
- }
- NMSImpl.setShulkerColor((Shulker) npc.getEntity(), color);
- }
- }
-
- public void setColor(DyeColor color) {
- this.color = color;
- }
-
- public void setPeek(int peek) {
- this.peek = peek;
- lastPeekSet = -1;
- }
-}
diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java
index 67192911c..b0eb8ae7c 100644
--- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java
+++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/util/NMSImpl.java
@@ -137,14 +137,14 @@ import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.ThrownPotionController;
import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.TippedArrowController;
import net.citizensnpcs.nms.v1_10_R1.entity.nonliving.WitherSkullController;
import net.citizensnpcs.nms.v1_10_R1.network.EmptyChannel;
-import net.citizensnpcs.nms.v1_10_R1.trait.BossBarTrait;
import net.citizensnpcs.nms.v1_10_R1.trait.Commands;
-import net.citizensnpcs.nms.v1_10_R1.trait.ShulkerTrait;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
import net.citizensnpcs.util.BoundingBox;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@@ -301,6 +301,29 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
+ .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
+ }
+ } catch (Exception e) {
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
+ } catch (Exception e) {
+ }
+ return ret;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
AxisAlignedBB bb = NMSImpl.getHandle(handle).getBoundingBox();
@@ -850,6 +873,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.c).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -889,6 +916,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
setSitting((Tameable) ocelot, sitting);
@@ -1274,28 +1305,6 @@ public class NMSImpl implements NMSBridge {
entity.aI += entity.aH;
}
- public static BossBar getBossBar(org.bukkit.entity.Entity entity) {
- BossBattleServer bserver = null;
- try {
- if (entity.getType() == EntityType.WITHER) {
- bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
- } else if (entity.getType() == EntityType.ENDER_DRAGON) {
- bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
- .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
- }
- } catch (Exception e) {
- }
- if (bserver == null) {
- return null;
- }
- BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
- try {
- CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
- } catch (Exception e) {
- }
- return ret;
- }
-
private static EntityLiving getHandle(LivingEntity entity) {
return (EntityLiving) NMSImpl.getHandle((org.bukkit.entity.Entity) entity);
}
@@ -1464,6 +1473,7 @@ public class NMSImpl implements NMSBridge {
private static Field SKULL_PROFILE_FIELD;
private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c");
private static final Field WITHER_BOSS_BAR_FIELD = NMS.getField(EntityWither.class, "bG");
+
static {
try {
Field field = NMS.getField(EntityTypes.class, "f");
diff --git a/v1_11_R1/pom.xml b/v1_11_R1/pom.xml
index 6ea1d94d6..c7bef148e 100644
--- a/v1_11_R1/pom.xml
+++ b/v1_11_R1/pom.xml
@@ -47,7 +47,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 2.3.2
+ 3.8.1
1.8
@@ -57,13 +57,13 @@
org.apache.maven.plugins
maven-jar-plugin
- 2.3.2
+ 3.2.0
org.apache.maven.plugins
maven-shade-plugin
- 2.1
+ 3.2.1
package
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/BossBarTrait.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/BossBarTrait.java
deleted file mode 100644
index 37279a6ff..000000000
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/BossBarTrait.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package net.citizensnpcs.nms.v1_11_R1.trait;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarFlag;
-import org.bukkit.boss.BossBar;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.EntityType;
-
-import com.google.common.collect.Lists;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl;
-
-@TraitName("bossbar")
-public class BossBarTrait extends Trait {
- @Persist("color")
- private BarColor color = null;
- @Persist("flags")
- private List flags = Lists.newArrayList();
- @Persist("title")
- private String title = null;
- @Persist("visible")
- private boolean visible = true;
-
- public BossBarTrait() {
- super("bossbar");
- }
-
- private boolean isBoss(Entity entity) {
- return entity.getType() == EntityType.ENDER_DRAGON || entity.getType() == EntityType.WITHER
- || entity.getType() == EntityType.GUARDIAN;
- }
-
- @Override
- public void run() {
- if (!npc.isSpawned() || !isBoss(npc.getEntity()))
- return;
- BossBar bar = NMSImpl.getBossBar(npc.getEntity());
- bar.setVisible(visible);
- if (color != null) {
- bar.setColor(color);
- }
- if (title != null) {
- bar.setTitle(title);
- }
- for (BarFlag flag : BarFlag.values()) {
- bar.removeFlag(flag);
- }
- for (BarFlag flag : flags) {
- bar.addFlag(flag);
- }
- }
-
- public void setColor(BarColor color) {
- this.color = color;
- }
-
- public void setFlags(Collection flags) {
- this.flags = Lists.newArrayList(flags);
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
-}
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/Commands.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/Commands.java
index f4f11d2a2..683225d86 100644
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/Commands.java
+++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/Commands.java
@@ -20,6 +20,9 @@ import net.citizensnpcs.api.command.exception.CommandUsageException;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.api.util.Messaging;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/LlamaTrait.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/LlamaTrait.java
deleted file mode 100644
index ee77afeca..000000000
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/trait/LlamaTrait.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.citizensnpcs.nms.v1_11_R1.trait;
-
-import org.bukkit.entity.Llama;
-import org.bukkit.entity.Llama.Color;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("llamatrait")
-public class LlamaTrait extends Trait {
- @Persist
- private Color color = Color.BROWN;
- @Persist
- private int strength = 3;
-
- public LlamaTrait() {
- super("llamatrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Llama) {
- Llama llama = (Llama) npc.getEntity();
- llama.setColor(color);
- llama.setStrength(strength);
- }
- }
-
- public void setColor(Llama.Color color) {
- this.color = color;
- }
-
- public void setStrength(int strength) {
- this.strength = strength;
- }
-}
diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java
index 237f71f70..2af7adbf7 100644
--- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java
+++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/util/NMSImpl.java
@@ -153,15 +153,15 @@ import net.citizensnpcs.nms.v1_11_R1.entity.nonliving.ThrownPotionController;
import net.citizensnpcs.nms.v1_11_R1.entity.nonliving.TippedArrowController;
import net.citizensnpcs.nms.v1_11_R1.entity.nonliving.WitherSkullController;
import net.citizensnpcs.nms.v1_11_R1.network.EmptyChannel;
-import net.citizensnpcs.nms.v1_11_R1.trait.BossBarTrait;
import net.citizensnpcs.nms.v1_11_R1.trait.Commands;
-import net.citizensnpcs.nms.v1_11_R1.trait.LlamaTrait;
-import net.citizensnpcs.nms.v1_11_R1.trait.ShulkerTrait;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
import net.citizensnpcs.util.BoundingBox;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@@ -322,6 +322,29 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
+ .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
+ }
+ } catch (Exception e) {
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
+ } catch (Exception e) {
+ }
+ return ret;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
AxisAlignedBB bb = NMSImpl.getHandle(handle).getBoundingBox();
@@ -909,6 +932,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.c).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -948,6 +975,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
setSitting((Tameable) ocelot, sitting);
@@ -1339,28 +1370,6 @@ public class NMSImpl implements NMSBridge {
entity.aH += entity.aG;
}
- public static BossBar getBossBar(org.bukkit.entity.Entity entity) {
- BossBattleServer bserver = null;
- try {
- if (entity.getType() == EntityType.WITHER) {
- bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
- } else if (entity.getType() == EntityType.ENDER_DRAGON) {
- bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
- .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
- }
- } catch (Exception e) {
- }
- if (bserver == null) {
- return null;
- }
- BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
- try {
- CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
- } catch (Exception e) {
- }
- return ret;
- }
-
private static EntityLiving getHandle(LivingEntity entity) {
return (EntityLiving) NMSImpl.getHandle((org.bukkit.entity.Entity) entity);
}
@@ -1526,8 +1535,11 @@ public class NMSImpl implements NMSBridge {
private static Field PATHFINDING_RANGE = NMS.getField(NavigationAbstract.class, "f");
private static final Field RABBIT_FIELD = NMS.getField(EntityRabbit.class, "bw");
private static final Random RANDOM = Util.getFastRandom();
+
private static Field SKULL_PROFILE_FIELD;
+
private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c");
+
private static final Field WITHER_BOSS_BAR_FIELD = NMS.getField(EntityWither.class, "bF");
static {
diff --git a/v1_12_R1/pom.xml b/v1_12_R1/pom.xml
index b5795ad3e..776920cf6 100644
--- a/v1_12_R1/pom.xml
+++ b/v1_12_R1/pom.xml
@@ -47,7 +47,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.0
+ 3.8.1
1.8
@@ -57,7 +57,7 @@
org.apache.maven.plugins
maven-jar-plugin
- 3.1.1
+ 3.2.0
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/BossBarTrait.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/BossBarTrait.java
deleted file mode 100644
index 27c0a6f51..000000000
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/BossBarTrait.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package net.citizensnpcs.nms.v1_12_R1.trait;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarFlag;
-import org.bukkit.boss.BossBar;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.EntityType;
-
-import com.google.common.collect.Lists;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl;
-
-@TraitName("bossbar")
-public class BossBarTrait extends Trait {
- @Persist("color")
- private BarColor color = null;
- @Persist("flags")
- private List flags = Lists.newArrayList();
- @Persist("title")
- private String title = null;
- @Persist("visible")
- private boolean visible = true;
-
- public BossBarTrait() {
- super("bossbar");
- }
-
- private boolean isBoss(Entity entity) {
- return entity.getType() == EntityType.ENDER_DRAGON || entity.getType() == EntityType.WITHER
- || entity.getType() == EntityType.GUARDIAN;
- }
-
- @Override
- public void run() {
- if (!npc.isSpawned() || !isBoss(npc.getEntity()))
- return;
- BossBar bar = NMSImpl.getBossBar(npc.getEntity());
- bar.setVisible(visible);
- if (color != null) {
- bar.setColor(color);
- }
- if (title != null) {
- bar.setTitle(title);
- }
- for (BarFlag flag : BarFlag.values()) {
- bar.removeFlag(flag);
- }
- for (BarFlag flag : flags) {
- bar.addFlag(flag);
- }
- }
-
- public void setColor(BarColor color) {
- this.color = color;
- }
-
- public void setFlags(Collection flags) {
- this.flags = Lists.newArrayList(flags);
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
-}
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/Commands.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/Commands.java
index 3e351be01..df03f19f2 100644
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/Commands.java
+++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/Commands.java
@@ -21,6 +21,10 @@ import net.citizensnpcs.api.command.exception.CommandUsageException;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.api.util.Messaging;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/LlamaTrait.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/LlamaTrait.java
deleted file mode 100644
index 18029f5b6..000000000
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/LlamaTrait.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.citizensnpcs.nms.v1_12_R1.trait;
-
-import org.bukkit.entity.Llama;
-import org.bukkit.entity.Llama.Color;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("llamatrait")
-public class LlamaTrait extends Trait {
- @Persist
- private Color color = Color.BROWN;
- @Persist
- private int strength = 3;
-
- public LlamaTrait() {
- super("llamatrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Llama) {
- Llama llama = (Llama) npc.getEntity();
- llama.setColor(color);
- llama.setStrength(strength);
- }
- }
-
- public void setColor(Llama.Color color) {
- this.color = color;
- }
-
- public void setStrength(int strength) {
- this.strength = strength;
- }
-}
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/ParrotTrait.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/ParrotTrait.java
deleted file mode 100644
index 01ae61096..000000000
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/ParrotTrait.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.citizensnpcs.nms.v1_12_R1.trait;
-
-import org.bukkit.entity.Parrot;
-import org.bukkit.entity.Parrot.Variant;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("parrottrait")
-public class ParrotTrait extends Trait {
- @Persist
- private Variant variant = Variant.BLUE;
-
- public ParrotTrait() {
- super("parrottrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Parrot) {
- Parrot parrot = (Parrot) npc.getEntity();
- parrot.setVariant(variant);
- }
- }
-
- public void setVariant(Parrot.Variant variant) {
- this.variant = variant;
- }
-}
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/ShulkerTrait.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/ShulkerTrait.java
deleted file mode 100644
index 568b071a7..000000000
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/trait/ShulkerTrait.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package net.citizensnpcs.nms.v1_12_R1.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.Shulker;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl;
-import net.citizensnpcs.util.NMS;
-
-@TraitName("shulkertrait")
-public class ShulkerTrait extends Trait {
- @Persist("color")
- private DyeColor color = DyeColor.PURPLE;
- private int lastPeekSet = 0;
- @Persist("peek")
- private int peek = 0;
-
- public ShulkerTrait() {
- super("shulkertrait");
- }
-
- @Override
- public void onSpawn() {
- setPeek(peek);
- }
-
- @Override
- public void run() {
- if (color == null) {
- color = DyeColor.PURPLE;
- }
- if (npc.getEntity() instanceof Shulker) {
- if (peek != lastPeekSet) {
- NMS.setPeekShulker((Shulker) npc.getEntity(), peek);
- lastPeekSet = peek;
- }
- NMSImpl.setShulkerColor((Shulker) npc.getEntity(), color);
- }
- }
-
- public void setColor(DyeColor color) {
- this.color = color;
- }
-
- public void setPeek(int peek) {
- this.peek = peek;
- lastPeekSet = -1;
- }
-}
diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java
index 16d82313f..51a112d7a 100644
--- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java
+++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/util/NMSImpl.java
@@ -154,16 +154,16 @@ import net.citizensnpcs.nms.v1_12_R1.entity.nonliving.ThrownPotionController;
import net.citizensnpcs.nms.v1_12_R1.entity.nonliving.TippedArrowController;
import net.citizensnpcs.nms.v1_12_R1.entity.nonliving.WitherSkullController;
import net.citizensnpcs.nms.v1_12_R1.network.EmptyChannel;
-import net.citizensnpcs.nms.v1_12_R1.trait.BossBarTrait;
import net.citizensnpcs.nms.v1_12_R1.trait.Commands;
-import net.citizensnpcs.nms.v1_12_R1.trait.LlamaTrait;
-import net.citizensnpcs.nms.v1_12_R1.trait.ParrotTrait;
-import net.citizensnpcs.nms.v1_12_R1.trait.ShulkerTrait;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
import net.citizensnpcs.util.BoundingBox;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@@ -325,6 +325,29 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
+ .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
+ }
+ } catch (Exception e) {
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
+ } catch (Exception e) {
+ }
+ return ret;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
AxisAlignedBB bb = NMSImpl.getHandle(handle).getBoundingBox();
@@ -921,6 +944,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.c).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -960,6 +987,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
setSitting((Tameable) ocelot, sitting);
@@ -1351,28 +1382,6 @@ public class NMSImpl implements NMSBridge {
entity.aH += entity.aG;
}
- public static BossBar getBossBar(org.bukkit.entity.Entity entity) {
- BossBattleServer bserver = null;
- try {
- if (entity.getType() == EntityType.WITHER) {
- bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
- } else if (entity.getType() == EntityType.ENDER_DRAGON) {
- bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
- .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
- }
- } catch (Exception e) {
- }
- if (bserver == null) {
- return null;
- }
- BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
- try {
- CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
- } catch (Exception e) {
- }
- return ret;
- }
-
private static EntityLiving getHandle(LivingEntity entity) {
return (EntityLiving) NMSImpl.getHandle((org.bukkit.entity.Entity) entity);
}
@@ -1497,7 +1506,7 @@ public class NMSImpl implements NMSBridge {
if ((entity.width > f2) && (!justCreated) && (!entity.world.isClientSide))
entity.move(EnumMoveType.SELF, (f2 - entity.width) / 2, 0.0D, (f2 - entity.width) / 2);
}
- }
+ };
public static void stopNavigation(NavigationAbstract navigation) {
navigation.p();
@@ -1518,7 +1527,7 @@ public class NMSImpl implements NMSBridge {
public static void updateNavigation(NavigationAbstract navigation) {
navigation.d();
- };
+ }
private static MethodHandle ADVANCEMENT_PLAYER_FIELD = NMS.getFinalSetter(EntityPlayer.class, "bY");
private static final Set BAD_CONTROLLER_LOOK = EnumSet.of(EntityType.POLAR_BEAR, EntityType.SILVERFISH,
@@ -1539,8 +1548,11 @@ public class NMSImpl implements NMSBridge {
private static Field PATHFINDING_RANGE = NMS.getField(NavigationAbstract.class, "i");
private static final Field RABBIT_FIELD = NMS.getField(EntityRabbit.class, "bx");
private static final Random RANDOM = Util.getFastRandom();
+
private static Field SKULL_PROFILE_FIELD;
+
private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c");
+
private static final Field WITHER_BOSS_BAR_FIELD = NMS.getField(EntityWither.class, "bG");
static {
diff --git a/v1_13_R2/pom.xml b/v1_13_R2/pom.xml
index 8dff87d7a..d6fb503c2 100644
--- a/v1_13_R2/pom.xml
+++ b/v1_13_R2/pom.xml
@@ -47,7 +47,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.0
+ 3.8.1
1.8
@@ -57,7 +57,7 @@
org.apache.maven.plugins
maven-jar-plugin
- 3.1.1
+ 3.2.0
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/BossBarTrait.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/BossBarTrait.java
deleted file mode 100644
index dda40fa52..000000000
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/BossBarTrait.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarFlag;
-import org.bukkit.boss.BossBar;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.EntityType;
-
-import com.google.common.collect.Lists;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl;
-
-@TraitName("bossbar")
-public class BossBarTrait extends Trait {
- @Persist("color")
- private BarColor color = null;
- @Persist("flags")
- private List flags = Lists.newArrayList();
- @Persist("title")
- private String title = null;
- @Persist("visible")
- private boolean visible = true;
-
- public BossBarTrait() {
- super("bossbar");
- }
-
- private boolean isBoss(Entity entity) {
- return entity.getType() == EntityType.ENDER_DRAGON || entity.getType() == EntityType.WITHER
- || entity.getType() == EntityType.GUARDIAN;
- }
-
- @Override
- public void run() {
- if (!npc.isSpawned() || !isBoss(npc.getEntity()))
- return;
- BossBar bar = NMSImpl.getBossBar(npc.getEntity());
- bar.setVisible(visible);
- if (color != null) {
- bar.setColor(color);
- }
- if (title != null) {
- bar.setTitle(title);
- }
- for (BarFlag flag : BarFlag.values()) {
- bar.removeFlag(flag);
- }
- for (BarFlag flag : flags) {
- bar.addFlag(flag);
- }
- }
-
- public void setColor(BarColor color) {
- this.color = color;
- }
-
- public void setFlags(Collection flags) {
- this.flags = Lists.newArrayList(flags);
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
-}
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/Commands.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/Commands.java
index b6bf75cc0..d9fcd6575 100644
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/Commands.java
+++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/Commands.java
@@ -22,6 +22,13 @@ import net.citizensnpcs.api.command.exception.CommandUsageException;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.api.util.Messaging;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.PhantomTrait;
+import net.citizensnpcs.trait.versioned.PufferFishTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
+import net.citizensnpcs.trait.versioned.TropicalFishTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/PhantomTrait.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/PhantomTrait.java
deleted file mode 100644
index a6eb10405..000000000
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/PhantomTrait.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
-
-import org.bukkit.entity.Phantom;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("phantomtrait")
-public class PhantomTrait extends Trait {
- @Persist
- private int size = 1;
-
- public PhantomTrait() {
- super("phantomtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Phantom) {
- Phantom phantom = (Phantom) npc.getEntity();
- phantom.setSize(size);
- }
- }
-
- public void setSize(int size) {
- this.size = size;
- }
-}
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/PufferFishTrait.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/PufferFishTrait.java
deleted file mode 100644
index a6ab0fab7..000000000
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/PufferFishTrait.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
-
-import org.bukkit.entity.PufferFish;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("pufferfishtrait")
-public class PufferFishTrait extends Trait {
- @Persist
- private int puffState = 1;
-
- public PufferFishTrait() {
- super("pufferfishtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof PufferFish) {
- PufferFish puffer = (PufferFish) npc.getEntity();
- puffer.setPuffState(puffState);
- }
- }
-
- public void setPuffState(int state) {
- this.puffState = state;
- }
-}
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/ShulkerTrait.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/ShulkerTrait.java
deleted file mode 100644
index 4072a529a..000000000
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/ShulkerTrait.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.Shulker;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl;
-import net.citizensnpcs.util.NMS;
-
-@TraitName("shulkertrait")
-public class ShulkerTrait extends Trait {
- @Persist("color")
- private DyeColor color = DyeColor.PURPLE;
- private int lastPeekSet = 0;
- @Persist("peek")
- private int peek = 0;
-
- public ShulkerTrait() {
- super("shulkertrait");
- }
-
- @Override
- public void onSpawn() {
- setPeek(peek);
- }
-
- @Override
- public void run() {
- if (color == null) {
- color = DyeColor.PURPLE;
- }
- if (npc.getEntity() instanceof Shulker) {
- if (peek != lastPeekSet) {
- NMS.setPeekShulker((Shulker) npc.getEntity(), peek);
- lastPeekSet = peek;
- }
- NMSImpl.setShulkerColor((Shulker) npc.getEntity(), color);
- }
- }
-
- public void setColor(DyeColor color) {
- this.color = color;
- }
-
- public void setPeek(int peek) {
- this.peek = peek;
- lastPeekSet = -1;
- }
-}
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/TropicalFishTrait.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/TropicalFishTrait.java
deleted file mode 100644
index fb03e9c57..000000000
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/trait/TropicalFishTrait.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.citizensnpcs.nms.v1_13_R2.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.TropicalFish;
-import org.bukkit.entity.TropicalFish.Pattern;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("tropicalfishtrait")
-public class TropicalFishTrait extends Trait {
- @Persist
- private DyeColor bodyColor = DyeColor.BLUE;
- @Persist
- private Pattern pattern = Pattern.BRINELY;
- @Persist
- private DyeColor patternColor = DyeColor.BLUE;
-
- public TropicalFishTrait() {
- super("tropicalfishtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof TropicalFish) {
- TropicalFish fish = (TropicalFish) npc.getEntity();
- fish.setBodyColor(bodyColor);
- fish.setPatternColor(patternColor);
- fish.setPattern(pattern);
- }
- }
-
- public void setBodyColor(DyeColor color) {
- this.bodyColor = color;
- }
-
- public void setPattern(Pattern pattern) {
- this.pattern = pattern;
- }
-
- public void setPatternColor(DyeColor color) {
- this.patternColor = color;
- }
-}
diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java
index eeebd68f6..ed4276fc5 100644
--- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java
+++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/util/NMSImpl.java
@@ -164,19 +164,19 @@ import net.citizensnpcs.nms.v1_13_R2.entity.nonliving.ThrownTridentController;
import net.citizensnpcs.nms.v1_13_R2.entity.nonliving.TippedArrowController;
import net.citizensnpcs.nms.v1_13_R2.entity.nonliving.WitherSkullController;
import net.citizensnpcs.nms.v1_13_R2.network.EmptyChannel;
-import net.citizensnpcs.nms.v1_13_R2.trait.BossBarTrait;
import net.citizensnpcs.nms.v1_13_R2.trait.Commands;
-import net.citizensnpcs.nms.v1_13_R2.trait.LlamaTrait;
-import net.citizensnpcs.nms.v1_13_R2.trait.ParrotTrait;
-import net.citizensnpcs.nms.v1_13_R2.trait.PhantomTrait;
-import net.citizensnpcs.nms.v1_13_R2.trait.PufferFishTrait;
-import net.citizensnpcs.nms.v1_13_R2.trait.ShulkerTrait;
-import net.citizensnpcs.nms.v1_13_R2.trait.TropicalFishTrait;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.PhantomTrait;
+import net.citizensnpcs.trait.versioned.PufferFishTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
+import net.citizensnpcs.trait.versioned.TropicalFishTrait;
import net.citizensnpcs.util.BoundingBox;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@@ -340,6 +340,37 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ try {
+ bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle;
+ } catch (NoSuchFieldError ex) {
+ bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
+ }
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ try {
+ bserver = ((EnderDragonBattle) ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))).bossBattle;
+ } catch (NoSuchFieldError ex) {
+ bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
+ .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
+ }
+ }
+ } catch (Exception e) {
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
+ } catch (Exception e) {
+ }
+ return ret;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
return NMSBoundingBox.wrap(NMSImpl.getHandle(handle).getBoundingBox());
@@ -948,6 +979,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.c).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -987,6 +1022,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
setSitting((Tameable) ocelot, sitting);
@@ -1433,36 +1472,6 @@ public class NMSImpl implements NMSBridge {
}
}
- public static BossBar getBossBar(org.bukkit.entity.Entity entity) {
- BossBattleServer bserver = null;
- try {
- if (entity.getType() == EntityType.WITHER) {
- try {
- bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle;
- } catch (NoSuchFieldError ex) {
- bserver = (BossBattleServer) WITHER_BOSS_BAR_FIELD.get(NMSImpl.getHandle(entity));
- }
- } else if (entity.getType() == EntityType.ENDER_DRAGON) {
- try {
- bserver = ((EnderDragonBattle) ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity))).bossBattle;
- } catch (NoSuchFieldError ex) {
- bserver = (BossBattleServer) ENDERDRAGON_BATTLE_BAR_FIELD
- .get(ENDERDRAGON_BATTLE_FIELD.get(NMSImpl.getHandle(entity)));
- }
- }
- } catch (Exception e) {
- }
- if (bserver == null) {
- return null;
- }
- BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
- try {
- CRAFT_BOSSBAR_HANDLE_FIELD.set(ret, bserver);
- } catch (Exception e) {
- }
- return ret;
- }
-
private static EntityLiving getHandle(LivingEntity entity) {
return (EntityLiving) NMSImpl.getHandle((org.bukkit.entity.Entity) entity);
}
@@ -1591,7 +1600,7 @@ public class NMSImpl implements NMSBridge {
public static void setShulkerColor(Shulker shulker, DyeColor color) {
((EntityShulker) getHandle(shulker)).getDataWatcher().set(EntityShulker.COLOR, color.getWoolData());
- }
+ };
public static void setSize(Entity entity, float f, float f1, boolean justCreated) {
if ((f != entity.width) || (f1 != entity.length)) {
@@ -1609,7 +1618,7 @@ public class NMSImpl implements NMSBridge {
public static void stopNavigation(NavigationAbstract navigation) {
navigation.q();
- };
+ }
public static void updateAI(EntityLiving entity) {
if (entity instanceof EntityInsentient) {
@@ -1655,6 +1664,7 @@ public class NMSImpl implements NMSBridge {
private static Field SKULL_PROFILE_FIELD;
private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c");
private static final Field WITHER_BOSS_BAR_FIELD = NMS.getField(EntityWither.class, "bL", false);
+
static {
try {
ENTITY_FISH_NUM_IN_SCHOOL = NMS.getField(Class.forName("net.minecraft.server.v1_13_R2.EntityFishSchool"),
diff --git a/v1_14_R1/pom.xml b/v1_14_R1/pom.xml
index be37bb28a..0c854c2aa 100644
--- a/v1_14_R1/pom.xml
+++ b/v1_14_R1/pom.xml
@@ -47,7 +47,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.0
+ 3.8.1
eclipse
@@ -65,7 +65,7 @@
org.apache.maven.plugins
maven-jar-plugin
- 3.1.1
+ 3.2.0
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/Commands.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/Commands.java
index e519155ff..c0c66912e 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/Commands.java
+++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/Commands.java
@@ -30,6 +30,18 @@ import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.trait.VillagerProfession;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.CatTrait;
+import net.citizensnpcs.trait.versioned.FoxTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.MushroomCowTrait;
+import net.citizensnpcs.trait.versioned.PandaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.PhantomTrait;
+import net.citizensnpcs.trait.versioned.PufferFishTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
+import net.citizensnpcs.trait.versioned.TropicalFishTrait;
+import net.citizensnpcs.trait.versioned.VillagerTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/FoxTrait.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/FoxTrait.java
deleted file mode 100644
index 15c872348..000000000
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/FoxTrait.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
-
-import org.bukkit.entity.Fox;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("foxtrait")
-public class FoxTrait extends Trait {
- @Persist
- private boolean crouching = false;
- @Persist
- private boolean sitting = false;
- @Persist
- private boolean sleeping = false;
- @Persist
- private Fox.Type type = Fox.Type.RED;
-
- public FoxTrait() {
- super("foxtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Fox) {
- Fox fox = (Fox) npc.getEntity();
- fox.setSitting(sitting);
- fox.setCrouching(crouching);
- fox.setSleeping(sleeping);
- fox.setFoxType(type);
- }
- }
-
- public void setCrouching(boolean crouching) {
- this.crouching = crouching;
- }
-
- public void setSitting(boolean sitting) {
- this.sitting = sitting;
- }
-
- public void setSleeping(boolean sleeping) {
- this.sleeping = sleeping;
- }
-
- public void setType(Fox.Type type) {
- this.type = type;
- }
-}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/LlamaTrait.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/LlamaTrait.java
deleted file mode 100644
index f682a712a..000000000
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/LlamaTrait.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
-
-import org.bukkit.entity.Llama;
-import org.bukkit.entity.Llama.Color;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("llamatrait")
-public class LlamaTrait extends Trait {
- @Persist
- private Color color = Color.BROWN;
- @Persist
- private int strength = 3;
-
- public LlamaTrait() {
- super("llamatrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Llama) {
- Llama llama = (Llama) npc.getEntity();
- llama.setColor(color);
- llama.setStrength(strength);
- }
- }
-
- public void setColor(Llama.Color color) {
- this.color = color;
- }
-
- public void setStrength(int strength) {
- this.strength = strength;
- }
-}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/MushroomCowTrait.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/MushroomCowTrait.java
deleted file mode 100644
index 5587a8346..000000000
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/MushroomCowTrait.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
-
-import org.bukkit.entity.MushroomCow;
-import org.bukkit.entity.MushroomCow.Variant;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("mushroomcowtrait")
-public class MushroomCowTrait extends Trait {
- @Persist("variant")
- private Variant variant;
-
- public MushroomCowTrait() {
- super("mushroomcowtrait");
- }
-
- @Override
- public void onSpawn() {
- setVariant(variant);
- }
-
- @Override
- public void run() {
- if (variant != null && npc.getEntity() instanceof MushroomCow) {
- ((MushroomCow) npc.getEntity()).setVariant(variant);
- }
- }
-
- public void setVariant(Variant variant) {
- this.variant = variant;
- }
-}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/ParrotTrait.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/ParrotTrait.java
deleted file mode 100644
index 03a50bf05..000000000
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/ParrotTrait.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
-
-import org.bukkit.entity.Parrot;
-import org.bukkit.entity.Parrot.Variant;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("parrottrait")
-public class ParrotTrait extends Trait {
- @Persist
- private Variant variant = Variant.BLUE;
-
- public ParrotTrait() {
- super("parrottrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Parrot) {
- Parrot parrot = (Parrot) npc.getEntity();
- parrot.setVariant(variant);
- }
- }
-
- public void setVariant(Parrot.Variant variant) {
- this.variant = variant;
- }
-}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PufferFishTrait.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PufferFishTrait.java
deleted file mode 100644
index fba57ac48..000000000
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/PufferFishTrait.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
-
-import org.bukkit.entity.PufferFish;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("pufferfishtrait")
-public class PufferFishTrait extends Trait {
- @Persist
- private int puffState = 1;
-
- public PufferFishTrait() {
- super("pufferfishtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof PufferFish) {
- PufferFish puffer = (PufferFish) npc.getEntity();
- puffer.setPuffState(puffState);
- }
- }
-
- public void setPuffState(int state) {
- this.puffState = state;
- }
-}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/ShulkerTrait.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/ShulkerTrait.java
deleted file mode 100644
index bf58e7f96..000000000
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/trait/ShulkerTrait.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package net.citizensnpcs.nms.v1_14_R1.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.Shulker;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl;
-import net.citizensnpcs.util.NMS;
-
-@TraitName("shulkertrait")
-public class ShulkerTrait extends Trait {
- @Persist("color")
- private DyeColor color = DyeColor.PURPLE;
- private int lastPeekSet = 0;
- @Persist("peek")
- private int peek = 0;
-
- public ShulkerTrait() {
- super("shulkertrait");
- }
-
- @Override
- public void onSpawn() {
- setPeek(peek);
- }
-
- @Override
- public void run() {
- if (color == null) {
- color = DyeColor.PURPLE;
- }
- if (npc.getEntity() instanceof Shulker) {
- if (peek != lastPeekSet) {
- NMS.setPeekShulker((Shulker) npc.getEntity(), peek);
- lastPeekSet = peek;
- }
- NMSImpl.setShulkerColor((Shulker) npc.getEntity(), color);
- }
- }
-
- public void setColor(DyeColor color) {
- this.color = color;
- }
-
- public void setPeek(int peek) {
- this.peek = peek;
- lastPeekSet = -1;
- }
-}
diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java
index adee8d3ba..2283972e4 100644
--- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java
+++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/util/NMSImpl.java
@@ -174,24 +174,24 @@ import net.citizensnpcs.nms.v1_14_R1.entity.nonliving.ThrownTridentController;
import net.citizensnpcs.nms.v1_14_R1.entity.nonliving.TippedArrowController;
import net.citizensnpcs.nms.v1_14_R1.entity.nonliving.WitherSkullController;
import net.citizensnpcs.nms.v1_14_R1.network.EmptyChannel;
-import net.citizensnpcs.nms.v1_14_R1.trait.BossBarTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.CatTrait;
import net.citizensnpcs.nms.v1_14_R1.trait.Commands;
-import net.citizensnpcs.nms.v1_14_R1.trait.FoxTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.LlamaTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.MushroomCowTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.PandaTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.ParrotTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.PhantomTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.PufferFishTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.ShulkerTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.TropicalFishTrait;
-import net.citizensnpcs.nms.v1_14_R1.trait.VillagerTrait;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.CatTrait;
+import net.citizensnpcs.trait.versioned.FoxTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.MushroomCowTrait;
+import net.citizensnpcs.trait.versioned.PandaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.PhantomTrait;
+import net.citizensnpcs.trait.versioned.PufferFishTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
+import net.citizensnpcs.trait.versioned.TropicalFishTrait;
+import net.citizensnpcs.trait.versioned.VillagerTrait;
import net.citizensnpcs.util.BoundingBox;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@@ -380,6 +380,34 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle;
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ Object battleObject = ENDERDRAGON_BATTLE_FIELD.invoke(NMSImpl.getHandle(entity));
+ if (battleObject == null) {
+ return null;
+ }
+ bserver = ((EnderDragonBattle) battleObject).bossBattle;
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.invoke(ret, bserver);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ return ret;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
return NMSBoundingBox.wrap(NMSImpl.getHandle(handle).getBoundingBox());
@@ -1000,6 +1028,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.KNOCKBACK_RESISTANCE).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -1037,6 +1069,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
// sitting removed
@@ -1491,33 +1527,6 @@ public class NMSImpl implements NMSBridge {
}
}
- public static BossBar getBossBar(org.bukkit.entity.Entity entity) {
- BossBattleServer bserver = null;
- try {
- if (entity.getType() == EntityType.WITHER) {
- bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle;
- } else if (entity.getType() == EntityType.ENDER_DRAGON) {
- Object battleObject = ENDERDRAGON_BATTLE_FIELD.invoke(NMSImpl.getHandle(entity));
- if (battleObject == null) {
- return null;
- }
- bserver = ((EnderDragonBattle) battleObject).bossBattle;
- }
- } catch (Throwable e) {
- e.printStackTrace();
- }
- if (bserver == null) {
- return null;
- }
- BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
- try {
- CRAFT_BOSSBAR_HANDLE_FIELD.invoke(ret, bserver);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- return ret;
- }
-
public static EntityTypes getEntityType(Class> clazz) {
return (EntityTypes) CITIZENS_ENTITY_TYPES.get(clazz);
}
@@ -1754,6 +1763,7 @@ public class NMSImpl implements NMSBridge {
private static final MethodHandle SIZE_FIELD_GETTER = NMS.getGetter(Entity.class, "size");
private static final MethodHandle SIZE_FIELD_SETTER = NMS.getSetter(Entity.class, "size");
private static Field SKULL_PROFILE_FIELD;
+
static {
try {
ENTITY_REGISTRY = new CustomEntityRegistry(
diff --git a/v1_15_R1/pom.xml b/v1_15_R1/pom.xml
index efb66a98c..c0f664121 100644
--- a/v1_15_R1/pom.xml
+++ b/v1_15_R1/pom.xml
@@ -65,7 +65,7 @@
org.apache.maven.plugins
maven-jar-plugin
- 3.1.1
+ 3.2.0
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/BossBarTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/BossBarTrait.java
deleted file mode 100644
index 750bd95c4..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/BossBarTrait.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarFlag;
-import org.bukkit.boss.BossBar;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.EntityType;
-
-import com.google.common.collect.Lists;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl;
-
-@TraitName("bossbar")
-public class BossBarTrait extends Trait {
- @Persist("color")
- private BarColor color = null;
- @Persist("flags")
- private List flags = Lists.newArrayList();
- @Persist("title")
- private String title = null;
- @Persist("visible")
- private boolean visible = true;
-
- public BossBarTrait() {
- super("bossbar");
- }
-
- private boolean isBoss(Entity entity) {
- return entity.getType() == EntityType.ENDER_DRAGON || entity.getType() == EntityType.WITHER
- || entity.getType() == EntityType.GUARDIAN;
- }
-
- @Override
- public void run() {
- if (!npc.isSpawned() || !isBoss(npc.getEntity()))
- return;
- BossBar bar = NMSImpl.getBossBar(npc.getEntity());
- if (bar == null) {
- return;
- }
- bar.setVisible(visible);
- if (color != null) {
- bar.setColor(color);
- }
- if (title != null) {
- bar.setTitle(title);
- }
- for (BarFlag flag : BarFlag.values()) {
- bar.removeFlag(flag);
- }
- for (BarFlag flag : flags) {
- bar.addFlag(flag);
- }
- }
-
- public void setColor(BarColor color) {
- this.color = color;
- }
-
- public void setFlags(Collection flags) {
- this.flags = Lists.newArrayList(flags);
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/CatTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/CatTrait.java
deleted file mode 100644
index 3527373ec..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/CatTrait.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.Cat;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl;
-
-@TraitName("cattrait")
-public class CatTrait extends Trait {
- @Persist
- private DyeColor collarColor = null;
- @Persist
- private boolean lying = false;
- @Persist
- private boolean sitting = false;
- @Persist
- private Cat.Type type = Cat.Type.BLACK;
-
- public CatTrait() {
- super("cattrait");
- }
-
- public boolean isLyingDown() {
- return lying;
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Cat) {
- Cat cat = (Cat) npc.getEntity();
- cat.setSitting(sitting);
- cat.setCatType(type);
- if (collarColor != null) {
- cat.setCollarColor(collarColor);
- }
- NMSImpl.setLyingDown(cat, lying);
- }
- }
-
- public void setCollarColor(DyeColor color) {
- this.collarColor = color;
- }
-
- public void setLyingDown(boolean lying) {
- this.lying = lying;
- }
-
- public void setSitting(boolean sitting) {
- this.sitting = sitting;
- }
-
- public void setType(Cat.Type type) {
- this.type = type;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/Commands.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/Commands.java
index 24d0c5f97..8f389340b 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/Commands.java
+++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/Commands.java
@@ -30,6 +30,19 @@ import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.util.Colorizer;
import net.citizensnpcs.api.util.Messaging;
import net.citizensnpcs.trait.VillagerProfession;
+import net.citizensnpcs.trait.versioned.BeeTrait;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.CatTrait;
+import net.citizensnpcs.trait.versioned.FoxTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.MushroomCowTrait;
+import net.citizensnpcs.trait.versioned.PandaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.PhantomTrait;
+import net.citizensnpcs.trait.versioned.PufferFishTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
+import net.citizensnpcs.trait.versioned.TropicalFishTrait;
+import net.citizensnpcs.trait.versioned.VillagerTrait;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.Util;
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/LlamaTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/LlamaTrait.java
deleted file mode 100644
index e28111989..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/LlamaTrait.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.entity.Llama;
-import org.bukkit.entity.Llama.Color;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("llamatrait")
-public class LlamaTrait extends Trait {
- @Persist
- private Color color = Color.BROWN;
- @Persist
- private int strength = 3;
-
- public LlamaTrait() {
- super("llamatrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Llama) {
- Llama llama = (Llama) npc.getEntity();
- llama.setColor(color);
- llama.setStrength(strength);
- }
- }
-
- public void setColor(Llama.Color color) {
- this.color = color;
- }
-
- public void setStrength(int strength) {
- this.strength = strength;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PandaTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PandaTrait.java
deleted file mode 100644
index bb0053dac..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PandaTrait.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.entity.Panda;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("pandatrait")
-public class PandaTrait extends Trait {
- @Persist
- private Panda.Gene hiddenGene;
- @Persist
- private Panda.Gene mainGene = Panda.Gene.NORMAL;
-
- public PandaTrait() {
- super("pandatrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Panda) {
- Panda panda = (Panda) npc.getEntity();
- panda.setMainGene(mainGene);
- if (hiddenGene != null) {
- panda.setHiddenGene(hiddenGene);
- }
- }
- }
-
- public void setHiddenGene(Panda.Gene gene) {
- this.hiddenGene = gene;
- }
-
- public void setMainGene(Panda.Gene gene) {
- this.mainGene = gene;
- }
-
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/ParrotTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/ParrotTrait.java
deleted file mode 100644
index c41fa2bcd..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/ParrotTrait.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.entity.Parrot;
-import org.bukkit.entity.Parrot.Variant;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("parrottrait")
-public class ParrotTrait extends Trait {
- @Persist
- private Variant variant = Variant.BLUE;
-
- public ParrotTrait() {
- super("parrottrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Parrot) {
- Parrot parrot = (Parrot) npc.getEntity();
- parrot.setVariant(variant);
- }
- }
-
- public void setVariant(Parrot.Variant variant) {
- this.variant = variant;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PhantomTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PhantomTrait.java
deleted file mode 100644
index d74db8cc3..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/PhantomTrait.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.entity.Phantom;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("phantomtrait")
-public class PhantomTrait extends Trait {
- @Persist
- private int size = 1;
-
- public PhantomTrait() {
- super("phantomtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof Phantom) {
- Phantom phantom = (Phantom) npc.getEntity();
- phantom.setSize(size);
- }
- }
-
- public void setSize(int size) {
- this.size = size;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/ShulkerTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/ShulkerTrait.java
deleted file mode 100644
index 9bfc89e8c..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/ShulkerTrait.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.Shulker;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl;
-import net.citizensnpcs.util.NMS;
-
-@TraitName("shulkertrait")
-public class ShulkerTrait extends Trait {
- @Persist("color")
- private DyeColor color = DyeColor.PURPLE;
- private int lastPeekSet = 0;
- @Persist("peek")
- private int peek = 0;
-
- public ShulkerTrait() {
- super("shulkertrait");
- }
-
- @Override
- public void onSpawn() {
- setPeek(peek);
- }
-
- @Override
- public void run() {
- if (color == null) {
- color = DyeColor.PURPLE;
- }
- if (npc.getEntity() instanceof Shulker) {
- if (peek != lastPeekSet) {
- NMS.setPeekShulker((Shulker) npc.getEntity(), peek);
- lastPeekSet = peek;
- }
- NMSImpl.setShulkerColor((Shulker) npc.getEntity(), color);
- }
- }
-
- public void setColor(DyeColor color) {
- this.color = color;
- }
-
- public void setPeek(int peek) {
- this.peek = peek;
- lastPeekSet = -1;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/TropicalFishTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/TropicalFishTrait.java
deleted file mode 100644
index 051796ae1..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/TropicalFishTrait.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.DyeColor;
-import org.bukkit.entity.TropicalFish;
-import org.bukkit.entity.TropicalFish.Pattern;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("tropicalfishtrait")
-public class TropicalFishTrait extends Trait {
- @Persist
- private DyeColor bodyColor = DyeColor.BLUE;
- @Persist
- private Pattern pattern = Pattern.BRINELY;
- @Persist
- private DyeColor patternColor = DyeColor.BLUE;
-
- public TropicalFishTrait() {
- super("tropicalfishtrait");
- }
-
- @Override
- public void run() {
- if (npc.isSpawned() && npc.getEntity() instanceof TropicalFish) {
- TropicalFish fish = (TropicalFish) npc.getEntity();
- fish.setBodyColor(bodyColor);
- fish.setPatternColor(patternColor);
- fish.setPattern(pattern);
- }
- }
-
- public void setBodyColor(DyeColor color) {
- this.bodyColor = color;
- }
-
- public void setPattern(Pattern pattern) {
- this.pattern = pattern;
- }
-
- public void setPatternColor(DyeColor color) {
- this.patternColor = color;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/VillagerTrait.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/VillagerTrait.java
deleted file mode 100644
index c519cdd36..000000000
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/trait/VillagerTrait.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package net.citizensnpcs.nms.v1_15_R1.trait;
-
-import org.bukkit.entity.Villager;
-
-import net.citizensnpcs.api.persistence.Persist;
-import net.citizensnpcs.api.trait.Trait;
-import net.citizensnpcs.api.trait.TraitName;
-
-@TraitName("villagertrait")
-public class VillagerTrait extends Trait {
- @Persist
- private int level = 1;
- @Persist
- private Villager.Type type;
-
- public VillagerTrait() {
- super("villagertrait");
- }
-
- @Override
- public void run() {
- if (!(npc.getEntity() instanceof Villager))
- return;
- if (type != null) {
- ((Villager) npc.getEntity()).setVillagerType(type);
- }
- level = Math.min(5, Math.max(1, level));
- ((Villager) npc.getEntity()).setVillagerLevel(level);
- }
-
- public void setLevel(int level) {
- this.level = level;
- }
-
- public void setType(Villager.Type type) {
- this.type = type;
- }
-}
diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java
index a83cf349e..2c8a80261 100644
--- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java
+++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/util/NMSImpl.java
@@ -175,25 +175,25 @@ import net.citizensnpcs.nms.v1_15_R1.entity.nonliving.ThrownTridentController;
import net.citizensnpcs.nms.v1_15_R1.entity.nonliving.TippedArrowController;
import net.citizensnpcs.nms.v1_15_R1.entity.nonliving.WitherSkullController;
import net.citizensnpcs.nms.v1_15_R1.network.EmptyChannel;
-import net.citizensnpcs.nms.v1_15_R1.trait.BeeTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.BossBarTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.CatTrait;
import net.citizensnpcs.nms.v1_15_R1.trait.Commands;
-import net.citizensnpcs.nms.v1_15_R1.trait.FoxTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.LlamaTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.MushroomCowTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.PandaTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.ParrotTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.PhantomTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.PufferFishTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.ShulkerTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.TropicalFishTrait;
-import net.citizensnpcs.nms.v1_15_R1.trait.VillagerTrait;
import net.citizensnpcs.npc.EntityControllers;
import net.citizensnpcs.npc.ai.MCNavigationStrategy.MCNavigator;
import net.citizensnpcs.npc.ai.MCTargetStrategy.TargetNavigator;
import net.citizensnpcs.npc.ai.NPCHolder;
import net.citizensnpcs.npc.skin.SkinnableEntity;
+import net.citizensnpcs.trait.versioned.BeeTrait;
+import net.citizensnpcs.trait.versioned.BossBarTrait;
+import net.citizensnpcs.trait.versioned.CatTrait;
+import net.citizensnpcs.trait.versioned.FoxTrait;
+import net.citizensnpcs.trait.versioned.LlamaTrait;
+import net.citizensnpcs.trait.versioned.MushroomCowTrait;
+import net.citizensnpcs.trait.versioned.PandaTrait;
+import net.citizensnpcs.trait.versioned.ParrotTrait;
+import net.citizensnpcs.trait.versioned.PhantomTrait;
+import net.citizensnpcs.trait.versioned.PufferFishTrait;
+import net.citizensnpcs.trait.versioned.ShulkerTrait;
+import net.citizensnpcs.trait.versioned.TropicalFishTrait;
+import net.citizensnpcs.trait.versioned.VillagerTrait;
import net.citizensnpcs.util.BoundingBox;
import net.citizensnpcs.util.Messages;
import net.citizensnpcs.util.NMS;
@@ -381,6 +381,34 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public BossBar getBossBar(org.bukkit.entity.Entity entity) {
+ BossBattleServer bserver = null;
+ try {
+ if (entity.getType() == EntityType.WITHER) {
+ bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle;
+ } else if (entity.getType() == EntityType.ENDER_DRAGON) {
+ Object battleObject = ENDERDRAGON_BATTLE_FIELD.invoke(NMSImpl.getHandle(entity));
+ if (battleObject == null) {
+ return null;
+ }
+ bserver = ((EnderDragonBattle) battleObject).bossBattle;
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ if (bserver == null) {
+ return null;
+ }
+ BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
+ try {
+ CRAFT_BOSSBAR_HANDLE_FIELD.invoke(ret, bserver);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ return ret;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
return NMSBoundingBox.wrap(NMSImpl.getHandle(handle).getBoundingBox());
@@ -1004,6 +1032,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.KNOCKBACK_RESISTANCE).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -1041,6 +1073,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
// sitting removed
@@ -1481,33 +1517,6 @@ public class NMSImpl implements NMSBridge {
return null;
}
- public static BossBar getBossBar(org.bukkit.entity.Entity entity) {
- BossBattleServer bserver = null;
- try {
- if (entity.getType() == EntityType.WITHER) {
- bserver = ((EntityWither) NMSImpl.getHandle(entity)).bossBattle;
- } else if (entity.getType() == EntityType.ENDER_DRAGON) {
- Object battleObject = ENDERDRAGON_BATTLE_FIELD.invoke(NMSImpl.getHandle(entity));
- if (battleObject == null) {
- return null;
- }
- bserver = ((EnderDragonBattle) battleObject).bossBattle;
- }
- } catch (Throwable e) {
- e.printStackTrace();
- }
- if (bserver == null) {
- return null;
- }
- BossBar ret = Bukkit.createBossBar("", BarColor.BLUE, BarStyle.SEGMENTED_10);
- try {
- CRAFT_BOSSBAR_HANDLE_FIELD.invoke(ret, bserver);
- } catch (Throwable e) {
- e.printStackTrace();
- }
- return ret;
- }
-
public static EntityTypes getEntityType(Class> clazz) {
return (EntityTypes) CITIZENS_ENTITY_TYPES.get(clazz);
}
@@ -1743,7 +1752,9 @@ public class NMSImpl implements NMSBridge {
private static final Random RANDOM = Util.getFastRandom();
private static final MethodHandle SIZE_FIELD_GETTER = NMS.getGetter(Entity.class, "size");
private static final MethodHandle SIZE_FIELD_SETTER = NMS.getSetter(Entity.class, "size");
+
private static Field SKULL_PROFILE_FIELD;
+
static {
try {
ENTITY_REGISTRY = new CustomEntityRegistry(
diff --git a/v1_8_R3/pom.xml b/v1_8_R3/pom.xml
index a301a8e27..02a38c43c 100644
--- a/v1_8_R3/pom.xml
+++ b/v1_8_R3/pom.xml
@@ -47,7 +47,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 2.3.2
+ 3.8.1
1.6
@@ -57,13 +57,13 @@
org.apache.maven.plugins
maven-jar-plugin
- 2.3.2
+ 3.2.0
org.apache.maven.plugins
maven-shade-plugin
- 2.1
+ 3.2.1
package
diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java
index 433a120f0..5c55eb219 100644
--- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java
+++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/util/NMSImpl.java
@@ -16,6 +16,7 @@ import java.util.Random;
import java.util.Set;
import org.bukkit.Bukkit;
+import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
@@ -272,6 +273,11 @@ public class NMSImpl implements NMSBridge {
return new CitizensBlockBreaker(entity, targetBlock, config);
}
+ @Override
+ public Object getBossBar(org.bukkit.entity.Entity entity) {
+ return null;
+ }
+
@Override
public BoundingBox getBoundingBox(org.bukkit.entity.Entity handle) {
AxisAlignedBB bb = NMSImpl.getHandle(handle).getBoundingBox();
@@ -805,6 +811,10 @@ public class NMSImpl implements NMSBridge {
handle.getAttributeInstance(GenericAttributes.c).setValue(d);
}
+ @Override
+ public void setLyingDown(org.bukkit.entity.Entity cat, boolean lying) {
+ }
+
@Override
public void setNavigationTarget(org.bukkit.entity.Entity handle, org.bukkit.entity.Entity target, float speed) {
NMSImpl.getNavigation(handle).a(NMSImpl.getHandle(target), speed);
@@ -844,6 +854,10 @@ public class NMSImpl implements NMSBridge {
}
}
+ @Override
+ public void setShulkerColor(org.bukkit.entity.Entity entity, DyeColor color) {
+ }
+
@Override
public void setSitting(Ocelot ocelot, boolean sitting) {
setSitting((Tameable) ocelot, sitting);
@@ -1314,8 +1328,11 @@ public class NMSImpl implements NMSBridge {
public static Field NETWORK_ADDRESS = NMS.getField(NetworkManager.class, "l");
public static final Location PACKET_CACHE_LOCATION = new Location(null, 0, 0, 0);
private static Field PATHFINDING_RANGE = NMS.getField(NavigationAbstract.class, "a");
+
private static final Random RANDOM = Util.getFastRandom();
+
private static Field SKULL_PROFILE_FIELD;
+
private static Field TRACKED_ENTITY_SET = NMS.getField(EntityTracker.class, "c");
static {