Patch Note:
- Fixed a Crash issue due to
RealPlayerTickAction
in Folia - Fixed Doll becoming invulnerable after entering the
The End
exit portal in Folia
Patch Note:
- Fixed Doll death from PlayerData Sync Plugin
Now Doll will attempt to respawn then disconnect the Server. To prevent Sync Plugin store Doll data at 0 Health.
Patch Note:
- Changed disconnect method from server side to fake-client side
- Changed TP method from console command execution to API teleport
- Fixed perm.yml max-doll-create counts incorrectly
- Fixed Pset data is not loaded correctly when doll spawn
- Fixed Give command is not working (Now Give command require Doll to be offline, and the receiver to be online)
Patch Note:
- Fixed an issue that when Doll was Removed by non-owner, the max-creation-counter is not update correctly
- End Dev test
Others:
- No update for BungeeCord plugin, download if needed. See v1.29
- Simply tested on the latest clean Velocity with forward setting "modern", PlayerDoll should work fine without implementing a dedicated Velocity plugin. (for Doll connection)
Also no need to change config settings
Patch Note (dev version):
New Features
- Added messages to Doll caller about spawn result
- Added Lang config keys
spawn-success
andspawn-error
Bug Fixes & Changes
- Fixed an issue that in some versions and branches that cannot perform command through Shortcuts or GUI buttons
- (BungeeCord) Fixed Doll will no longer be able to join the server if an connection error occurred before
- Simplify some logging messages
Others
- Config version is now 24
- Dev test will end in this version if no specific problem was found
Patch Note (dev version):
BungeeCord Connection Support
New Features
- Support 1.21 Paper (experimental-build #9)
- Support 1.20.3 - 1.21 BungeeCord Connection
- Added config key
proxy-auto-join-delay
, to delay (in seconds) each Doll when joining automatically - Added doll config key
last-join-server
for server Name that will be used in auto join. (doll without no server name are not joining)
Bug Fixes & Changes
- Fixed a crashing issue that server reload command interferes with doll brigadier command
- Changed config key
server-ip
andserver-port
toproxy-ip
andproxy-port
respectively for Proxy connection - Doll will connect to the local address automatically when BungeeCord mode is off.
- When BungeeCord mode is on, Doll auto join feature requires at least 1 player in server. When the first player joined, doll will start joining 1 by 1 after 5 seconds.
Others
- BungeeCord-side plugin is available below (PlayerDoll-Bungee-1.28.jar)
- GUI command actions are not working in BungeeCord mode in some versions and server mods. Entering command in chat as an alternative
- Doll in BungeeCord mode might not joining the game rarely. Please try again (around 5%?)
- To trigger doll auto join after reload in Bungeecord mode, a player is required to join the server in order to start.
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