diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandSkills.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandSkills.kt index 84de387..ee97b19 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandSkills.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/commands/CommandSkills.kt @@ -3,6 +3,7 @@ package com.willfp.ecoskills.commands import com.willfp.eco.core.EcoPlugin import com.willfp.eco.core.command.impl.PluginCommand import com.willfp.ecoskills.gui.SkillGUI +import com.willfp.ecoskills.skills.Skills import org.bukkit.command.CommandSender import org.bukkit.entity.Player @@ -27,6 +28,18 @@ class CommandSkills(plugin: EcoPlugin) : return } - SkillGUI.homeMenu.open(sender) + if (args.isEmpty()) { + SkillGUI.open(sender) + } + + val id = args[0].lowercase() + val skill = Skills.getByID(id) + + if (skill == null) { + sender.sendMessage(this.plugin.langYml.getMessage("invalid-skill")) + return + } + + skill.gui.menu.open(sender) } -} \ No newline at end of file +} diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/SkillGUI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/SkillGUI.kt index 9db0642..fa217b9 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/SkillGUI.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/SkillGUI.kt @@ -18,12 +18,12 @@ import org.bukkit.inventory.meta.SkullMeta object SkillGUI { @JvmStatic - lateinit var homeMenu: Menu + private lateinit var menu: Menu @JvmStatic @ConfigUpdater fun update(plugin: EcoSkillsPlugin) { - homeMenu = buildHomeMenu(plugin) + menu = buildHomeMenu(plugin) } @JvmStatic @@ -66,22 +66,22 @@ object SkillGUI { if (plugin.configYml.getBool("gui.player-info.click-to-open-stats")) { onLeftClick { event, _ -> val player = event.whoClicked as Player - StatsGUI.menu.open(player) + StatsGUI.open(player) } } } ) - modfiy { menuBuilder -> - for (skill in Skills.values()) { - if (skill.enabled) { - menuBuilder.setSlot( - skill.config.getInt("gui.position.row"), - skill.config.getInt("gui.position.column"), - skill.gui.slot - ) - } + + for (skill in Skills.values()) { + if (skill.enabled) { + setSlot( + skill.config.getInt("gui.position.row"), + skill.config.getInt("gui.position.column"), + skill.gui.slot + ) } } + setSlot(plugin.configYml.getInt("gui.close.location.row"), plugin.configYml.getInt("gui.close.location.column"), slot( @@ -102,4 +102,8 @@ object SkillGUI { } } } + + fun open(player: Player) { + menu.open(player) + } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/StatsGUI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/StatsGUI.kt index 012bf66..fcbff5f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/StatsGUI.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/gui/StatsGUI.kt @@ -21,7 +21,7 @@ import org.bukkit.inventory.meta.SkullMeta object StatsGUI { @JvmStatic - lateinit var menu: Menu + private lateinit var menu: Menu @JvmStatic @ConfigUpdater @@ -111,7 +111,7 @@ object StatsGUI { .setDisplayName(plugin.configYml.getString("stats-gui.back.name")) .build() ) { - onLeftClick { event, _ -> SkillGUI.homeMenu.open(event.whoClicked as Player) } + onLeftClick { event, _ -> SkillGUI.open(event.whoClicked as Player) } } ) @@ -124,4 +124,8 @@ object StatsGUI { } } } + + fun open(player: Player) { + menu.open(player) + } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevelGUI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevelGUI.kt index 4f18efc..5ccc0d9 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevelGUI.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/SkillLevelGUI.kt @@ -94,11 +94,11 @@ class SkillLevelGUI( }.build() }) { onLeftClick { event, _, _ -> - levels.open(event.whoClicked as Player) + menu.open(event.whoClicked as Player) } } - val levels: Menu + val menu: Menu init { val maskPattern = plugin.configYml.getStrings("level-gui.mask.pattern").toTypedArray() @@ -141,7 +141,7 @@ class SkillLevelGUI( val pageKey = "page" - levels = menu(plugin.configYml.getInt("level-gui.rows")) { + menu = menu(plugin.configYml.getInt("level-gui.rows")) { title = skill.levelName setMask( FillerMask( @@ -275,7 +275,7 @@ class SkillLevelGUI( page-- menu.setState(player, pageKey, page) if (page == 0) { - SkillGUI.homeMenu.open(event.whoClicked as Player) + SkillGUI.open(event.whoClicked as Player) } } }