aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/DevData.java36
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt63
2 files changed, 68 insertions, 31 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/DevData.java b/src/main/java/at/hannibal2/skyhanni/config/features/DevData.java
index f218929cb..30672ac2e 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/DevData.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/DevData.java
@@ -34,15 +34,21 @@ public class DevData {
public boolean minecraftConsole = false;
@Expose
- @ConfigOption(name = "Unfiltered Debug", desc = "Print the debug information for unfiltered console messages")
+ @ConfigOption(name = "Unfiltered Debug", desc = "Print the debug information for unfiltered console messages.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 1)
public boolean printUnfilteredDebugs = false;
@Expose
+ @ConfigOption(name = "Unfiltered Debug File", desc = "Print the debug information into log files instead of into the console for unfiltered console messages.")
+ @ConfigEditorBoolean
+ @ConfigAccordionId(id = 1)
+ public boolean logUnfilteredFile = false;
+
+ @Expose
@ConfigOption(
name = "Outside SkyBlock",
- desc = "Print the debug information for unfiltered console messages outside SkyBlock too"
+ desc = "Print the debug information for unfiltered console messages outside SkyBlock too."
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 1)
@@ -51,7 +57,7 @@ public class DevData {
@Expose
@ConfigOption(
name = "Log Filtered",
- desc = "Log the filtered messages into the console"
+ desc = "Log the filtered messages into the console."
)
@ConfigEditorBoolean
@ConfigAccordionId(id = 1)
@@ -64,7 +70,7 @@ public class DevData {
public boolean consoleFilters = false;
@Expose
- @ConfigOption(name = "Filter Chat", desc = "Filter chat messages")
+ @ConfigOption(name = "Filter Chat", desc = "Filter chat messages.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
public boolean filterChat = false;
@@ -76,33 +82,45 @@ public class DevData {
public boolean filterGrowBuffer = false;
@Expose
- @ConfigOption(name = "Filter Sound Error", desc = "Filter 'Unable to play unknown soundEvent'")
+ @ConfigOption(name = "Filter Sound Error", desc = "Filter 'Unable to play unknown soundEvent'.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
public boolean filterUnknownSound = false;
@Expose
@ConfigOption(name = "Filter Scoreboard Errors", desc = "Filter error messages with Scoreboard: removeTeam, createTeam, " +
- "removeObjective and 'scoreboard team already exists'")
+ "removeObjective and 'scoreboard team already exists'.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
public boolean filterScoreboardErrors = false;
@Expose
- @ConfigOption(name = "Filter Particle", desc = "Filter message 'Could not spawn particle effect VILLAGER_HAPPY'")
+ @ConfigOption(name = "Filter Particle", desc = "Filter message 'Could not spawn particle effect VILLAGER_HAPPY'.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
public boolean filterParticleVillagerHappy = false;
@Expose
- @ConfigOption(name = "Filter OptiFine", desc = "Filter OptiFine messages CustomItems and ConnectedTextures during loading")
+ @ConfigOption(name = "Filter OptiFine", desc = "Filter OptiFine messages CustomItems and ConnectedTextures during loading.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
public boolean filterOptiFine = false;
@Expose
- @ConfigOption(name = "Filter AsmHelper Transformer", desc = "Filter messages when AsmHelper is Transforming a class during loading")
+ @ConfigOption(name = "Filter AsmHelper Transformer", desc = "Filter messages when AsmHelper is Transforming a class during loading.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 2)
public boolean filterAmsHelperTransformer = false;
+
+ @Expose
+ @ConfigOption(name = "Filter Applying AsmWriter", desc = "Filter messages when AsmHelper is applying AsmWriter ModifyWriter.")
+ @ConfigEditorBoolean
+ @ConfigAccordionId(id = 2)
+ public boolean filterAsmHelperApplying = false;
+
+ @Expose
+ @ConfigOption(name = "Filter Biome ID Bounds", desc = "Filter message 'Biome ID is out of bounds'.")
+ @ConfigEditorBoolean
+ @ConfigAccordionId(id = 2)
+ public boolean filterBiomeIdBounds = false;
}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
index b66ed2387..4ac0a78e8 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
@@ -9,10 +9,14 @@ import org.apache.logging.log4j.core.LogEvent
import org.apache.logging.log4j.core.Logger
import org.apache.logging.log4j.core.LoggerContext
import org.apache.logging.log4j.message.Message
+import java.util.regex.Pattern
class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
- val lorenzLogger = LorenzLogger("debug/mc_console_log")
+ private val loggerFiltered = LorenzLogger("debug/mc_console/filtered")
+ private val loggerUnfiltered = LorenzLogger("debug/mc_console/unfiltered")
+
+ private val patternBiomeIdBounds = Pattern.compile("Biome ID is out of bounds: (\\d+), defaulting to 0 \\(Ocean\\)")
companion object {
@JvmStatic
@@ -30,7 +34,7 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
if (event == null) return Filter.Result.ACCEPT
val loggerName = event.loggerName
- if (loggerName == "skyhanni") return Filter.Result.ACCEPT
+ if (loggerName == "SkyHanni") return Filter.Result.ACCEPT
val message = event.message
val formattedMessage = message.formattedMessage
@@ -72,13 +76,19 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
return Filter.Result.DENY
}
}
- if (SkyHanniMod.feature.dev.filterAmsHelperTransformer) {
- if (loggerName == "AsmHelper") {
+ if (loggerName == "AsmHelper") {
+ if (SkyHanniMod.feature.dev.filterAmsHelperTransformer) {
if (formattedMessage.startsWith("Transforming class ")) {
filterConsole("AsmHelper Transforming")
return Filter.Result.DENY
}
}
+ if (SkyHanniMod.feature.dev.filterAsmHelperApplying) {
+ if (formattedMessage.startsWith("Applying AsmWriter ModifyWriter")) {
+ filterConsole("AsmHelper Applying AsmWriter")
+ return Filter.Result.DENY
+ }
+ }
}
//TODO find a way to load the filter earlier to filter these messages too
// if (loggerName == "LaunchWrapper") {
@@ -108,6 +118,12 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
// return Filter.Result.DENY
// }
// }
+ if (SkyHanniMod.feature.dev.filterBiomeIdBounds) {
+ if (patternBiomeIdBounds.matcher(formattedMessage).matches()) {
+ filterConsole("Biome ID bounds")
+ return Filter.Result.DENY
+ }
+ }
if (thrown != null) {
val cause = thrown.cause
@@ -142,52 +158,58 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
if (!SkyHanniMod.feature.dev.printUnfilteredDebugsOutsideSkyBlock && !LorenzUtils.inSkyblock) return Filter.Result.ACCEPT
if (formattedMessage == "filtered console: ") return Filter.Result.ACCEPT
- LorenzUtils.consoleLog(" ")
- LorenzUtils.consoleLog("filter 4/event ('$loggerConfigName'/'$loggerName')")
- LorenzUtils.consoleLog("formattedMessage: '$formattedMessage'")
+ debug(" ")
+ debug("filter 4/event ('$loggerConfigName'/'$loggerName')")
+ debug("formattedMessage: '$formattedMessage'")
val threadName = event.threadName
- LorenzUtils.consoleLog("threadName: '$threadName'")
+ debug("threadName: '$threadName'")
val level = event.level
- LorenzUtils.consoleLog("level: '$level'")
+ debug("level: '$level'")
val marker = event.marker
if (marker != null) {
val name = marker.name
- LorenzUtils.consoleLog("marker name: '$name'")
+ debug("marker name: '$name'")
} else {
- LorenzUtils.consoleLog("marker is null")
+ debug("marker is null")
}
- LorenzUtils.consoleLog("thrown: '$thrown'")
+ debug("thrown: '$thrown'")
if (thrown != null) {
if (thrown.stackTrace.isNotEmpty()) {
var element = thrown.stackTrace[0]
- LorenzUtils.consoleLog("thrown first element: '$element'")
+ debug("thrown first element: '$element'")
val cause = thrown.cause
if (cause != null) {
- LorenzUtils.consoleLog("throw cause: '$cause'")
+ debug("throw cause: '$cause'")
element = cause.stackTrace[0]
- LorenzUtils.consoleLog("thrown cause first element: '$element'")
+ debug("thrown cause first element: '$element'")
}
}
}
- LorenzUtils.consoleLog(" ")
+ debug(" ")
return Filter.Result.ACCEPT
}
+ private fun debug(text: String) {
+ if (SkyHanniMod.feature.dev.logUnfilteredFile) {
+ loggerUnfiltered.log(text)
+ } else {
+ LorenzUtils.consoleLog(text)
+ }
+ }
+
private fun filterConsole(message: String) {
- lorenzLogger.log(message)
+ loggerFiltered.log(message)
if (SkyHanniMod.feature.dev.printFilteredReason) {
LorenzUtils.consoleLog("filtered console: $message")
}
}
override fun getOnMismatch(): Filter.Result {
- LorenzUtils.consoleLog("getOnMismatch ($loggerConfigName)")
return Filter.Result.DENY
}
override fun getOnMatch(): Filter.Result {
- LorenzUtils.consoleLog("getOnMatch ($loggerConfigName)")
return Filter.Result.ACCEPT
}
@@ -198,7 +220,6 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
msg: String?,
vararg params: Any?,
): Filter.Result {
- LorenzUtils.consoleLog("filter 1 ($loggerConfigName)")
return Filter.Result.ACCEPT
}
@@ -209,7 +230,6 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
msg: Any?,
t: Throwable?,
): Filter.Result {
- LorenzUtils.consoleLog("filter 2 ($loggerConfigName)")
return Filter.Result.ACCEPT
}
@@ -220,7 +240,6 @@ class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
msg: Message?,
t: Throwable?,
): Filter.Result {
- LorenzUtils.consoleLog("filter 3 ($loggerConfigName)")
return Filter.Result.ACCEPT
}
}