diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..87fb27aa --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @WillFP diff --git a/eco-core/core-nms/v1_20_R1/build.gradle.kts b/eco-core/core-nms/v1_20_R1/build.gradle.kts new file mode 100644 index 00000000..c00e0806 --- /dev/null +++ b/eco-core/core-nms/v1_20_R1/build.gradle.kts @@ -0,0 +1,6 @@ +group = "com.willfp" +version = rootProject.version + +dependencies { + compileOnly("org.spigotmc:spigot:1.20-R0.1-SNAPSHOT") +} diff --git a/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/EcoCraftEnchantment.kt b/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/EcoCraftEnchantment.kt new file mode 100644 index 00000000..9becddb6 --- /dev/null +++ b/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/EcoCraftEnchantment.kt @@ -0,0 +1,26 @@ +package com.willfp.ecoenchants.proxy.v1_20_R1 + +import com.willfp.ecoenchants.enchants.EcoEnchant +import com.willfp.ecoenchants.enchants.EcoEnchants +import com.willfp.ecoenchants.vanilla.VanillaEnchantmentData +import net.minecraft.world.item.enchantment.Enchantment +import org.bukkit.craftbukkit.v1_20_R1.enchantments.CraftEnchantment + +class EcoCraftEnchantment( + target: Enchantment, + private val data: VanillaEnchantmentData +) : CraftEnchantment(target) { + override fun getMaxLevel(): Int = data.maxLevel ?: super.getMaxLevel() + + override fun conflictsWith(other: org.bukkit.enchantments.Enchantment): Boolean { + if (other is EcoEnchant) { + return other.conflictsWith(this) + } + + return data.conflicts?.contains(other.key) ?: super.conflictsWith(other) + } + + fun register() { + EcoEnchants.register(this) + } +} diff --git a/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/EcoCraftEnchantmentManager.kt b/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/EcoCraftEnchantmentManager.kt new file mode 100644 index 00000000..6c14b3dc --- /dev/null +++ b/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/EcoCraftEnchantmentManager.kt @@ -0,0 +1,26 @@ +package com.willfp.ecoenchants.proxy.v1_20_R1 + +import com.willfp.ecoenchants.proxy.proxies.EcoCraftEnchantmentManagerProxy +import com.willfp.ecoenchants.vanilla.VanillaEnchantmentData +import net.minecraft.core.Registry +import net.minecraft.core.registries.BuiltInRegistries +import net.minecraft.core.registries.Registries +import org.bukkit.NamespacedKey +import org.bukkit.enchantments.Enchantment + +class EcoCraftEnchantmentManager : EcoCraftEnchantmentManagerProxy { + override fun registerNewCraftEnchantment( + enchantment: Enchantment, + data: VanillaEnchantmentData + ) { + for (enchant in BuiltInRegistries.g) { + val key = org.bukkit.craftbukkit.v1_20_R1.util.CraftNamespacedKey.fromMinecraft( + BuiltInRegistries.g.b(enchant) + ) + if (key.key != enchantment.key.key) { + continue + } + EcoCraftEnchantment(enchant, data).register() + } + } +} diff --git a/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/OpenInventory.kt b/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/OpenInventory.kt new file mode 100644 index 00000000..a2b3af6d --- /dev/null +++ b/eco-core/core-nms/v1_20_R1/src/main/kotlin/com/willfp/ecoenchants/proxy/v1_20_R1/OpenInventory.kt @@ -0,0 +1,11 @@ +package com.willfp.ecoenchants.proxy.v1_20_R1 + +import com.willfp.ecoenchants.proxy.proxies.OpenInventoryProxy +import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer +import org.bukkit.entity.Player + +class OpenInventory : OpenInventoryProxy { + override fun getOpenInventory(player: Player): Any { + return (player as CraftPlayer).handle.bR + } +} diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/impl/EnchantmentReplenish.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/impl/EnchantmentReplenish.kt index 551f15c9..b26c48ec 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/impl/EnchantmentReplenish.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoenchants/enchants/impl/EnchantmentReplenish.kt @@ -80,6 +80,10 @@ class EnchantmentReplenish( } if (data.age != data.maximumAge) { + if (enchant.config.getBool("prevent-not-fully-grown")) { + return + } + event.isDropItems = false event.expToDrop = 0 } diff --git a/eco-core/core-plugin/src/main/resources/enchants/replenish.yml b/eco-core/core-plugin/src/main/resources/enchants/replenish.yml index c54d5174..aca746e5 100644 --- a/eco-core/core-plugin/src/main/resources/enchants/replenish.yml +++ b/eco-core/core-plugin/src/main/resources/enchants/replenish.yml @@ -15,3 +15,5 @@ enchantable: true conditions: [ ] consume-seeds: true # If seeds should be consumed in replanting + +prevent-not-fully-grown: false # If the enchantment should prevent replanting not fully grown crops diff --git a/gradle.properties b/gradle.properties index 36e721b5..1444dbdc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ #libreforge-updater -#Mon Jun 05 16:27:00 BST 2023 +#Sat Jun 10 13:32:20 BST 2023 kotlin.code.style=official -libreforge-version=4.18.0 -version=10.18.1 +libreforge-version=4.19.0 +version=10.19.0 diff --git a/settings.gradle.kts b/settings.gradle.kts index 147af1fd..ec34c040 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,3 +19,4 @@ include(":eco-core:core-nms:v1_18_R2") include(":eco-core:core-nms:v1_19_R1") include(":eco-core:core-nms:v1_19_R2") include(":eco-core:core-nms:v1_19_R3") +include(":eco-core:core-nms:v1_20_R1")