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.MysqlDatabase
import com.github.xbaimiao.shoppro.core.database.SQLiteDatabase import com.github.xbaimiao.shoppro.core.database.SQLiteDatabase
import com.github.xbaimiao.shoppro.core.item.* 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.shop.ShopManager
import com.github.xbaimiao.shoppro.core.vault.DiyCurrency import com.github.xbaimiao.shoppro.core.vault.DiyCurrency
import taboolib.common.platform.Plugin import taboolib.common.platform.Plugin
@@ -22,16 +18,12 @@ object ShopPro : Plugin() {
lateinit var database: Database lateinit var database: Database
val itemLoader = ArrayList<ItemLoader>() val itemLoaderManager = ItemLoaderManager()
override fun onEnable() { override fun onEnable() {
ShopManager.load() ShopManager.load()
DiyCurrency.load() DiyCurrency.load()
database = if (config.getBoolean("mysql.enable")) MysqlDatabase(config) else SQLiteDatabase() database = if (config.getBoolean("mysql.enable")) MysqlDatabase(config) else SQLiteDatabase()
itemLoader.add(VanillaShopItem)
itemLoader.add(ItemImpl)
itemLoader.add(ItemsAdderShopItem)
itemLoader.add(HeadShopItem)
} }
fun reload() { 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.api.ShopProSellEvent
import com.github.xbaimiao.shoppro.core.database.LimitData import com.github.xbaimiao.shoppro.core.database.LimitData
import com.github.xbaimiao.shoppro.core.item.Item 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.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.howManyItems
import com.github.xbaimiao.shoppro.util.Util.replacePapi import com.github.xbaimiao.shoppro.util.Util.replacePapi
import org.bukkit.Bukkit import org.bukkit.Bukkit
@@ -36,7 +34,7 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
val subSection = section.getConfigurationSection(key)!! val subSection = section.getConfigurationSection(key)!!
if (section.getBoolean("$key.is-commodity", true)) { if (section.getBoolean("$key.is-commodity", true)) {
val materialString = section.getString("$key.material")!! val materialString = section.getString("$key.material")!!
for (loader in ShopPro.itemLoader) { for (loader in ShopPro.itemLoaderManager.itemLoaders) {
if (loader.prefix != null) { if (loader.prefix != null) {
if (materialString.startsWith(loader.prefix!!)) { if (materialString.startsWith(loader.prefix!!)) {
items.add(loader.formSection(key[0], subSection, this)) 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 { } else {
items.add(ItemImpl.formSection(key[0], subSection, this)) items.add(ShopPro.itemLoaderManager.getItemImpl().formSection(key[0], subSection, this))
} }
} catch (e: Throwable) { } catch (e: Throwable) {
info("在加载Shop: ${getName()} 时,物品: $key 加载出现异常,跳过加载,错误信息如下") info("在加载Shop: ${getName()} 时,物品: $key 加载出现异常,跳过加载,错误信息如下")