diff options
| author | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2023-11-16 18:20:14 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-16 18:20:14 +0900 |
| commit | 24fc59daa6da3c48544d2d8aec5606a2089f64d5 (patch) | |
| tree | 61247e29be92d5489a38e4c4ec1881ee5ff15bd1 /mod/src | |
| parent | de2ea64b5127570baa61ade6fd7a63416c8b7cb9 (diff) | |
| download | Skyblock-Dungeons-Guide-24fc59daa6da3c48544d2d8aec5606a2089f64d5.tar.gz Skyblock-Dungeons-Guide-24fc59daa6da3c48544d2d8aec5606a2089f64d5.tar.bz2 Skyblock-Dungeons-Guide-24fc59daa6da3c48544d2d8aec5606a2089f64d5.zip | |
Automatically collect Dungeons Guide stack traces with user approval. (#446)
* - fix error handling, don't use throwables like amateur
Signed-off-by: syeyoung <cyoung06@naver.com>
* - no need for hack to stop
Signed-off-by: syeyoung <cyoung06@naver.com>
* - gui error handling
Signed-off-by: syeyoung <cyoung06@naver.com>
* - remote logging error
Signed-off-by: syeyoung <cyoung06@naver.com>
* - remote logging error
Signed-off-by: syeyoung <cyoung06@naver.com>
* - testing privacy policy
Signed-off-by: syeyoung <cyoung06@naver.com>
* - send traces
Signed-off-by: syeyoung <cyoung06@naver.com>
* - show collect diagnostic? prompt
Signed-off-by: syeyoung <cyoung06@naver.com>
---------
Signed-off-by: syeyoung <cyoung06@naver.com>
Diffstat (limited to 'mod/src')
35 files changed, 331 insertions, 28 deletions
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java index c55d21cd..15329e9b 100755 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java @@ -37,6 +37,7 @@ import kr.syeyoung.dungeonsguide.mod.events.listener.DungeonListener; import kr.syeyoung.dungeonsguide.mod.events.listener.PacketInjector; import kr.syeyoung.dungeonsguide.mod.events.listener.PacketListener; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.guiv2.elements.richtext.fonts.DefaultFontRenderer; import kr.syeyoung.dungeonsguide.mod.overlay.OverlayManager; import kr.syeyoung.dungeonsguide.mod.party.PartyManager; diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/VersionInfo.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/VersionInfo.java index 37b6c212..8f327986 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/VersionInfo.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/VersionInfo.java @@ -24,6 +24,7 @@ import kr.syeyoung.dungeonsguide.launcher.branch.UpdateBranch; import kr.syeyoung.dungeonsguide.launcher.branch.UpdateRetrieverUtil; import kr.syeyoung.dungeonsguide.launcher.gui.screen.GuiDisplayer; import kr.syeyoung.dungeonsguide.launcher.loader.*; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.guiv2.GuiScreenAdapter; import kr.syeyoung.dungeonsguide.mod.guiv2.elements.GlobalHUDScale; import kr.syeyoung.dungeonsguide.mod.guiv2.elements.Scaler; @@ -53,6 +54,7 @@ public class VersionInfo { VERSION1 = properties.getProperty("VERSION"); MANDATORY_VERSION1 = Integer.parseInt(properties.getProperty("MANDATORY_VERSION", "0")); } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); VERSION1 = "unknown"; MANDATORY_VERSION1 = 0; e.printStackTrace(); @@ -133,6 +135,7 @@ public class VersionInfo { logger.error("Failed to check version: Unknown Loader: " + VersionInfo.getLoaderInfo() + " / " + VersionInfo.getCurrentLoader().getClass().getName()); } } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); logger.error("Error while checking for updates: ",e); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatProcessor.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatProcessor.java index a5eb360f..f8e89c63 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatProcessor.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatProcessor.java @@ -18,6 +18,7 @@ package kr.syeyoung.dungeonsguide.mod.chat; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiNewChat; import net.minecraft.util.ChatComponentText; @@ -81,6 +82,7 @@ public class ChatProcessor { } } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } @@ -108,6 +110,7 @@ public class ChatProcessor { if (chatProcessResult.isRemoveChat()) chatReceivedEvent.setResult(Event.Result.DENY); if (chatProcessResult.isRemoveListener()) it.remove(); } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java index b120499e..c67128ff 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java @@ -27,6 +27,7 @@ import kr.syeyoung.dungeonsguide.mod.config.guiconfig.location2.HUDLocationConfi import kr.syeyoung.dungeonsguide.mod.cosmetics.CosmeticsManager; import kr.syeyoung.dungeonsguide.mod.discord.DiscordIntegrationManager; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.features.impl.party.playerpreview.FeatureViewPlayerStatsOnJoin; import kr.syeyoung.dungeonsguide.mod.features.impl.party.playerpreview.HoverEventRenderPlayer; import kr.syeyoung.dungeonsguide.mod.features.impl.party.playerpreview.api.ApiFetcher; @@ -216,6 +217,7 @@ public class CommandDungeonsGuide extends CommandBase { target = null; } } catch (Exception t) { + FeatureCollectDiagnostics.queueSendLogAsync(t); t.printStackTrace(); } } @@ -272,6 +274,7 @@ public class CommandDungeonsGuide extends CommandBase { ))))); }); } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } @@ -299,6 +302,7 @@ public class CommandDungeonsGuide extends CommandBase { .put("payload", actualPayload).toString() )); } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CosmeticsManager.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CosmeticsManager.java index 2d73ff92..c31b6829 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CosmeticsManager.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CosmeticsManager.java @@ -25,6 +25,7 @@ import kr.syeyoung.dungeonsguide.mod.cosmetics.surgical.SurgicalReplacer; import kr.syeyoung.dungeonsguide.mod.events.impl.PlayerListItemPacketEvent; import kr.syeyoung.dungeonsguide.mod.events.impl.StompConnectedEvent; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.stomp.StompHeader; import kr.syeyoung.dungeonsguide.mod.stomp.StompManager; import kr.syeyoung.dungeonsguide.mod.stomp.StompPayload; @@ -166,7 +167,9 @@ public class CosmeticsManager { EntityPlayer entityPlayer = Minecraft.getMinecraft().theWorld.getPlayerEntityByUUID(activeCosmetic.getPlayerUID()); if (entityPlayer != null) entityPlayer.refreshDisplayName(); } - } catch (Exception exception) {exception.printStackTrace();} + } catch (Exception exception) { + FeatureCollectDiagnostics.queueSendLogAsync(exception); + exception.printStackTrace();} }); @@ -199,7 +202,8 @@ public class CosmeticsManager { EntityPlayer entityPlayer = Minecraft.getMinecraft().theWorld.getPlayerEntityByUUID(cosmeticData.getPlayerUID()); if (entityPlayer != null) entityPlayer.refreshDisplayName(); } - } catch (Exception exception) {exception.printStackTrace();} + } catch (Exception exception) { + FeatureCollectDiagnostics.queueSendLogAsync(exception);exception.printStackTrace();} } rebuildCaches(); }); @@ -254,6 +258,7 @@ public class CosmeticsManager { contextThreadLocal.set(total); } catch (Exception t) { System.out.println(clientChatReceivedEvent.message); + FeatureCollectDiagnostics.queueSendLogAsync(t); t.printStackTrace(); } } @@ -368,6 +373,7 @@ public class CosmeticsManager { } clientChatReceivedEvent.message = SurgicalReplacer.combine(chatComponents); } catch (Exception t) { + FeatureCollectDiagnostics.queueSendLogAsync(t); System.out.println(clientChatReceivedEvent.message); t.printStackTrace(); } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java index 86cf868c..b60ef7a7 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/discord/DiscordIntegrationManager.java @@ -32,6 +32,7 @@ import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserJoinRequestEvent; import kr.syeyoung.dungeonsguide.mod.events.impl.DiscordUserUpdateEvent; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; import kr.syeyoung.dungeonsguide.mod.features.impl.discord.inviteViewer.Reply; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.party.PartyContext; import kr.syeyoung.dungeonsguide.mod.party.PartyManager; import lombok.Getter; @@ -127,6 +128,7 @@ public class DiscordIntegrationManager implements IPCListener { System.out.println("Connecting"); } catch (NoDiscordClientException ignored) { } catch (Exception t) { + FeatureCollectDiagnostics.queueSendLogAsync(t); t.printStackTrace(); } } @@ -184,7 +186,8 @@ public class DiscordIntegrationManager implements IPCListener { JDiscordRelation relation = JDiscordRelation.parse(obj); relationMap.put(relation.getDiscordUser().getIdLong(), relation); } - } catch (Exception e) {e.printStackTrace();} + } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e);e.printStackTrace();} } private void sendRichPresence(RichPresence presence) { @@ -241,6 +244,7 @@ public class DiscordIntegrationManager implements IPCListener { updatePresence(); } } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); // let thread just die if catastrophic failure occurs. } try { diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/DungeonFacade.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/DungeonFacade.java index 9ee4a55a..2b721192 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/DungeonFacade.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/DungeonFacade.java @@ -20,6 +20,7 @@ package kr.syeyoung.dungeonsguide.mod.dungeon; import kr.syeyoung.dungeonsguide.launcher.Main; import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoomInfoRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import lombok.Getter; import lombok.Setter; @@ -47,6 +48,7 @@ public class DungeonFacade { DungeonRoomInfoRegistry.loadAll(Main.getConfigDir()); } catch (BadPaddingException | InvalidKeyException | NoSuchPaddingException | IllegalBlockSizeException | IOException | NoSuchAlgorithmException | InvalidAlgorithmParameterException e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/PathfinderExecutorExecutor.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/PathfinderExecutorExecutor.java index fc991023..c7bf2e2a 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/PathfinderExecutorExecutor.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/PathfinderExecutorExecutor.java @@ -21,6 +21,7 @@ package kr.syeyoung.dungeonsguide.mod.dungeon; import kr.syeyoung.dungeonsguide.mod.DungeonsGuide; import kr.syeyoung.dungeonsguide.mod.dungeon.pathfinding.algorithms.PathfinderExecutor; import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import net.minecraft.client.Minecraft; import net.minecraft.util.BlockPos; import scala.reflect.internal.util.WeakHashSet; @@ -70,6 +71,7 @@ public class PathfinderExecutorExecutor extends Thread{ } // Thread.yield(); } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); // wtf? try { Thread.sleep(1000); diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomfinder/DungeonRoom.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomfinder/DungeonRoom.java index ea1ce09b..04eac305 100755 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomfinder/DungeonRoom.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomfinder/DungeonRoom.java @@ -42,6 +42,7 @@ import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.ProcessorFactory; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.RoomProcessor; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.RoomProcessorGenerator; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.features.impl.secret.FeaturePathfindStrategy; import lombok.AllArgsConstructor; import lombok.Getter; @@ -222,8 +223,10 @@ public class DungeonRoom { matchRoomAndSetupRoomProcessor(); matched = true; } catch (Exception e) { - if (e.getMessage() == null || !e.getMessage().contains("Chunk not loaded")) + if (e.getMessage() == null || !e.getMessage().contains("Chunk not loaded")) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); + } } finally { matching = false; } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/RoomProcessorIcePath.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/RoomProcessorIcePath.java index e8088828..337bfe7d 100755 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/RoomProcessorIcePath.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/RoomProcessorIcePath.java @@ -23,6 +23,7 @@ import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint; import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet; import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils; import lombok.AllArgsConstructor; import lombok.Getter; @@ -78,6 +79,7 @@ public class RoomProcessorIcePath extends GeneralRoomProcessor { buildMap(); err = false; } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); err = true; return; diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bombdefuse/RoomProcessorBombDefuseSolver.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bombdefuse/RoomProcessorBombDefuseSolver.java index a96b23e6..224279fe 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bombdefuse/RoomProcessorBombDefuseSolver.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bombdefuse/RoomProcessorBombDefuseSolver.java @@ -38,6 +38,7 @@ import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.bombdefuse.chambers.n import kr.syeyoung.dungeonsguide.mod.events.impl.KeyBindPressedEvent; import kr.syeyoung.dungeonsguide.mod.events.impl.PlayerInteractEntityEvent; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils; import kr.syeyoung.dungeonsguide.mod.utils.TextUtils; import lombok.AllArgsConstructor; @@ -206,6 +207,7 @@ public class RoomProcessorBombDefuseSolver extends GeneralRoomProcessor { ch.getRight().getProcessor().onDataReceive(compound); } } catch (Exception t) { + FeatureCollectDiagnostics.queueSendLogAsync(t); t.printStackTrace(); ChatTransmitter.sendDebugChat(new ChatComponentText("Failed to analyze Bomb Defuse Chat")); } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bossfight/BossfightProcessorThorn.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bossfight/BossfightProcessorThorn.java index cca070e7..cefb4431 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bossfight/BossfightProcessorThorn.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/bossfight/BossfightProcessorThorn.java @@ -20,6 +20,7 @@ package kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.bossfight; import kr.syeyoung.dungeonsguide.mod.DungeonsGuide; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils; import net.minecraft.block.Block; import net.minecraft.entity.boss.BossStatus; @@ -99,6 +100,7 @@ public class BossfightProcessorThorn extends GeneralBossfightProcessor { new Color(0, 255, 0, 50) : new Color(255,0,0, 50), partialTicks, false); } } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java index 1171027a..47fea6b2 100755 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/boxpuzzle/RoomProcessorBoxSolver.java @@ -26,6 +26,7 @@ import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.GeneralRoomProcessor; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.RoomProcessorGenerator; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -64,6 +65,7 @@ public class RoomProcessorBoxSolver extends GeneralRoomProcessor { bugged = false; } } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/icefill/RoomProcessorIcePath2.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/icefill/RoomProcessorIcePath2.java index 66140160..1f018524 100755 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/icefill/RoomProcessorIcePath2.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/icefill/RoomProcessorIcePath2.java @@ -26,6 +26,7 @@ import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.GeneralRoomProcessor; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.RoomProcessorGenerator; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils; import net.minecraft.init.Blocks; import net.minecraft.util.BlockPos; @@ -84,6 +85,7 @@ public class RoomProcessorIcePath2 extends GeneralRoomProcessor { solution.add(poses); }).start(); } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/waterpuzzle/RoomProcessorWaterPuzzle.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/waterpuzzle/RoomProcessorWaterPuzzle.java index fccfcaa1..e9915a0d 100755 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/waterpuzzle/RoomProcessorWaterPuzzle.java +++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/roomprocessor/waterpuzzle/RoomProcessorWaterPuzzle.java @@ -24,6 +24,7 @@ import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.GeneralRoomProcessor; import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.RoomProcessorGenerator; import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry; +import kr.syeyoung.dungeonsguide.mod.features.impl.etc.FeatureCollectDiagnostics; import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils; import net.minecraft.block.Block; import net.minecraft.block.BlockLever; @@ -226,6 +227,7 @@ public class RoomProcessorWaterPuzzle extends GeneralRoomProcessor { } } } catch (Exception e) { + FeatureCollectDiagnostics.queueSendLogAsync(e); e.printStackTrace(); } } diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java index 46fff031..0dd8f261 100644 --- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/events/annotations/EventHandlerRegistry.java +++ b/ |
