2025-12-18 23:22:50 +09:00
|
|
|
package com.beemer.essentials.command
|
|
|
|
|
|
|
|
|
|
import net.minecraft.ChatFormatting
|
|
|
|
|
import net.minecraft.commands.Commands
|
|
|
|
|
import net.minecraft.network.chat.Component
|
|
|
|
|
import net.minecraft.server.level.ServerPlayer
|
|
|
|
|
import net.neoforged.bus.api.SubscribeEvent
|
|
|
|
|
import net.neoforged.neoforge.event.RegisterCommandsEvent
|
|
|
|
|
|
|
|
|
|
object HelpCommand {
|
|
|
|
|
@SubscribeEvent
|
|
|
|
|
fun onRegisterCommands(event: RegisterCommandsEvent) {
|
|
|
|
|
listOf("도움말", "help", "essentials").forEach { command ->
|
|
|
|
|
event.dispatcher.register(
|
|
|
|
|
Commands.literal(command).executes { context ->
|
|
|
|
|
val player = context.source.entity as? ServerPlayer ?: return@executes 0
|
|
|
|
|
showHelp(player)
|
|
|
|
|
1
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun showHelp(player: ServerPlayer) {
|
|
|
|
|
val header =
|
|
|
|
|
Component.literal("══════════ ")
|
|
|
|
|
.withStyle { it.withColor(ChatFormatting.DARK_GRAY) }
|
|
|
|
|
.append(
|
|
|
|
|
Component.literal("도움말").withStyle {
|
|
|
|
|
it.withColor(ChatFormatting.GOLD).withBold(true)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
.append(
|
|
|
|
|
Component.literal(" ══════════").withStyle {
|
|
|
|
|
it.withColor(ChatFormatting.DARK_GRAY)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
player.sendSystemMessage(header)
|
|
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 좌표 관리
|
|
|
|
|
sendCategory(player, "좌표 관리", ChatFormatting.YELLOW)
|
|
|
|
|
sendCommand(player, "/좌표", "저장된 좌표 목록 (GUI)")
|
|
|
|
|
sendCommand(player, "/좌표추가 <이름>", "현재 위치 저장")
|
|
|
|
|
sendCommand(player, "/좌표이동 <이름>", "해당 좌표로 이동")
|
|
|
|
|
sendCommand(player, "/좌표제거 <이름>", "저장된 좌표 삭제")
|
|
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 스폰
|
|
|
|
|
sendCategory(player, "스폰", ChatFormatting.GREEN)
|
|
|
|
|
sendCommand(player, "/스폰", "스폰으로 이동")
|
|
|
|
|
sendCommand(player, "/스폰설정", "현재 위치를 스폰으로 설정")
|
|
|
|
|
sendCommand(player, "/스폰삭제", "커스텀 스폰 삭제")
|
|
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 텔레포트
|
|
|
|
|
sendCategory(player, "텔레포트", ChatFormatting.AQUA)
|
|
|
|
|
sendCommand(player, "/tpa", "플레이어 선택 (GUI)")
|
|
|
|
|
sendCommand(player, "/back", "이전 위치로 이동")
|
|
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 닉네임
|
|
|
|
|
sendCategory(player, "닉네임", ChatFormatting.LIGHT_PURPLE)
|
|
|
|
|
sendCommand(player, "/닉네임 변경 <닉네임>", "닉네임 설정")
|
|
|
|
|
sendCommand(player, "/닉네임 초기화", "닉네임 초기화")
|
|
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 머리
|
|
|
|
|
sendCategory(player, "머리", ChatFormatting.GOLD)
|
|
|
|
|
sendCommand(player, "/머리", "내 머리 아이템 받기")
|
|
|
|
|
sendCommand(player, "/머리 <닉네임>", "해당 플레이어 머리 받기")
|
2025-12-29 14:47:15 +09:00
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 제작대
|
|
|
|
|
sendCategory(player, "제작대", ChatFormatting.WHITE)
|
|
|
|
|
sendCommand(player, "/제작대", "제작대 열기")
|
2025-12-29 15:44:48 +09:00
|
|
|
player.sendSystemMessage(Component.empty())
|
|
|
|
|
|
|
|
|
|
// 메뉴
|
|
|
|
|
sendCategory(player, "메뉴", ChatFormatting.LIGHT_PURPLE)
|
|
|
|
|
sendCommand(player, "/메뉴", "메뉴 GUI 열기")
|
|
|
|
|
sendCommand(player, "Shift + F", "메뉴 GUI 열기 (단축키)")
|
2025-12-18 23:22:50 +09:00
|
|
|
|
|
|
|
|
val footer =
|
|
|
|
|
Component.literal("═══════════════════════════════").withStyle {
|
|
|
|
|
it.withColor(ChatFormatting.DARK_GRAY)
|
|
|
|
|
}
|
|
|
|
|
player.sendSystemMessage(footer)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun sendCategory(player: ServerPlayer, name: String, color: ChatFormatting) {
|
|
|
|
|
val message =
|
|
|
|
|
Component.literal("▸ ")
|
|
|
|
|
.withStyle { it.withColor(color) }
|
|
|
|
|
.append(
|
|
|
|
|
Component.literal(name).withStyle {
|
|
|
|
|
it.withColor(color).withBold(true)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
player.sendSystemMessage(message)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun sendCommand(player: ServerPlayer, cmd: String, desc: String) {
|
|
|
|
|
val message =
|
|
|
|
|
Component.literal(" ")
|
|
|
|
|
.append(
|
|
|
|
|
Component.literal(cmd).withStyle {
|
|
|
|
|
it.withColor(ChatFormatting.WHITE)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
.append(
|
|
|
|
|
Component.literal(" - ").withStyle {
|
|
|
|
|
it.withColor(ChatFormatting.DARK_GRAY)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
.append(
|
|
|
|
|
Component.literal(desc).withStyle {
|
|
|
|
|
it.withColor(ChatFormatting.GRAY)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
player.sendSystemMessage(message)
|
|
|
|
|
}
|
|
|
|
|
}
|