From 40aec26f15fae85442d9272d6884c8fea6df9362 Mon Sep 17 00:00:00 2001 From: FireML <106587317+FireML@users.noreply.github.com> Date: Thu, 27 Apr 2023 23:03:34 +0100 Subject: [PATCH 1/2] Initial Denizen Support --- build.gradle.kts | 3 ++ eco-core/core-plugin/build.gradle.kts | 3 ++ .../eco/internal/spigot/EcoSpigotPlugin.kt | 9 ++--- .../customitems/CustomItemsDenizen.kt | 35 +++++++++++++++++++ .../src/main/resources/paper-plugin.yml | 4 +++ .../core-plugin/src/main/resources/plugin.yml | 1 + 6 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt diff --git a/build.gradle.kts b/build.gradle.kts index 39a4ca2d..0accb33d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -82,6 +82,9 @@ allprojects { // UltraEconomy maven("https://repo.techscode.com/repository/maven-releases/") + + // Denizen + maven("https://maven.citizensnpcs.co/repo") } dependencies { diff --git a/eco-core/core-plugin/build.gradle.kts b/eco-core/core-plugin/build.gradle.kts index feeb4e61..5bf40c5b 100644 --- a/eco-core/core-plugin/build.gradle.kts +++ b/eco-core/core-plugin/build.gradle.kts @@ -58,6 +58,9 @@ dependencies { compileOnly("com.SirBlobman.combatlogx:CombatLogX-API:10.0.0.0-SNAPSHOT") compileOnly("com.github.sirblobman.combatlogx:api:11.0.0.0-SNAPSHOT") compileOnly("LibsDisguises:LibsDisguises:10.0.26") + compileOnly("com.denizenscript:denizen:1.2.7-SNAPSHOT") { + exclude(group = "*", module = "*") + } compileOnly(fileTree("../../lib") { include("*.jar") diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt index 48f343da..be2a3866 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt @@ -94,13 +94,7 @@ import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefSuperiorSk import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefTowny import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefWorldGuard import com.willfp.eco.internal.spigot.integrations.customentities.CustomEntitiesMythicMobs -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsCustomCrafting -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsExecutableItems -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsHeadDatabase -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsItemsAdder -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsMythicMobs -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsOraxen -import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsScyther +import com.willfp.eco.internal.spigot.integrations.customitems.* import com.willfp.eco.internal.spigot.integrations.customrecipes.CustomRecipeCustomCrafting import com.willfp.eco.internal.spigot.integrations.economy.EconomyVault import com.willfp.eco.internal.spigot.integrations.entitylookup.EntityLookupModelEngine @@ -323,6 +317,7 @@ abstract class EcoSpigotPlugin : EcoPlugin() { }, IntegrationLoader("MythicMobs") { CustomItemsManager.register(CustomItemsMythicMobs(this)) }, IntegrationLoader("Scyther") { CustomItemsManager.register(CustomItemsScyther()) }, + IntegrationLoader("Denizen") { CustomItemsManager.register(CustomItemsDenizen()) }, // Shop IntegrationLoader("ShopGUIPlus") { ShopManager.register(ShopShopGuiPlus()) }, diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt new file mode 100644 index 00000000..760d3781 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt @@ -0,0 +1,35 @@ +package com.willfp.eco.internal.spigot.integrations.customitems + +import com.willfp.eco.core.integrations.customitems.CustomItemsIntegration +import com.willfp.eco.core.items.CustomItem +import com.willfp.eco.core.items.TestableItem +import com.willfp.eco.core.items.provider.ItemProvider +import com.willfp.eco.util.NamespacedKeyUtils +import com.denizenscript.denizen.objects.ItemTag; +import com.willfp.eco.core.items.Items +import org.bukkit.event.Listener + +class CustomItemsDenizen( +) : CustomItemsIntegration, Listener { + + override fun registerProvider() { + Items.registerItemProvider(DenizenProvider()) + } + + override fun getPluginName(): String { + return "Denizen" + } + + private class DenizenProvider : ItemProvider("denizen") { + override fun provideForKey(key: String): TestableItem? { + val item = ItemTag.valueOf(key, false) ?: return null + val id = item.scriptName + val namespacedKey = NamespacedKeyUtils.create("denizen", id) + return CustomItem( + namespacedKey, + { id.equals(ItemTag(it).scriptName, ignoreCase = true) }, + item.itemStack + ) + } + } +} diff --git a/eco-core/core-plugin/src/main/resources/paper-plugin.yml b/eco-core/core-plugin/src/main/resources/paper-plugin.yml index c5caa32f..a0eab4d0 100644 --- a/eco-core/core-plugin/src/main/resources/paper-plugin.yml +++ b/eco-core/core-plugin/src/main/resources/paper-plugin.yml @@ -188,3 +188,7 @@ dependencies: - name: UltraEconomy required: false bootstrap: false + + - name: Denizen + required: false + bootstrap: false \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/plugin.yml b/eco-core/core-plugin/src/main/resources/plugin.yml index 012e5069..dfeb658e 100644 --- a/eco-core/core-plugin/src/main/resources/plugin.yml +++ b/eco-core/core-plugin/src/main/resources/plugin.yml @@ -52,3 +52,4 @@ softdepend: - PvPManager - DeluxeMenus - UltraEconomy + - Denizen From 259e35c978d7ede780f3ff5acb11feac7c66a904 Mon Sep 17 00:00:00 2001 From: FireML <106587317+FireML@users.noreply.github.com> Date: Fri, 28 Apr 2023 00:47:01 +0100 Subject: [PATCH 2/2] Script Name Alternative --- .../integrations/customitems/CustomItemsDenizen.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt index 760d3781..79c76cd4 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/CustomItemsDenizen.kt @@ -5,12 +5,12 @@ import com.willfp.eco.core.items.CustomItem import com.willfp.eco.core.items.TestableItem import com.willfp.eco.core.items.provider.ItemProvider import com.willfp.eco.util.NamespacedKeyUtils -import com.denizenscript.denizen.objects.ItemTag; +import com.denizenscript.denizen.objects.ItemTag +import com.denizenscript.denizen.scripts.containers.core.ItemScriptHelper import com.willfp.eco.core.items.Items import org.bukkit.event.Listener -class CustomItemsDenizen( -) : CustomItemsIntegration, Listener { +class CustomItemsDenizen : CustomItemsIntegration, Listener { override fun registerProvider() { Items.registerItemProvider(DenizenProvider()) @@ -25,10 +25,11 @@ class CustomItemsDenizen( val item = ItemTag.valueOf(key, false) ?: return null val id = item.scriptName val namespacedKey = NamespacedKeyUtils.create("denizen", id) + val stack = item.itemStack return CustomItem( namespacedKey, - { id.equals(ItemTag(it).scriptName, ignoreCase = true) }, - item.itemStack + { id.equals(ItemScriptHelper.getItemScriptNameText(it), ignoreCase = true) }, + stack ) } }