diff options
Diffstat (limited to 'src/main')
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 + } +} |