添加异常处理

This commit is contained in:
小白
2022-09-10 16:35:16 +08:00
parent b4957ef748
commit 344e1df217
2 changed files with 43 additions and 35 deletions
@@ -10,6 +10,7 @@ import com.github.xbaimiao.shoppro.util.Util.replacePapi
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.configuration.Configuration import org.bukkit.configuration.Configuration
import org.bukkit.entity.Player import org.bukkit.entity.Player
import taboolib.common.platform.function.info
import taboolib.library.xseries.parseToMaterial import taboolib.library.xseries.parseToMaterial
import taboolib.module.chat.colored import taboolib.module.chat.colored
import taboolib.module.ui.ClickType import taboolib.module.ui.ClickType
@@ -29,51 +30,55 @@ class ShopImpl(private val configuration: Configuration) : Shop() {
init { init {
val section = configuration.getConfigurationSection("items")!! val section = configuration.getConfigurationSection("items")!!
for (key in section.getKeys(false)) { for (key in section.getKeys(false)) {
if (section.getBoolean("$key.is-commodity", true)) { try {
val materialString = section.getString("$key.material")!! if (section.getBoolean("$key.is-commodity", true)) {
if (materialString.startsWith("IA")) { val materialString = section.getString("$key.material")!!
items.add( if (materialString.startsWith("IA")) {
ItemsAdderShopItem( items.add(
key[0], ItemsAdderShopItem(
section.getDouble("$key.price"), key[0],
materialString, section.getDouble("$key.price"),
section.getLong("$key.limit"), materialString,
section.getLong("$key.limit-player"), section.getLong("$key.limit"),
section.getString("$key.name")!!.colored(), section.getLong("$key.limit-player"),
section.getStringList("$key.lore").colored(), section.getString("$key.name")!!.colored(),
section.getBoolean("$key.vanilla", true), section.getStringList("$key.lore").colored(),
section.getStringList("$key.commands"), section.getBoolean("$key.vanilla", true),
this section.getStringList("$key.commands"),
this
)
) )
) } else {
items.add(
VanillaShopItem(
key[0],
section.getString("$key.material")!!.parseToMaterial(),
section.getDouble("$key.price"),
section.getLong("$key.limit"),
section.getLong("$key.limit-player"),
section.getString("$key.name")!!.colored(),
section.getStringList("$key.lore").colored(),
section.getBoolean("$key.vanilla", true),
section.getStringList("$key.commands"),
this
)
)
}
} else { } else {
items.add( items.add(
VanillaShopItem( ItemImpl(
key[0],
section.getString("$key.material")!!.parseToMaterial(), section.getString("$key.material")!!.parseToMaterial(),
section.getDouble("$key.price"),
section.getLong("$key.limit"),
section.getLong("$key.limit-player"),
section.getString("$key.name")!!.colored(),
section.getStringList("$key.lore").colored(), section.getStringList("$key.lore").colored(),
section.getString("$key.name")!!.colored(),
key[0],
section.getBoolean("$key.vanilla", true), section.getBoolean("$key.vanilla", true),
section.getStringList("$key.commands"), section.getStringList("$key.commands"),
this this
) )
) )
} }
} else { } catch (e: Throwable) {
items.add( info("在加载Shop: ${getName()} 时,物品: $key 加载出现异常,跳过加载")
ItemImpl(
section.getString("$key.material")!!.parseToMaterial(),
section.getStringList("$key.lore").colored(),
section.getString("$key.name")!!.colored(),
key[0],
section.getBoolean("$key.vanilla", true),
section.getStringList("$key.commands"),
this
)
)
} }
} }
} }
@@ -5,12 +5,15 @@ import org.bukkit.Bukkit
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.inventory.Inventory import org.bukkit.inventory.Inventory
import org.bukkit.inventory.ItemStack import org.bukkit.inventory.ItemStack
import taboolib.common.platform.function.info
import taboolib.platform.util.isNotAir import taboolib.platform.util.isNotAir
import java.text.DecimalFormat import java.text.DecimalFormat
object Util { object Util {
private val hasPapi by lazy { Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null } private val hasPapi by lazy { Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null }.also {
info("PlaceholderAPI Hook")
}
fun Double.format(): Double { fun Double.format(): Double {
val df = DecimalFormat("#0.00") val df = DecimalFormat("#0.00")