From bc4c1362edb7a3a1076c495f371e54cb13a20131 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sun, 28 Nov 2021 13:18:06 +0000 Subject: [PATCH 1/2] Added in source tree for 1.18 - awaiting release --- eco-core/core-nms/v1_18_R1/build.gradle | 6 ++++ .../v1_18_R1/EcoCraftEnchantmentManager.java | 25 +++++++++++++ .../proxy/v1_18_R1/OpenInventory.java | 13 +++++++ .../enchants/EcoCraftEnchantment.java | 36 +++++++++++++++++++ settings.gradle | 1 + 5 files changed, 81 insertions(+) create mode 100644 eco-core/core-nms/v1_18_R1/build.gradle create mode 100644 eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java create mode 100644 eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java create mode 100644 eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java diff --git a/eco-core/core-nms/v1_18_R1/build.gradle b/eco-core/core-nms/v1_18_R1/build.gradle new file mode 100644 index 00000000..93f50143 --- /dev/null +++ b/eco-core/core-nms/v1_18_R1/build.gradle @@ -0,0 +1,6 @@ +group 'com.willfp' +version rootProject.version + +dependencies { + compileOnly 'org.spigotmc:spigot:1.18-rc3-R0.1-SNAPSHOT' +} \ No newline at end of file diff --git a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java new file mode 100644 index 00000000..01913596 --- /dev/null +++ b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java @@ -0,0 +1,25 @@ +package com.willfp.ecoenchants.proxy.v1_18_R1; + +import com.willfp.ecoenchants.enchantments.support.vanilla.VanillaEnchantmentMetadata; +import com.willfp.ecoenchants.enchantments.support.vanilla.VanillaEnchantments; +import com.willfp.ecoenchants.proxy.proxies.EcoCraftEnchantmentManagerProxy; +import com.willfp.ecoenchants.proxy.v1_18_R1.enchants.EcoCraftEnchantment; +import net.minecraft.core.IRegistry; +import net.minecraft.world.item.enchantment.Enchantment; +import org.bukkit.NamespacedKey; +import org.bukkit.craftbukkit.v1_17_R1.util.CraftNamespacedKey; + +import java.util.Map; + +public final class EcoCraftEnchantmentManager implements EcoCraftEnchantmentManagerProxy { + @Override + public void registerNewCraftEnchantments() { + Map metadataMap = VanillaEnchantments.getMetadataMap(); + + for (Enchantment enchantment : IRegistry.X) { + NamespacedKey key = CraftNamespacedKey.fromMinecraft(IRegistry.X.getKey(enchantment)); + VanillaEnchantmentMetadata metadata = metadataMap.get(org.bukkit.enchantments.Enchantment.getByKey(key)); + new EcoCraftEnchantment(enchantment, metadata).register(); + } + } +} diff --git a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java new file mode 100644 index 00000000..c2869f4e --- /dev/null +++ b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java @@ -0,0 +1,13 @@ +package com.willfp.ecoenchants.proxy.v1_18_R1; + +import com.willfp.ecoenchants.proxy.proxies.OpenInventoryProxy; +import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public final class OpenInventory implements OpenInventoryProxy { + @Override + public Object getOpenInventory(@NotNull final Player player) { + return ((CraftPlayer) player).getHandle().bV; + } +} diff --git a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java new file mode 100644 index 00000000..a99c2ff0 --- /dev/null +++ b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java @@ -0,0 +1,36 @@ +package com.willfp.ecoenchants.proxy.v1_18_R1.enchants; + +import com.willfp.ecoenchants.enchantments.EcoEnchant; +import com.willfp.ecoenchants.enchantments.support.vanilla.VanillaEnchantmentMetadata; +import com.willfp.ecoenchants.enchantments.util.EnchantmentUtils; +import net.minecraft.world.item.enchantment.Enchantment; +import org.bukkit.craftbukkit.v1_17_R1.enchantments.CraftEnchantment; +import org.jetbrains.annotations.NotNull; + +public class EcoCraftEnchantment extends CraftEnchantment { + private final VanillaEnchantmentMetadata metadata; + + public EcoCraftEnchantment(@NotNull final Enchantment target, + @NotNull final VanillaEnchantmentMetadata metadata) { + super(target); + this.metadata = metadata; + } + + @Override + public int getMaxLevel() { + return metadata.maxLevel() == null ? this.getHandle().getMaxLevel() : metadata.maxLevel(); + } + + @Override + public boolean conflictsWith(@NotNull final org.bukkit.enchantments.Enchantment other) { + if (other instanceof EcoEnchant) { + return other.conflictsWith(this); + } + + return metadata.conflicts() == null ? super.conflictsWith(other) : metadata.conflicts().contains(other.getKey()); + } + + public void register() { + EnchantmentUtils.register(this); + } +} diff --git a/settings.gradle b/settings.gradle index 50944ae5..5c85006c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,6 +5,7 @@ include ':eco-core' include ':eco-core:core-nms' include ':eco-core:core-nms:v1_16_R3' include ':eco-core:core-nms:v1_17_R1' +//include ':eco-core:core-nms:v1_18_R1' include ':eco-core:core-proxy' include ':eco-core:core-plugin' include ':eco-core:core-stub' From bd2f2a8e9d5be025d0613517a7374952d4f32a51 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 29 Nov 2021 08:14:11 +0000 Subject: [PATCH 2/2] Implemented 1.18 NMS --- .../proxy/v1_18_R1/EcoCraftEnchantmentManager.java | 6 +++--- .../willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java | 4 ++-- .../proxy/v1_18_R1/enchants/EcoCraftEnchantment.java | 4 ++-- settings.gradle | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java index 01913596..bb3877dd 100644 --- a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java +++ b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/EcoCraftEnchantmentManager.java @@ -7,7 +7,7 @@ import com.willfp.ecoenchants.proxy.v1_18_R1.enchants.EcoCraftEnchantment; import net.minecraft.core.IRegistry; import net.minecraft.world.item.enchantment.Enchantment; import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_17_R1.util.CraftNamespacedKey; +import org.bukkit.craftbukkit.v1_18_R1.util.CraftNamespacedKey; import java.util.Map; @@ -16,8 +16,8 @@ public final class EcoCraftEnchantmentManager implements EcoCraftEnchantmentMana public void registerNewCraftEnchantments() { Map metadataMap = VanillaEnchantments.getMetadataMap(); - for (Enchantment enchantment : IRegistry.X) { - NamespacedKey key = CraftNamespacedKey.fromMinecraft(IRegistry.X.getKey(enchantment)); + for (Enchantment enchantment : IRegistry.Y) { + NamespacedKey key = CraftNamespacedKey.fromMinecraft(IRegistry.Y.b(enchantment)); VanillaEnchantmentMetadata metadata = metadataMap.get(org.bukkit.enchantments.Enchantment.getByKey(key)); new EcoCraftEnchantment(enchantment, metadata).register(); } diff --git a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java index c2869f4e..e5704fe5 100644 --- a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java +++ b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/OpenInventory.java @@ -1,13 +1,13 @@ package com.willfp.ecoenchants.proxy.v1_18_R1; import com.willfp.ecoenchants.proxy.proxies.OpenInventoryProxy; -import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; public final class OpenInventory implements OpenInventoryProxy { @Override public Object getOpenInventory(@NotNull final Player player) { - return ((CraftPlayer) player).getHandle().bV; + return ((CraftPlayer) player).getHandle().bW; } } diff --git a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java index a99c2ff0..3b661b90 100644 --- a/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java +++ b/eco-core/core-nms/v1_18_R1/src/main/java/com/willfp/ecoenchants/proxy/v1_18_R1/enchants/EcoCraftEnchantment.java @@ -4,7 +4,7 @@ import com.willfp.ecoenchants.enchantments.EcoEnchant; import com.willfp.ecoenchants.enchantments.support.vanilla.VanillaEnchantmentMetadata; import com.willfp.ecoenchants.enchantments.util.EnchantmentUtils; import net.minecraft.world.item.enchantment.Enchantment; -import org.bukkit.craftbukkit.v1_17_R1.enchantments.CraftEnchantment; +import org.bukkit.craftbukkit.v1_18_R1.enchantments.CraftEnchantment; import org.jetbrains.annotations.NotNull; public class EcoCraftEnchantment extends CraftEnchantment { @@ -18,7 +18,7 @@ public class EcoCraftEnchantment extends CraftEnchantment { @Override public int getMaxLevel() { - return metadata.maxLevel() == null ? this.getHandle().getMaxLevel() : metadata.maxLevel(); + return metadata.maxLevel() == null ? this.getHandle().a() : metadata.maxLevel(); } @Override diff --git a/settings.gradle b/settings.gradle index 5c85006c..f6d41df4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,7 +5,7 @@ include ':eco-core' include ':eco-core:core-nms' include ':eco-core:core-nms:v1_16_R3' include ':eco-core:core-nms:v1_17_R1' -//include ':eco-core:core-nms:v1_18_R1' +include ':eco-core:core-nms:v1_18_R1' include ':eco-core:core-proxy' include ':eco-core:core-plugin' include ':eco-core:core-stub'