Merge pull request #61

Added support for items from CustomCrafting
This commit is contained in:
Will FP
2021-11-30 18:45:53 +00:00
committed by GitHub
4 changed files with 48 additions and 0 deletions

View File

@@ -59,6 +59,7 @@ import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefLands
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefSuperiorSkyblock2
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.customitems.CustomItemsCustomCrafting
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.CustomItemsOraxen
@@ -202,6 +203,7 @@ abstract class EcoSpigotPlugin : EcoPlugin(
IntegrationLoader("Oraxen") { CustomItemsManager.register(CustomItemsOraxen()) },
IntegrationLoader("ItemsAdder") { CustomItemsManager.register(CustomItemsItemsAdder()) },
IntegrationLoader("HeadDatabase") { CustomItemsManager.register(CustomItemsHeadDatabase(this)) },
IntegrationLoader("CustomCrafting") { CustomItemsManager.register(CustomItemsCustomCrafting()) },
// Shop
IntegrationLoader("ShopGUIPlus") { ShopManager.register(ShopShopGuiPlus()) },

View File

@@ -0,0 +1,42 @@
package com.willfp.eco.internal.spigot.integrations.customitems
import com.willfp.eco.core.integrations.customitems.CustomItemsWrapper
import com.willfp.eco.core.items.CustomItem
import com.willfp.eco.core.items.Items
import com.willfp.eco.core.items.TestableItem
import com.willfp.eco.core.items.provider.ItemProvider
import com.willfp.eco.util.NamespacedKeyUtils
import dev.lone.itemsadder.api.CustomStack
import me.wolfyscript.utilities.util.NamespacedKey
import me.wolfyscript.utilities.util.Registry
import org.bukkit.inventory.ItemStack
import java.util.function.Predicate
class CustomItemsCustomCrafting: CustomItemsWrapper {
override fun registerAllItems() {
Items.registerItemProvider(ItemsAdderProvider())
}
override fun getPluginName(): String {
return "CustomCrafting"
}
private class ItemsAdderProvider : ItemProvider("customcrafting") {
override fun provideForKey(key: String): TestableItem? {
val nKey = key.replace("customcrafting:", "", ignoreCase = true)
val itemKey = NamespacedKey("customcrafting", nKey)
val item = Registry.CUSTOM_ITEMS.get(itemKey) ?: return null
val namespacedKey = NamespacedKeyUtils.create("customcrafting", key)
val stack = item.create(1)
return CustomItem(
namespacedKey,
Predicate { test: ItemStack ->
val customStack = CustomStack.byItemStack(test) ?: return@Predicate false
customStack.id.equals(nKey, ignoreCase = true)
},
stack
)
}
}
}