Patch Note:
- Fixed Doll connections problem for certain versions
- Fixed Doll cannot inherit permission from permission plugins
- Added empty string check for config key
doll-permission
- Added config key
doll-metadata
for Doll for special usage
Note:
Main
& AllAddon-Doll
are updated- Config version is now 32
Patch Note:
- Fixed version checking v2.1 (shou692199)
- Renamed Addon to enhance version readability (shou692199)
- Fixed some GUI pages did not display previous page by clicking outside (backpack, gset, set)
- Optimized & Advanced Exp command
- Moved Skin Permission before text
extern/local
- Delayed Doll teleport when Spawn, avoid Doll not teleporting in certain condition
- Removed redundant OP permission while Doll spawn
- Fixed ConvertPlayer cannot inherit permission from permission plugin
- Delayed AsyncPlayerPreLoginEvent when Doll Login to avoid permission plugin Kick
- Fixed certain text not applying newline
Exp command
Improved performance while calculating experience.
Added integer overflow check
New argument asOrb
for EXP command:
- Experience will be given as experience Orb
- Useful for mending
Changed Click interaction for GUI EXP:
- Left click -> get Exp conventionally
- Right click -> get Exp as EXP Orb
- Shift click -> get All levels (within integer limit)
- Non-shift click -> get 1 level
Updated description for GUI Exp icon
Addons
- Simplied Mapping string to
Mojang
orSpigot
- Added trailing string for Minecraft version support
(i.e. 1210_1211 -> 1.21.0 to 1.21.1)
Note:
- Config Version is now 31
- Main & Addon-Doll has been updated
- Renamed Addon-Wrapper
Patch Note:
- Disabled Dev message in startup
- Supported 1.21.4 Spigot
- Added LookAt action command
- Updated Create command arguments for skin fetching
- Added raw message for Version command
- Fixed Doll don't follow default prefix & suffix in perm.yml when Doll owner is not online (works even if perm.yml has disabled)
Skin Fetching
new literal nodes are added to the Create command.
/doll create <name> [extern|local <skin>]
extern: Fetch player skin online
local: Fetch player skin from local server
Note:
- config version is now 30
- Addon-Folia has renamed (discarded version)
- Wrapper Addon for 1.21.2+ is still Addon-Wrapper-1212 (will be renamed if there is breaking change)
Addon updated:
- All Addon-Doll
- new Addon for 1.21.4 (Addon-Doll-v1_21_R3)
For Addon-Wrapper, please download from the previous version
Patch Note [Dev]:
- Fix Paper NoSuchMethodError getBukkitEntity() (shou692199)
Addon updated:
- v1_20_R2
- v1_20_R3
- v1_20_R4
- v1_21_R1
- v1_21_R2
Patch Note [Dev]:
- Reworked code base for API and Extension compability (Early Access)
- Support Game 1.21.2 1.21.3 (using Addon)
- Ported old Game version support to Addon
- Improved config loading
- Doll connection thread is now blocking while server shutdown again for safety
- Fixed right-clicking Doll Inventory GUI cannot set slot
- Fixed error in Drop command
- Rework custom GUI and Removed improper use of extending InventoryHolder
- Added perTick argument for action commands
- Added version subcommand for version checking
- Supported paging for Doll setting, pset and gset
- Lookat Action is temporarily unavailable in this version
- Stop supporting BungeeCord
- Adjusted some config keys
API & Extension
To reduce the plugin file-size impact of NMS version and to adapt the new update cycle from Mojang.
Addon is introduced for server owners to customize the addon installation in needs (mostly for NMS).
Usages
The API currently provides the followings by sub-plugin or addon.- Create subcommands in /doll
- Custom implementation of Doll
- Create Buttons for setting / gset / pset
- Custom Game Version support
- Others
Note
The API is in initial stage and changes will be made to enhance accessibility for customization.At now, the API is still not perfect, and not encouraged to use it as custom development.
Installization Guide
Versions1.20.2 -> v1_20_R2
1.20.3 / 1.20.4 -> v1_20_R3
1.20.5 / 1.20.6 -> v1_20_R4
1.21 / 1.21.1 -> v1_21_R1
1.21.2 / 1.21.3 -> v1_21_R2
Required Addons:
Doll-<Version>-<Mapping>.jar
Wrapper-<Version>-<Mapping>.jar
*Spigot branch
Download Doll
and Wrapper
(Spigot-Mapping) by version
*PaperSeries & Folia branch
-
Server in 1.20.2 - 1.20.4
DownloadDoll
andWrapper
(Spigot-Mapping) by version -
Server in 1.20.5 or above
DownloadDoll
andWrapper
(Mojang-Mapping) by version
*Folia branch
Download Addon-Folia.jar
additionally
Note: Some Addons are crucial for this plugin in order to provide complete functionalities. The provided addons are default behavior as previuos versions.
All addons are stored in plugins/PlayerDoll/addon/
perTick argument
A new argument is added for actions.
Doll / Converted players are able to perform action up to 40 times in each tick.
Example: /doll attack abc perTick 20
Doll "abc" will try to destroy(attack) blocks 20 times in 1 gametick
Note: perTick may affect server performance if set too high. Please use it carefully.
Others
- Config version is now 29
- Bugs or malfunctions might occur after reworking of code
Patch Note:
- Doll connection thread is no longer blocking while server shutdown
- Fixed Doll cannot perform use command to interact to world
- Trying to fix teleport packet crash on Folia
- Fixed some exploits in remove command
- Fixed incorrect Doll fetching in spawn command
Teleport Packet Crash
It is known that in Folia, some servers might facing random crash due to Doll's teleport packet handling.
If you share the same problem, please reply to Github Discussion
Patch Note:
- all patches in v1.35
- Fixed doll connection did not handle respawn correctly
Patch Note [Dev]:
- Changed Doll connection from Socket to Netty, become more performant
- Changed packet to NMS, should be more resilient to packet change
- Should fix some connection bugs
- Changed Tracer class (NMS to plugin API)
- Changed related logics in Actionpack class (tracer)
- Supported 1.21 Folia Dev
Known issues:
- Bottom parts of Doll real inv are shifted, causing interaction to Doll's armor and offhand slot (Bug from plugin API)
Note:
- This is a Dev version, please use it carefully.
- Please report any problems when you have any difficulties
Patch Note:
- Setup Github Wiki for detailed information
- Improved Shift actions in Doll Inv GUI
- Fixed Doll Inv GUI causing item to disappear by certain interaction
- Added spam preventation for Doll Inv GUI (4ticks)
- Fixed Dropping Item through GUI in Folia server causes error
- Changed config key
proxy-auto-join-delay
toauto-join-delay
- Prevent plugin disable while Doll auto-join
- Removed grouped permission in plugin.yml
- Added wildcards for permissions in plugin.yml
- Fixed Doll auto-join not applying Doll Identifier
- Fixed an issue that when player attempts to pset a newly set player, flag did not set
Doll Inv GUI
In this version, shift actions in Inv do stack similar items together (not in old versions)
auto-join-delay
Now it will also work on non-BungeeCord connections
Wildcards for permissions
- playerdoll.command.* -> Wildcard for command
- playerdoll.globalflag.* -> Wildcard for global flag
- playerdoll.personalflag.* -> Wildcard for personal flag
Others
- Config version is now 28
- Grouped permission is no longer be used, please re-configure those permissions if you are using it
Patch Note (Beta):
- A relatively complex update is released, not all functions are well tested.
New Features
- Supported 1.20.2
- Added Config key
force-proxy-ip
- Added Config key
doll-identifier
Changes / Bug Fixes
- Improved packet processing
- Fixed Doll not dismount from Entity when Die / Disconnect
- Fixed Doll cannot Join server if server.properties has required resource pack set
- Fixed Doll
join-at-start
not working - Updated command system for configurable Doll identifier
- Updated Doll config system for configurable Doll identifier
- Added comments for serveral Config keys
- Adjusted Config key
server-max-doll
toserver-max-doll-spawn
Known Issues
- Doll cannot update Boat while mounting
- Doll cannot be push by piston with Slime block correctly
- Doll causes Crash in Folia servers when Map is tracking Regions containing Doll (Temporary Solution below)
Packet Processing
A new packet logic is used
Basic operations are fine
Please write issue if any problems found
Force Proxy Ip
default: false
A optional tweak should fix Doll not joining server while the default connection address is not working
Doll Identifier
default: "-"
The identifier that Doll spawns with
Can be empty or 1 character
Should avoid common character that is username available or being used by other plugins
Note: Some characters will cause confusion to Vanilla / Other Plugin Commands.
Set to '' for disabling identifier
BungeeCord
Updated corrisponding logic to adapt configurable Doll identifier
Notes
Doll config has updated, and the format has changed because of the configurable identifier.
Please let Doll owners to cleanup all Doll data before updating to this version
It is not encouraged to keep old configs, weird problems might occurr.
Suggested Upgrade Flow:
- Cleanup Doll data
- Remove all Doll configs in plugins/doll and in dat file world/playerdata
- Update plugin
- Create new Doll
Temporary Solution to fix Crash in Folia Servers:
Goto paper-world-defaults.yml
and change the value of item-frame-cursor-update-interval
to 0
Patch Note:
- Fixed teleport packet causing doll to disconnect when spawn
- Added
hidden
flag for gset and pset - Added config key
display-doll-when-ping
- Added config key
op-can-see-hidden-doll
- Added check for Error UUID when spawn
- Added support for flying
Hidden flag
permission: playerdoll.personalflag.hidden
default: disabled
With this flag enabled, all players (or specific player):
- cannot see or interact doll hitbox in the world
- not listed from tablist
- not listed from ping list
Pset overrides Gset
Display Doll When Ping
default: false
This control the online count, max player count when player ping the server.
if disabled:
- all dolls will be filtered from online count
- original max player count will be shown (if
adjustable-max-player
enabled)
Op Can See Hidden Doll
default: true
Does server operator bypass the hidden
flag
Flying
If caller is in Creative and the doll can fly, doll will remain flying when spawn
Other
- Config version is now 26
- Updated default.yml
Patch Note:
- Fixed Create command cannot bypass max-create limit using manage or in op
- Added Info command
- Removed gset/pset
info
flag - Added doll setting
hide_from_list
flag - Adjusted pset config-saving check (if pset player has identical settings from gset, the setting will not be saved)
- Fixed an error that trying to use pset to set a specific flag on a player that was never presented on doll config
- Optimized command suggestions (Hover Texts)
- Adjusted Doll teleportation (using packet)
Hide From List flag
permission: playerdoll.globalflag.hide_from_list
If hide_from_list
flag enabled, Doll will be hidden from suggestion list when player is typing info
command
- This flag does not affect op or owner
- This flag does not block
info
query made from other player
Info command
permission: playerdoll.command.info
A command for listing basic data of Doll
- Doll name
- Online status
- Owner
- Doll settings
- General settings
- Player settings
Command Suggestion Hover Text
Added a related Hover Text display on Doll target
selection to the command.
Can be seen by dragging the mouse cursor onto the tab suggestion
- spawn, give, remove -> owner name
- tp, despawn -> current coords
- look, turn -> current facing
- slot -> current handheld slot
- exp -> current level
- mount, dismount -> is riding
- sneak, unsneak -> is sneaking
- sprint, unsprint -> is sprinting
- set, gset -> enabled flags
- pset -> players being pset before
- actions -> items on both hands
Others
- Config version is now 25
- Updated
default.yml
andzh.yml
(available on Github) - Published the plugin in release channel (stable)