Re-Added Head Database integration

This commit is contained in:
Auxilor
2021-10-07 13:58:42 +01:00
parent 344032b7e3
commit 63d7bdab6b
5 changed files with 66 additions and 4 deletions

View File

@@ -29,6 +29,7 @@ dependencies {
compileOnly 'com.willfp:Oraxen:e1f4003d8d'
compileOnly 'com.github.brcdev-minecraft:shopgui-api:2.2.0'
compileOnly 'com.github.LoneDev6:API-ItemsAdder:2.4.7'
compileOnly 'com.arcaniax:HeadDatabase-API:1.3.0'
// CombatLogX V10 + NewbieHelper Expansion
compileOnly 'com.SirBlobman.combatlogx:CombatLogX-API:10.0.0.0-SNAPSHOT'

View File

@@ -30,6 +30,7 @@ import com.willfp.eco.spigot.eventlisteners.armor.ArmorListener
import com.willfp.eco.spigot.gui.GUIListener
import com.willfp.eco.spigot.integrations.anticheat.*
import com.willfp.eco.spigot.integrations.antigrief.*
import com.willfp.eco.spigot.integrations.customitems.CustomItemsHeadDatabase
import com.willfp.eco.spigot.integrations.customitems.CustomItemsItemsAdder
import com.willfp.eco.spigot.integrations.customitems.CustomItemsOraxen
import com.willfp.eco.spigot.integrations.mcmmo.McmmoIntegrationImpl
@@ -142,7 +143,8 @@ abstract class EcoSpigotPlugin : EcoPlugin(
// Custom Items
IntegrationLoader("Oraxen") { CustomItemsManager.register(CustomItemsOraxen()) },
IntegrationLoader("ItemsAdder") { CustomItemsManager.register(CustomItemsItemsAdder(this)) },
IntegrationLoader("ItemsAdder") { CustomItemsManager.register(CustomItemsItemsAdder()) },
IntegrationLoader("HeadDatabase") { CustomItemsManager.register(CustomItemsHeadDatabase(this)) },
// Shop
IntegrationLoader("ShopGUIPlus") { ShopManager.register(ShopShopGuiPlus()) },

View File

@@ -0,0 +1,59 @@
package com.willfp.eco.spigot.integrations.customitems
import com.willfp.eco.core.EcoPlugin
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 me.arcaniax.hdb.api.DatabaseLoadEvent
import me.arcaniax.hdb.api.HeadDatabaseAPI
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.inventory.ItemStack
import java.util.function.Predicate
class CustomItemsHeadDatabase(
plugin: EcoPlugin
) : CustomItemsWrapper {
private val provider = HeadDBProvider()
init {
plugin.eventManager.registerListener(provider)
}
override fun registerAllItems() {
Items.registerItemProvider(HeadDBProvider())
}
override fun getPluginName(): String {
return "HeadDatabase"
}
private inner class HeadDBProvider : ItemProvider("headdb"), Listener {
private lateinit var api: HeadDatabaseAPI
override fun provideForKey(key: String): TestableItem? {
if (this::api.isInitialized) {
return null
}
val head = api.getItemHead(key) ?: return null
val namespacedKey = NamespacedKeyUtils.create("headdb", key)
return CustomItem(
namespacedKey,
Predicate { test: ItemStack ->
val found = api.getItemID(test) ?: return@Predicate false
found == key
},
head
)
}
@EventHandler
fun onLoad(event: DatabaseLoadEvent) {
api = HeadDatabaseAPI()
}
}
}

View File

@@ -5,7 +5,6 @@ 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.core.recipe.parts.EmptyTestableItem
import com.willfp.eco.util.NamespacedKeyUtils
import dev.lone.itemsadder.api.CustomStack
import org.bukkit.inventory.ItemStack
@@ -21,8 +20,8 @@ class CustomItemsItemsAdder : CustomItemsWrapper {
}
private class ItemsAdderProvider : ItemProvider("itemsadder") {
override fun provideForKey(key: String): TestableItem {
val item = CustomStack.getInstance("itemsadder:$key") ?: return EmptyTestableItem()
override fun provideForKey(key: String): TestableItem? {
val item = CustomStack.getInstance("itemsadder:$key") ?: return null
val id = item.id
val namespacedKey = NamespacedKeyUtils.create("itemsadder", key)
val stack = item.itemStack

View File

@@ -24,6 +24,7 @@ softdepend:
- ShopGUIPlus
- ItemsAdder
- Oraxen
- HeadDatabase
libraries:
- 'org.reflections:reflections:0.9.12'
- 'org.apache.maven:maven-artifact:3.0.3'