diff --git a/src/main/scala/net/psforever/actors/session/csr/ChatLogic.scala b/src/main/scala/net/psforever/actors/session/csr/ChatLogic.scala index e7a5a9c1..24c5c885 100644 --- a/src/main/scala/net/psforever/actors/session/csr/ChatLogic.scala +++ b/src/main/scala/net/psforever/actors/session/csr/ChatLogic.scala @@ -236,7 +236,7 @@ class ChatLogic(val ops: ChatOperations, implicit val context: ActorContext) ext message.note ) ) - false + true } } else { false diff --git a/src/main/scala/net/psforever/actors/session/spectator/ChatLogic.scala b/src/main/scala/net/psforever/actors/session/spectator/ChatLogic.scala index a75ea4dc..ae285706 100644 --- a/src/main/scala/net/psforever/actors/session/spectator/ChatLogic.scala +++ b/src/main/scala/net/psforever/actors/session/spectator/ChatLogic.scala @@ -143,7 +143,18 @@ class ChatLogic(val ops: ChatOperations, implicit val context: ActorContext) ext case "list" => ops.customCommandList(session, params, message) case "nearby" => ops.customCommandNearby(session) case "loc" => ops.customCommandLoc(session, message) - case _ => false + case _ => + // command was not handled + sendResponse( + ChatMsg( + ChatMessageType.CMT_GMOPEN, // CMT_GMTELL + message.wideContents, + "Server", + s"Unknown command !$command", + message.note + ) + ) + true } } else { false diff --git a/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala b/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala index 3a585f7b..399fede6 100644 --- a/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala @@ -626,8 +626,9 @@ class ChatOperations( } def commandAddCertification(session: Session, message: ChatMsg, contents: String): Unit = { - val certs = cliTokenization(contents).map(name => Certification.values.find(_.name == name)) - val result = if (certs.nonEmpty) { + val tokens = cliTokenization(contents) + val certs = tokens.map(name => Certification.values.find(_.name == name)) + val result = if (tokens.nonEmpty) { if (certs.contains(None)) { s"@AckErrorCertifications" } else { @@ -646,7 +647,7 @@ class ChatOperations( } def commandKick(session: Session, message: ChatMsg, contents: String): Unit = { - val inputs = cliTokenization(contents) + val inputs = cliTokenizationCaseSensitive(contents) inputs.headOption match { case Some(input) => val determination: Player => Boolean = input.toLongOption match { @@ -1299,7 +1300,11 @@ class ChatOperations( } def cliTokenization(str: String): List[String] = { - str.replaceAll("\\s+", " ").toLowerCase.trim.split("\\s").toList + str.replaceAll("\\s+", " ").toLowerCase.trim.split("\\s").toList.filter(!_.equals("")) + } + + def cliTokenizationCaseSensitive(str: String): List[String] = { + str.replaceAll("\\s+", " ").trim.split("\\s").toList.filter(!_.equals("")) } def commandIncomingSend(message: ChatMsg): Unit = {