Skip to content

Rebuilt Goal Tracker Plugin — New Features, Redesigned UI & Fixes#42

Merged
Toofifty merged 62 commits intoToofifty:masterfrom
AhDoozy:master
Sep 18, 2025
Merged

Rebuilt Goal Tracker Plugin — New Features, Redesigned UI & Fixes#42
Toofifty merged 62 commits intoToofifty:masterfrom
AhDoozy:master

Conversation

@AhDoozy
Copy link
Collaborator

@AhDoozy AhDoozy commented Aug 25, 2025

This PR delivers a rebuilt Goal Tracker plugin with new functionality, modernized UI, and critical fixes for smoother use.
This rebuild makes Goal Tracker faster, cleaner, and more reliable — introducing a Quest Requirements system, presets, improved visuals, and much smoother task/goal management.

✨ New Features
• Shift+Click task removal for faster management
• Automatic goal status checks for real-time progress
• ActionBar & ActionBarButton UI components for navigation and bulk actions
• Quest Requirements file built and integrated for quick access to quest pre-reqs
• Preset Goal Lists
• Export/Import goals to JSON with full UI refresh
• Inline editing for goal titles and manual tasks
• Long titles now ellipsized with hover-to-view full text
• Export/Import buttons

♻️ Redesigned
• Quest prerequisites button leveraging the new Quest Requirements file
• Cascading completion to auto-complete related tasks
• Dropdown quest selector for faster task addition
• Right-click menus streamlined for prerequisites and child task options
• Goal/task cards with lighter fills, shadows, hover/press effects, and clear header dividers

🐛 Fixes
• Undo/Redo functionality cleanup
• ActionBarButton painting glitches resolved
• Proper refresh handling in GoalTrackerPanel and ListPanel
• Fixed blank/refresh issues when switching panels or logging in
• Item icons preload correctly at startup/login/import
• Home panel refreshes immediately after task completion
• Layout fixes around Export button to avoid overlap
• Recursive refresh of child tasks ensures status consistency

Should fix issues #39 #33 #30 #31

AhDoozy and others added 30 commits July 28, 2025 11:39
added color selector for goal completion message.
added check upon goal set and login for completed goal.
…or, and login goal evaluation

- Introduced right-click context menu handling in GoalPanel to allow toggling Task.Status for tasks created via presets
- Updated Task model and TaskItemContent to support manual status toggling independent of task source
- Added @Alpha color picker to GoalTrackerConfig for customizing chat message color on task completion (default: FF16ABE5)
- Applied selected color in plugin logic where task completion messages are sent via chat
- Hooked into GameState.LOGGED_IN to invoke goalManager.evaluateAllGoals(), checking for and marking completed tasks based on current game state
- Amended README changelog to clarify new features vs previous "fix" label
…mark all child tasks as completed or incomplete

- Add recursive task status update method to Goal model for batch completion toggling
- Ensure goalTrackerPanel refreshes after task updates triggered by quest chat messages
- Add quest task validation to onGameTick to auto-update completion status on login
- Fix issue where quest task completions were not visually reflected until user re-entered the goal view
…e for improved readability.

- ComboBox font scaling updated to use integer point sizes, preventing fuzzy text.
- QuestTaskInput updated to rely on shared ComboBox styling for consistency.
…later removed and replaced with a cleaner single bar design.

- Embedded red "< Back" button removed from GoalPanel header, leaving only the goal name input aligned cleanly.
- Goal name input updated to support copy, paste, cut, and select-all actions via both context menu and keyboard shortcuts.
- Remove menu option enhanced to also delete all indented child tasks when removing a parent.
- Remove menu label updated so the "(Shift+Left Click)" hint displays smaller and in gray.
…later removed and replaced with a cleaner single bar design.

- Embedded red "< Back" button removed from GoalPanel header, leaving only the goal name input aligned cleanly.
- Goal name input updated to support copy, paste, cut, and select-all actions via both context menu and keyboard shortcuts.
- Remove menu option enhanced to also delete all indented child tasks when removing a parent.
- Remove menu label updated so the "(Shift+Left Click)" hint displays smaller and in gray.
…th a new action bar beneath it containing **+ Add goal**, **Move**, and **Bulk Edit** buttons (the latter two are placeholders marked "Coming soon").
AhDoozy and others added 11 commits August 24, 2025 10:29
…ack to the OG path and started removing any\all v2. Currently some stuff still lingers but it's running and working.
…ack to the OG path and started removing any\all v2. Currently some stuff still lingers but it's running and working.
…ack to the OG path and started removing any\all v2. Currently some stuff still lingers but it's running and working.
…ack to the OG path and started removing any\all v2. Currently some stuff still lingers but it's running and working.
…ences

Clean up V2 and AhDoozy references
…ack to the OG path and started removing any\all v2. Currently some stuff still lingers but it's running and working.
@DjilanoS
Copy link

@Toofifty Can you add @AhDoozy as contributor or accept the PR.
The current goal tracker is broken and hasnt been maintained for over a year+.

Copy link
Owner

@Toofifty Toofifty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @AhDoozy! Thanks heaps for this, I've finally had some time to sit down and try out your changes.

All the new features you added look and work great - I'm not going to scrutinize the code too much since you're much more familiar with it than I am at the moment 😅 though I tried to leave some comments to improve the readme description.

I briefly got it running and did some testing, there's a few issues I think need to be addressed before we can release this:

  • Empty state is cut off / does not wrap
Pasted image 20250827203516
  • Adding pre-reqs adds one too many indents
Pasted image 20250827203829
  • It's also a bit unclear at a glance what "pre-reqs" includes (especially when there is no quests in the list). Maybe the alert that shows could say something like "There are no quest pre-reqs to add"?
  • Mark all as complete/incomplete can't be undone
  • The pin/unpin options appear twice in the menu when right-clicking on the progress bar or number, and don't appear when clicking on the border of the goal elements
  • Progress bars sometimes stretch too wide
Pasted image 20250827204208
  • Can't re-order goals via the right-click options
  • I've gotten into a state where the entire panel crashes when clicking a certain goal (maybe when it contains items?). I think the status might be null. Stacktrace:
java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "pk" is null
	at java.base/java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:1321)
	at java.base/java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:1235)
	at com.toofifty.goaltracker.ui.TaskItemContent.refresh(TaskItemContent.java:145)
	at com.toofifty.goaltracker.ui.GoalPanel.lambda$new$5(GoalPanel.java:104)
	at com.toofifty.goaltracker.ui.components.ListPanel.buildItemPanel(ListPanel.java:102)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at com.toofifty.goaltracker.ui.components.ListPanel.buildItemPanels(ListPanel.java:79)
	at com.toofifty.goaltracker.ui.components.ListPanel.tryBuildList(ListPanel.java:162)

Let me know when you've got it into a state you're happy with, and I'll add you as a contributor and we can release this :)

README.md Outdated
Comment on lines +50 to +52
-----
<details>
<summary><span style="margin-left:8px;"><h3 style="display:inline;">📜 Original Goal Tracker v1 Readme & Documentation (created by dillydill123)</h3></span></summary>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy for you to remove the initial README content

README.md Outdated
Comment on lines +3 to +4
> A reimagining of the Goal Tracker plugin — rebuilt with a more modern UI, powerful new features, and improved stability to help you plan, track, and achieve your Old School RuneScape goals with ease.
> It is now faster, cleaner, and more reliable — introducing a Quest Requirements system, presets, improved visuals, and smoother task/goal management.
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this sounds very AI 😂 and I think a lot is unnecessary for regular users thinking of downloading the plugin. Maybe it could just be a brief overview of what the plugin does instead of how clean the UI is?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very Ai indeed 😉 🙃

Comment on lines +2 to +3
author=toofifty
support=https://github.com/toofifty/goaltracker
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should not be changed

Suggested change
author=toofifty
support=https://github.com/toofifty/goaltracker
author=Toofifty
support=https://github.com/Toofifty/rl-goal-tracker

/**
* Returns a human-readable name for the task.
*/
public abstract String getDisplayName();
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is used

README.md Outdated
✨ New Features
- Shift+Click task removal for faster management
- Automatic goal status checks for real-time progress
- ActionBar & ActionBarButton UI components for navigation and bulk actions
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like above comment, this isn't really useful to most users (the changelog you added is great and where this technical stuff should be)

@AhDoozy
Copy link
Collaborator Author

AhDoozy commented Aug 27, 2025

@Toofifty , thanks for the quick reply and going through that. I'll dive into those last few issues hopefully tonight.
Also, I had plans for the pre-reqs feature to also support items. For instance adding a pre-req of 70 attack if there is a task item of a whip. I've got a hardcoded json with a lot of item requirements, just didn't get around to adding that feature in yet. Had too many ideas and not enough time to polish.

- Rename box no longer stretches the card and only activates when it should
- Added a right-click Rename option with proper commit/cancel (ESC to cancel)
- Cleaned up Pin/Unpin so there’s only one menu item and unpin refreshes instantly
- Move up/down/top/bottom now actually reorders cards; removed forced A–Z sorting
- Export now asks before overwriting a file
- Import now asks whether to Overwrite, Merge, or Cancel
@DjilanoS
Copy link

DjilanoS commented Sep 4, 2025

@AhDoozy If you have time i'd love to be using this anytime soon!

AhDoozy and others added 2 commits September 5, 2025 09:04
- Fixed issue in .properties
@AhDoozy
Copy link
Collaborator Author

AhDoozy commented Sep 5, 2025

Alright, should be solid now.

  • Goal card typography fixed with reserved progress text width to prevent clipping.
  • Home panel placeholder updated to use wrapping text; empty text now displays cleanly without clipping.
  • Export to file now prompts before overwriting existing files.
  • Import from file now prompts with Overwrite / Merge / Cancel options instead of silently replacing goals.
  • Home panel no longer forces alphabetical order (forgot I added this lol); manual Move actions now persist with pinned-first grouping only.

@AhDoozy
Copy link
Collaborator Author

AhDoozy commented Sep 11, 2025

@Toofifty How's it lookin?

@Ranrok
Copy link

Ranrok commented Sep 15, 2025

@Toofifty I would love to see this updated if possible

@Toofifty
Copy link
Owner

Hey! Code changes LGTM - I'll do another round of QA tonight and get this merged in if all looks good :)

Copy link
Owner

@Toofifty Toofifty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! Give me a bit to submit it to plugin hub. I'll add you as a contributor so you're not blocked by me if you decide to add more features :)

@AhDoozy
Copy link
Collaborator Author

AhDoozy commented Sep 17, 2025

Nice work! Give me a bit to submit it to plugin hub. I'll add you as a contributor so you're not blocked by me if you decide to add more features :)

very much appreciated!

@Toofifty Toofifty merged commit 86a9ccc into Toofifty:master Sep 18, 2025
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants