From 32194e88fb609fa1ac407741cc7d24b8ad490c17 Mon Sep 17 00:00:00 2001 From: Resaec Date: Mon, 14 Oct 2024 19:51:47 +0200 Subject: [PATCH] Fix up some chat commands --- .../psforever/actors/session/normal/ChatLogic.scala | 2 +- .../actors/session/support/ChatOperations.scala | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala b/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala index e701c0a5..98caca15 100644 --- a/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala +++ b/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala @@ -234,7 +234,7 @@ class ChatLogic(val ops: ChatOperations, implicit val context: ActorContext) ext ) ) } - result + true // do not accidentally send mistyped commands to chat } else { false // not a handled command } 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 02efbc7e..bb158591 100644 --- a/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/ChatOperations.scala @@ -603,8 +603,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 { @@ -623,7 +624,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 { @@ -1269,7 +1270,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 = {