* Update distraction-reducer
* Update distraction-reducer
toa detection change and added more enchantment IDs
* Update distraction-reducer
* Update distraction-reducer
commit: Add bonfire firemaking support and improve movement detection
- Added support for adding logs to bonfires with correct animation IDs
- Added firemaking toggle to config section
- Improved movement detection by tracking both animation poses and position changes
- Added immediate overlay clearing when movement is detected
- Excluded manual tinderbox firemaking animations
- Added debug logging for overlay visibility changes
Animation IDs added for bonfire firemaking:
- Regular logs (10565)
- Oak logs (10569)
- Willow logs (10572)
- Maple logs (10568)
- Yew logs (10573)
- Magic logs (10566)
- Redwood logs (10570)
* Create valuable-drop-prices
Simple plugin that replaces the default "coins" value with HA and GE prices to the valuable drop notifications.
* Update valuable-drop-prices
Updated to be using the correct commit
* Create monster-monitor
Tracks NPC kills and allows setting kill limits
* Update monster-monitor
Updated runelite-plugin.properties
* Update monster-monitor
Few minor updates, a few more tests. no functional changes
* Update monster-monitor
- Fixed issue with double notifications for NPC kills with a set limit.
- Ensured notifications play correctly for NPCs with unknown death animations.
- Adjusted the MonsterMonitorPanel to push NPCs added from UnknownDeathAnimations to the top of the panel, similar to normal NPCs.
- Refined the logic for handling and sorting NPCs in the panel to ensure consistent behavior.
- Ensured that the MonsterMonitorLogger handles unknown animations and logs them consistently with regular NPCs.
* Update monster-monitor
forgot to uncomment a few lines in DeathAnimationIDS after some tests.
* Update monster-monitor
* Update monster-monitor
Fix runelite-plugin.properties again
* Update monster-monitor
Enhance Monster Monitor Plugin with Interaction Timer, Duplicate Logging Prevention, and Prioritization of Last Killed NPC
Interaction Timer: Implemented a 4-second interaction timeout to ensure that NPC kills are accurately tracked during combat, especially for ranged and magic attacks where interactions may briefly pause.
Immediate Logging After Health Reaches Zero: Introduced a mechanism to capture and log the last valid animation immediately after an NPC's health reaches zero. This ensures that all NPC deaths, especially those with complex animations, are logged accurately and on time.
Duplicate Logging Prevention: Refined and optimized the logging logic to prevent duplicate entries of NPC deaths. The cleanup of NPC tracking data is now delayed until the NPC has fully despawned, preventing premature data clearing and missed logs.
Prioritization of Last Killed NPC: Updated the UI panel and overlay to prioritize the display of the most recently killed NPC at the top, regardless of whether the death animation is known or unknown. This change ensures that the most recent activity is always immediately visible to the user.
Refactor and Code Cleanup: Consolidated and cleaned up the codebase for better consistency and reliability across various NPC types and combat scenarios. The plugin has been fine-tuned to function correctly in both continuous and intermittent interactions.
Bug Fixes: Addressed issues where the plugin would stop logging kills after the first kill or fail to log certain NPC deaths. These fixes ensure that all NPC kills are tracked and displayed as expected.
This update significantly improves the reliability, accuracy, and user experience of the Monster Monitor Plugin, making it more robust in handling various edge cases and ensuring comprehensive NPC kill tracking and display.
* Update monster-monitor
Improve redundancy and accuracy in capturing NPC death animations
- Implemented immediate health check to start tracking NPCs as awaiting death animation when their health drops to zero.
- Added aggressive death animation tracking with multiple attempts to capture or log death animations.
- Enhanced despawn logging to ensure the last valid animation is logged or marked as unknown if missed.
- Updated NPC tracking methods to improve reliability and prevent unnecessary logging.
- Added Another Unknown DeathAnimationIDs
* Update monster-monitor
* Update monster-monitor
Add NpcAnimationTracker for improved NPC interaction tracking and logging
- Introduced `NpcAnimationTracker.java`, a new class dedicated to tracking NPC animations and interactions, significantly improving how the plugin monitors NPC behavior.
- `NpcAnimationTracker` registers for several in-game events, including `InteractingChanged`, `NpcDespawned`, `GameTick`, and `HitsplatApplied`, to accurately track when the player interacts with NPCs.
- Added logic to buffer unique NPC animations, enabling the plugin to distinguish between different types of animations, such as death animations, and ensuring accurate logging of relevant events.
- Implemented a grace period mechanism within `NpcAnimationTracker` to handle NPCs that despawn shortly after interaction, ensuring that the last known animations are accurately recorded and logged.
- Updated the handling of interaction timeouts, allowing the plugin to clear out expired interactions and prevent stale data from affecting ongoing tracking.
- Integrated `NpcAnimationTracker` with the existing logging mechanisms in `MonsterMonitorPlugin`, ensuring that all tracked interactions and animations are logged with precise timing and context.
- Provided detailed comments and documentation within `NpcAnimationTracker.java` to explain the purpose of each method and how the class contributes to the overall functionality of the plugin.
- Refactored parts of `MonsterMonitorPlugin` and related classes to utilize `NpcAnimationTracker` for more granular and accurate tracking, enhancing the plugin's ability to monitor NPC kills and associated events.
- Ensured that the new tracking system remains performant and reliable, even during high-intensity gameplay, by carefully managing resources and minimizing unnecessary processing.
* Update monster-monitor
Update build.gradle for Monster Monitor plugin
- Added Gson dependency for JSON handling, enabling serialization and deserialization in MonsterMonitorLogger.
- Included Lombok dependency and annotation processor to support annotations like @Getter, @Setter, @NoArgsConstructor, etc., used throughout the plugin.
- Maintained existing dependencies for RuneLite client compatibility.
* Update monster-monitor
Forgot to upload the NpcAnimationTracker.java
* Update monster-monitor
Bug fixes and improved UI/Panel visual - Refine UI and add MonsterMonitorBox for enhanced NPC tracking - Added more config options
- Improved the design and layout of MonsterMonitorPanel.
- Created MonsterMonitorBox to handle individual NPC tracking, including setting kill limits and notifications.
- Fixed bug where the last killed NPC was not being correctly displayed at the top of the NPC panel.
- Updated MonsterMonitorOverlay to maintain design consistency with the panel and improve user readability.
- Retained all existing functionality while enhancing the visual and interactive elements of the plugin.
- Added configuration options to MonsterMonitorConfig for default kill limits, chat notifications, custom notification messages, unknown death animation notifications, and sound alerts.
- Enhanced MonsterMonitorPlugin to listen for ConfigChanged events and apply configuration updates immediately.
- Ensured that sound alerts and chat notifications are toggled based on user preferences, providing immediate feedback without requiring plugin restart.
* Update monster-monitor
Fix layout issues in MonsterMonitorPanel and MonsterMonitorBox, Added config option functionality :
- Implemented dynamic resizing for NPCListPanel using GridBagLayout, ensuring proper layout adjustments as NPCs are added or removed.
- Removed redundant JScrollPane nesting, allowing the ScrollPane to fill the available space within PluginPanel and improving scrolling performance.
- Introduced a dynamic filler panel at the bottom of the NPCListPanel that adjusts its height based on the number of NPCs, ensuring proper vertical expansion and contraction.
- Added dropdown persistence in MonsterMonitorBox to maintain the expanded/collapsed state of NPC dropdowns during panel refresh.
- Ensured the title panel remains static at the top while enabling smooth scrolling for the NPC list in the ScrollPane.
- Configurations now control kill limit notifications, sound alerts, and chat notifications for NPC kills and unknown death animations, with logic to notify only once per unknown death animation.
* Update monster-monitor
fix: replace deprecated OverlayPriority usage with integer-based priority system
- Updated setPriority(OverlayPriority.HIGH) to setPriority(50) to adhere to the integer-based priority system.
* Update monster-monitor
Update verification-metadata.xml with updated dependency checksums
* Update monster-monitor
Update Gson version to 2.8.5 and update verification-metadata with new checksums
* Update monster-monitor
fix: Inject client's Gson instance instead of creating a new one
- Removed the direct instantiation of Gson in MonsterMonitorLogger.
- Injected the client's Gson instance using @Inject annotation.
* Update monster-monitor
Update Monster Monitor: Refactor to use DeathTracker, handle multi-phase NPCs, improve death logging logic
- Replaced NpcAnimationTracker with DeathTracker to log deaths based on interactions.
- Included final phase IDs for multi-phase bosses such as Verzik, Vorkath, Zulrah, and others.
- Removed animation-based logic and unknown death animation notifications.
- Added interaction validation to ensure only relevant NPC deaths are logged.
- Cleaned up code, removed unused methods, and optimized NPC tracking.
* Update monster-monitor
Improve NPC engagement tracking and proper EventBus unregistration
- Added `wasNpcEngaged` map to track whether an NPC has been engaged through hitsplats or damage, ensuring that only NPCs that have been properly interacted with are logged upon despawn.
- Updated `onInteractingChanged` method to reset engagement status when a new interaction with an NPC starts, ensuring accurate tracking.
- Updated `onHitsplatApplied` to mark NPCs as engaged when a hitsplat is applied, indicating active combat engagement.
- Refined `onNpcDespawned` to only log NPCs as dead if they were actively engaged in combat before despawning, avoiding false positives from mere clicks.
- Ensured cleanup of engagement status and related states after logging to maintain memory efficiency and avoid stale data.
- Added proper unregistration of the `EventBus` in the `unregister` method to ensure clean shutdown of the plugin, preventing potential memory leaks and ensuring a smooth disable process.
* Update monster-monitor
Fix: Inject EventBus into MonsterMonitorPlugin for proper event registration
- Added EventBus injection to MonsterMonitorPlugin to enable registration and unregistration of DeathTracker during plugin startUp and shutDown.
- Ensured proper lifecycle management of DeathTracker events to maintain consistency when the plugin is restarted.
* Update monster-monitor
fix: move scrollbar UI updates to Swing thread
Used SwingUtilities.invokeLater() for setting up the custom scrollbar UI to make sure it's done on the correct thread.
* Update monster-monitor
refactor: use logger.error() instead of printStackTrace()
- Swapped out all instances of e.printStackTrace() with logger.error() for better logging.
- This should make errors easier to track in the RuneLite logs and keep things cleaner.
* Update monster-monitor to 1.3.0
feat: Improve UI, background tasks, and better despawn handling
- Wrapped all UI updates like `repaint()` in `SwingUtilities.invokeLater()` to ensure smooth, flicker-free interactions.
- Made logging more efficient by using `BufferedWriter` and moving save operations to a background thread with `saveLogAsync()`.
- Cleaned up the `onMenuOpened()` logic in `MonsterMonitorMenuHandler` by breaking it into smaller methods—easier to read and tweak.
- Refactored the `MonsterMonitorBox` to make the UI layout code more modular. It’s now much easier to follow.
- Improved despawn handling in `DeathTracker` by splitting out conditions into helper methods—makes it easier to understand and modify.
- Fine-tuned the logic for tracking multi-phase bosses and ignoring non-combat NPC despawns.
- Made sure that the overlay updates properly whenever NPC data changes.
- Improved number formatting—big numbers are now displayed as "1k" or "1.5m" for easier reading.
- Updated the font to 'SansSerif' for a cleaner, more modern look.
- Tweaked the kill limit spinner to handle large numbers better while staying compact.
- Added checks in the logger to ensure the overlay visibility updates properly when NPC data is adjusted.
- Enhanced the logger to automatically update old logs with any missing information required for new features.
- Made the startup process smoother, ensuring the overlay is in the right state from the start.
- Cleaned up the options panel layout for a more polished overall look and feel.
- Added a new `ProgressBar` that tracks progress towards NPC kill limits:
- The bar changes color as you get closer to your goal, shifting from red to orange to green.
- Simplified how large numbers are displayed—now it's "1k" instead of "1000" or "1.5m" for "1,500,000".
- Fixed a bug where bosses with large areas (like Tempoross) would count as a kill when they moved out of view—now it only counts when you actually kill them.
- Adjusted Giant Mole tracking to ignore its digging phases—only the final phase counts as a kill.
- Added right-click options to "Ignore" or "Monitor" NPCs directly from the game interface.
- Added a config option for toggling these right-click menu entries.
- Fixed an issue where the overlay and progress bar wouldn’t snap like other overlays.
* Update monster-monitor
removed unused class
* Update monster-monitor
feat: reintroduce onActorDeath for accurate NPC death tracking
After further testing, re-added `onActorDeath` to improve the accuracy of NPC death tracking. This event provides direct confirmation of an NPC's death, especially useful for multi-phase bosses and high-frequency encounters.
Previously, `onActorDeath` was removed due to concerns about potential conflicts with `NpcDespawned` handling. However, it became evident that relying solely on despawn events and engagement tracking via `HitsplatApplied` and `InteractingChanged` resulted in occasional missed kills, particularly for bosses with complex despawn behaviors.
* Update monster-monitor
Update DeathTracker exclusions, final phase tracking, and thread safety for multi-phase NPCs
- Added missing NPC IDs to DESPAWN_EXCLUSION_IDS to exclude intermediate phases and specific non-combat encounters:
- Tempoross (10530)
- Wintertodt (6503, 6504)
- Intermediate phases of Zulrah (2042, 2043), Giant Mole (963), Zalcano (8360, 8361), and Alchemical Hydra (8615, 8616, 8617)
- Crystalline Hunllef (9021, 9022), and Crystalline Dark Beast & Dragon (9033, 9034)
- Ensured final phases of multi-phase bosses are correctly tracked in MULTI_PHASE_FINAL_IDS:
- Final phases for Zulrah (2044), Giant Mole (965), Zalcano (8362), Grotesque Guardians (8060), Alchemical Hydra (8618), Verzik Vitur (9034), and others.
- Added thread-safety improvements:
- Converted lastKnownNpcName, lastInteractionTicks, and wasNpcEngaged in DeathTracker to ConcurrentHashMap for safe concurrent access.
- Synchronized access to npcLog in MonsterMonitorLogger to prevent concurrent modification issues.
- Verified that all UI updates in MonsterMonitorPanel and MonsterMonitorBox are wrapped in SwingUtilities.invokeLater().
This update refines DeathTracker to accurately track only final kills and skip intermediate or non-kill phases, while also ensuring thread safety across all relevant components.
* Update monster-monitor
Remove final phase for Zulrah (2044) from exclusion list in DESPAWN_EXCLUSION_IDS
* Update monster-monitor
fix: Resolve "Reset NPC Data" context menu issue and add `removeNpcFromLog`
- Fixed an issue with "Reset NPC Data" in the context menu that prevented NPC data from being properly removed.
- Added `removeNpcFromLog` method to allow direct removal of NPC entries from the log.
- Updated the `Reset NPC Data` menu item to use the new method for cleaner and more reliable behavior.
* Update monster-monitor
Fix Set Limit functionality: Clear kill limit and disable Notify checkbox when Set Limit is unchecked
* Update monster-monitor
Refactor DeathTracker: Remove despawn event tracking and multi-phase boss handling for improved accuracy and simplicity
* Removed MULTI_PHASE_BOSS_IDS, MULTI_PHASE_FINAL_IDS, and DESPAWN_EXCLUSION_IDS sets.
* Simplified kill logging to rely solely on interactions and hitsplats.
* Deleted onNpcDespawned() handler, as despawn tracking is no longer necessary.
* Refactored onActorDeath() to only log kills based on recent player interactions and hitsplats.
* Update monster-monitor
remove GSON dependency
* Update monster-monitor
Hotfix: Add final phase tracking and cleanup for multi-phase boss NPC deaths.
* Update ban-list-export
- added highlighting in cc panel
- added tooltip in cc panel
- added warning in game chat
- added support for bannedby, reason, date through import.
* Update ban-list-export
* Update ban-list-export
* Update ban-list-export
* Create aerial-fishing-pearl-luck
* Update aerial-fishing-pearl-luck
* Update aerial-fishing-pearl-luck
* Update aerial-fishing-pearl-luck
Changed log.info to log.debug for all except startup and shutdown.
Added everything else I meant to yesterday, but somehow lost it.
* Update aerial-fishing-pearl-luck
Made the fixes as per your instructions, ty!
* Create monster-monitor
Tracks NPC kills and allows setting kill limits
* Update monster-monitor
Updated runelite-plugin.properties
* Update monster-monitor
Few minor updates, a few more tests. no functional changes
* Update monster-monitor
- Fixed issue with double notifications for NPC kills with a set limit.
- Ensured notifications play correctly for NPCs with unknown death animations.
- Adjusted the MonsterMonitorPanel to push NPCs added from UnknownDeathAnimations to the top of the panel, similar to normal NPCs.
- Refined the logic for handling and sorting NPCs in the panel to ensure consistent behavior.
- Ensured that the MonsterMonitorLogger handles unknown animations and logs them consistently with regular NPCs.
* Update monster-monitor
forgot to uncomment a few lines in DeathAnimationIDS after some tests.
* Update monster-monitor
* Update monster-monitor
Fix runelite-plugin.properties again
* Update monster-monitor
Enhance Monster Monitor Plugin with Interaction Timer, Duplicate Logging Prevention, and Prioritization of Last Killed NPC
Interaction Timer: Implemented a 4-second interaction timeout to ensure that NPC kills are accurately tracked during combat, especially for ranged and magic attacks where interactions may briefly pause.
Immediate Logging After Health Reaches Zero: Introduced a mechanism to capture and log the last valid animation immediately after an NPC's health reaches zero. This ensures that all NPC deaths, especially those with complex animations, are logged accurately and on time.
Duplicate Logging Prevention: Refined and optimized the logging logic to prevent duplicate entries of NPC deaths. The cleanup of NPC tracking data is now delayed until the NPC has fully despawned, preventing premature data clearing and missed logs.
Prioritization of Last Killed NPC: Updated the UI panel and overlay to prioritize the display of the most recently killed NPC at the top, regardless of whether the death animation is known or unknown. This change ensures that the most recent activity is always immediately visible to the user.
Refactor and Code Cleanup: Consolidated and cleaned up the codebase for better consistency and reliability across various NPC types and combat scenarios. The plugin has been fine-tuned to function correctly in both continuous and intermittent interactions.
Bug Fixes: Addressed issues where the plugin would stop logging kills after the first kill or fail to log certain NPC deaths. These fixes ensure that all NPC kills are tracked and displayed as expected.
This update significantly improves the reliability, accuracy, and user experience of the Monster Monitor Plugin, making it more robust in handling various edge cases and ensuring comprehensive NPC kill tracking and display.
* Update monster-monitor
Improve redundancy and accuracy in capturing NPC death animations
- Implemented immediate health check to start tracking NPCs as awaiting death animation when their health drops to zero.
- Added aggressive death animation tracking with multiple attempts to capture or log death animations.
- Enhanced despawn logging to ensure the last valid animation is logged or marked as unknown if missed.
- Updated NPC tracking methods to improve reliability and prevent unnecessary logging.
- Added Another Unknown DeathAnimationIDs
* Update monster-monitor
* Update monster-monitor
Add NpcAnimationTracker for improved NPC interaction tracking and logging
- Introduced `NpcAnimationTracker.java`, a new class dedicated to tracking NPC animations and interactions, significantly improving how the plugin monitors NPC behavior.
- `NpcAnimationTracker` registers for several in-game events, including `InteractingChanged`, `NpcDespawned`, `GameTick`, and `HitsplatApplied`, to accurately track when the player interacts with NPCs.
- Added logic to buffer unique NPC animations, enabling the plugin to distinguish between different types of animations, such as death animations, and ensuring accurate logging of relevant events.
- Implemented a grace period mechanism within `NpcAnimationTracker` to handle NPCs that despawn shortly after interaction, ensuring that the last known animations are accurately recorded and logged.
- Updated the handling of interaction timeouts, allowing the plugin to clear out expired interactions and prevent stale data from affecting ongoing tracking.
- Integrated `NpcAnimationTracker` with the existing logging mechanisms in `MonsterMonitorPlugin`, ensuring that all tracked interactions and animations are logged with precise timing and context.
- Provided detailed comments and documentation within `NpcAnimationTracker.java` to explain the purpose of each method and how the class contributes to the overall functionality of the plugin.
- Refactored parts of `MonsterMonitorPlugin` and related classes to utilize `NpcAnimationTracker` for more granular and accurate tracking, enhancing the plugin's ability to monitor NPC kills and associated events.
- Ensured that the new tracking system remains performant and reliable, even during high-intensity gameplay, by carefully managing resources and minimizing unnecessary processing.
* Update monster-monitor
Update build.gradle for Monster Monitor plugin
- Added Gson dependency for JSON handling, enabling serialization and deserialization in MonsterMonitorLogger.
- Included Lombok dependency and annotation processor to support annotations like @Getter, @Setter, @NoArgsConstructor, etc., used throughout the plugin.
- Maintained existing dependencies for RuneLite client compatibility.
* Update monster-monitor
Forgot to upload the NpcAnimationTracker.java
* Update monster-monitor
Bug fixes and improved UI/Panel visual - Refine UI and add MonsterMonitorBox for enhanced NPC tracking - Added more config options
- Improved the design and layout of MonsterMonitorPanel.
- Created MonsterMonitorBox to handle individual NPC tracking, including setting kill limits and notifications.
- Fixed bug where the last killed NPC was not being correctly displayed at the top of the NPC panel.
- Updated MonsterMonitorOverlay to maintain design consistency with the panel and improve user readability.
- Retained all existing functionality while enhancing the visual and interactive elements of the plugin.
- Added configuration options to MonsterMonitorConfig for default kill limits, chat notifications, custom notification messages, unknown death animation notifications, and sound alerts.
- Enhanced MonsterMonitorPlugin to listen for ConfigChanged events and apply configuration updates immediately.
- Ensured that sound alerts and chat notifications are toggled based on user preferences, providing immediate feedback without requiring plugin restart.
* Update monster-monitor
Fix layout issues in MonsterMonitorPanel and MonsterMonitorBox, Added config option functionality :
- Implemented dynamic resizing for NPCListPanel using GridBagLayout, ensuring proper layout adjustments as NPCs are added or removed.
- Removed redundant JScrollPane nesting, allowing the ScrollPane to fill the available space within PluginPanel and improving scrolling performance.
- Introduced a dynamic filler panel at the bottom of the NPCListPanel that adjusts its height based on the number of NPCs, ensuring proper vertical expansion and contraction.
- Added dropdown persistence in MonsterMonitorBox to maintain the expanded/collapsed state of NPC dropdowns during panel refresh.
- Ensured the title panel remains static at the top while enabling smooth scrolling for the NPC list in the ScrollPane.
- Configurations now control kill limit notifications, sound alerts, and chat notifications for NPC kills and unknown death animations, with logic to notify only once per unknown death animation.
* Update monster-monitor
fix: replace deprecated OverlayPriority usage with integer-based priority system
- Updated setPriority(OverlayPriority.HIGH) to setPriority(50) to adhere to the integer-based priority system.
* Update monster-monitor
Update verification-metadata.xml with updated dependency checksums
* Update monster-monitor
Update Gson version to 2.8.5 and update verification-metadata with new checksums
* Update monster-monitor
fix: Inject client's Gson instance instead of creating a new one
- Removed the direct instantiation of Gson in MonsterMonitorLogger.
- Injected the client's Gson instance using @Inject annotation.
* Update monster-monitor
Update Monster Monitor: Refactor to use DeathTracker, handle multi-phase NPCs, improve death logging logic
- Replaced NpcAnimationTracker with DeathTracker to log deaths based on interactions.
- Included final phase IDs for multi-phase bosses such as Verzik, Vorkath, Zulrah, and others.
- Removed animation-based logic and unknown death animation notifications.
- Added interaction validation to ensure only relevant NPC deaths are logged.
- Cleaned up code, removed unused methods, and optimized NPC tracking.
* Update monster-monitor
Improve NPC engagement tracking and proper EventBus unregistration
- Added `wasNpcEngaged` map to track whether an NPC has been engaged through hitsplats or damage, ensuring that only NPCs that have been properly interacted with are logged upon despawn.
- Updated `onInteractingChanged` method to reset engagement status when a new interaction with an NPC starts, ensuring accurate tracking.
- Updated `onHitsplatApplied` to mark NPCs as engaged when a hitsplat is applied, indicating active combat engagement.
- Refined `onNpcDespawned` to only log NPCs as dead if they were actively engaged in combat before despawning, avoiding false positives from mere clicks.
- Ensured cleanup of engagement status and related states after logging to maintain memory efficiency and avoid stale data.
- Added proper unregistration of the `EventBus` in the `unregister` method to ensure clean shutdown of the plugin, preventing potential memory leaks and ensuring a smooth disable process.
* Update monster-monitor
Fix: Inject EventBus into MonsterMonitorPlugin for proper event registration
- Added EventBus injection to MonsterMonitorPlugin to enable registration and unregistration of DeathTracker during plugin startUp and shutDown.
- Ensured proper lifecycle management of DeathTracker events to maintain consistency when the plugin is restarted.
* Update monster-monitor
fix: move scrollbar UI updates to Swing thread
Used SwingUtilities.invokeLater() for setting up the custom scrollbar UI to make sure it's done on the correct thread.
* Update monster-monitor
refactor: use logger.error() instead of printStackTrace()
- Swapped out all instances of e.printStackTrace() with logger.error() for better logging.
- This should make errors easier to track in the RuneLite logs and keep things cleaner.
* Update monster-monitor to 1.3.0
feat: Improve UI, background tasks, and better despawn handling
- Wrapped all UI updates like `repaint()` in `SwingUtilities.invokeLater()` to ensure smooth, flicker-free interactions.
- Made logging more efficient by using `BufferedWriter` and moving save operations to a background thread with `saveLogAsync()`.
- Cleaned up the `onMenuOpened()` logic in `MonsterMonitorMenuHandler` by breaking it into smaller methods—easier to read and tweak.
- Refactored the `MonsterMonitorBox` to make the UI layout code more modular. It’s now much easier to follow.
- Improved despawn handling in `DeathTracker` by splitting out conditions into helper methods—makes it easier to understand and modify.
- Fine-tuned the logic for tracking multi-phase bosses and ignoring non-combat NPC despawns.
- Made sure that the overlay updates properly whenever NPC data changes.
- Improved number formatting—big numbers are now displayed as "1k" or "1.5m" for easier reading.
- Updated the font to 'SansSerif' for a cleaner, more modern look.
- Tweaked the kill limit spinner to handle large numbers better while staying compact.
- Added checks in the logger to ensure the overlay visibility updates properly when NPC data is adjusted.
- Enhanced the logger to automatically update old logs with any missing information required for new features.
- Made the startup process smoother, ensuring the overlay is in the right state from the start.
- Cleaned up the options panel layout for a more polished overall look and feel.
- Added a new `ProgressBar` that tracks progress towards NPC kill limits:
- The bar changes color as you get closer to your goal, shifting from red to orange to green.
- Simplified how large numbers are displayed—now it's "1k" instead of "1000" or "1.5m" for "1,500,000".
- Fixed a bug where bosses with large areas (like Tempoross) would count as a kill when they moved out of view—now it only counts when you actually kill them.
- Adjusted Giant Mole tracking to ignore its digging phases—only the final phase counts as a kill.
- Added right-click options to "Ignore" or "Monitor" NPCs directly from the game interface.
- Added a config option for toggling these right-click menu entries.
- Fixed an issue where the overlay and progress bar wouldn’t snap like other overlays.
* Update monster-monitor
removed unused class
* Update monster-monitor
feat: reintroduce onActorDeath for accurate NPC death tracking
After further testing, re-added `onActorDeath` to improve the accuracy of NPC death tracking. This event provides direct confirmation of an NPC's death, especially useful for multi-phase bosses and high-frequency encounters.
Previously, `onActorDeath` was removed due to concerns about potential conflicts with `NpcDespawned` handling. However, it became evident that relying solely on despawn events and engagement tracking via `HitsplatApplied` and `InteractingChanged` resulted in occasional missed kills, particularly for bosses with complex despawn behaviors.
* Update monster-monitor
Update DeathTracker exclusions, final phase tracking, and thread safety for multi-phase NPCs
- Added missing NPC IDs to DESPAWN_EXCLUSION_IDS to exclude intermediate phases and specific non-combat encounters:
- Tempoross (10530)
- Wintertodt (6503, 6504)
- Intermediate phases of Zulrah (2042, 2043), Giant Mole (963), Zalcano (8360, 8361), and Alchemical Hydra (8615, 8616, 8617)
- Crystalline Hunllef (9021, 9022), and Crystalline Dark Beast & Dragon (9033, 9034)
- Ensured final phases of multi-phase bosses are correctly tracked in MULTI_PHASE_FINAL_IDS:
- Final phases for Zulrah (2044), Giant Mole (965), Zalcano (8362), Grotesque Guardians (8060), Alchemical Hydra (8618), Verzik Vitur (9034), and others.
- Added thread-safety improvements:
- Converted lastKnownNpcName, lastInteractionTicks, and wasNpcEngaged in DeathTracker to ConcurrentHashMap for safe concurrent access.
- Synchronized access to npcLog in MonsterMonitorLogger to prevent concurrent modification issues.
- Verified that all UI updates in MonsterMonitorPanel and MonsterMonitorBox are wrapped in SwingUtilities.invokeLater().
This update refines DeathTracker to accurately track only final kills and skip intermediate or non-kill phases, while also ensuring thread safety across all relevant components.
* Update monster-monitor
Remove final phase for Zulrah (2044) from exclusion list in DESPAWN_EXCLUSION_IDS
* Update monster-monitor
fix: Resolve "Reset NPC Data" context menu issue and add `removeNpcFromLog`
- Fixed an issue with "Reset NPC Data" in the context menu that prevented NPC data from being properly removed.
- Added `removeNpcFromLog` method to allow direct removal of NPC entries from the log.
- Updated the `Reset NPC Data` menu item to use the new method for cleaner and more reliable behavior.
* Update monster-monitor
Fix Set Limit functionality: Clear kill limit and disable Notify checkbox when Set Limit is unchecked
* Update monster-monitor
Refactor DeathTracker: Remove despawn event tracking and multi-phase boss handling for improved accuracy and simplicity
* Removed MULTI_PHASE_BOSS_IDS, MULTI_PHASE_FINAL_IDS, and DESPAWN_EXCLUSION_IDS sets.
* Simplified kill logging to rely solely on interactions and hitsplats.
* Deleted onNpcDespawned() handler, as despawn tracking is no longer necessary.
* Refactored onActorDeath() to only log kills based on recent player interactions and hitsplats.
* Update monster-monitor
remove GSON dependency
* Create timers-ca
* Update timers-ca
Grotesque Guardians added and Vardorvis timer now correct track the time on resets
* Update timers-ca
More bossees added and fix a problem with stopping the timer at over 1k kc
* Update timers-ca
fix on start tick for Hueycoatl
* Update friend-live-locations
* Update friend-live-locations
* converts the real coordinates to the map coordinates and added the option to display the overworld location of a player when underground
* sha1sum
* getVar to getVarbitValue
* removed new creation of Gson
* Update Creators-Kit to v1.5.4
- FolderTree, CreatorTreeModel, CreatorTreeTransferHandler refactored to ManagerTree, ManagerTreeModel, and ManagerTreeTransferHandler, respectively
- ManagerTree now uses Characters directly as nodes instead of ObjectPanels, and new Folder class for folder nodes
- TimeTree added which links the ManagerTree to the Timesheet
- Switch buttons removed in favour of managing Objects via Tree Drag/Drop
- Help button added to CreatorPanel to link to youtube tutorial
- Setup saving/loading updated to handle new ManagerTree
WIP
- TimeSheetPanel tab added to Toolkit. WIP, temporarily hidden
- Various UI elements worked on to support TimeSheetPanel
- TimeTree correlates of ManagerTree created for TimeSheetPanel
* Update creators-kit
Bugfix: loading Setups wouldn't properly revalidate side panel
* Update creators-kit
Bugfix: adding objects to Manager or duplicating objects in Manager wouldn't properly resetObjectHolder
* Update creators-kit
System.out removed
* Update clue-details to 2.0.3
Small fixes to improve clue despawn diff comparisons, fix some clue text for beginner/master clues, and reduces amount of processing done on menus appearing.
* Reverted incorrect clue text change in clue-details
* Create onlyree
* Update onlyree
* Update onlyree
- Adds XP Bonuses for HueyCoatl and Amoxiatl
- Adds a toggle option to prevent AoE attacks from triggering the plugin sound effect
- Fixes not loading the XP bonuses
- Prevents a ruby bolt spec from triggering the plugin sound effect
* Update onlyree
fix: Moves BufferedReader into try-with resources to automatically close it.
* Update onlyree
Fixes a bug where ignoring a previous sound effect triggering would cause the next hit to always trigger the sound effect.
Fixes handling fake xp drops so multihitting weapons can trigger the sound effect.