Commit Graph

41 Commits

Author SHA1 Message Date
AlexDev_
2cf4f4956b Improvements on server switch 2025-01-05 18:48:59 +01:00
AlexDev_
70bbf01e14 Refactored the code to cache placeholders and then use them in sync 2025-01-05 17:20:57 +01:00
William
6f140e4708
feat: Add support for Minecraft 1.21.2/3 (#228)
* First step for 1.21.2

* fix

* feat: start preparing 1.21.2 support

bumps gradle and various build deps

* build: now requires Velocity 3.4.0

* build: use Velocity 3.4.0 from maven

* refactor: cleanup, fix wrong protocol ver in 765

* refactor: minor code cleanup & reformat

* refactor: further code cleanup

* refactor: more minor refactoring work

* docs: document prerequisites for using the plugin message API

* Fixed team packet mapping problem
Fixed problems with SortingOrder packet
Changed scoreboard logic to skip team packets for 1.21.2+ players if nametag is empty

* docs: further grammar fixes to plugin message API docs

* refactor: adjust PPB version checking logic

* build: simplify PPB test logic

* refactor: remove unused code

* refactor: adjust formatting

* refactor: make nametag empty by default

* refactor: suppress warning

* fix: `ConfigurationException` deserializing minimum PPB version string

* refactor: remove unused import

* Bug fixes

* Removed tablist order from all TabPlayer instances when a player leaves

* Fixed problem with data structure

* Removed synchronized

* fix: subscriber order not taking effect

* refactor: minor code style tweaks

---------

Co-authored-by: AlexDev_ <56083016+alexdev03@users.noreply.github.com>
2024-10-28 18:17:36 +00:00
AlexDev_
cf7c92e28f
Fixed compilation problem 2024-10-02 12:42:26 +02:00
AlexDev_
fc39861f33
refactor: Make MiniMessage the default formatter, fix bugs (#208)
* Fixed some problems
Changed default formatter to MINIMESAGE

* Removed debug message
2024-08-11 13:31:56 +01:00
AlexDev_
ace3644111
feat: Add conditional & relational MiniPlaceholders support (#197)
* Added relational mini placeholders support
Fixed some problems
Removed 300ms delay after joining a server
Code refactor

* Updated MiniPlacehodlers dependency
Removed max team length for 1.18+ clients
Fixed problem of backend sending team packets for online players and added a warning message

* Added docs
Added more time/date placeholders

* Added mini condition system

* Fixed problem due to adventure string quoting

* Fixed problem in a rare use case

* Removed debug message

* Fixed conversations
Fixed packet unregistration problem

* Added docs
Fixed a problem

* Added yaml multi-line docs

* Changed docs

* Added papi support for conditions

* Cone clenaup

* Fixed placeholders in conditions

* Fixed conversations

* Fixed problems

* Fixed problems while using minedown or legacy
Added check for team packets tracker

* Fixed problems
Added support for hex colors in legacy formatter

* Fixed problems

* Fixed problem with header & footer

* Resolved conversations
2024-06-29 13:32:29 +01:00
AlexDev_
4efc5797b3
feat: add plugin message api, GROUP_PLAYERS_ONLINE placeholder (#157)
* Added plugin message api & added LOCAL_GROUP_PLAYERS_ONLINE placeholders

* Fixed conversations, added placeholders to docs and fixed a few bugs

* Solved conversation

* Fixed possible charset problem and moved channels to a map instead of a set

* Changed docs

* Fixed kick issue and fixed problem header/footer on join
2024-02-09 23:58:15 +00:00
AlexDev_
7caa185fc1
Improve config validator, add team collision rule setting (#152)
* Fixed tab problem on not handled servers

* Fixed config validator and added collisions parameter

* Fixed conversations
2024-02-01 23:03:40 +00:00
William278
384137a67c feat: Add Velocity version compatibility checking 2024-01-24 19:36:59 +00:00
William278
7b347bb43e refactor: optimize imports 2024-01-19 18:05:43 +00:00
AlexDev_
89a1f7add3
refactor: internals refactor, fix logic, new configs, spectator fix (#138)
* Started refactor

* more work

* Bug fixes and more work

* Fixed task problem

* More work on providers + fixed relocation problem

* Added providers + relocated snakeyaml

* Fixed relocation problem + removed org.json

* maps instantiation refactored

* Fixed reload problem

* Fixed logic problem

* More work on refactoring PlayerTabList

* Using lombok for procteded values

* More work

* Fixed cache problem + more work on refactor

* Fix for https://github.com/WiIIiam278/Velocitab/issues/35

* fixed conversations

* Code refactor

* Fixed problem while using minimessage

* Added more javadocs and removed kick handling as velocity fixed that problem

* Added username_lower placeholder and removed useless libraries

* Updated docs

* Added option to remove spectator effect in tablist
2024-01-16 21:09:46 +00:00
William
4d6621c3c1
Tidy up bits of logic, use class for Nametags (#122)
* Tidy up bits of logic, use record for Nametags

* Few more bits of cleanup

* Some feedback

* More feedback

* Fix `#prefix()` and `#suffix()` record calls

* Fixup logical error

* `nameTag` -> `nametag`

* Make TabPlayer#getNametag returns TabPlayer.Nametag

---------

Co-authored-by: AlexDev_ <alessandrodalfovo2003@gmail.com>
2023-11-20 14:36:04 +00:00
AlexDev_
c36e17b75e
Added PlayerAddedToTabEvent, improved PlayerTabList performance and more (#114)
Added PlayerAddedToTabEvent, improved PlayerTabList performance and added the possibility to reload the plugin without breaking the tab list. This is only for dev purposes. Bumped version to 1.5.2
Fixed a few problems.
2023-11-05 21:15:23 +01:00
AlexDev_
b128f36efa
Added VelocitabAPI, Vanish integration system (#106)
* Added support for VanishIntegration

* Merged

* Added API and improved vanish system

* Fixed problem with API

* Fixed import problem

* Commit with requested changes

* first test

* Added NotNull missing annotations

* Fixed all requested changes

* Fixed logic problem

* Revert "first test"

This reverts commit 1be3c47d9c.

* Hide nametag if the prefix & suffix are empty.

* Fixes for conversations.

* Added missing @NotNull

* Adjust repo order; use `elytrium` over `exceptionflug`

---------

Co-authored-by: William <will27528@gmail.com>
2023-10-18 18:43:03 +01:00
AlexDev_
1e2aff4cf0
Added Sorting Manager (#105)
* Added SortingManager.

* Fixed initialization problem + added cache for team name

* Improved code readability

* Commit with the requested changes.

* Update src/main/java/net/william278/velocitab/Velocitab.java

Co-authored-by: William <will27528@gmail.com>

---------

Co-authored-by: William <will27528@gmail.com>
2023-10-15 13:04:10 +01:00
AlexDev_
a79404a530
Improved sorting logic to handle both high and low values. (#103) 2023-10-13 10:08:30 +01:00
William
8224cd0ff1
Fixes, logic simplification, update docs for nametags (#101) 2023-10-12 11:44:27 +01:00
William
1f1e69ebca
Add support for Minecraft 1.20.2 (#99)
* Add protocol mappings for 1.20.2

* Cleanup some exception handling

* ci: Mark 1.20.2 as supported

* Minor code formatting tweaks
2023-10-11 17:10:29 +01:00
AlexDev_
cb8a50c24f
Sorting System with Placeholders (#94)
* Added regex check for placeholders to avoid useless requests.
Added support for custom nametags. Due to minecraft limit only legacy chatcolor are supported.
Team names now are unique, so 1 team can have max 1 player.
Fixed problem with luckperms event bus while reloading the plugin.

* Update src/main/java/net/william278/velocitab/config/Placeholder.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/hook/LuckPermsHook.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/config/Formatter.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/UpdateTeamsPacket.java

Co-authored-by: William <will27528@gmail.com>

* Fixed problem while updating display names. Changed a few method signature as requested in pr. Applied changes of pr.

* Added support for placeholders as sorting system

* Code reformat

* Update logging, task scheduling and player rosters

Modified logging in the ScoreboardManager to represent playerNames as an array for readability. Ensured all tasks scheduled by Velocitab are canceled on proxy shutdown to prevent unwanted behavior. Reworked player roster management in PlayerTabList to correctly update player roles and decrease asynchronicity, enhancing performance and preventing possible race conditions.

* Fixed problems after merging with upstream, fixed problem with player team color on join.

* Fixed problems with pr-merge. Added sorting system with placeholders.

* Update src/main/java/net/william278/velocitab/packet/UpdateTeamsPacket.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/config/Formatter.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/player/TabPlayer.java

Co-authored-by: William <will27528@gmail.com>

* Fix username replacement in scoreboard and code typo

This commit resolves two issues. Firstly, changed the variable that we split the nametag on in `ScoreboardManager` from a hardcoded string to the player's specific username. This rectifies an issue where incorrect splitting occurred if the username wasn't exactly "%username%". Secondly, fixed a miswritten method call in `Formatter` from '..legacySection()' to '.legacySection()', correcting a syntax error. Lastly, removed superfluous replacement in `TabPlayer's` getNametag method as it was already handled in `ScoreboardManager`.

* Reformat code

* Changed logic with only one plugin message request.

* Update src/main/java/net/william278/velocitab/sorting/SortingManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/hook/LuckPermsHook.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Fixed requested changes

* Changed docs

---------

Co-authored-by: William <will27528@gmail.com>
2023-09-25 15:10:45 +01:00
AlexDev_
75d9f32010
Added support for nametags and fixed a few problems (#84)
* Added regex check for placeholders to avoid useless requests.
Added support for custom nametags. Due to minecraft limit only legacy chatcolor are supported.
Team names now are unique, so 1 team can have max 1 player.
Fixed problem with luckperms event bus while reloading the plugin.

* Update src/main/java/net/william278/velocitab/config/Placeholder.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/hook/LuckPermsHook.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/config/Formatter.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/UpdateTeamsPacket.java

Co-authored-by: William <will27528@gmail.com>

* Fixed problem while updating display names. Changed a few method signature as requested in pr. Applied changes of pr.

* Fixed problems after merging with upstream, fixed problem with player team color on join.

* Update src/main/java/net/william278/velocitab/packet/UpdateTeamsPacket.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/packet/ScoreboardManager.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/config/Formatter.java

Co-authored-by: William <will27528@gmail.com>

* Update src/main/java/net/william278/velocitab/player/TabPlayer.java

Co-authored-by: William <will27528@gmail.com>

* Fix username replacement in scoreboard and code typo

This commit resolves two issues. Firstly, changed the variable that we split the nametag on in `ScoreboardManager` from a hardcoded string to the player's specific username. This rectifies an issue where incorrect splitting occurred if the username wasn't exactly "%username%". Secondly, fixed a miswritten method call in `Formatter` from '..legacySection()' to '.legacySection()', correcting a syntax error. Lastly, removed superfluous replacement in `TabPlayer's` getNametag method as it was already handled in `ScoreboardManager`.

---------

Co-authored-by: William <will27528@gmail.com>
2023-09-22 17:57:51 +01:00
AlexDev_
8349d7eb51
Added function to unregister packets on plugin disable. [Dev System Only] (#83)
* Added function to unregister packets on plugin disable.

* Update src/main/java/net/william278/velocitab/packet/PacketRegistration.java

Co-authored-by: William <will27528@gmail.com>

* Added null check + changed style

* Update src/main/java/net/william278/velocitab/Velocitab.java

Co-authored-by: William <will27528@gmail.com>

* Fix indentation problem

---------

Co-authored-by: William <will27528@gmail.com>
2023-08-27 17:06:43 +01:00
William
e422bf0840
Add plugin metrics and update checker (#46) 2023-04-21 00:22:07 +01:00
Adrian
d3d67cb613
Implement native packets handling and remove Protocolize dependency (#44) 2023-04-19 10:31:37 +01:00
William
7e349d3393
Add option to disable sorting players, close #39 2023-04-17 20:38:24 +01:00
William
c6603da50a
Add license header, tweak build scripts 2023-04-17 16:04:53 +01:00
Adrian
82ffd265a7
Improved Velocitab command using native Brigadier (#34) 2023-04-02 00:40:22 +01:00
ironboundred
88d1c4f6cf
Reload and About Commands (#32) 2023-04-01 00:46:56 +01:00
William
ee820967de
Fix double underscore escaping still happening with MiniMessage, refactor formatter 2023-03-12 19:23:48 +00:00
William278
36fa0e2625 Move formatting logic into enum function 2023-03-12 13:35:42 +00:00
William
b431ee2165
Add optional support for MiniMessage and hook for MiniPlaceholders (#18) 2023-03-11 20:23:47 +00:00
William278
2730778ef9 Bump to 1.1.1, update build script, stop shading lombok 2023-03-10 12:47:04 +00:00
Emibergo02
f0c5ebe5a8
Server groups, formatting based on server groups (#6) 2023-03-08 12:22:15 +00:00
William
f790378182
Add support for PlaceholderAPI placeholders via PAPIProxyBridge (#17)
* Start PAPI hook work

* Finish adding PlaceholderAPI support
2023-03-07 11:39:47 +00:00
William
a968fc32fc
Improve error handling 2023-02-24 18:42:02 +00:00
William
22972281e2
Tweak role sort order 2023-02-24 17:58:23 +00:00
William
f616a5e08a
Fix weight sort order, team color, CME when updating players, players not updating via LP 2023-02-20 02:23:25 +00:00
William
54928f597a
Add protocol mappings for 1.19 versions, Add DEBUG_TEAM_NAME placeholder, weight sort logic tweaks 2023-02-19 23:51:45 +00:00
William
51c7853b7b
Move to using Protocolize for scoreboard team handling using fake scoreboard teams 2023-02-19 23:08:17 +00:00
William
8ad443f4fc
Fix role sort order 2023-02-19 13:05:02 +00:00
William
500c647ecc
Delayed "real" player removing, spoofed user fixes, sort by server 2023-02-19 01:30:46 +00:00
William
6caf720b5d
Initial commit 2023-02-19 00:02:50 +00:00