diff --git a/build.sbt b/build.sbt
index 1c374839e..8d9dfd0f4 100644
--- a/build.sbt
+++ b/build.sbt
@@ -79,8 +79,7 @@ lazy val psforeverSettings = Seq(
"io.circe" %% "circe-generic" % "0.14.1",
"io.circe" %% "circe-parser" % "0.14.1",
"org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.3",
- "org.bouncycastle" % "bcprov-jdk15on" % "1.69",
- "org.codehaus.janino" % "janino" % "3.1.4"
+ "org.bouncycastle" % "bcprov-jdk15on" % "1.69"
),
// TODO(chord): remove exclusion when SessionActor is refactored: https://github.com/psforever/PSF-LoginServer/issues/279
coverageExcludedPackages := "net\\.psforever\\.actors\\.session\\.SessionActor.*"
diff --git a/config/logback.xml b/config/logback.xml
index 60bcdffdf..d1b04642d 100644
--- a/config/logback.xml
+++ b/config/logback.xml
@@ -20,17 +20,9 @@
%date{ISO8601} %5level %logger{35} - %msg%n
-
-
-
- encrypted
-
- Unexpected packet type EncryptedPacket
-
- encrypted.matches(formattedMessage)
-
- DENY
- NEUTRAL
+
+
+ Unexpected packet type EncryptedPacket
- Unexpected packet type EncryptedPacket
-
- encrypted.matches(formattedMessage)
-
- DENY
- NEUTRAL
+
+
+ Unexpected packet type EncryptedPacket
diff --git a/server/src/main/java/net/psforever/filters/MsgRegexFilter.java b/server/src/main/java/net/psforever/filters/MsgRegexFilter.java
new file mode 100644
index 000000000..77a85bb33
--- /dev/null
+++ b/server/src/main/java/net/psforever/filters/MsgRegexFilter.java
@@ -0,0 +1,29 @@
+package net.psforever.filters;
+
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.filter.Filter;
+import ch.qos.logback.core.spi.FilterReply;
+
+/**
+ * Disrupts a variety of messages that, when formatted, match against the configured regular expression.
+ * A replacement for the `EvaluatorFilter`.
+ */
+public class MsgRegexFilter extends Filter {
+ private String regex;
+
+ @Override
+ public FilterReply decide(ILoggingEvent event) {
+ if (isStarted() && event.getFormattedMessage().matches(regex)) {
+ return FilterReply.DENY;
+ } else {
+ return FilterReply.NEUTRAL;
+ }
+ }
+
+ @Override
+ public void start() {
+ if (this.regex != null) {
+ super.start();
+ }
+ }
+}