diff --git a/src/main/kotlin/xyz/fortern/minehunt/Console.kt b/src/main/kotlin/xyz/fortern/minehunt/Console.kt index a4d9032..13250cc 100644 --- a/src/main/kotlin/xyz/fortern/minehunt/Console.kt +++ b/src/main/kotlin/xyz/fortern/minehunt/Console.kt @@ -11,6 +11,7 @@ import org.bukkit.Location import org.bukkit.Material import org.bukkit.enchantments.Enchantment import org.bukkit.entity.Player +import org.bukkit.event.inventory.InventoryType import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.CompassMeta import org.bukkit.scheduler.BukkitRunnable @@ -31,6 +32,8 @@ class Console { */ val gameRules = GameRules() + val ruleBook = Bukkit.createInventory(null, InventoryType.HOPPER, Component.text("Game Rules")) + var stage: GameStage = GameStage.PREPARING private set diff --git a/src/main/kotlin/xyz/fortern/minehunt/rule/RuleBook.kt b/src/main/kotlin/xyz/fortern/minehunt/rule/RuleBook.kt new file mode 100644 index 0000000..c958451 --- /dev/null +++ b/src/main/kotlin/xyz/fortern/minehunt/rule/RuleBook.kt @@ -0,0 +1,40 @@ +package xyz.fortern.minehunt.rule + +import net.kyori.adventure.text.Component +import org.bukkit.Bukkit +import org.bukkit.Material +import org.bukkit.inventory.ItemFlag +import org.bukkit.inventory.ItemStack +import xyz.fortern.minehunt.util.Util + +// TODO 使用物品栏修改游戏规则 +class RuleBook { + val rootInventory = Bukkit.createInventory(null, 9, Component.text("点击任意一个规则项进行设置")).also { + Util.fillItem(it, filler) + val rule1 = ItemStack(Material.CLOCK) + val itemMeta1 = rule1.itemMeta + itemMeta1.customName(Component.text(RuleKey.HUNTER_READY_CD.info)) + itemMeta1.lore(listOf(Component.text(RuleKey.HUNTER_READY_CD.name))) + it.setItem(1, rule1) + val rule2 = ItemStack(Material.CLOCK) + val itemMeta2 = rule2.itemMeta + itemMeta2.customName(Component.text(RuleKey.HUNTER_RESPAWN_CD.info)) + itemMeta2.lore(listOf(Component.text(RuleKey.HUNTER_RESPAWN_CD.name))) + it.setItem(5, rule2) + val rule3 = ItemStack(Material.CLOCK) + val itemMeta3 = rule3.itemMeta + itemMeta3.customName(Component.text(RuleKey.FRIENDLY_FIRE.info)) + itemMeta3.lore(listOf(Component.text(RuleKey.FRIENDLY_FIRE.name))) + it.setItem(9, rule3) + } + + private val filler = ItemStack(Material.BLACK_STAINED_GLASS_PANE).also { + it.addItemFlags( + ItemFlag.HIDE_ATTRIBUTES, + ItemFlag.HIDE_DESTROYS, + ItemFlag.HIDE_ENCHANTS, + ItemFlag.HIDE_PLACED_ON, + ItemFlag.HIDE_UNBREAKABLE + ) + } +} \ No newline at end of file diff --git a/src/main/kotlin/xyz/fortern/minehunt/util/Util.kt b/src/main/kotlin/xyz/fortern/minehunt/util/Util.kt new file mode 100644 index 0000000..922a280 --- /dev/null +++ b/src/main/kotlin/xyz/fortern/minehunt/util/Util.kt @@ -0,0 +1,12 @@ +package xyz.fortern.minehunt.util + +import org.bukkit.inventory.Inventory +import org.bukkit.inventory.ItemStack + +object Util { + fun fillItem(inventory: Inventory, itemStack: ItemStack) { + for (i in 0 until inventory.size) { + inventory.setItem(i, itemStack) + } + } +} \ No newline at end of file