This commit is contained in:
小白
2022-10-02 14:08:02 +08:00
parent 6892bb4118
commit 9d3444af01
3 changed files with 27 additions and 14 deletions
@@ -4,10 +4,6 @@ import com.github.xbaimiao.shoppro.core.database.Database
import com.github.xbaimiao.shoppro.core.database.MysqlDatabase
import com.github.xbaimiao.shoppro.core.database.SQLiteDatabase
import com.github.xbaimiao.shoppro.core.item.*
import com.github.xbaimiao.shoppro.core.item.impl.HeadShopItem
import com.github.xbaimiao.shoppro.core.item.impl.ItemImpl
import com.github.xbaimiao.shoppro.core.item.impl.ItemsAdderShopItem
import com.github.xbaimiao.shoppro.core.item.impl.VanillaShopItem
import com.github.xbaimiao.shoppro.core.shop.ShopManager
import com.github.xbaimiao.shoppro.core.vault.DiyCurrency
import taboolib.common.platform.Plugin
@@ -22,16 +18,12 @@ object ShopPro : Plugin() {
lateinit var database: Database
val itemLoader = ArrayList<ItemLoader>()
val itemLoaderManager = ItemLoaderManager()
override fun onEnable() {
ShopManager.load()
DiyCurrency.load()
database = if (config.getBoolean("mysql.enable")) MysqlDatabase(config) else SQLiteDatabase()
itemLoader.add(VanillaShopItem)
itemLoader.add(ItemImpl)
itemLoader.add(ItemsAdderShopItem)
itemLoader.add(HeadShopItem)
}
fun reload() {
@@ -0,0 +1,23 @@
package com.github.xbaimiao.shoppro.core.item
import com.github.xbaimiao.shoppro.core.item.impl.HeadShopItem
import com.github.xbaimiao.shoppro.core.item.impl.ItemImpl
import com.github.xbaimiao.shoppro.core.item.impl.ItemsAdderShopItem
import com.github.xbaimiao.shoppro.core.item.impl.VanillaShopItem
class ItemLoaderManager {
val itemLoaders = ArrayList<ItemLoader>()
init {
itemLoaders.add(VanillaShopItem)
itemLoaders.add(ItemImpl)
itemLoaders.add(ItemsAdderShopItem)
itemLoaders.add(HeadShopItem)
}
fun getVanillaShop(): ItemLoader = VanillaShopItem.Companion
fun getItemImpl(): ItemLoader = ItemImpl.Companion
}
@@ -5,9 +5,7 @@ import com.github.xbaimiao.shoppro.api.ShopProBuyEvent
import com.github.xbaimiao.shoppro.api.ShopProSellEvent
import com.github.xbaimiao.shoppro.core.database.LimitData
import com.github.xbaimiao.shoppro.core.item.Item
import com.github.xbaimiao.shoppro.core.item.impl.ItemImpl
import com.github.xbaimiao.shoppro.core.item.ShopItem
import com.github.xbaimiao.shoppro.core.item.impl.VanillaShopItem
import com.github.xbaimiao.shoppro.util.Util.howManyItems
import com.github.xbaimiao.shoppro.util.Util.replacePapi
import org.bukkit.Bukkit
@@ -36,7 +34,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
val subSection = section.getConfigurationSection(key)!!
if (section.getBoolean("$key.is-commodity", true)) {
val materialString = section.getString("$key.material")!!
for (loader in ShopPro.itemLoader) {
for (loader in ShopPro.itemLoaderManager.itemLoaders) {
if (loader.prefix != null) {
if (materialString.startsWith(loader.prefix!!)) {
items.add(loader.formSection(key[0], subSection, this))
@@ -44,9 +42,9 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
}
}
}
items.add(VanillaShopItem.formSection(key[0], subSection, this))
items.add(ShopPro.itemLoaderManager.getVanillaShop().formSection(key[0], subSection, this))
} else {
items.add(ItemImpl.formSection(key[0], subSection, this))
items.add(ShopPro.itemLoaderManager.getItemImpl().formSection(key[0], subSection, this))
}
} catch (e: Throwable) {
info("在加载Shop: ${getName()} 时,物品: $key 加载出现异常,跳过加载,错误信息如下")