From 16c7bf2eb3e4f2be44dde988c5fb23bd1eb7a3bd Mon Sep 17 00:00:00 2001 From: vemacs Date: Thu, 18 Jun 2015 13:43:39 -0400 Subject: [PATCH] Add v1_8R2 to support 1.8.3 users not on the latest 1.8.3 build --- Essentials/pom.xml | 12 +++++ .../utils/SpawnerProviderFactory.java | 2 + .../nms/v1_8_R1/v1_8_R1SpawnerProvider.java | 2 - nms/1_8_R2Provider/.gitignore | 1 + nms/1_8_R2Provider/README.md | 1 + nms/1_8_R2Provider/pom.xml | 36 +++++++++++++++ .../nms/v1_8_R2/v1_8_R2SpawnerProvider.java | 46 +++++++++++++++++++ pom.xml | 1 + 8 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 nms/1_8_R2Provider/.gitignore create mode 100644 nms/1_8_R2Provider/README.md create mode 100644 nms/1_8_R2Provider/pom.xml create mode 100644 nms/1_8_R2Provider/src/net/ess3/nms/v1_8_R2/v1_8_R2SpawnerProvider.java diff --git a/Essentials/pom.xml b/Essentials/pom.xml index 347bf9cff..c7b9e2bd3 100644 --- a/Essentials/pom.xml +++ b/Essentials/pom.xml @@ -117,6 +117,18 @@ + + net.ess3 + 1_8_R2Provider + 2.0.1 + compile + + + org.bukkit + craftbukkit + + + net.ess3 LegacyProvider diff --git a/Essentials/src/com/earth2me/essentials/utils/SpawnerProviderFactory.java b/Essentials/src/com/earth2me/essentials/utils/SpawnerProviderFactory.java index 8892c9dcf..0f1292250 100644 --- a/Essentials/src/com/earth2me/essentials/utils/SpawnerProviderFactory.java +++ b/Essentials/src/com/earth2me/essentials/utils/SpawnerProviderFactory.java @@ -5,6 +5,7 @@ import net.ess3.nms.SpawnerProvider; import net.ess3.nms.blockmeta.BlockMetaSpawnerProvider; import net.ess3.nms.legacy.LegacySpawnerProvider; import net.ess3.nms.v1_8_R1.v1_8_R1SpawnerProvider; +import net.ess3.nms.v1_8_R2.v1_8_R2SpawnerProvider; import java.util.Arrays; import java.util.List; @@ -20,6 +21,7 @@ public class SpawnerProviderFactory { List> availableProviders = Arrays.asList( BlockMetaSpawnerProvider.class, v1_8_R1SpawnerProvider.class, + v1_8_R2SpawnerProvider.class, LegacySpawnerProvider.class ); SpawnerProvider finalProvider = null; diff --git a/nms/1_8_R1Provider/src/net/ess3/nms/v1_8_R1/v1_8_R1SpawnerProvider.java b/nms/1_8_R1Provider/src/net/ess3/nms/v1_8_R1/v1_8_R1SpawnerProvider.java index 0434b14d0..29e66a503 100644 --- a/nms/1_8_R1Provider/src/net/ess3/nms/v1_8_R1/v1_8_R1SpawnerProvider.java +++ b/nms/1_8_R1Provider/src/net/ess3/nms/v1_8_R1/v1_8_R1SpawnerProvider.java @@ -2,11 +2,9 @@ package net.ess3.nms.v1_8_R1; import net.ess3.nms.SpawnerProvider; import net.minecraft.server.v1_8_R1.NBTTagCompound; -import org.bukkit.ChatColor; import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemStack; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; public class v1_8_R1SpawnerProvider extends SpawnerProvider { @Override diff --git a/nms/1_8_R2Provider/.gitignore b/nms/1_8_R2Provider/.gitignore new file mode 100644 index 000000000..415c5104f --- /dev/null +++ b/nms/1_8_R2Provider/.gitignore @@ -0,0 +1 @@ +craftbukkit-*.jar \ No newline at end of file diff --git a/nms/1_8_R2Provider/README.md b/nms/1_8_R2Provider/README.md new file mode 100644 index 000000000..b9da55f8b --- /dev/null +++ b/nms/1_8_R2Provider/README.md @@ -0,0 +1 @@ +Put a 1.8.3 Spigot/CraftBukkit JAR with filename `craftbukkit-1.8.3-R0.1-SNAPSHOT.jar` in `lib/org/bukkit/craftbukkit/1.8.3-R0.1-SNAPSHOT`. \ No newline at end of file diff --git a/nms/1_8_R2Provider/pom.xml b/nms/1_8_R2Provider/pom.xml new file mode 100644 index 000000000..890bb0c2a --- /dev/null +++ b/nms/1_8_R2Provider/pom.xml @@ -0,0 +1,36 @@ + + + + EssentialsParent + net.ess3 + 2.0.1 + ../../pom.xml + + 4.0.0 + + 1_8_R2Provider + + + + project.local + local repo + file:${project.basedir}/lib + + + + + + org.bukkit + craftbukkit + 1.8.3-R0.1-SNAPSHOT + provided + + + net.ess3 + NMSProvider + 2.0.1 + + + \ No newline at end of file diff --git a/nms/1_8_R2Provider/src/net/ess3/nms/v1_8_R2/v1_8_R2SpawnerProvider.java b/nms/1_8_R2Provider/src/net/ess3/nms/v1_8_R2/v1_8_R2SpawnerProvider.java new file mode 100644 index 000000000..ddd362fa1 --- /dev/null +++ b/nms/1_8_R2Provider/src/net/ess3/nms/v1_8_R2/v1_8_R2SpawnerProvider.java @@ -0,0 +1,46 @@ +package net.ess3.nms.v1_8_R2; + +import net.ess3.nms.SpawnerProvider; +import net.minecraft.server.v1_8_R2.NBTTagCompound; +import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemStack; +import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; + +public class v1_8_R2SpawnerProvider extends SpawnerProvider { + @Override + public ItemStack setEntityType(ItemStack is, EntityType type) { + net.minecraft.server.v1_8_R2.ItemStack itemStack; + CraftItemStack craftStack = CraftItemStack.asCraftCopy(is); + itemStack = CraftItemStack.asNMSCopy(craftStack); + NBTTagCompound tag = itemStack.getTag(); + if (tag == null) { + tag = new NBTTagCompound(); + itemStack.setTag(tag); + } + if (!tag.hasKey("BlockEntityTag")) { + tag.set("BlockEntityTag", new NBTTagCompound()); + } + tag = itemStack.getTag().getCompound("BlockEntityTag"); + tag.setString("EntityId", type.getName()); + ItemStack bukkitItemStack = CraftItemStack.asCraftMirror(itemStack).clone(); + return setDisplayName(bukkitItemStack, type); + } + + @Override + public EntityType getEntityType(ItemStack is) { + net.minecraft.server.v1_8_R2.ItemStack itemStack; + CraftItemStack craftStack = CraftItemStack.asCraftCopy(is); + itemStack = CraftItemStack.asNMSCopy(craftStack); + NBTTagCompound tag = itemStack.getTag(); + if (tag == null || !tag.hasKey("BlockEntityTag")) { + throw new IllegalArgumentException(); + } + String name = tag.getCompound("BlockEntityTag").getString("EntityId"); + return EntityType.fromName(name); + } + + @Override + public String getHumanName() { + return "CraftBukkit 1.8 NMS-based provider"; + } +} diff --git a/pom.xml b/pom.xml index 191afe888..7eb9cab48 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,7 @@ nms/NMSProvider nms/BlockMetaProvider nms/1_8_R1Provider + nms/1_8_R2Provider nms/LegacyProvider