From 292fbd05e13271ca3ad99ebe00ae4302e04848f3 Mon Sep 17 00:00:00 2001 From: Eryk Ruta <70776766+kingstefan26@users.noreply.github.com> Date: Tue, 1 Nov 2022 15:51:30 +0100 Subject: 3rd time is the charm (#70) * Updated some dependencies, used my crusty skytils forgegradle fork + removed the IRRELEVANT hytils fixes. generally made the thing build * made the logs less annoying * temp fix so it doesn't throw an exception * FAT REFACTOR General refactor on Authenticator.java DungeonsGuide.java Main.java removed unnecessary imports where not needed to be removed DGInterface.java (no real reason to exist) in DungeonsGuide.java made the retry stomp a singe-thread executor, so it doesn't leak when offline added an "offline mode" so it doesn't just error when server down TODO: move auth to DungeonsGuide.java and make it retry when network down on launch * New auth implementation that should replace the old one: does all the things the old one did removed progressBar cuz it would make the impl 3x more complicated in the name of a splash screen added a token changed event (so now it supports re-logging with a different account) code is (should) be more readable / extensible TODO: surgically replace Authenticator.java with new impl AND support re-logging * Made the chat processor logger name less obnoxious * implemented my implementation of an implementation of auth can and is very buggy, essentially the loading of the remote classes but the mod works so idk TODO: MAKE STOMP NOT DO STUFF TILL STOMPCONNECTED IS EMITTED * fix for stomp client null bc forge events not going tru on pre-init TODO: make work and test the web loadable classes, then make all the stuff that relies on stomp not throw exceptions when stomp is not connected * move the create auth method into AuthProvider interface, so we don't clutter AuthManager with implementation details * Decouple AuthProviderUtil and DgAuth, move some stuff around and make it more readable * moved AuthUtil to make more sense * de-clutter the tree a little bit * Inline StompClientStatus.java / refactor * inline the useless interface * refactoringgg * fix ahUtils exeption spam * small StompClient refactor * fix GLCursors exeption spam + logger * make sure we are authenticated when downloading resources * new .destination("value") instead of .header("destination", "value") * StompMessageHandler -> StompMessageSubscription * Introduced StompManager * fix dungeon map not showing ppl heads * ehhh * wip (commit cuz im chekig out) * fix player profile not never loading in chat * remove this specific line * fix player profile not never loading in chat * cut out hychat like a cancer * ApiFetchur now caches whole players not single profiles, added a switch profile button in gui * ugh git * Revert "cut out hychat like a cancer" This reverts commit 2ee11afa * ugh git x2 * I tried, good luck maintaining this * forgot to uncomment hychat fix * make my new party ready work and look ok * change the look and add some "somewhere" locations * make stomp connection "null safe" * i hate git * introduce callbacks on parameter change for cleaner code add one example * impl new system, half way done * now shows which profile is now selected put button on top a lil refactor * fix player profile sometimes not loading * add players knowing who is using dg (try to) * announcing that we are a dg user will get reworked in the future * update deps * make it not spam logs * sanity check for premium features so it doesn't 403 * add YoMamaOutdated that checks if you are using outdated dg * hychat?? anyone * try catch in FeatureRegistry * added Ether transmission ability * chat shredder borken, disabled for now * party deserves its own folder * dungeon stuff in dungeon folder * events folders moved * fix score data collection hanging forever if stomp is not connected * fix stomp never connecting * re-add the removed * fix wonky rendering * server side implementation is not ready, canning this for a future release * attempt to fix heads loading on main thread * discord * me when sonar lint * new consumer based stomp subscriptions * replace old with new subscriptions * remove the remains of StompSubscription and replace CloseListener with a forge event * StompSubscription is now a functional interface * remove unnecessary event message chains, feature logic should be in the feature * fix events being set up wrongly * Revert "fix events being set up wrongly" This reverts commit e6ea7efa557a5f5c8a3ea33be998717bc024b8cb. * Revert "remove unnecessary event message chains," This reverts commit 96f508bae85b33cdcef6be19226c00fc52a1439b. * fix stomp client sending payload object instead of the actual payload * fix null pointer on empty party * fix players with cosmetics name being white in tab * added message when not connected to dg changed YoMamaOutdated to use CloudFlare workers added client sided message queue * the mod doesn't init when outdated * mcmod.info * dont busy wait in authmenager * test pepole crusty tests * chill out the authmanager * name the thread pool in auth manager * clear most compiler warnings * make outdated check allow to play without the mod initialized * make first startup VERY noticeable, move config creation to main * major dungeon package refactor * refactor checkpoint * refactor checkpoint #1 * final refactor checkpoint #2 * remove the player if from version check, made the version check not nesssery for playing Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * remove trap room fix that didnt fix anything Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * make secret beacons optional Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * make the checkmarks on map align with the rest of everyone Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * removed debug function Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move the menus to make more sense + make destination text on secrets optional Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * improve dungeonMap performance by ~90% temporarly disabled 9 slot map player location due to bugs fix DungeonContext not getting player from ScoreBoard Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * add epic countdown on dungeon start (still wip) Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * added a option to cache blockstaes Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * added TabListUtil Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * fixed epic countdown Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * (i want to sleep) made all the dungeon room detection async TODO: fix ol the bugs i created by doing that Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * stuff still broken but almost playable, unlike last commit Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * upload build jar to discord Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * cache the deps for the love of god Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * who needs linux and 32bit windows anyway Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * only upload to discord on beta branch Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * added "kick" when a member joins party Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move stuff that sends chat to player into a separate class Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * use our chat queue instead of calling `thePlayer.addChatMessage` to proxy ourselves from 1.8 code Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * Added and implemented MortDetector2000.java Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * extract duplicate + make more readable Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * added dummy support in FeatureDebugTrap Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * gradle now puts version in mcmod.info Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * remove side effects from DgAuth.java Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move debug commands into debug CommandDgDebug.java Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * fix key being wrong Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move epic countdown to dungeon huds, clean up Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * Revert "who needs linux and 32bit windows anyway" This reverts commit 0f3c2d544a70fc799cd3215dad5e997c0c8b6c06. * make FeatureRegistry not static initialise to get rid of "ClassNotDefined" errors Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * null check on Exception since it threw NullPointers Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * finish up progress bar in DungeonsGuide.java Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * warn about null features Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move stuff around in SkyblockStatus, move the stuff that updates status into SkyblockStatus from DungeonListener Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * rename DungeonGodObject.java to DungeonFacade.java Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * add cleanChat clause in FeatureEpicCountdown Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * implement getPreRequisites and isComplete in ActionBreakWithSuperBoom Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * clean up FeatureParameter Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * eliminate possible state inconsistency in DungeonListener Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move percentage from DungeonFacade to DungeonContext Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move `purge` and `partymax` back into CommandDungeonsGuide Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * stop repeating ReceiveChatQueue in ChatTransmitter Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * Clean up DungeonsGuide Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move `sendDebugChat` to `ChatTransmitter.java` Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * change CommandDgDebug into a `else if` from an `switch` because some bigot decided its better Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * duplicate code since it currently doesn't make sense, to be reworked Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * fix typo Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * remove the trycatch so we fail fast Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * fix null pointer when trying to get fontRenderer before minecraft is initialised Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * broken checkpoint 0 Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * broken checkpoint 1 Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * Revert "broken checkpoint 1" This reverts commit 64985e6287c7b5650b509668e42b9803e25c419c. * Revert "broken checkpoint 0" This reverts commit 5f62e1345d9c8e7f66f1e5792004a05027913d92. * Revert "fix null pointer when trying to get fontRenderer before minecraft is initialised" This reverts commit 57d92a78d31c410f699b58c8995c94055d57e2a4. * Revert "remove the trycatch so we fail fast" This reverts commit 12772255ed575e411fb99edf37ec16d0e5f42924. * Revert "fix typo" This reverts commit aa96cc2436d3ead42d53ead78f3334fac5100713. * Revert "duplicate code since it currently doesn't make sense, to be reworked" This reverts commit 6d71b88e3102d23bcfd90d85e8996327776fd52f. * Revert "change CommandDgDebug into a `else if` from an `switch` because some bigot decided its better" This reverts commit ffea84d9b5fd4adbe034a88249bc920eafa7c53a. * Revert "move `sendDebugChat` to `ChatTransmitter.java`" This reverts commit 5b8b2e22fff33768134a01c15c7650100ebb9257. * Revert "Clean up DungeonsGuide" This reverts commit 2069ad3ebc4344eb1e778954dc1d8f6c9303de69. * fix typo Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> (cherry picked from commit aa96cc2436d3ead42d53ead78f3334fac5100713) * duplicate code since it currently doesn't make sense, to be reworked Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> (cherry picked from commit 6d71b88e3102d23bcfd90d85e8996327776fd52f) * change CommandDgDebug into a `else if` from an `switch` because some bigot decided its better Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> (cherry picked from commit ffea84d9b5fd4adbe034a88249bc920eafa7c53a) * move debug chat into ChatTransmitter Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * null pointer in SkyblockStatus bc context was not initialised yet Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move dungeon starting door detection up the tree since it was a duplicate in both children, inline MortDetector2000 Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move dungeon name to DungeonContext Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * clean up Main Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * separate the "loader" and "mod" Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * separate DungeonsGuide and Main even more Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * change singleton implementation of DungeonsGuide Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move classes since their paths are hardcoded into roomdatas Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * create CatacombsDataProvider.java and implement it Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * remove unnecessary `DungeonsGuide.getDungeonsGuide();` (IntelliJ refactor bug) Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * move `help` text in commands Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * a certain someone hates switch statements Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * remove my version check, since we have to wait for out lord and savior to make his own Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * make `Main` and `DungeonsGuide` compatible with supported jar classloading Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * make the beta upload action run on push since it didnt get the secret on pull request and failed anyway, TODO: make the jar name not hardcoded Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> * upload all jar Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> Signed-off-by: kingstefan26 <70776766+kingstefan26@users.noreply.github.com> Co-authored-by: syeyoung <42869671+cyoung06@users.noreply.github.com> --- .../syeyoung/dungeonsguide/mod/DungeonsGuide.java | 260 ++++ .../kr/syeyoung/dungeonsguide/mod/Keybinds.java | 47 + .../syeyoung/dungeonsguide/mod/SkyblockStatus.java | 155 +++ .../dungeonsguide/mod/chat/ChatProcessResult.java | 31 + .../dungeonsguide/mod/chat/ChatProcessor.java | 118 ++ .../dungeonsguide/mod/chat/ChatSubscriber.java | 26 + .../dungeonsguide/mod/chat/ChatTransmitter.java | 69 + .../dungeonsguide/mod/commands/CommandDgDebug.java | 450 +++++++ .../mod/commands/CommandDungeonsGuide.java | 172 +++ .../dungeonsguide/mod/commands/CommandReparty.java | 104 ++ .../syeyoung/dungeonsguide/mod/config/Config.java | 65 + .../mod/config/guiconfig/ConfigPanelCreator.java | 40 + .../mod/config/guiconfig/GuiConfigV2.java | 59 + .../mod/config/guiconfig/MCategory.java | 103 ++ .../mod/config/guiconfig/MCategoryElement.java | 82 ++ .../mod/config/guiconfig/MFeature.java | 154 +++ .../mod/config/guiconfig/MFeatureEdit.java | 113 ++ .../mod/config/guiconfig/MNotFound.java | 38 + .../mod/config/guiconfig/MPanelCategory.java | 83 ++ .../mod/config/guiconfig/MParameterEdit.java | 219 ++++ .../mod/config/guiconfig/NestedCategory.java | 54 + .../mod/config/guiconfig/RootConfigPanel.java | 311 +++++ .../guiconfig/location/GuiGuiLocationConfig.java | 166 +++ .../mod/config/guiconfig/location/Marker.java | 45 + .../config/guiconfig/location/PanelDelegate.java | 403 ++++++ .../dungeonsguide/mod/config/types/AColor.java | 63 + .../mod/config/types/GUIRectangle.java | 81 ++ .../dungeonsguide/mod/config/types/TCAColor.java | 51 + .../dungeonsguide/mod/config/types/TCBoolean.java | 39 + .../dungeonsguide/mod/config/types/TCColor.java | 41 + .../dungeonsguide/mod/config/types/TCFloat.java | 39 + .../mod/config/types/TCGUIRectangle.java | 50 + .../dungeonsguide/mod/config/types/TCInteger.java | 39 + .../dungeonsguide/mod/config/types/TCKeybind.java | 39 + .../mod/config/types/TCRectangle.java | 51 + .../dungeonsguide/mod/config/types/TCString.java | 39 + .../mod/config/types/TCStringList.java | 51 + .../mod/config/types/TCTextStyle.java | 52 + .../mod/config/types/TCTextStyleList.java | 54 + .../mod/config/types/TypeConverter.java | 29 + .../mod/config/types/TypeConverterRegistry.java | 52 + .../mod/cosmetics/ActiveCosmetic.java | 12 + .../dungeonsguide/mod/cosmetics/CosmeticData.java | 14 + .../mod/cosmetics/CosmeticsManager.java | 288 ++++ .../mod/cosmetics/CustomNetworkPlayerInfo.java | 108 ++ .../mod/cosmetics/CustomPacketPlayerListItem.java | 38 + .../dungeonsguide/mod/cosmetics/IChatReplacer.java | 26 + .../chatreplacers/ChatReplacerChatByMe.java | 106 ++ .../cosmetics/chatreplacers/ChatReplacerCoop.java | 119 ++ .../chatreplacers/ChatReplacerMessage.java | 106 ++ .../cosmetics/chatreplacers/ChatReplacerPV.java | 119 ++ .../chatreplacers/ChatReplacerSocialOptions.java | 117 ++ .../chatreplacers/ChatReplacerViewProfile.java | 130 ++ .../dungeonsguide/mod/discord/gamesdk/GameSDK.java | 87 ++ .../mod/discord/gamesdk/jna/GameSDKTypeMapper.java | 46 + .../mod/discord/gamesdk/jna/NativeGameSDK.java | 50 + .../gamesdk/jna/datastruct/DiscordActivity.java | 50 + .../jna/datastruct/DiscordActivityAssets.java | 42 + .../jna/datastruct/DiscordActivityParty.java | 40 + .../jna/datastruct/DiscordActivitySecrets.java | 41 + .../jna/datastruct/DiscordActivityTimestamps.java | 40 + .../jna/datastruct/DiscordCreateParams.java | 72 + .../gamesdk/jna/datastruct/DiscordEntitlement.java | 42 + .../gamesdk/jna/datastruct/DiscordFileStat.java | 42 + .../jna/datastruct/DiscordImageDimensions.java | 40 + .../gamesdk/jna/datastruct/DiscordImageHandle.java | 43 + .../gamesdk/jna/datastruct/DiscordInputMode.java | 41 + .../gamesdk/jna/datastruct/DiscordLobby.java | 47 + .../gamesdk/jna/datastruct/DiscordOAuth2Token.java | 42 + .../gamesdk/jna/datastruct/DiscordPartySize.java | 40 + .../gamesdk/jna/datastruct/DiscordPresence.java | 40 + .../jna/datastruct/DiscordRelationship.java | 41 + .../discord/gamesdk/jna/datastruct/DiscordSku.java | 44 + .../gamesdk/jna/datastruct/DiscordSkuPrice.java | 41 + .../gamesdk/jna/datastruct/DiscordStruct.java | 35 + .../gamesdk/jna/datastruct/DiscordUser.java | 43 + .../jna/datastruct/DiscordUserAchievement.java | 44 + .../enumuration/EDiscordActivityActionType.java | 67 + .../EDiscordActivityJoinRequestReply.java | 68 + .../jna/enumuration/EDiscordActivityType.java | 69 + .../jna/enumuration/EDiscordCreateFlags.java | 67 + .../jna/enumuration/EDiscordEntitlementType.java | 72 + .../gamesdk/jna/enumuration/EDiscordImageType.java | 66 + .../jna/enumuration/EDiscordInputModeType.java | 67 + .../jna/enumuration/EDiscordLobbySearchCast.java | 67 + .../enumuration/EDiscordLobbySearchComparison.java | 71 + .../enumuration/EDiscordLobbySearchDistance.java | 69 + .../gamesdk/jna/enumuration/EDiscordLobbyType.java | 67 + .../gamesdk/jna/enumuration/EDiscordLogLevel.java | 69 + .../jna/enumuration/EDiscordPremiumType.java | 68 + .../jna/enumuration/EDiscordRelationshipType.java | 71 + .../gamesdk/jna/enumuration/EDiscordResult.java | 109 ++ .../gamesdk/jna/enumuration/EDiscordSkuType.java | 69 + .../gamesdk/jna/enumuration/EDiscordStatus.java | 69 + .../gamesdk/jna/enumuration/EDiscordUserFlag.java | 70 + .../jna/interfacestruct/GameSDKCallback.java | 30 + .../interfacestruct/IDiscordAchievementEvents.java | 39 + .../IDiscordAchievementManager.java | 57 + .../interfacestruct/IDiscordActivityEvents.java | 50 + .../interfacestruct/IDiscordActivityManager.java | 63 + .../IDiscordApplicationManager.java | 60 + .../gamesdk/jna/interfacestruct/IDiscordCore.java | 91 ++ .../jna/interfacestruct/IDiscordImageManager.java | 52 + .../jna/interfacestruct/IDiscordLobbyEvents.java | 64 + .../jna/interfacestruct/IDiscordLobbyManager.java | 148 +++ .../IDiscordLobbyMemberTransaction.java | 42 + .../interfacestruct/IDiscordLobbySearchQuery.java | 52 + .../interfacestruct/IDiscordLobbyTransaction.java | 57 + .../jna/interfacestruct/IDiscordNetworkEvents.java | 45 + .../interfacestruct/IDiscordNetworkManager.java | 65 + .../jna/interfacestruct/IDiscordOverlayEvents.java | 38 + .../interfacestruct/IDiscordOverlayManager.java | 56 + .../IDiscordRelationshipEvents.java | 42 + .../IDiscordRelationshipManager.java | 53 + .../interfacestruct/IDiscordStorageManager.java | 81 ++ .../jna/interfacestruct/IDiscordStoreEvents.java | 43 + .../jna/interfacestruct/IDiscordStoreManager.java | 73 ++ .../jna/interfacestruct/IDiscordUserEvents.java | 38 + .../jna/interfacestruct/IDiscordUserManager.java | 53 + .../jna/interfacestruct/IDiscordVoiceEvents.java | 39 + .../jna/interfacestruct/IDiscordVoiceManager.java | 72 + .../gamesdk/jna/typedef/DiscordClientID.java | 28 + .../jna/typedef/DiscordNetworkChannelId.java | 28 + .../gamesdk/jna/typedef/DiscordNetworkPeerId.java | 28 + .../gamesdk/jna/typedef/DiscordSnowflake.java | 28 + .../gamesdk/jna/typedef/DiscordTimestamp.java | 28 + .../gamesdk/jna/typedef/DiscordVersion.java | 28 + .../mod/discord/gamesdk/jna/typedef/Int32.java | 31 + .../mod/discord/gamesdk/jna/typedef/Int64.java | 31 + .../mod/discord/gamesdk/jna/typedef/UInt32.java | 31 + .../mod/discord/gamesdk/jna/typedef/UInt64.java | 31 + .../mod/discord/gamesdk/jna/typedef/UInt8.java | 31 + .../mod/discord/rpc/JDiscordActivity.java | 72 + .../mod/discord/rpc/JDiscordRelation.java | 42 + .../mod/discord/rpc/JDiscordUser.java | 40 + .../mod/discord/rpc/RichPresenceManager.java | 251 ++++ .../mod/dungeon/DungeonActionContext.java | 35 + .../dungeonsguide/mod/dungeon/DungeonContext.java | 218 ++++ .../dungeonsguide/mod/dungeon/DungeonFacade.java | 35 + .../dungeonsguide/mod/dungeon/MapProcessor.java | 535 ++++++++ .../mod/dungeon/actions/AbstractAction.java | 61 + .../dungeon/actions/ActionBreakWithSuperBoom.java | 103 ++ .../mod/dungeon/actions/ActionChangeState.java | 75 ++ .../mod/dungeon/actions/ActionClick.java | 82 ++ .../mod/dungeon/actions/ActionClickSet.java | 90 ++ .../mod/dungeon/actions/ActionComplete.java | 41 + .../mod/dungeon/actions/ActionDropItem.java | 82 ++ .../mod/dungeon/actions/ActionInteract.java | 89 ++ .../mod/dungeon/actions/ActionKill.java | 90 ++ .../mod/dungeon/actions/ActionMove.java | 122 ++ .../mod/dungeon/actions/ActionMoveNearestAir.java | 92 ++ .../mod/dungeon/actions/ActionRoot.java | 47 + .../mod/dungeon/actions/tree/ActionRoute.java | 136 ++ .../actions/tree/ActionRouteProperties.java | 16 + .../mod/dungeon/actions/tree/ActionTree.java | 94 ++ .../mod/dungeon/actions/tree/ActionTreeUtil.java | 83 ++ .../mod/dungeon/doorfinder/DungeonDoor.java | 87 ++ .../doorfinder/DungeonSpecificDataProvider.java | 39 + .../DungeonSpecificDataProviderRegistry.java | 42 + .../mod/dungeon/doorfinder/EDungeonDoorType.java | 38 + .../catacombs/CatacombsDataProvider.java | 75 ++ .../catacombs/impl/MasterModeDataProvider.java | 64 + .../catacombs/impl/NormalModeDataProvider.java | 101 ++ .../mod/dungeon/events/DungeonEvent.java | 41 + .../mod/dungeon/events/DungeonEventData.java | 25 + .../mod/dungeon/events/DungeonEventHolder.java | 32 + .../mod/dungeon/events/SerializableBlockPos.java | 38 + .../events/impl/DungeonCryptBrokenEvent.java | 35 + .../mod/dungeon/events/impl/DungeonDeathEvent.java | 36 + .../dungeon/events/impl/DungeonMapUpdateEvent.java | 34 + .../dungeon/events/impl/DungeonNodataEvent.java | 29 + .../events/impl/DungeonPuzzleFailureEvent.java | 34 + .../events/impl/DungeonRoomDiscoverEvent.java | 46 + .../events/impl/DungeonSecretCountChangeEvent.java | 37 + .../events/impl/DungeonStateChangeEvent.java | 40 + .../mod/dungeon/map/DungeonMapData.java | 121 ++ .../mod/dungeon/pathfinding/AStarCornerCut.java | 189 +++ .../mod/dungeon/pathfinding/AStarFineGrid.java | 182 +++ .../mod/dungeon/pathfinding/CachedWorld.java | 85 ++ .../mod/dungeon/pathfinding/JPSPathfinder.java | 306 +++++ .../pathfinding/NodeProcessorDungeonRoom.java | 144 ++ .../mod/dungeon/pathfinding/ThetaStar.java | 209 +++ .../mod/dungeon/roomedit/EditingContext.java | 83 ++ .../mod/dungeon/roomedit/Parameter.java | 39 + .../mod/dungeon/roomedit/gui/GuiDungeonAddSet.java | 136 ++ .../roomedit/gui/GuiDungeonParameterEdit.java | 173 +++ .../dungeon/roomedit/gui/GuiDungeonRoomEdit.java | 68 + .../dungeon/roomedit/gui/GuiDungeonValueEdit.java | 127 ++ .../mechanicedit/ValueEditBreakableWall.java | 143 ++ .../roomedit/mechanicedit/ValueEditDoor.java | 157 +++ .../roomedit/mechanicedit/ValueEditDummy.java | 121 ++ .../roomedit/mechanicedit/ValueEditFairySoul.java | 118 ++ .../roomedit/mechanicedit/ValueEditJournal.java | 122 ++ .../roomedit/mechanicedit/ValueEditLever.java | 133 ++ .../roomedit/mechanicedit/ValueEditNPC.java | 121 ++ .../roomedit/mechanicedit/ValueEditOnewayDoor.java | 143 ++ .../mechanicedit/ValueEditOnewayLever.java | 137 ++ .../mechanicedit/ValueEditPressurePlate.java | 136 ++ .../roomedit/mechanicedit/ValueEditSecret.java | 129 ++ .../roomedit/mechanicedit/ValueEditTomb.java | 118 ++ .../dungeon/roomedit/panes/ActionDisplayPane.java | 82 ++ .../roomedit/panes/ActionTreeDisplayPane.java | 216 +++ .../mod/dungeon/roomedit/panes/DynamicEditor.java | 29 + .../dungeon/roomedit/panes/GeneralEditPane.java | 286 ++++ .../roomedit/panes/ProcessorParameterEditPane.java | 144 ++ .../roomedit/panes/RoomDataDisplayPane.java | 126 ++ .../roomedit/panes/RoomMatchDisplayPane.java | 152 +++ .../dungeon/roomedit/panes/RoommatchingPane.java | 84 ++ .../mod/dungeon/roomedit/panes/SecretEditPane.java | 156 +++ .../mod/dungeon/roomedit/valueedit/ValueEdit.java | 27 + .../roomedit/valueedit/ValueEditAColor.java | 339 +++++ .../roomedit/valueedit/ValueEditBoolean.java | 101 ++ .../dungeon/roomedit/valueedit/ValueEditColor.java | 287 ++++ .../roomedit/valueedit/ValueEditCreator.java | 29 + .../dungeon/roomedit/valueedit/ValueEditFloat.java | 99 ++ .../roomedit/valueedit/ValueEditInteger.java | 99 ++ .../dungeon/roomedit/valueedit/ValueEditNull.java | 38 + .../roomedit/valueedit/ValueEditOffsetPoint.java | 163 +++ .../valueedit/ValueEditOffsetPointSet.java | 250 ++++ .../roomedit/valueedit/ValueEditRegistry.java | 70 + .../roomedit/valueedit/ValueEditString.java | 99 ++ .../mod/dungeon/roomfinder/DungeonRoom.java | 381 ++++++ .../roomfinder/DungeonRoomInfoRegistry.java | 163 +++ .../mod/dungeon/roomfinder/RoomMatcher.java | 145 +++ .../roomprocessor/GeneralRoomProcessor.java | 448 +++++++ .../dungeon/roomprocessor/ProcessorFactory.java | 65 + .../mod/dungeon/roomprocessor/RoomProcessor.java | 49 + .../roomprocessor/RoomProcessorBlazeSolver.java | 201 +++ .../roomprocessor/RoomProcessorButtonSolver.java | 132 ++ .../roomprocessor/RoomProcessorCreeperSolver.java | 148 +++ .../roomprocessor/RoomProcessorGenerator.java | 25 + .../roomprocessor/RoomProcessorIcePath.java | 234 ++++ .../roomprocessor/RoomProcessorRedRoom.java | 121 ++ .../dungeon/roomprocessor/RoomProcessorRiddle.java | 121 ++ .../RoomProcessorTeleportMazeSolver.java | 145 +++ .../RoomProcessorTicTacToeSolver.java | 214 +++ .../dungeon/roomprocessor/RoomProcessorTrivia.java | 165 +++ .../bombdefuse/RoomProcessorBombDefuseSolver.java | 441 +++++++ .../bombdefuse/chambers/BDChamber.java | 83 ++ .../chambers/BombDefuseChamberGenerator.java | 30 + .../bombdefuse/chambers/ChamberProcessor.java | 27 + .../chambers/DummyDefuseChamberProcessor.java | 32 + .../chambers/GeneralDefuseChamberProcessor.java | 137 ++ .../chambers/arrow/ArrowLeftProcessor.java | 138 ++ .../chambers/arrow/ArrowProcessorMatcher.java | 52 + .../chambers/arrow/ArrowRightProcessor.java | 126 ++ .../chambers/bugged/ImpossibleMatcher.java | 47 + .../chambers/color/ColorLeftProcessor.java | 230 ++++ .../chambers/color/ColorProcessorMatcher.java | 49 + .../chambers/color/ColorRightProcessor.java | 175 +++ .../chambers/creeper/CreeperLeftProcessor.java | 95 ++ .../chambers/creeper/CreeperProcessorMatcher.java | 52 + .../chambers/creeper/CreeperRightProcessor.java | 73 ++ .../goldenpath/GoldenPathLeftProcessor.java | 141 ++ .../goldenpath/GoldenPathProcessorMatcher.java | 47 + .../goldenpath/GoldenPathRightProcessor.java | 97 ++ .../chambers/maze/MazeLeftProcessor.java | 80 ++ .../chambers/maze/MazeProcessorMatcher.java | 47 + .../chambers/maze/MazeRightProcessor.java | 73 ++ .../chambers/number/NumberLeftProcessor.java | 125 ++ .../chambers/number/NumberProcessorMatcher.java | 53 + .../chambers/number/NumberRightProcessor.java | 114 ++ .../bossfight/BossfightProcessor.java | 33 + .../bossfight/BossfightProcessorBonzo.java | 85 ++ .../bossfight/BossfightProcessorLivid.java | 90 ++ .../bossfight/BossfightProcessorNecron.java | 77 ++ .../bossfight/BossfightProcessorProf.java | 144 ++ .../bossfight/BossfightProcessorSadan.java | 144 ++ .../bossfight/BossfightProcessorScarf.java | 134 ++ .../bossfight/BossfightProcessorThorn.java | 103 ++ .../bossfight/GeneralBossfightProcessor.java | 155 +++ .../roomprocessor/bossfight/HealthData.java | 33 + .../boxpuzzle/BoxPuzzleSolvingThread.java | 182 +++ .../boxpuzzle/RoomProcessorBoxSolver.java | 392 ++++++ .../icefill/RoomProcessorIcePath2.java | 151 +++ .../roomprocessor/waterpuzzle/LeverState.java | 33 + .../waterpuzzle/LeverStateContradict.java | 25 + .../waterpuzzle/RoomProcessorWaterPuzzle.java | 124 ++ .../dungeon/roomprocessor/waterpuzzle/Route.java | 60 + .../roomprocessor/waterpuzzle/SwitchData.java | 46 + .../roomprocessor/waterpuzzle/WaterBoard.java | 424 ++++++ .../roomprocessor/waterpuzzle/WaterNode.java | 36 + .../waterpuzzle/nodes/WaterNodeAir.java | 59 + .../waterpuzzle/nodes/WaterNodeEnd.java | 60 + .../waterpuzzle/nodes/WaterNodeStart.java | 66 + .../waterpuzzle/nodes/WaterNodeToggleable.java | 71 + .../waterpuzzle/nodes/WaterNodeWall.java | 62 + .../mod/events/impl/AuthChangedEvent.java | 6 + .../mod/events/impl/BlockUpdateEvent.java | 37 + .../mod/events/impl/BossroomEnterEvent.java | 24 + .../events/impl/DiscordUserJoinRequestEvent.java | 33 + .../mod/events/impl/DiscordUserUpdateEvent.java | 32 + .../impl/DungeonContextInitializationEvent.java | 24 + .../mod/events/impl/DungeonEndedEvent.java | 24 + .../mod/events/impl/DungeonLeftEvent.java | 24 + .../mod/events/impl/DungeonStartedEvent.java | 24 + .../mod/events/impl/HypixelJoinedEvent.java | 24 + .../mod/events/impl/KeyBindPressedEvent.java | 31 + .../mod/events/impl/PlayerInteractEntityEvent.java | 39 + .../mod/events/impl/PlayerListItemPacketEvent.java | 32 + .../mod/events/impl/SkyblockJoinedEvent.java | 24 + .../mod/events/impl/SkyblockLeftEvent.java | 24 + .../mod/events/impl/StompConnectedEvent.java | 32 + .../dungeonsguide/mod/events/impl/TitleEvent.java | 32 + .../mod/events/impl/WindowUpdateEvent.java | 34 + .../mod/events/listener/DungeonListener.java | 513 ++++++++ .../mod/events/listener/FeatureListener.java | 512 ++++++++ .../mod/events/listener/PacketListener.java | 191 +++ .../mod/features/AbstractFeature.java | 114 ++ .../mod/features/FeatureParameter.java | 72 + .../mod/features/FeatureRegistry.java | 337 +++++ .../dungeonsguide/mod/features/GuiFeature.java | 160 +++ .../dungeonsguide/mod/features/SimpleFeature.java | 33 + .../mod/features/impl/advanced/FeatureDebug.java | 31 + .../features/impl/advanced/FeatureDebugTrap.java | 80 ++ .../impl/advanced/FeatureDebuggableMap.java | 88 ++ .../impl/advanced/FeatureRoomCoordDisplay.java | 94 ++ .../impl/advanced/FeatureRoomDebugInfo.java | 95 ++ .../features/impl/advanced/FeatureTestPepole.java | 460 +++++++ .../mod/features/impl/boss/FeatureAutoReparty.java | 34 + .../mod/features/impl/boss/FeatureBossHealth.java | 104 ++ .../features/impl/boss/FeatureBoxRealLivid.java | 54 + .../mod/features/impl/boss/FeatureChestPrice.java | 174 +++ .../features/impl/boss/FeatureCurrentPhase.java | 74 ++ .../mod/features/impl/boss/FeatureHideAnimals.java | 76 ++ .../features/impl/boss/FeatureTerracotaTimer.java | 77 ++ .../impl/boss/FeatureThornBearPercentage.java | 78 ++ .../impl/boss/FeatureThornSpiritBowTimer.java | 110 ++ .../features/impl/boss/FeatureWarningOnPortal.java | 200 +++ .../terminal/CorrectThePaneSolutionProvider.java | 53 + .../impl/boss/terminal/FeatureSimonSaysSolver.java | 113 ++ .../impl/boss/terminal/FeatureTerminalSolvers.java | 153 +++ .../terminal/NavigateMazeSolutionProvider.java | 144 ++ .../terminal/SelectAllColorSolutionProivider.java | 60 + .../terminal/SelectInOrderSolutionProvider.java | 72 + .../impl/boss/terminal/TerminalSolution.java | 30 + .../boss/terminal/TerminalSolutionProvider.java | 29 + .../terminal/WhatStartsWithSolutionProvider.java | 50 + .../impl/cosmetics/FeatureNicknameColor.java | 49 + .../impl/cosmetics/FeatureNicknamePrefix.java | 49 + .../features/impl/cosmetics/PrefixSelectorGUI.java | 188 +++ .../impl/discord/inviteViewer/ImageTexture.java | 118 ++ .../discord/inviteViewer/PartyInviteViewer.java | 314 +++++ .../discord/inviteViewer/PartyJoinRequest.java | 59 + .../impl/discord/invteTooltip/MTooltipInvite.java | 127 ++ .../invteTooltip/MTooltipInviteElement.java | 109 ++ .../impl/discord/onlinealarm/PlayingDGAlarm.java | 170 +++ .../mod/features/impl/dungeon/FeatureBoxBats.java | 68 + .../impl/dungeon/FeatureBoxSkelemaster.java | 68 + .../features/impl/dungeon/FeatureBoxStarMobs.java | 68 + .../features/impl/dungeon/FeatureCollectScore.java | 77 ++ .../dungeon/FeatureDungeonCurrentRoomSecrets.java | 108 ++ .../impl/dungeon/FeatureDungeonDeaths.java | 168 +++ .../features/impl/dungeon/FeatureDungeonMap.java | 508 ++++++++ .../impl/dungeon/FeatureDungeonMilestone.java | 110 ++ .../impl/dungeon/FeatureDungeonRealTime.java | 91 ++ .../impl/dungeon/FeatureDungeonRoomName.java | 95 ++ .../impl/dungeon/FeatureDungeonSBTime.java | 119 ++ .../features/impl/dungeon/FeatureDungeonScore.java | 351 +++++ .../impl/dungeon/FeatureDungeonSecrets.java | 145 +++ .../features/impl/dungeon/FeatureDungeonTombs.java | 88 ++ .../features/impl/dungeon/FeatureHideNameTags.java | 53 + .../features/impl/dungeon/FeaturePlayerESP.java | 111 ++ .../dungeon/FeaturePressAnyKeyToCloseChest.java | 89 ++ .../impl/dungeon/FeatureWarnLowHealth.java | 106 ++ .../impl/dungeon/FeatureWatcherWarning.java | 87 ++ .../impl/etc/FeatureAutoAcceptReparty.java | 68 + .../features/impl/etc/FeatureCooldownCounter.java | 96 ++ .../mod/features/impl/etc/FeatureCopyMessages.java | 42 + .../impl/etc/FeatureDecreaseExplosionSound.java | 52 + .../features/impl/etc/FeatureDisableMessage.java | 77 ++ .../features/impl/etc/FeatureEpicCountdown.java | 156 +++ .../mod/features/impl/etc/FeaturePenguins.java | 168 +++ .../features/impl/etc/FeatureRepartyCommand.java | 29 + .../impl/etc/FeatureTooltipDungeonStat.java | 52 + .../mod/features/impl/etc/FeatureTooltipPrice.java | 111 ++ .../mod/features/impl/etc/FeatureUpdateAlarm.java | 56 + .../impl/etc/ability/FeatureAbilityCooldown.java | 402 ++++++ .../features/impl/etc/ability/SkyblockAbility.java | 32 + .../mod/features/impl/etc/ability/UsedAbility.java | 31 + .../mod/features/impl/party/APIKey.java | 56 + .../features/impl/party/FeatureGoodParties.java | 121 ++ .../mod/features/impl/party/FeaturePartyList.java | 97 ++ .../mod/features/impl/party/FeaturePartyReady.java | 180 +++ .../party/customgui/FeatureCustomPartyFinder.java | 110 ++ .../impl/party/customgui/GuiCustomPartyFinder.java | 75 ++ .../impl/party/customgui/PanelPartyFinder.java | 341 +++++ .../party/customgui/PanelPartyFinderSettings.java | 293 +++++ .../party/customgui/PanelPartyListElement.java | 236 ++++ .../impl/party/playerpreview/FakePlayer.java | 101 ++ .../FeatureViewPlayerStatsOnJoin.java | 706 ++++++++++ .../impl/party/playerpreview/api/ApiFetcher.java | 387 ++++++ .../impl/party/playerpreview/api/CachedData.java | 29 + .../playerpreview/api/PlayerSkyblockData.java | 10 + .../impl/party/playerpreview/api/SkinFetcher.java | 90 ++ .../api/playerprofile/PlayerProfile.java | 92 ++ .../api/playerprofile/PlayerProfileParser.java | 449 +++++++ .../dataclasses/ClassSpecificData.java | 29 + .../playerprofile/dataclasses/DungeonClass.java | 46 + .../dataclasses/DungeonSpecificData.java | 29 + .../api/playerprofile/dataclasses/DungeonStat.java | 54 + .../api/playerprofile/dataclasses/DungeonType.java | 39 + .../dataclasses/FloorSpecificData.java | 29 + .../api/playerprofile/dataclasses/Pet.java | 31 + .../api/playerprofile/dataclasses/Skill.java | 31 + .../datarenders/DataRendererEditor.java | 357 +++++ .../datarenders/DataRendererRegistry.java | 64 + .../playerpreview/datarenders/IDataRenderer.java | 33 + .../impl/DataRenderDungeonFloorStat.java | 105 ++ .../impl/DataRenderDungeonHighestFloorStat.java | 107 ++ .../datarenders/impl/DataRendererClassLv.java | 88 ++ .../datarenders/impl/DataRendererDungeonLv.java | 82 ++ .../datarenders/impl/DataRendererFairySouls.java | 50 + .../datarenders/impl/DataRendererLilyWeight.java | 71 + .../datarenders/impl/DataRendererSecrets.java | 53 + .../impl/DataRendererSelectedClassLv.java | 77 ++ .../datarenders/impl/DataRendererSetUrOwn.java | 57 + .../datarenders/impl/DataRendererSkillLv.java | 80 ++ .../datarenders/impl/DataRendererTalismans.java | 123 ++ .../mod/features/impl/secret/FeatureActions.java | 143 ++ .../mod/features/impl/secret/FeatureBloodRush.java | 45 + .../impl/secret/FeatureCreateRefreshLine.java | 69 + .../impl/secret/FeatureFreezePathfind.java | 45 + .../impl/secret/FeaturePathfindStrategy.java | 106 ++ .../features/impl/secret/FeaturePathfindToAll.java | 45 + .../impl/secret/FeatureSoulRoomWarning.java | 232 ++++ .../impl/secret/FeatureTogglePathfind.java | 45 + .../impl/secret/PathfindLineProperties.java | 115 ++ .../mechanicbrowser/FeatureMechanicBrowse.java | 164 +++ .../mechanicbrowser/MGuiMechanicBrowser.java | 45 + .../mechanicbrowser/MechanicBrowserElement.java | 61 + .../mechanicbrowser/MechanicBrowserTooltip.java | 68 + .../mechanicbrowser/PanelMechanicBrowser.java | 343 +++++ .../features/impl/solvers/FeatureSolverBlaze.java | 51 + .../impl/solvers/FeatureSolverBombdefuse.java | 30 + .../features/impl/solvers/FeatureSolverBox.java | 57 + .../impl/solvers/FeatureSolverIcefill.java | 40 + .../features/impl/solvers/FeatureSolverKahoot.java | 35 + .../features/impl/solvers/FeatureSolverRiddle.java | 35 + .../impl/solvers/FeatureSolverSilverfish.java | 44 + .../impl/solvers/FeatureSolverTeleport.java | 39 + .../impl/solvers/FeatureSolverTictactoe.java | 39 + .../features/listener/BossroomEnterListener.java | 23 + .../mod/features/listener/ChatListener.java | 25 + .../mod/features/listener/ChatListenerGlobal.java | 25 + .../listener/DiscordUserJoinRequestListener.java | 25 + .../listener/DiscordUserUpdateListener.java | 25 + .../DungeonContextInitializationListener.java | 23 + .../mod/features/listener/DungeonEndListener.java | 23 + .../mod/features/listener/DungeonQuitListener.java | 23 + .../features/listener/DungeonStartListener.java | 23 + .../listener/EntityLivingRenderListener.java | 26 + .../listener/GuiBackgroundRenderListener.java | 25 + .../mod/features/listener/GuiClickListener.java | 25 + .../mod/features/listener/GuiOpenListener.java | 25 + .../features/listener/GuiPostRenderListener.java | 25 + .../features/listener/GuiPreRenderListener.java | 25 + .../mod/features/listener/GuiUpdateListener.java | 25 + .../mod/features/listener/InteractListener.java | 25 + .../mod/features/listener/KeyInputListener.java | 25 + .../features/listener/KeybindPressedListener.java | 25 + .../features/listener/PlayerRenderListener.java | 26 + .../features/listener/ScreenRenderListener.java | 23 + .../features/listener/SkyblockJoinListener.java | 23 + .../features/listener/SkyblockLeaveListener.java | 23 + .../mod/features/listener/SoundListener.java | 25 + .../features/listener/StompConnectedListener.java | 25 + .../features/listener/TextureStichListener.java | 25 + .../mod/features/listener/TickListener.java | 23 + .../mod/features/listener/TitleListener.java | 25 + .../mod/features/listener/TooltipListener.java | 25 + .../mod/features/listener/WorldRenderListener.java | 23 + .../features/text/PanelTextParameterConfig.java | 283 ++++ .../mod/features/text/StyledText.java | 29 + .../mod/features/text/StyledTextProvider.java | 30 + .../mod/features/text/StyledTextRenderer.java | 244 ++++ .../mod/features/text/TextHUDFeature.java | 191 +++ .../dungeonsguide/mod/features/text/TextStyle.java | 34 + .../kr/syeyoung/dungeonsguide/mod/gui/MGui.java | 247 ++++ .../kr/syeyoung/dungeonsguide/mod/gui/MPanel.java | 296 +++++ .../dungeonsguide/mod/gui/elements/MButton.java | 117 ++ .../mod/gui/elements/MCollapsable.java | 137 ++ .../dungeonsguide/mod/gui/elements/MColor.java | 48 + .../mod/gui/elements/MEditableAColor.java | 106 ++ .../mod/gui/elements/MFloatSelectionButton.java | 97 ++ .../mod/gui/elements/MIntegerSelectionButton.java | 95 ++ .../mod/gui/elements/MKeyEditButton.java | 147 +++ .../dungeonsguide/mod/gui/elements/MLabel.java | 72 + .../mod/gui/elements/MLabelAndElement.java | 75 ++ .../dungeonsguide/mod/gui/elements/MList.java | 93 ++ .../dungeonsguide/mod/gui/elements/MModal.java | 92 ++ .../mod/gui/elements/MModalConfirmation.java | 87 ++ .../mod/gui/elements/MModalMessage.java | 77 ++ .../mod/gui/elements/MNavigatingPane.java | 213 +++ .../mod/gui/elements/MPanelScaledGUI.java | 213 +++ .../dungeonsguide/mod/gui/elements/MParameter.java | 90 ++ .../mod/gui/elements/MPassiveLabelAndElement.java | 71 + .../dungeonsguide/mod/gui/elements/MPopupMenu.java | 97 ++ .../mod/gui/elements/MPortableColorEdit.java | 292 +++++ .../dungeonsguide/mod/gui/elements/MRootPanel.java | 60 + .../dungeonsguide/mod/gui/elements/MScrollBar.java | 209 +++ .../mod/gui/elements/MScrollablePanel.java | 185 +++ .../dungeonsguide/mod/gui/elements/MSpacer.java | 36 + .../mod/gui/elements/MStringSelectionButton.java | 94 ++ .../mod/gui/elements/MTabbedPane.java | 160 +++ .../dungeonsguide/mod/gui/elements/MTextField.java | 418 ++++++ .../mod/gui/elements/MToggleButton.java | 96 ++ .../dungeonsguide/mod/gui/elements/MTooltip.java | 107 ++ .../mod/gui/elements/MTooltipText.java | 44 + .../dungeonsguide/mod/gui/elements/MValue.java | 79 ++ .../dungeonsguide/mod/party/PartyContext.java | 102 ++ .../dungeonsguide/mod/party/PartyManager.java | 626 +++++++++ .../dungeonsguide/mod/resources/DGTexturePack.java | 71 + .../mod/stomp/FailedWebSocketConnection.java | 7 + .../dungeonsguide/mod/stomp/StompClient.java | 192 +++ .../dungeonsguide/mod/stomp/StompDiedEvent.java | 15 + .../dungeonsguide/mod/stomp/StompHeader.java | 24 + .../dungeonsguide/mod/stomp/StompManager.java | 73 ++ .../dungeonsguide/mod/stomp/StompPayload.java | 96 ++ .../dungeonsguide/mod/stomp/StompSubscription.java | 6 + .../syeyoung/dungeonsguide/mod/utils/AhUtils.java | 98 ++ .../dungeonsguide/mod/utils/ArrayUtils.java | 40 + .../dungeonsguide/mod/utils/BlockCache.java | 50 + .../dungeonsguide/mod/utils/GlStateUtils.java | 68 + .../syeyoung/dungeonsguide/mod/utils/MapUtils.java | 176 +++ .../dungeonsguide/mod/utils/RenderUtils.java | 1372 ++++++++++++++++++++ .../dungeonsguide/mod/utils/ScoreBoardUtils.java | 58 + .../dungeonsguide/mod/utils/ShortUtils.java | 47 + .../dungeonsguide/mod/utils/SkyblockUtils.java | 52 + .../dungeonsguide/mod/utils/TabListUtil.java | 75 ++ .../dungeonsguide/mod/utils/TextUtils.java | 121 ++ .../dungeonsguide/mod/utils/TimeScoreUtil.java | 82 ++ .../dungeonsguide/mod/utils/TitleRender.java | 139 ++ .../dungeonsguide/mod/utils/VectorUtils.java | 51 + .../syeyoung/dungeonsguide/mod/utils/XPUtils.java | 222 ++++ .../mod/utils/cursor/CursorReader.java | 95 ++ .../dungeonsguide/mod/utils/cursor/EnumCursor.java | 54 + .../dungeonsguide/mod/utils/cursor/Foundation.java | 33 + .../dungeonsguide/mod/utils/cursor/GLCursors.java | 231 ++++ .../dungeonsguide/mod/utils/cursor/User32.java | 67 + .../dungeonsguide/mod/utils/cursor/X11.java | 37 + .../mod/wsresource/StaticResource.java | 30 + .../mod/wsresource/StaticResourceCache.java | 77 ++ 543 files changed, 54558 insertions(+) create mode 100755 src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java create mode 100755 src/main/java/kr/syeyoung/dungeonsguide/mod/Keybinds.java create mode 100755 src/main/java/kr/syeyoung/dungeonsguide/mod/SkyblockStatus.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatProcessResult.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatProcessor.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatSubscriber.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/chat/ChatTransmitter.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDgDebug.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDungeonsGuide.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandReparty.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/Config.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/ConfigPanelCreator.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/GuiConfigV2.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MCategory.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MCategoryElement.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MFeature.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MFeatureEdit.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MNotFound.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MPanelCategory.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/MParameterEdit.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/NestedCategory.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/RootConfigPanel.java create mode 100755 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/location/GuiGuiLocationConfig.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/location/Marker.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/guiconfig/location/PanelDelegate.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/AColor.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/GUIRectangle.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCAColor.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCBoolean.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCColor.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCFloat.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCGUIRectangle.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCInteger.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCKeybind.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRectangle.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCString.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCStringList.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCTextStyle.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCTextStyleList.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TypeConverter.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TypeConverterRegistry.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/ActiveCosmetic.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CosmeticData.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CosmeticsManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CustomNetworkPlayerInfo.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/CustomPacketPlayerListItem.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/IChatReplacer.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/chatreplacers/ChatReplacerChatByMe.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/chatreplacers/ChatReplacerCoop.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/chatreplacers/ChatReplacerMessage.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/chatreplacers/ChatReplacerPV.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/chatreplacers/ChatReplacerSocialOptions.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/cosmetics/chatreplacers/ChatReplacerViewProfile.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/GameSDK.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/GameSDKTypeMapper.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/NativeGameSDK.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordActivity.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordActivityAssets.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordActivityParty.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordActivitySecrets.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordActivityTimestamps.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordCreateParams.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordEntitlement.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordFileStat.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordImageDimensions.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordImageHandle.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordInputMode.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordLobby.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordOAuth2Token.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordPartySize.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordPresence.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordRelationship.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordSku.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordSkuPrice.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordStruct.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordUser.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/datastruct/DiscordUserAchievement.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordActivityActionType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordActivityJoinRequestReply.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordActivityType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordCreateFlags.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordEntitlementType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordImageType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordInputModeType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordLobbySearchCast.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordLobbySearchComparison.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordLobbySearchDistance.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordLobbyType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordLogLevel.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordPremiumType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordRelationshipType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordResult.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordSkuType.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordStatus.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/enumuration/EDiscordUserFlag.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/GameSDKCallback.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordAchievementEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordAchievementManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordActivityEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordActivityManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordApplicationManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordCore.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordImageManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordLobbyEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordLobbyManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordLobbyMemberTransaction.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordLobbySearchQuery.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordLobbyTransaction.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordNetworkEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordNetworkManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordOverlayEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordOverlayManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordRelationshipEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordRelationshipManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordStorageManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordStoreEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordStoreManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordUserEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordUserManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordVoiceEvents.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/interfacestruct/IDiscordVoiceManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/DiscordClientID.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/DiscordNetworkChannelId.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/DiscordNetworkPeerId.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/DiscordSnowflake.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/DiscordTimestamp.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/DiscordVersion.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/Int32.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/Int64.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/UInt32.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/UInt64.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/gamesdk/jna/typedef/UInt8.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/rpc/JDiscordActivity.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/rpc/JDiscordRelation.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/rpc/JDiscordUser.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/discord/rpc/RichPresenceManager.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/mod/dungeon/DungeonActio