Compare commits

..

2 commits

Author SHA1 Message Date
Caadiq
727769a170 채팅 비우기 메시지 수정 2025-12-17 19:16:58 +09:00
Caadiq
dc29e0e251 readme 수정 2025-12-17 19:15:05 +09:00
2 changed files with 48 additions and 43 deletions

View file

@ -10,13 +10,13 @@
## ✨ 주요 기능 ## ✨ 주요 기능
- 📍 **좌표 관리** - GUI 기반 좌표 저장 및 텔레포트 - 📍 **좌표 관리** - 좌표 저장 및 텔레포트
- 🏷️ **닉네임 시스템** - 플레이어 닉네임 설정 - 🏷️ **닉네임 시스템** - 플레이어 닉네임 설정
- 🏠 **스폰 관리** - 커스텀 스폰 지점 설정 - 🏠 **스폰 관리** - 커스텀 스폰 지점 설정
- 🚀 **텔레포트** - 플레이어 간 텔레포트 - 🚀 **텔레포트** - 플레이어 간 텔레포트
- 🛡️ **안티몹** - 특정 몹 비활성화 - 🛡️ **안티몹** - 특정 몹 패턴 비활성화
- 🌾 **밭 보호** - 밟아도 밭 안 망가짐 - 🌾 **밭 보호** - 밟아도 밭이 망가지지 않도록 보호
- 💬 **채팅 관리** - 채팅 형식 및 비우기 - 💬 **채팅 관리** - 채팅 형식 변경
--- ---
@ -26,8 +26,8 @@
| 명령어 | 설명 | | 명령어 | 설명 |
| ------------------ | -------------------- | | ------------------ | -------------------- |
| `/좌표` | 저장된 좌표 목록 GUI | | `/좌표` | 저장된 좌표 목록 |
| `/좌표추가 <이름>` | 현재 위치 저장 | | `/좌표추가 <이름>` | 현재 위치 좌표 저장 |
| `/좌표제거 <이름>` | 저장된 좌표 삭제 | | `/좌표제거 <이름>` | 저장된 좌표 삭제 |
| `/좌표이동 <이름>` | 해당 좌표로 텔레포트 | | `/좌표이동 <이름>` | 해당 좌표로 텔레포트 |
@ -57,9 +57,9 @@
### 안티몹 ### 안티몹
| 명령어 | 설명 | | 명령어 | 설명 |
| --------------------- | --------------- | | --------------------- | ----------- |
| `/안티몹`, `/antimob` | 안티몹 설정 GUI | | `/안티몹`, `/antimob` | 안티몹 설정 |
### 밭 보호 ### 밭 보호

View file

@ -32,8 +32,9 @@ object ChatCommand {
private fun hasPermissionOrSend(player: ServerPlayer?, requiredLevel: Int = 2): Boolean { private fun hasPermissionOrSend(player: ServerPlayer?, requiredLevel: Int = 2): Boolean {
if (player != null && !player.hasPermissions(requiredLevel)) { if (player != null && !player.hasPermissions(requiredLevel)) {
player.sendSystemMessage( player.sendSystemMessage(
Component.literal("해당 명령어를 실행할 권한이 없습니다.") Component.literal("해당 명령어를 실행할 권한이 없습니다.").withStyle {
.withStyle { it.withColor(ChatFormatting.RED) } it.withColor(ChatFormatting.RED)
}
) )
return false return false
} }
@ -42,49 +43,53 @@ object ChatCommand {
private fun registerReloadCommand(root: String, sub: String, event: RegisterCommandsEvent) { private fun registerReloadCommand(root: String, sub: String, event: RegisterCommandsEvent) {
event.dispatcher.register( event.dispatcher.register(
Commands.literal(root).then( Commands.literal(root)
Commands.literal(sub).executes { context -> .then(
val player = getPlayerOrNull(context.source) Commands.literal(sub).executes { context ->
if (!hasPermissionOrSend(player)) return@executes 0 val player = getPlayerOrNull(context.source)
if (!hasPermissionOrSend(player)) return@executes 0
ChatConfig.loadConfig() ChatConfig.loadConfig()
val success = Component.literal("채팅 형식을 새로고침했습니다.") val success =
.withStyle { it.withColor(ChatFormatting.GOLD) } Component.literal("채팅 형식을 새로고침했습니다.").withStyle {
it.withColor(ChatFormatting.GOLD)
}
if (player == null) if (player == null)
context.source.sendSuccess({ success }, false) context.source.sendSuccess({ success }, false)
else else player.sendSystemMessage(success)
player.sendSystemMessage(success)
1 1
} }
) )
) )
} }
private fun registerClearCommand(root: String, sub: String, event: RegisterCommandsEvent) { private fun registerClearCommand(root: String, sub: String, event: RegisterCommandsEvent) {
event.dispatcher.register( event.dispatcher.register(
Commands.literal(root).then( Commands.literal(root)
Commands.literal(sub).executes { context -> .then(
val player = getPlayerOrNull(context.source) Commands.literal(sub).executes { context ->
if (!hasPermissionOrSend(player)) return@executes 0 val player = getPlayerOrNull(context.source)
if (!hasPermissionOrSend(player)) return@executes 0
val server = context.source.server val server = context.source.server
val allPlayers = server.playerList.players.filterIsInstance<ServerPlayer>() val allPlayers =
ChatUtils.clearChatForAll(allPlayers) server.playerList.players.filterIsInstance<
ServerPlayer>()
ChatUtils.clearChatForAll(allPlayers)
server.playerList.broadcastSystemMessage( server.playerList.broadcastSystemMessage(
Component.literal("📢") Component.literal("\u00A0\u00A0채팅창을 비웠습니다.").withStyle {
.append(Component.literal("\u00A0\u00A0채팅창을 비웠습니다.") it.withColor(ChatFormatting.AQUA)
.withStyle { it.withColor(ChatFormatting.AQUA) } },
), false
false )
)
1 1
} }
) )
) )
} }
} }