Topper icon

Topper 4.0.0

Another leaderboard plugin with better features and performance

Page 1
Mark of a new structure, with Quality-of-Life changes

The update is finally here after a long time of restructuring the codebase to prepare for more purposes of the Topper project and the upcoming cross-platform update. For me, it's just a matter of the separation of concerns, meaning I can now work with the project as a whole without affecting too much on the plugin. For you, this update is just another Quality-of-Life update, meaning there is no breaking change, and your current config remains the same. For other developers, this would be my welcome door for anyone to join in and contribute something. After all, I hope this update will be the first for something bigger. For now, enjoy the update.

  • The whole codebase was refactored and separated
    There is now the Topper project for common code on various purposes, and the Topper-spigot contains this plugin.
  • Change the default value to be "null" instead of 0
    This mainly fix an issue with reversed leaderboards where the placeholder only works for some players. In previous versions, those players whom the placeholder doesn't work against would be assigned the default value of 0 and get to the top of the leaderboard. This update fix that by assigning null instead of 0 so that the player would be ignored.
  • Enable "online" option by default in some Value Providers
    After dealing with many reports from the support channel, I saw that enabling "online" fixes many issues (performance drop, weird behavior for offline players, etc.). Therefore, the option is enabled by default in this update.
  • Normalize placeholder syntax in Placeholder Value Provider
    Although the wiki has some examples on the placeholder with the percent character "%" at the start and end of the value, some users usually miss it and report back to me saying it's not working. This update attempts to correct the placeholder syntax on the fly, so that users feel at ease.
  • Add shorten format to the Value Display
    OPmasterLEO make a contribution to add a format query to shorten the number (e.g. 1000 to 1k).
    More information about the format will be added in the wiki.
    In short, you can use the placeholder like "%topper_money;top_value;1;shorten%" to get the shortened number.
  • ...And a lot of changes
    These changes will be described in the wiki when it's updated with new information. Keep an eye at the wiki.
Small patch before the big refactor

This is a small update before I refactor the project (again). This time, it's more of a preparation for a cross-platform update that, in theory, allows adding support for other server implementations (e.g. Fabric, Forge, Sponge). That would, in theory, make the project platform-independent and increase the popularity. Stay tuned for more updates.

  • Fix a rare exception when updating values asynchronously
3.10.0
  • de8ef62f - release
  • ae96e639 - set only one filter for SnapshotAgent
  • c815c18c - add a separated reset-permissions
  • 085096d6 - add a way to reset the value if filtered out
  • a7de570f - ensure the iterator is synchronous and add more settings for update task
  • e2fa1adc - use ConcurrentHashMap for UpdateAgent
  • 4c7066fe - prepare for more deformatters
  • 09bc82fd - next development
3.9.1

https://github.com/Topper-MC/Topper/compare/3.8.2...3.9.1

3.8.1
  1. 866602b - release
  2. 91b02b8 - final onUpdate on AgentDataHolder
  3. 48e4f85 - Bump metcalfc/changelog-generator from 4.3.1 to 4.5.0 (#137)
  4. dae2511 - mark the event as deprecated
  5. c0b7a1b - optimize imports
  6. 77596ad - call event from EntryConsumeManager
  7. 91ba29f - protected method to schedule value on StorageAgent
  8. a3910c8 - properly get display key for SnapshotQuery
  9. 2c6773b - correct package for PluginContext
  10. 59be0b2 - next development
3.8.0
  1. bb6cdfb - release
  2. c4ab6c2 - update miniplaceholders usage
  3. 8c07622 - option to toggle data removal on entry remove
  4. c7f899b - put a check to ensure that the update task only runs if it's not already updating
  5. ebe65cc - Bump io.github.miniplaceholders:miniplaceholders-api from 2.2.3 to 2.3.0 (#135)
  6. 349d483 - more aliases for MiniPlaceholdersValueProvider
  7. 680f455 - resolve global placeholders
  8. d31fd97 - get all arguments in minimessage queue to parse as query
  9. 99f947a - should build in Java 21
  10. a7dbbe9 - mark as a major version
  11. aebb91e - add MiniPlaceholders hook... back
  12. ac2f16a - make QueryManager as Query
  13. 8db967e - decouple query forward
  14. fbe8bbf - single ref for Snapshot map
  15. 482d188 - centralize group name
  16. 63d6312 - remove entry from storage if it's the default value
  17. 625d634 - Bump core.version from 4.5.7 to 4.6.0 (#134)
  18. 558c24d - Bump org.apache.maven.plugins:maven-compiler-plugin (#133)
  19. 6b37f10 - consume entry on update
  20. 8cab982 - add EntryConsumeManager
  21. d7400a9 - display rank
  22. df71ed9 - option to load storage on entry create
  23. 96d46d6 - next development
3.7.1
  1. 35a8ced - release
  2. 1d07076 - properly support deletion in StorageAgent
  3. 756198d - allow trailing empty string in ComplexValueConverter
  4. d898c10 - set HashMap in DatabaseConfig
  5. c6e2c1b - next development
3.7.0
  1. 2a90c94 - release
  2. 9e633e3 - use AtomicReference in DataEntry
  3. 9951401 - correct behavior of reverse in NumberTopHolder
  4. 89e3c26 - clean unused suppress
  5. 268828b - split storage-simple into modules
  6. 660be09 - next development
3.6.0
  1. 502180e - release
  2. d48c7eb - add NumberStringDeformatter
  3. 6f9a1de - add method to convert ValueWrapper to Optional
  4. 156d59f - use switch to get value from ValueProvider
  5. 0e54d61 - cleanup some useless code in ValueProvider modules
  6. 1c8d6c3 - mark as a major update
  7. be515f7 - move ValueProvider to a separated module
  8. 6391546 - dynamically traverse modules to update project versions
  9. e88e841 - add ValueState to indicate a value being handled
  10. 77b43d6 - next development
3.5.0
  1. 27f4db5 - add top_size query
  2. e1a6a72 - realize nullability in the query
  3. a948dae - release
  4. d72aad8 - static logger in StorageAgent and UpdateAgent
  5. bff7a1f - remove old placeholder expansion
  6. e7a80d6 - support ticks in time unit
  7. 0f29270 - add QueryForwardManager
  8. 27ae7f4 - add groupingSize to decimal format
  9. db11919 - add advanced decimal and time format to ValueDisplay
  10. 496b9c9 - move formatted settings to its own section
  11. cf84140 - standalone DatabaseConfig
  12. 7138473 - remove MiniPlaceholders hook
  13. 8171841 - apply global and player placeholders to MiniPlaceholdersHook
  14. 62672c0 - add MiniPlaceholders hook
  15. e877708 - add a workaround for formatted string
  16. 0e8881c - move common code from PlaceholderValueProvider to NumberStringValueProvider
  17. 04c0958 - customize separator in SimpleQueryContext
  18. b530b15 - more adaptive QueryManager
  19. 57fc8fb - add holder argument to getKeyFromActor
  20. c2d58e5 - support single holder in QueryManager
  21. 511a29a - centralize SqlStorageSupplier constructor
  22. 13b2bb8 - abstract SnapshotAgent
  23. b06b7c3 - Bump org.jetbrains:annotations from 26.0.1 to 26.0.2 (#131)
  24. 167f7b4 - add ignore-permission to Spigot plugin
  25. 547135c - add filter to UpdateAgent
  26. 85111aa - make standalone DatabaseSetting for more database types
  27. 0a340fd - modifiable sql type in SimpleValueConverter
  28. 5a72bcb - just to make sure if there is any breaking change
  29. 9aa34c6 - next development
3.4.2
  1. b1b7a7e - release
  2. 25a50d4 - Update maven-release.yml
  3. 9339079 - move some connection code to utilize try-with-resource
  4. 47c180b - use lock when the database is single-threaded only
  5. 3440263 - add lock to modify sql storage
  6. 732ffa7 - Revert "try connection per transaction on SQLite"
  7. 1c439f7 - Revert "move duplicated code in sql storage"
  8. 79ee0de - move duplicated code in sql storage
  9. 29c6e91 - commit the table creation
  10. bab3ea3 - try connection per transaction on SQLite
  11. 00a3adf - next development
Page 1

topper

leaderboard

top

You might also like...