aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LorenzLogger.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt187
7 files changed, 225 insertions, 14 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index 51dcd490a..0d2eac02b 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -28,6 +28,7 @@ import at.hannibal2.skyhanni.features.nether.ashfang.*;
import at.hannibal2.skyhanni.features.slayer.EndermanSlayerBeacon;
import at.hannibal2.skyhanni.features.slayer.HighlightSlayerMiniboss;
import at.hannibal2.skyhanni.test.LorenzTest;
+import at.hannibal2.skyhanni.utils.MinecraftConsoleFilter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.common.MinecraftForge;
@@ -36,6 +37,9 @@ import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
@Mod(modid = SkyHanniMod.MODID, version = SkyHanniMod.VERSION)
public class SkyHanniMod {
@@ -47,9 +51,13 @@ public class SkyHanniMod {
public static RepoManager repo;
public static ConfigManager configManager;
+ private static Logger logger;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
+ logger = LogManager.getLogger(MODID);
+ MinecraftConsoleFilter.initLogging();
+
new BazaarApi();
registerEvent(this);
registerEvent(new ChatManager());
@@ -126,11 +134,11 @@ public class SkyHanniMod {
private void registerEvent(Object object) {
String simpleName = object.getClass().getSimpleName();
- System.out.println("SkyHanni registering '" + simpleName + "'");
+ consoleLog("SkyHanni registering '" + simpleName + "'");
long start = System.currentTimeMillis();
MinecraftForge.EVENT_BUS.register(object);
long duration = System.currentTimeMillis() - start;
- System.out.println("Done after " + duration + " ms!");
+ consoleLog("Done after " + duration + " ms!");
}
public static GuiScreen screenToOpen = null;
@@ -147,4 +155,12 @@ public class SkyHanniMod {
}
}
}
+
+ public static void consoleLog(String message) {
+ if (logger != null) {
+ logger.log(Level.INFO, message);
+ } else {
+ System.out.println("consoleLog: (" + message + ")");
+ }
+ }
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt b/src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt
index c3a7dada5..c35a78f4a 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ApiKeyGrabber.kt
@@ -82,7 +82,7 @@ class ApiKeyGrabber {
}
private fun readApiKeyFromOtherMods() {
- println("Trying to find the API Key from the config of other mods..")
+ LorenzUtils.consoleLog("Trying to find the API Key from the config of other mods..")
var found = false
for (mod in OtherMod.values()) {
@@ -93,21 +93,21 @@ class ApiKeyGrabber {
try {
val key = mod.readKey(reader).replace("\n", "").replace(" ", "")
if (verifyKey(key)) {
- println("- $modName: good key!")
+ LorenzUtils.consoleLog("- $modName: good key!")
if (!found) {
found = true
LorenzUtils.chat("§e[SkyHanni] Grabbed the API key from $modName!")
SkyHanniMod.feature.hidden.apiKey = key
}
} else {
- println("- $modName: wrong key!")
+ LorenzUtils.consoleLog("- $modName: wrong key!")
}
} catch (e: Throwable) {
- println("- $modName: wrong config format! (" + e.message + ")")
+ LorenzUtils.consoleLog("- $modName: wrong config format! (" + e.message + ")")
continue
}
} else {
- println("- $modName: no config found!")
+ LorenzUtils.consoleLog("- $modName: no config found!")
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
index 91e1240a5..2e8a7a119 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
@@ -3,6 +3,7 @@ package at.hannibal2.skyhanni.data
import at.hannibal2.skyhanni.events.LocationChangeEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.TabListUtils
import net.minecraft.client.Minecraft
@@ -94,7 +95,7 @@ class HypixelData {
if (mode != location) {
LocationChangeEvent(location, mode).postAndCatch()
- println("SkyHanni location change: '$location'")
+ LorenzUtils.consoleLog("SkyHanni location change: '$location'")
mode = location
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt b/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt
index 5e36dd285..220c664e8 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt
@@ -10,6 +10,7 @@ import net.minecraft.network.play.server.S0EPacketSpawnObject
import net.minecraft.network.play.server.S2APacketParticles
import net.minecraft.util.EnumParticleTypes
import net.minecraftforge.client.event.RenderGameOverlayEvent
+import net.minecraftforge.event.entity.player.ItemTooltipEvent
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@@ -63,14 +64,14 @@ class LorenzTest {
}
}
-// @SubscribeEvent
-// fun onItemTooltipLow(event: ItemTooltipEvent) {
+ @SubscribeEvent
+ fun onItemTooltipLow(event: ItemTooltipEvent) {
// val itemStack = event.itemStack
// if (itemStack != null) {
// val internalName = itemStack.getInternalName()
// event.toolTip.add("internal name: $internalName")
// }
-// }
+ }
@SubscribeEvent
fun renderOverlay(event: RenderGameOverlayEvent.Post) {
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzLogger.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzLogger.kt
index 22977b468..b748b8676 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzLogger.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzLogger.kt
@@ -35,7 +35,7 @@ class LorenzLogger(filePath: String) {
}
private fun initLogger(): Logger {
- val logger = Logger.getLogger("" + System.nanoTime())
+ val logger = Logger.getLogger("Lorenz-Logger-" + System.nanoTime())
try {
createParent(File(fileName))
val handler = FileHandler(fileName)
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
index 602dbad19..b6854a3da 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt
@@ -1,7 +1,9 @@
package at.hannibal2.skyhanni.utils
+import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.data.HypixelData
import at.hannibal2.skyhanni.features.dungeon.DungeonData
+import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraft.client.Minecraft
import net.minecraft.entity.EntityLivingBase
import net.minecraft.entity.SharedMonsterAttributes
@@ -50,13 +52,13 @@ object LorenzUtils {
log.log(message)
val minecraft = Minecraft.getMinecraft()
if (minecraft == null) {
- println(message)
+ consoleLog(message.removeColor())
return
}
val thePlayer = minecraft.thePlayer
if (thePlayer == null) {
- println(message)
+ consoleLog(message.removeColor())
return
}
@@ -103,4 +105,8 @@ object LorenzUtils {
DecimalFormat(format).format(d).replace(',', 'x').replace('.', ',').replace('x', '.')
fun formatDouble(d: Double): String = formatDouble(d, "#,##0.0")
+
+ fun consoleLog(text: String) {
+ SkyHanniMod.consoleLog(text)
+ }
} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
new file mode 100644
index 000000000..0159b4809
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/utils/MinecraftConsoleFilter.kt
@@ -0,0 +1,187 @@
+package at.hannibal2.skyhanni.utils
+
+import org.apache.logging.log4j.Level
+import org.apache.logging.log4j.LogManager
+import org.apache.logging.log4j.Marker
+import org.apache.logging.log4j.core.Filter
+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
+
+class MinecraftConsoleFilter(private val loggerConfigName: String) : Filter {
+
+ val lorenzLogger = LorenzLogger("debug/mc_console_log")
+
+ var printUnfilteredDebugs = false
+ var printUnfilteredDebugsOutsideSkyBlock = false
+ var printFilteredReason = false
+
+ var filterChat = false
+ var filterGrowBuffer = false
+ var filterUnknownSound = false
+ var filterScoreboardErrors = false
+
+ companion object {
+ @JvmStatic
+ fun initLogging() {
+ val ctx: LoggerContext = LogManager.getContext(false) as LoggerContext
+
+ for (loggerConfig in ctx.configuration.loggers.values) {
+ val loggerName = loggerConfig.name
+ loggerConfig.addFilter(MinecraftConsoleFilter(loggerName))
+ }
+ }
+ }
+
+ override fun filter(event: LogEvent?): Filter.Result {
+// printUnfilteredDebugs = true
+// printUnfilteredDebugsOutsideSkyBlock = false
+// printFilteredReason = false
+//
+// filterChat = true
+// filterGrowBuffer = true
+// filterUnknownSound = true
+// filterScoreboardErrors = true
+
+ if (event == null) return Filter.Result.ACCEPT
+
+ val loggerName = event.loggerName
+ if (loggerName == "skyhanni") return Filter.Result.ACCEPT
+
+ val message = event.message
+ val formattedMessage = message.formattedMessage
+ val thrown = event.thrown
+
+ if (filterChat) {
+ if (formattedMessage.startsWith("[CHAT] ")) {
+ filterConsole("chat")
+ return Filter.Result.DENY
+ }
+ }
+ if (filterGrowBuffer) {
+ if (formattedMessage.startsWith("Needed to grow BufferBuilder buffer: Old size ")) {
+ filterConsole("Grow BufferBuilder buffer")
+ return Filter.Result.DENY
+ }
+ }
+ if (filterUnknownSound) {
+ if (formattedMessage == "Unable to play unknown soundEvent: minecraft:") {
+ filterConsole("Unknown soundEvent (minecraft:)")
+ return Filter.Result.DENY
+ }
+ }
+ if (thrown != null) {
+ val cause = thrown.cause
+ if (cause != null) {
+ if (cause.stackTrace.isNotEmpty()) {
+ val first = cause.stackTrace[0]
+ if (filterScoreboardErrors) {
+ if (first.toString() == "net.minecraft.scoreboard.Scoreboard.removeTeam(Scoreboard.java:229)") {
+ filterConsole("NullPointerException at Scoreboard.removeTeam")
+ return Filter.Result.DENY
+ }
+ if (first.toString() == "net.minecraft.scoreboard.Scoreboard.createTeam(Scoreboard.java:218)") {
+ filterConsole("IllegalArgumentException at Scoreboard.createTeam")
+ return Filter.Result.DENY
+ }
+ if (first.toString() == "net.minecraft.scoreboard.Scoreboard.removeObjective(Scoreboard.java:179)") {
+ filterConsole("IllegalArgumentException at Scoreboard.removeObjective")
+ return Filter.Result.DENY
+ }
+ }
+ }
+ }
+ if (filterScoreboardErrors) {
+ if (thrown.toString() == "java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: A team with the name '") {
+ filterConsole("IllegalArgumentException because scoreboard team already exists")
+ return Filter.Result.DENY
+ }
+ }
+ }
+
+ if (!printUnfilteredDebugs) return Filter.Result.ACCEPT
+ if (!printUnfilteredDebugsOutsideSkyBlock && !LorenzUtils.inSkyblock) return Filter.Result.ACCEPT
+
+ println(" ")
+ println("filter 4/event ('$loggerConfigName'/'$loggerName')")
+ println("formattedMessage: '$formattedMessage'")
+ val threadName = event.threadName
+ println("threadName: '$threadName'")
+ val level = event.level
+ println("level: '$level'")
+ val marker = event.marker
+ if (marker != null) {
+ val name = marker.name
+ println("marker name: '$name'")
+ } else {
+ println("marker is null")
+ }
+ println("thrown: '$thrown'")
+ if (thrown != null) {
+ if (thrown.stackTrace.isNotEmpty()) {
+ var element = thrown.stackTrace[0]
+ println("thrown first element: '$element'")
+ val cause = thrown.cause
+ if (cause != null) {
+ println("throw cause: '$cause'")
+ element = cause.stackTrace[0]
+ println("thrown cause first element: '$element'")
+ }
+ }
+ }
+ println(" ")
+
+ return Filter.Result.ACCEPT
+ }
+
+ private fun filterConsole(message: String) {
+ lorenzLogger.log(message)
+ if (printFilteredReason) {
+ LorenzUtils.consoleLog("filtered console: $message")
+ }
+ }
+
+ override fun getOnMismatch(): Filter.Result {
+ println("getOnMismatch ($loggerConfigName)")
+ return Filter.Result.DENY
+ }
+
+ override fun getOnMatch(): Filter.Result {
+ println("getOnMatch ($loggerConfigName)")
+ return Filter.Result.ACCEPT
+ }
+
+ override fun filter(
+ logger: Logger?,
+ level: Level?,
+ marker: Marker?,
+ msg: String?,
+ vararg params: Any?,
+ ): Filter.Result {
+ println("filter 1 ($loggerConfigName)")
+ return Filter.Result.ACCEPT
+ }
+
+ override fun filter(
+ logger: Logger?,
+ level: Level?,
+ marker: Marker?,
+ msg: Any?,
+ t: Throwable?,
+ ): Filter.Result {
+ println("filter 2 ($loggerConfigName)")
+ return Filter.Result.ACCEPT
+ }
+
+ override fun filter(
+ logger: Logger?,
+ level: Level?,
+ marker: Marker?,
+ msg: Message?,
+ t: Throwable?,
+ ): Filter.Result {
+ println("filter 3 ($loggerConfigName)")
+ return Filter.Result.ACCEPT
+ }
+}