From 9d3444af01675e63b048884d6fb75897588363b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=99=BD?= <3104026189@qq.com> Date: Sun, 2 Oct 2022 14:08:02 +0800 Subject: [PATCH] fix bugs --- .../com/github/xbaimiao/shoppro/ShopPro.kt | 10 +------- .../shoppro/core/item/ItemLoaderManager.kt | 23 +++++++++++++++++++ .../xbaimiao/shoppro/core/shop/ShopImpl.kt | 8 +++---- 3 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/ShopPro.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/ShopPro.kt index ea7d5c6..8700314 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/ShopPro.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/ShopPro.kt @@ -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() + 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() { diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt new file mode 100644 index 0000000..0eebcd0 --- /dev/null +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/item/ItemLoaderManager.kt @@ -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() + + init { + itemLoaders.add(VanillaShopItem) + itemLoaders.add(ItemImpl) + itemLoaders.add(ItemsAdderShopItem) + itemLoaders.add(HeadShopItem) + } + + fun getVanillaShop(): ItemLoader = VanillaShopItem.Companion + + fun getItemImpl(): ItemLoader = ItemImpl.Companion + +} \ No newline at end of file diff --git a/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt b/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt index 65cb412..5ed7343 100644 --- a/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt +++ b/src/main/kotlin/com/github/xbaimiao/shoppro/core/shop/ShopImpl.kt @@ -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 加载出现异常,跳过加载,错误信息如下")