Skip to content

Tagging, Favorites, Watching and more.#2298

Open
creatorfromhell wants to merge 29 commits intoQuickShop-Community:hikarifrom
creatorfromhell:feat/additons-wave-1
Open

Tagging, Favorites, Watching and more.#2298
creatorfromhell wants to merge 29 commits intoQuickShop-Community:hikarifrom
creatorfromhell:feat/additons-wave-1

Conversation

@creatorfromhell
Copy link
Copy Markdown
Contributor

@creatorfromhell creatorfromhell commented Mar 6, 2026

General Contribution Checklist

  • I have read and understood the CONTRIBUTING.md.
  • My branch name follows the naming conventions in CONTRIBUTING.md.
  • I have signed the Contributor License Agreement (CLA), if required.
  • My changes are based on the latest hikari branch.
  • I have tested my changes locally.
  • Existing functionality has not been unintentionally broken.

Description of Changes

This PR introduces a new player shop tagging system and adds related player-facing commands for tagging, favorites, watchlists, and avoided shops.

What was changed:

  • Added tag-related API types and service/manager abstractions.
  • Added Bukkit implementations for player/shop tag storage and indexing.
  • Added /qs tag, /qs favorite, /qs watch, and /qs avoid command support.
  • Updated core command registration and plugin wiring.
  • Added configuration and language entries for the new system.
  • Updated plugin metadata and changelog entry.
  • Included related internal updates that touch shop API structure, including shop sub-interfaces and shop state-related API work that appears in the same PR.

Why it was changed:

  • To let players organize and track shops they interact with using custom personal tags.
  • To provide built-in shortcuts for common tag use cases such as favorites, watchlists, and avoid lists.
  • To improve lookup performance by using dedicated indexing instead of requiring broad scans.

What issue does it solve:

  • Adds a player-centric way to organize shops without requiring external tracking.
  • Improves discoverability and usability for frequently revisited or intentionally ignored shops.
  • Provides a scalable internal foundation for fast tag lookups and future tag-based features.

User-facing, developer-facing, or internal:

  • User-facing: new commands and player tagging behavior.
  • Developer-facing: new API classes and service interfaces for tagging.
  • Internal: Bukkit implementations, indexing/caching, command wiring, and related API restructuring.

Configuration Changes

  • Added shop tag configuration options in config.yml.
  • Added message entries in messages.yml.
  • Added plugin metadata updates in plugin.yml.

Additional config-related changes reflected in the PR changelog:

  • Replaced startup parameter playerDBFindUUIDTask with config option uuid-lookup.allow-playerdb-uuid
  • Replaced startup parameter playerDBFindNameTask with config option uuid-lookup.allow-playerdb-name
  • Replaced startup parameter skipDatabaseVersionCheck with config option database.skip-version-check

If config changes were made, explain them:

  • Added configuration entries for the shop tagging system and its enable/disable behavior.
  • Added supporting language/config messaging for tag commands and tag-related feedback.
  • Updated configuration version to 1040.

Migration Notes

Not a breaking change.

Potential admin notes:

  • New configuration entries should be reviewed and merged if using a custom config.yml.
  • New language entries should be merged if using a custom messages.yml.

Related Issues / References

  • Fixes: #___
  • Relates to: #___
  • Documentation PR: #___

Testing Notes

How was this tested?

  • Local test server
  • Networked proxy setup
  • With database (MySQL)
  • With H2
  • Other integrations (describe below)

Additional notes:

  • Verified command registration and command flow for tag-related commands.
  • Verified tag add/remove/clear/list style flows.
  • Verified favorites/watch/avoid command behavior.
  • Verified config and language loading for the new tag system.

Replace the checked items above if your actual testing differed.


Changelog Entry

Feature

  • Added a player-driven shop tagging system with support for custom tags, favorites, watchlists, and avoided shops, plus fast indexed lookups and related commands.(creatorfromhell)

@creatorfromhell creatorfromhell marked this pull request as draft March 6, 2026 11:16
…. This includes the storage system, and database calls. This leaves the commands left to complete as the last item.
…he for shops without any tags already on removal calls.
…d methods. Tag management functionality is now ready for testing.
…to interface and implementation for API module, implement PlayerTagIndex in order to make tag queries o(1) instead of o(n)
…nt placeholder methods for generic price handling, and update related API interfaces.
…ocation` in shop-related classes, and add generic price comparison methods.
…nager. Removed unused tag parser class in AbstractShopManager.
… classes, and ensure case-insensitive handling for shop states.
…ed text handling, and update language keys with pagination and tag improvements.
…on, add new command generation logic in `TagService`, update language keys for clarity.
@creatorfromhell creatorfromhell marked this pull request as ready for review April 18, 2026 19:46
…for shop location handling in various subcommands, menu, and shop manager logic. Fix thread abuse within the history menu by moving the datarecords loading to be preloaded during the initialization phase of the command.
@creatorfromhell creatorfromhell mentioned this pull request Apr 21, 2026
7 tasks
…e related localization keys, and refactor shop hover message construction for better readability and functionality.
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.

1 participant