mirror of
https://github.com/jie65535/JGrasscutterCommand.git
synced 2025-06-01 17:29:13 +08:00
Update to allow alias commands as public commands
This commit is contained in:
parent
33134ad01f
commit
93f3235dd0
@ -75,7 +75,7 @@ object JGrasscutterCommand : KotlinPlugin(
|
|||||||
return@subscribeAlways
|
return@subscribeAlways
|
||||||
|
|
||||||
// 解析消息
|
// 解析消息
|
||||||
val message = this.message.joinToString("") {
|
var message = this.message.joinToString("") {
|
||||||
if (it is At) {
|
if (it is At) {
|
||||||
// 替换@群员为@其绑定的Uid
|
// 替换@群员为@其绑定的Uid
|
||||||
val user = PluginData.users.find { user -> user.id == it.target && user.serverId == server.id }
|
val user = PluginData.users.find { user -> user.id == it.target && user.serverId == server.id }
|
||||||
@ -110,11 +110,18 @@ object JGrasscutterCommand : KotlinPlugin(
|
|||||||
}
|
}
|
||||||
// 处理执行游戏命令
|
// 处理执行游戏命令
|
||||||
else if (message.startsWith(PluginConfig.commandPrefix)) {
|
else if (message.startsWith(PluginConfig.commandPrefix)) {
|
||||||
var command = message.removePrefix(PluginConfig.commandPrefix).trim()
|
message = message.removePrefix(PluginConfig.commandPrefix).trim()
|
||||||
if (command.isEmpty() || (command[0] == '/' && command.length == 1)) {
|
if (message.isEmpty() || (message[0] == '/' && message.length == 1)) {
|
||||||
return@subscribeAlways
|
return@subscribeAlways
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查是否使用别名
|
||||||
|
var command = PluginConfig.commandAlias[message]
|
||||||
|
if (command.isNullOrEmpty())
|
||||||
|
command = message
|
||||||
|
// 如果是斜杠开头,则移除斜杠,在控制台执行不需要斜杠
|
||||||
|
if (command[0] == '/') command = command.substring(1)
|
||||||
|
|
||||||
// 执行的用户
|
// 执行的用户
|
||||||
var user: User? = null
|
var user: User? = null
|
||||||
// 获取token
|
// 获取token
|
||||||
@ -127,7 +134,11 @@ object JGrasscutterCommand : KotlinPlugin(
|
|||||||
// 普通用户
|
// 普通用户
|
||||||
user = PluginData.users.find { it.id == sender.id && it.serverId == server.id }
|
user = PluginData.users.find { it.id == sender.id && it.serverId == server.id }
|
||||||
if (user == null || user.token.isEmpty()) {
|
if (user == null || user.token.isEmpty()) {
|
||||||
if (server.consoleToken.isNotEmpty() && PluginConfig.publicCommands.contains(command)) {
|
if (server.consoleToken.isNotEmpty() // 仅服务器绑定了控制台令牌时
|
||||||
|
&& (PluginConfig.publicCommands.contains(command) // 检测执行的命令是否为公开命令
|
||||||
|
|| PluginConfig.publicCommands.contains(message) // 检测执行命令的原文是否为公开命令
|
||||||
|
)) {
|
||||||
|
// 允许游客执行控制台命令
|
||||||
logger.info("游客用户 ${sender.nameCardOrNick}(${sender.id}) 执行公开命令:$command")
|
logger.info("游客用户 ${sender.nameCardOrNick}(${sender.id}) 执行公开命令:$command")
|
||||||
server.consoleToken
|
server.consoleToken
|
||||||
} else {
|
} else {
|
||||||
@ -139,11 +150,6 @@ object JGrasscutterCommand : KotlinPlugin(
|
|||||||
user.token
|
user.token
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 检查是否使用别名
|
|
||||||
val t = PluginConfig.commandAlias[command]
|
|
||||||
if (!t.isNullOrEmpty()) command = t
|
|
||||||
// 如果是斜杠开头,则移除斜杠,在控制台执行不需要斜杠
|
|
||||||
if (command[0] == '/') command = command.substring(1)
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 调用接口执行命令
|
// 调用接口执行命令
|
||||||
|
Loading…
Reference in New Issue
Block a user