diff --git a/src/main/java/com/bgsoftware/wildloaders/WildLoadersPlugin.java b/src/main/java/com/bgsoftware/wildloaders/WildLoadersPlugin.java index 27968c0..f363e7b 100644 --- a/src/main/java/com/bgsoftware/wildloaders/WildLoadersPlugin.java +++ b/src/main/java/com/bgsoftware/wildloaders/WildLoadersPlugin.java @@ -93,6 +93,10 @@ public final class WildLoadersPlugin extends JavaPlugin implements WildLoaders { String version = getServer().getClass().getPackage().getName().split("\\.")[3]; try { nmsAdapter = (NMSAdapter) Class.forName(String.format("com.bgsoftware.wildloaders.nms.%s.NMSAdapter", version)).newInstance(); + if (!nmsAdapter.isMappingsSupported()) { + log("WildLoaders does not support your version mappings... Please contact @Ome_R"); + shouldEnable = false; + } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) { shouldEnable = false; log("Couldn't load up with an adapter " + version + ". Please contact @Ome_R"); diff --git a/src/main/java/com/bgsoftware/wildloaders/nms/NMSAdapter.java b/src/main/java/com/bgsoftware/wildloaders/nms/NMSAdapter.java index db77701..94c2a0a 100644 --- a/src/main/java/com/bgsoftware/wildloaders/nms/NMSAdapter.java +++ b/src/main/java/com/bgsoftware/wildloaders/nms/NMSAdapter.java @@ -10,6 +10,8 @@ import java.util.UUID; public interface NMSAdapter { + boolean isMappingsSupported(); + String getTag(ItemStack itemStack, String key, String def); ItemStack setTag(ItemStack itemStack, String key, String value); diff --git a/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/NMSAdapter.java b/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/NMSAdapter.java index 59318e9..3b4129d 100644 --- a/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/NMSAdapter.java +++ b/v1_12_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_12_R1/NMSAdapter.java @@ -31,6 +31,11 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt private static final ReflectMethod TILE_ENTITY_LOAD = new ReflectMethod<>(TileEntity.class, "load", NBTTagCompound.class); + @Override + public boolean isMappingsSupported() { + return true; + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = CraftItemStack.asNMSCopy(itemStack); diff --git a/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/NMSAdapter.java b/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/NMSAdapter.java index fd84224..5c7e53e 100644 --- a/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/NMSAdapter.java +++ b/v1_16_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_16_R3/NMSAdapter.java @@ -29,6 +29,11 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt private static final WildLoadersPlugin plugin = WildLoadersPlugin.getPlugin(); + @Override + public boolean isMappingsSupported() { + return true; + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = CraftItemStack.asNMSCopy(itemStack); diff --git a/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_17_R1/NMSAdapter.java b/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_17_R1/NMSAdapter.java index 1dad0c2..fcd5b20 100644 --- a/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_17_R1/NMSAdapter.java +++ b/v1_17_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_17_R1/NMSAdapter.java @@ -27,6 +27,7 @@ import org.bukkit.craftbukkit.v1_17_R1.CraftChunk; import org.bukkit.craftbukkit.v1_17_R1.CraftServer; import org.bukkit.craftbukkit.v1_17_R1.CraftWorld; import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_17_R1.util.CraftMagicNumbers; import java.util.UUID; @@ -38,6 +39,13 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt private static final ReflectMethod CREATE_TICKING_BLOCK = new ReflectMethod<>( Chunk.class, "a", TileEntity.class, BlockEntityTicker.class); + private static final String BUILT_AGAINST_MAPPING = "acd6e6c27e5a0a9440afba70a96c27c9"; + + @Override + public boolean isMappingsSupported() { + return ((CraftMagicNumbers) CraftMagicNumbers.INSTANCE).getMappingsVersion().equals(BUILT_AGAINST_MAPPING); + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = CraftItemStack.asNMSCopy(itemStack); diff --git a/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R1/NMSAdapter.java b/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R1/NMSAdapter.java index 56ecf76..ed5b2c7 100644 --- a/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R1/NMSAdapter.java +++ b/v1_18_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R1/NMSAdapter.java @@ -26,6 +26,7 @@ import org.bukkit.craftbukkit.v1_18_R1.CraftChunk; import org.bukkit.craftbukkit.v1_18_R1.CraftServer; import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_18_R1.util.CraftMagicNumbers; import java.util.UUID; @@ -39,6 +40,13 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt net.minecraft.world.level.chunk.Chunk.class, "a", net.minecraft.world.level.block.entity.TileEntity.class, BlockEntityTicker.class); + private static final String BUILT_AGAINST_MAPPING = "20b026e774dbf715e40a0b2afe114792"; + + @Override + public boolean isMappingsSupported() { + return ((CraftMagicNumbers) CraftMagicNumbers.INSTANCE).getMappingsVersion().equals(BUILT_AGAINST_MAPPING); + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = new ItemStack(CraftItemStack.asNMSCopy(itemStack)); diff --git a/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R2/NMSAdapter.java b/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R2/NMSAdapter.java index fc9ed4a..c82e5e0 100644 --- a/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R2/NMSAdapter.java +++ b/v1_18_R2/src/main/java/com/bgsoftware/wildloaders/nms/v1_18_R2/NMSAdapter.java @@ -26,6 +26,7 @@ import org.bukkit.craftbukkit.v1_18_R2.CraftChunk; import org.bukkit.craftbukkit.v1_18_R2.CraftServer; import org.bukkit.craftbukkit.v1_18_R2.CraftWorld; import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_18_R2.util.CraftMagicNumbers; import java.util.UUID; @@ -39,6 +40,13 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt net.minecraft.world.level.chunk.Chunk.class, "a", net.minecraft.world.level.block.entity.TileEntity.class, BlockEntityTicker.class); + private static final String BUILT_AGAINST_MAPPING = "eaeedbff51b16ead3170906872fda334"; + + @Override + public boolean isMappingsSupported() { + return ((CraftMagicNumbers) CraftMagicNumbers.INSTANCE).getMappingsVersion().equals(BUILT_AGAINST_MAPPING); + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = new ItemStack(CraftItemStack.asNMSCopy(itemStack)); diff --git a/v1_19_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_19_R1/NMSAdapter.java b/v1_19_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_19_R1/NMSAdapter.java index 05c5906..bb705e9 100644 --- a/v1_19_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_19_R1/NMSAdapter.java +++ b/v1_19_R1/src/main/java/com/bgsoftware/wildloaders/nms/v1_19_R1/NMSAdapter.java @@ -26,6 +26,7 @@ import org.bukkit.craftbukkit.v1_19_R1.CraftChunk; import org.bukkit.craftbukkit.v1_19_R1.CraftServer; import org.bukkit.craftbukkit.v1_19_R1.CraftWorld; import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_19_R1.util.CraftMagicNumbers; import java.util.UUID; @@ -39,6 +40,13 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt net.minecraft.world.level.chunk.Chunk.class, "a", net.minecraft.world.level.block.entity.TileEntity.class, BlockEntityTicker.class); + private static final String BUILT_AGAINST_MAPPING = "4cc0cc97cac491651bff3af8b124a214"; + + @Override + public boolean isMappingsSupported() { + return ((CraftMagicNumbers) CraftMagicNumbers.INSTANCE).getMappingsVersion().equals(BUILT_AGAINST_MAPPING); + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = new ItemStack(CraftItemStack.asNMSCopy(itemStack)); diff --git a/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/NMSAdapter.java b/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/NMSAdapter.java index 068effe..d08b32b 100644 --- a/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/NMSAdapter.java +++ b/v1_7_R4/src/main/java/com/bgsoftware/wildloaders/nms/v1_7_R4/NMSAdapter.java @@ -27,6 +27,11 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt private static final WildLoadersPlugin plugin = WildLoadersPlugin.getPlugin(); + @Override + public boolean isMappingsSupported() { + return true; + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = CraftItemStack.asNMSCopy(itemStack); diff --git a/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/NMSAdapter.java b/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/NMSAdapter.java index a985c8c..0404084 100644 --- a/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/NMSAdapter.java +++ b/v1_8_R3/src/main/java/com/bgsoftware/wildloaders/nms/v1_8_R3/NMSAdapter.java @@ -27,6 +27,11 @@ public final class NMSAdapter implements com.bgsoftware.wildloaders.nms.NMSAdapt private static final WildLoadersPlugin plugin = WildLoadersPlugin.getPlugin(); + @Override + public boolean isMappingsSupported() { + return true; + } + @Override public String getTag(org.bukkit.inventory.ItemStack itemStack, String key, String def) { ItemStack nmsItem = CraftItemStack.asNMSCopy(itemStack);