9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-02 22:02:19 +00:00

Added option to do /skills <skill> to open the skill menu directly

This commit is contained in:
Auxilor
2022-11-19 19:53:50 +00:00
committed by _OfTeN_
parent 2122e6fa79
commit ce901fdaa4
4 changed files with 41 additions and 20 deletions

View File

@@ -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)
}
}
}

View File

@@ -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)
}
}

View File

@@ -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)
}
}

View File

@@ -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)
}
}
}