Skip to content

Commit ac22a8c

Browse files
Allow console to execute some commands.
1 parent cae0226 commit ac22a8c

3 files changed

Lines changed: 22 additions & 15 deletions

File tree

src/main/kotlin/NoMathExpectation/chatExchange/neoForged/NeoForgeEvents.kt

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,9 @@ object NeoForgeEvents {
169169
.then(
170170
Commands.literal("send").then(
171171
Commands.argument("message", StringArgumentType.greedyString()).executes { context ->
172-
val player = context.source.player ?: return@executes 0
173172
val message = StringArgumentType.getString(context, "message")
174173

175-
val name = ExchangeServer.componentToString(player.name)
174+
val name = ExchangeServer.componentToString(context.source.displayName)
176175

177176
val component = kotlin.runCatching {
178177
val formatted = ChatExchangeConfig.commandBroadcastFormat
@@ -184,15 +183,15 @@ object NeoForgeEvents {
184183
formatted.parseJsonToComponent()
185184
}.getOrElse {
186185
logger.error("Unable to resolve component from command broadcast format. Using default.", it)
187-
player.sendSystemMessage("chatexchange.const.exception".toExchangeServerTranslatedLiteral())
186+
context.source.sendSystemMessage("chatexchange.const.exception".toExchangeServerTranslatedLiteral())
188187
Component.literal("<$name> $message")
189188
}
190189

191190
logger.info(component.getStringWithLanguage(ExchangeServer.language))
192191
ExchangeServer.sendEvent(
193192
MessageEvent(name, message)
194193
)
195-
player.server.playerList.players.forEach {
194+
context.source.server.playerList.players.forEach {
196195
it.sendSystemMessage(component)
197196
}
198197

@@ -201,12 +200,10 @@ object NeoForgeEvents {
201200
)
202201
).then(
203202
Commands.literal("status").executes { context ->
204-
val player = context.source.player ?: return@executes 0
205-
206203
fun Boolean.toProperLiteral() =
207204
(if (this) "chatexchange.const.enabled" else "chatexchange.const.disabled").toTranslatableComponent()
208205

209-
player.sendSystemMessage(
206+
context.source.sendSystemMessage(
210207
"chatexchange.command.chatexchange.status".toExchangeServerTranslatedLiteral(
211208
ChatExchangeConfig.chat.get().toProperLiteral(),
212209
ChatExchangeConfig.joinLeave.get().toProperLiteral(),
@@ -220,7 +217,11 @@ object NeoForgeEvents {
220217
).then(
221218
Commands.literal("broadcastme").then(
222219
Commands.argument("toggle", BoolArgumentType.bool()).executes { context ->
223-
val player = context.source.player ?: return@executes 0
220+
val player = context.source.player ?: kotlin.run {
221+
context.source.sendSystemMessage("chatexchange.const.onlyPlayer".toExchangeServerTranslatedLiteral())
222+
return@executes 0
223+
}
224+
224225
val data = player.server.chatExchangeData
225226
val toggle = BoolArgumentType.getBool(context, "toggle")
226227
if (toggle) {
@@ -234,7 +235,11 @@ object NeoForgeEvents {
234235
1
235236
}
236237
).executes { context ->
237-
val player = context.source.player ?: return@executes 0
238+
val player = context.source.player ?: kotlin.run {
239+
context.source.sendSystemMessage("chatexchange.const.onlyPlayer".toExchangeServerTranslatedLiteral())
240+
return@executes 0
241+
}
242+
238243
val data = player.server.chatExchangeData
239244
if (data.isIgnoredPlayer(player.uuid)) {
240245
player.sendSystemMessage("chatexchange.command.chatexchange.broadcastme.isoff".toExchangeServerTranslatedLiteral())
@@ -245,10 +250,10 @@ object NeoForgeEvents {
245250
1
246251
}
247252
).executes { context ->
248-
val player = context.source.player ?: return@executes 0
249-
250-
player.sendSystemMessage(
251-
"chatexchange.command.chatexchange.description".toExchangeServerTranslatedLiteral()
253+
context.source.sendSystemMessage(
254+
"chatexchange.command.chatexchange.description".toExchangeServerTranslatedLiteral(
255+
ChatExchangeConfig.broadcastTriggerPrefix.get().joinToString("/")
256+
)
252257
)
253258
1
254259
}

src/main/resources/assets/chatexchange/lang/en_us.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"chatexchange.const.enabled": "§2Enabled§r",
44
"chatexchange.const.disabled": "§cDisabled§r",
55
"chatexchange.const.exception": "§4Internal exception occurred.§r",
6+
"chatexchange.const.onlyPlayer": "§4Only players can use this command.§r",
67
"modid.config.host": "Host",
78
"modid.config.port": "Port",
89
"modid.config.token": "Token",
@@ -16,7 +17,7 @@
1617
"modid.config.broadcastPrefix": "Broadcast Prefix",
1718
"modid.config.commandBroadcastFormat": "Command Broadcast Format",
1819
"modid.config.receiveMessageFormat": "Receive Message Format",
19-
"chatexchange.command.chatexchange.description": "§3§lChatExchange Help§r\nIf the server has enabled broadcasting chat messages, your chat messages will be broadcast to an external port by default.\nYou can use /chatexchange broadcastme to control whether your chat messages will be broadcast.\nAlso, you can broadcast your messages by prefixing @broadcast/@bc.",
20+
"chatexchange.command.chatexchange.description": "§3§lChatExchange Help§r\nIf the server has enabled broadcasting chat messages, your chat messages will be broadcast to an external port by default.\nYou can use /chatexchange broadcastme to control whether your chat messages will be broadcast.\nAlso, you can broadcast your messages by prefixing %s.",
2021
"chatexchange.command.chatexchange.status": "Chat: %s\nJoin/Leave: %s\nDeath: %s\nAdvancement: %s",
2122
"chatexchange.command.chatexchange.broadcastme.on": "Your chat messages will now be broadcast.",
2223
"chatexchange.command.chatexchange.broadcastme.off": "Your chat messages will not be broadcast.",

src/main/resources/assets/chatexchange/lang/zh_cn.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"chatexchange.const.enabled": "§2已启用§r",
44
"chatexchange.const.disabled": "§c已禁用§r",
55
"chatexchange.const.exception": "§4发生了内部错误。§r",
6+
"chatexchange.const.onlyPlayer": "§4只有玩家可以使用这个命令。§r",
67
"modid.config.host": "主机",
78
"modid.config.port": "端口",
89
"modid.config.token": "令牌",
@@ -16,7 +17,7 @@
1617
"modid.config.broadcastPrefix": "广播前缀",
1718
"modid.config.commandBroadcastFormat": "命令广播格式",
1819
"modid.config.receiveMessageFormat": "接收消息格式",
19-
"chatexchange.command.chatexchange.description": "§3§lChatExchange 帮助§r\n若服务器开启了广播聊天消息,你的聊天消息默认会被自动广播到外部端口。\n你可以使用 /chatexchange broadcastme 来控制你的消息是否被广播。\n同时,在发送消息前加上@广播/@broadcast/@bc前缀也可以广播你的消息",
20+
"chatexchange.command.chatexchange.description": "§3§lChatExchange 帮助§r\n若服务器开启了广播聊天消息,你的聊天消息默认会被自动广播到外部端口。\n你可以使用 /chatexchange broadcastme 来控制你的消息是否被广播。\n同时,在发送消息前加上 %s 前缀也可以广播你的消息",
2021
"chatexchange.command.chatexchange.status": "聊天消息: %s\n加入/离开消息: %s\n死亡消息: %s\n进度消息: %s",
2122
"chatexchange.command.chatexchange.broadcastme.on": "你的聊天消息现在会被广播了。",
2223
"chatexchange.command.chatexchange.broadcastme.off": "你的聊天消息现在不会被广播了。",

0 commit comments

Comments
 (0)