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?) { override fun sendMessage(@Nonnull component: ITextComponent?) {
MessageHandler.transmit(ApiMessage( sendReply(component!!.unformattedComponentText)
username = cfg.relay.systemUser,
text = component!!.unformattedComponentText
))
} }

View File

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

View File

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

View File

@ -25,7 +25,8 @@ data class CustomCommand(
CommandType.PASSTHROUGH -> { CommandType.PASSTHROUGH -> {
//uses a new commandsender for each user //uses a new commandsender for each user
// TODO: cache CommandSenders // 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 -> { CommandType.RESPONSE -> {
MessageHandler.transmit(ApiMessage(text = response.lazyFormat(getReplacements(user, args)))) MessageHandler.transmit(ApiMessage(text = response.lazyFormat(getReplacements(user, args))))

View File

@ -1,5 +1,8 @@
package matterlink.bridge.command package matterlink.bridge.command
import matterlink.bridge.ApiMessage
import matterlink.bridge.MessageHandler
import matterlink.config.cfg
import matterlink.instance import matterlink.instance
abstract class IMinecraftCommandSender(val user: String, val userId: String, val server: String) { 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)" val accountName = "$user (id=$userId server=$server)"
fun canExecute(commandName: String): Boolean { fun canExecute(commandName: String): Boolean {
instance.info("testing $commandName")
val command = BridgeCommandRegistry[commandName] ?: return false val command = BridgeCommandRegistry[commandName] ?: return false
return command.canExecute(userId, server) 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_name = MatterLink
mod_version = 1.4.2 mod_version = 1.4.3
forgelin_version = 1.6.0 forgelin_version = 1.6.0