fix some invalid commands being passed through

This commit is contained in:
NikkyAI 2018-02-19 01:04:05 +01:00
parent 41c8776993
commit 6a77fbc3f3
7 changed files with 20 additions and 21 deletions

View File

@ -46,10 +46,7 @@ class MatterLinkCommandSender(user: String, userId: String, server: String) : IM
}
override fun sendMessage(@Nonnull component: ITextComponent?) {
MessageHandler.transmit(ApiMessage(
username = cfg.relay.systemUser,
text = component!!.unformattedComponentText
))
sendReply(component!!.unformattedComponentText)
}

View File

@ -45,11 +45,7 @@ class MatterLinkCommandSender(user: String, userId: String, server: String) : IM
}
override fun sendMessage(@Nonnull component: ITextComponent?) {
MessageHandler.transmit(ApiMessage(
username = cfg.relay.systemUser,
text = component!!.unformattedComponentText
))
sendReply(component!!.unformattedComponentText)
}
override fun sendCommandFeedback(): Boolean {

View File

@ -41,11 +41,7 @@ class MatterLinkCommandSender(user: String, userId: String, server: String) : IM
}
override fun sendMessage(@Nonnull component: ITextComponent?) {
MessageHandler.transmit(ApiMessage(
username = cfg.relay.systemUser,
text = component!!.unformattedComponentText
))
sendReply(component!!.unformattedComponentText)
}
override fun sendCommandFeedback(): Boolean {

View File

@ -38,10 +38,7 @@ class MatterLinkCommandSender(user: String, userId: String, server: String) : IM
}
override fun addChatMessage(component: IChatComponent) {
MessageHandler.transmit(ApiMessage(
username = cfg.relay.systemUser,
text = component.unformattedText
))
sendReply(component.unformattedText)
}
override fun getCommandSenderPosition(): ChunkCoordinates = ChunkCoordinates(0, 0, 0)

View File

@ -25,7 +25,8 @@ data class CustomCommand(
CommandType.PASSTHROUGH -> {
//uses a new commandsender for each user
// TODO: cache CommandSenders
instance.commandSenderFor(user, userId, server).execute("$execute $args")
val commandSender = instance.commandSenderFor(user, userId, server)
commandSender.execute("$execute $args") || commandSender.reply.isNotBlank()
}
CommandType.RESPONSE -> {
MessageHandler.transmit(ApiMessage(text = response.lazyFormat(getReplacements(user, args))))

View File

@ -1,5 +1,8 @@
package matterlink.bridge.command
import matterlink.bridge.ApiMessage
import matterlink.bridge.MessageHandler
import matterlink.config.cfg
import matterlink.instance
abstract class IMinecraftCommandSender(val user: String, val userId: String, val server: String) {
@ -13,9 +16,18 @@ abstract class IMinecraftCommandSender(val user: String, val userId: String, val
val accountName = "$user (id=$userId server=$server)"
fun canExecute(commandName: String): Boolean {
instance.info("testing $commandName")
val command = BridgeCommandRegistry[commandName] ?: return false
return command.canExecute(userId, server)
}
var reply: String = ""
fun sendReply(text: String) {
reply = text
MessageHandler.transmit(ApiMessage(
username = cfg.relay.systemUser,
text = text
))
}
}

View File

@ -1,3 +1,3 @@
mod_name = MatterLink
mod_version = 1.4.2
mod_version = 1.4.3
forgelin_version = 1.6.0