Patch Note (dev version):
New Detailed Readme in github
New Features
- Support 1.20.3 - 1.20.6 spigot/paper/folia
- Support 1.21 spigot
- New Chinese translated yml (zh.yml) has been uploaded to github (by anonymous author)
- Changed command system to vanilla brigadier for better experience (test)
- Added dollmanage command to execute command without most validation (default for OP)
- Changed Doll Connection from NMS connection to Socket connection (should be more flexible and faster)
- Convert-Player feature now support more actions, lookat drop, dropStack, swapHand
Bug Fixes & Changes
- Rewrote the plugin
- Should be less spaghetti code
- Removed most of the side feature (not affect the major usage of plugin)
- Renamed and Combined some similar command (also permissions)
- Reduced NMS file size by reflection & abstraction & wrapper (Methods that not changing at all)
- Clean up unused config keys
- Changed default language config from
english
todefault
- Convert-player self indication is changed from
!
to_ (underscore)
- Fixed doll ticking action pack in abnormal speed
- Create command now uses
GameProfile
In online-mode, GameProfile will not exist if player is not in mojang database. GameProfile will not contain skin data unless the player has joined the server before.
In offline-mode, GameProfile will always exist, skin data is always empty.
Also removed fetching skin data online. - Now create command <skin> is determine by player permission "
playerdoll.argument.create.skin
" - Removed support of Offline Doll for some command
- Fixed perm.yml cannot change doll prefix / suffix
- Default permission from perm is now default to all players (if enabled), no need to set manually
- Config provided port and ip for Doll to connect, default 127.0.0.1 and 25565. Change it if the server setting is different
Other
This is a dev version, the major purpose of this version is for public test. Most of the feature has been tested and ensured to function properly, but there might still be problems that happen due to different environments.
Please report if any problem found
It is suggested to remove configs (except doll config) to generate a new config that comes with comments. Or you can nevigate the original config inside plugin Jar
- BungeeCord connection is not implemented
- Config version has changed to 23
- The removed features will be added back if needed or by request
- Some minor changes are not stated
Patch note:
- Support Paper 1.20.5
- Minor Tweaks
- Fixed Doll not disconnect immediately
Paper 1.20.5
Plugin tested under Experimental build #6, no error was found
Changed some logic for getting server version as Paper (also downstreams) NMS not including CraftBukkit version anymore
Patch note:
- Support 1.20.5
Connection process has changed in 1.20.5, potiential problem might occur.
During basic test on Spigot, no severe problem found yet.
Patch note:
- Added Basic config key
convert-player
(Test) - Minor tweaks
- some code transition
Convert Player
A setting to convert player entity into modified player entity, to support some doll commands (actions)
Default: false (not to convert)
When Player is connecting to the server, if the setting is true, A modified Player Entity will be created instead of original one. The modified player has a feature of automation action added.
- Added new command target
!
for self indication
(i.e. [/doll attack ! interval 10], player-self attack in interval of 10 ticks)
Example
Notes
When setting is true, Server Reload command is not recommanded.
Converted players will be kicked from the server. (Once reloaded, the plugin has no access to player entity anymore, because of different class loader)
Others
- Config version is now 22
Known Issues
- Self selecting (!) in doll commands not showing suggestions
Patch note:
- Changed Doll BungeeCord connection method (Test)
- Removed
proxy-ip
proxy-port
keys from BasicConfig - Added
doll-multi-instance
key to prevent dolls with same UUID joining multiple BungeeCord servers - Added messaging between Plugin and BungeeCord for searching duplicate Doll
BungeeCord Connection Method
Last version, doll joins wrongly in random.
To fix this, A new Stable Connection Method is implemented for Testing.
- Doll will connect to game Directly instead of BungeeCord
- Doll will no longer be listed from BungeeCord commands
- Doll will not be kicked when BungeeCord Restarts
Note: There might be plugins that block BungeeCord-bypassing connection, this connection method might be affected. Please Report on Github if this happened.
Doll-Multi-Instance
If there are dolls with duplicate UUID in multiple servers, this option prevents plugins that sync player data across server producing dupe by making doll with same UUID can only spawn once.
This option will enable only BungeeCord mode is true.
Default: false (disallow multiple instance)
Patch note:
- Added BungeeCord support (Test)
- Added
proxy-ip
andproxy-port
on BasicConfig for Doll connection when BungeeCord in used - Changed whitelist logic
- New BungeeCord plugin is implemented.
- Config version changed to 19
- Added perm.yml
- Fixed lang.yml is not updating
- Fixed Join message setting not work
- Adjusted Give command to require target to be online
BungeeCord (Test)
For Servers running on bungeecord mode, proxy-ip
and proxy-port
are provided on Basic Config.
All doll will connect to the target address instead of the server itself.
Please report any problem on Github.
Note:
- When using BungeeCord mode, sometimes Doll will join as single character name, which represents this connection is failed to manipulate, spawn again could solve.
This might different from environments. - Doll with same name among servers are not allowed to spawn at the same time.
- On BungeeCord, doll will connected as single character name temporarily. This does not affect
/find
or/glist
command as doll will convert to their real name after joining the server successfully
perm.yml
A new mini permission setting config is added.
It allows server owner to set detailed settings for dolls.
Like prefix, suffix, max-spawn, max-create. (restrict skin is not implemented)
These permission node are suggested to add under groups for convenience.
Example:
playerdoll.perm.max-doll-spawn.default
is bind to default permission group
.
When player with default permission group
enter /doll spawn
command, the plugin will check to see if the player contains permission of playerdoll.perm.max-doll-spawn.default
, then fetch the corresponding value from perm.yml and do the check.
Description and Example are on perm.yml
Patch note:
- Enhance Doll spawning Stability
- Adjusted fake connection process to reduce spawn failure
Patch note:
- Added whitelist-bypass when Doll Join
(Enabled only when server is using whitelist) - Added Basic Config Keys
chat-when-join
&chat-when-join-interval
for Doll to execute something when they join - Fixed Config version not updating automatically
- Fixed Flag config not saving new keys
- Fixed Folia server
real_player_tick_action
causing Doll to disconnect.
New Basic Config Keys
chat-when-join-interval
- This Controls the delay between each message (in tick)
chat-when-join
- This List controls what message will be send to the server by the Doll
- Can be commands or regular messages
- Input variables
%name%
and%uuid%
to represents Doll's name and uuid respectively - This should be useful for Logging in on offline server
Patch Note
- Added Async PlayerPreLoginEvent while Doll Joining
- Added Packet Filter to reduce packets sent from Server to Fake Client
- Fixed Doll Exceeding Packet Rate Limit by packet filter
- Implemented Doll Setting [Real Player Tick (Action)]
Patch Note:
- Updated documentation on Github
- Removed support for 1.20-1.20.2
- Removed redundant side functions
- Removed built-in permission
- Remade Config for better management (Not Complete)
- Remade Doll Joining Logic to provide real-player alike process (Maybe the best way to eliminate interferes with plugins)
- Used Logger to replace System.out
- Internal changes
- Clean-up codes
Permissions
- Now only OP is able to call actions, unless a permission managment plugin is installed
- Details on Github
Configs
- Now config has reworked, there should be some problems while handling config file update.
- Detailed implementation at future version.
- Renamed many keys
Affected Configs
[Doll config/Basic config/Flag config/Language config]
- *Please re-generate a new one to avoid errors
Dolls
- Now dolls will Emulate a client to deal with [no connection error] from server side plugin handling.
- Using a internal fake client may produce unforeseen problems. Test from Author, it should be fine on some basic usages.
- Using a client can extend controls of Doll in the future, like scripting or other interactions.
- For Doll being kicked by Exceeding Packet Rate Limit when Join, temporary solution
Others
- Some settings will temporarily hardcoded or cancelled, like Doll prefix/suffix, spawn limits.
Patch note:
- Changed Some Doll Spawning algorithm to enhance compability
- Enabled vanilla kick command to doll on Folia
- minor fix
Patch note:
- Fixed some command selection not displaying
- Fixed error while handling PlayerJoinEvent with other plugins
- Adjusted timing of Doll joining when server start
- Fixed Doll GUI poping up error alert
- Fixed Doll auto-joining spawned at weird position
Notice
- If you are using plugin version above [v1.20],
please download this version [v1.24] as soon as possible.
In order to fix the problem that some plugin's PlayerJoinEvent has no effect on regular Players.
Patch note:
- Fixed Doll spawn Error on Folia (1.20.2-1.20.4)
- Code clean up
- Apply v1.22 [Aplha test] contents (welcome to report issues)
- Increased Doll teleport delay on Folia to avoid Doll entity hitbox unsync when Spawn (5tick -> 10tick)
Others
- Doll setting "hide from list" is not implemented
- Doll command "info" is not implemented
Notes
- Beta release will end after few versions if the plugin becomes stable (after May)
- Pre & Post MC 1.20 will slowly support after beta release
- Plugin will be less frequently updated until May for longer observation
Patch note: [Alpha release]
- Implemented Auto-update Config
- Implemented Config modification detector
- Remade Permission related system (Test)
- Added
playerImmune
on permission.yml - Changed Doll UUID from Name to Random generation
- Made support to server using LuckPerms (Test)
- Code clean up
Configs
Auto-Update
- Apply to config, lang, flag, perm
- Added key
ReplaceConfig
on config.yml for config update behavior
(true : replace the whole config by new version
[lost all settings]
false : add missing keys to config
[no longer maintain format, comments are missing]) - If you want to check the original newer version config, open Plugin.jar as ZIP and then open the config file
Modification Detector
- Apply to config, lang, flag, perm
- Added key
AutoReload
on config.yml for detecting changes. - Automatically update when changes detected in Real Time
- Without typing reload commands
Permission (Test)
- Remade permission.yml
- catagroized configurations
- added
playerImmune
key (Make Doll no longer damagable by Player) - If no LuckPerms in use, extra storage playerPerm.yml will appear (Record of player UUID - permission group)
- Abandoned old player/uuids.yml
- now all players are having
default
group by default, players will not be saved when they are underdefault
group
Added attach
key (String list) for LuckPerms permission groups (Primary Group Name)
in Test function
If you are using LuckPerms and having own permission groups
you can assign those groups into `attach` key
player belongs to that permission group will automatically apply to PlayerDoll permission group in Runtime.
(Both groups are not interfering with each other)
UUID
- Doll Name used to be the UUID of Doll, it caused some annoying problems when using Rename
- New Doll will use a randomly generated UUID
- It should be no impact for old and new version of Doll
Others
- now config version has changed to "17"
- Please backup the config before starting up the server
- Please Re-generate Permission.yml
- Please report any problem you encountered
- Doll setting "hide from list" is not implemented
- Doll command "info" is not implemented
- This release is not fully tested, please report if any problems found
Patch note:
- Optimized Events handling when Doll spawn (Prevent plugins from getting error while handling Dolls)
- Fixed error when Create doll with invalid Player Name (Profile not exist for MCJE)
- Implemented Permission Group upgrade function (Test)
- Disabled most command execution from console
Skin
- Default Mojang skins will be used when invalid skin has been used (Specified a invalid name, or creator has no Profile data)
Event Handling
- Prevented other Plugins from handling Doll spawn
- Enhanced stability
- Tried to re-wrote to eliminate potential errors
Permission Group Upgrade
- command :
/dollUpgrade [confirm]
(confirm to ignore tip message and upgrade) - Only usable when Vault exist
- Under Test
Others
- now config version has changed to "16"
- Please backup the config before starting up the server
- Please report any problem you encountered
- Doll setting "hide from list" is not implemented
- Doll command "info" is not implemented
Patch note:
- Reverted
FakeChannel.class
handling due to imperfection - Added new method to Prevent other Plugins from executing
PlayerJoinEvent
when Doll join (For Test)
- The new method should completely preventing other plugins from executing
PlayerJoinEvent
to produce error - This should execute only when Doll Spawn
- Please write an issue if this method is causing any error (behave wrongly) or incompatibilities
Note: This method rely on Event priority & Plugin Load Order, which if there is plugin that load prior than this Plugin and with the same priority (Lowest) may produce some problem (listen and make changes to PlayerJoinEvent
). [Edited 17-Jan]
Patch Note:
- Added
FakeChannel.class
that warpedEmbeddedChannel.class
for compatibility (Handle Fake Player by Other Plugin)
Patch note:
- Fixed non-OP cannot get Dolls from certain suggestion type
Patch note:
- Remade GUI system to support offline set/gset/gset
- Fixed GUI page swap resetting cursor position
- Fixed GUI button bypass command permission
- Fixed doll inventory navigation desync
- Fixed OP bypass doll online check
- Fixed Remove not dropping loots
- Fixed command check ignored Admin flag
- Fixed Menu shortcut bypass permission
- Implemented tab suggestion filter appropriate suggestions
- Modified some config keys
- Player can now set / gset / pset without doll online (Test)
- Added several suggestion types
- Changed some command suggestion for better indication
GUI system
- Re-implemented for better fulfill the needs
- Should come with better performance and less resource usage
- The system is in test, please report any problems
- Removed back button in Set page
- Removed ender chest exit function
Others
- now config version has changed to "15"
- old version.txt on Github no longer update
- Please Re-create the Dolls to avoid error
- Please backup the config before starting up the server
- Please report any problem you encountered
- Doll setting "hide from list" is not implemented
- Doll command "info" is not implemented
- Permission group upgrading is not implemented
Patch note:
- Compiled in Java 17 to ensure compatibility
- Added softdepend in plugin.yml for Vault