Re-Added Head Database integration
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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()) },
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -24,6 +24,7 @@ softdepend:
|
||||
- ShopGUIPlus
|
||||
- ItemsAdder
|
||||
- Oraxen
|
||||
- HeadDatabase
|
||||
libraries:
|
||||
- 'org.reflections:reflections:0.9.12'
|
||||
- 'org.apache.maven:maven-artifact:3.0.3'
|
||||
|
||||
Reference in New Issue
Block a user