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 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 8 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 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 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 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 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 1.8 @@ -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 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 {