From d172160f97f5685a4bffb3c03bbece2635a39beb Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 14 Oct 2021 12:36:34 +0100 Subject: [PATCH] Lots of under-the-hood work --- .../java/com/willfp/reforges/reforges/Reforges.java | 2 +- .../com/willfp/reforges/display/ReforgesDisplay.kt | 10 ++++++---- .../main/kotlin/com/willfp/reforges/gui/ReforgeGUI.kt | 9 ++++++--- .../kotlin/com/willfp/reforges/reforges/Reforge.kt | 4 ++++ 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforges.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforges.java index 57a377c..3f4c4ff 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforges.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/reforges/Reforges.java @@ -60,7 +60,7 @@ public class Reforges { } for (JSONConfig config : plugin.getReforgesJson().getSubsections("reforges")) { - addNewReforge(new Reforge(config, plugin)); + new Reforge(config, plugin); } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt index 93e5ac1..8a620cd 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt @@ -65,10 +65,12 @@ class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin if (stone != null) { meta.setDisplayName(plugin.configYml.getString("reforge.stone.name").replace("%reforge%", stone.name)) - SkullUtils.setSkullTexture( - meta as SkullMeta, - stone.config.getString("stone.texture") - ) + if (stone.config.has("stone.texture") && stone.config.getString("stone.texture").isNotEmpty()) { + SkullUtils.setSkullTexture( + meta as SkullMeta, + stone.config.getString("stone.texture") + ) + } itemStack.itemMeta = meta val stoneLore = plugin.configYml.getStrings("reforge.stone.lore").map { "${Display.PREFIX}${it.replace("%reforge%", stone.name)}" diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/gui/ReforgeGUI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/gui/ReforgeGUI.kt index ca08c83..168099d 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/gui/ReforgeGUI.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/gui/ReforgeGUI.kt @@ -27,6 +27,7 @@ object ReforgeGUI { update(ReforgesPlugin.getInstance()) } + @JvmStatic @ConfigUpdater fun update(plugin: EcoPlugin) { val handler = ReforgeHandler(plugin) @@ -39,13 +40,13 @@ object ReforgeGUI { val (status, specialCost) = ReforgeUtils.getStatus(menu.getCaptiveItems(player)) - val cost: Double = when (status) { - ReforgeStatus.ALLOW -> { + val cost: Double = when { + status == ReforgeStatus.ALLOW || (status == ReforgeStatus.ALLOW_STONE && specialCost < 0) -> { val amountOfReforges = ReforgeUtils.getReforges(menu.getCaptiveItems(player)[0]) plugin.configYml.getDouble("reforge.cost") * plugin.configYml.getDouble("reforge.cost-exponent").pow(amountOfReforges) } - ReforgeStatus.ALLOW_STONE -> { + status == ReforgeStatus.ALLOW_STONE -> { specialCost } else -> 0.0 // Never used, but at least kotlin can shut up @@ -101,6 +102,8 @@ object ReforgeGUI { } } } + + previous.itemMeta = meta } onLeftClick(handler::handleReforgeClick) }.build() diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/Reforge.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/Reforge.kt index 65a6956..51ac8dc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/Reforge.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/reforges/Reforge.kt @@ -53,8 +53,12 @@ class Reforge( val stonePrice = config.getIntOrNull("stone.price") ?: -1 init { + Reforges.addNewReforge(this) + ReforgeUtils.setReforgeStone(stone, this) + Display.display(stone) + CustomItem( plugin.namespacedKeyFactory.create("stone_" + this.id), { test -> ReforgeUtils.getReforgeStone(test) == this },