├── ver.txt
├── .github
└── ISSUE_TEMPLATE
│ ├── feature_request.md
│ └── bug_report.md
├── README.md
└── customlanguages
├── chs.yml
└── cht.yml
/ver.txt:
--------------------------------------------------------------------------------
1 | 2.4
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | - Minecraft Version
14 | - Plugin Version
15 | - Server Jar name and version
16 | - Proxy name in use
17 | - Server Log
18 |
19 | **To Reproduce**
20 | Steps to reproduce the behavior:
21 | 1. Go to '...'
22 | 2. Click on '....'
23 | 3. Scroll down to '....'
24 | 4. See error
25 |
26 | **Expected behavior**
27 | A clear and concise description of what you expected to happen.
28 |
29 | **Server Setting**
30 | State if you changed some uncommon settings
31 | i.e. Whitelist, Online-mode, specific server-mod settings
32 |
33 | **Setting of Doll**
34 | Doll's current setting. From config or GUI. This might be helpful when clarifing the problem
35 | i.e. Hostility = true / Gravity: false
36 |
37 | **Screenshots or Videos**
38 | If applicable, add screenshots or videos to help explain your problem.
39 |
40 | **Related Setup (If your problem is related to 3rd parties)**
41 | - Resource Packs
42 | - Server Properties
43 | - Others
44 |
45 | **Context in code (If applicable)**
46 |
47 | **Additional context**
48 | Add any other context about the problem here.
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PlayerDoll
2 | Simple Standalone Fake Player Plugin for Spigot, Paper, Folia 1.20.2+ [Java 17+]
3 |
4 | [Modrinth](https://modrinth.com/plugin/playerdoll)
5 |
6 | Release avaliable on Modrinth.
7 |
8 |
9 |
10 | Detailed Usage has been migrated to [Wiki](https://github.com/sjavi4/PlayerDoll/wiki)
11 |
12 | ## Disclaimer
13 |
14 | This plugin is highly dependent on NMS, slightly changes made by Mojang / Server Jar provider might cause this plugin no longer working.
15 | Please use it with caution
16 |
17 |
18 | Features provided by this plugin are not GUARANTEE to be fully working, it is not encouraged to treat this plugin as a pay feature to other players.
19 |
20 |
21 | ## How to use
22 |
23 | ### Upgrade from old version (v1.28 above)
24 | 1. Backup and delete the old configs, (except doll configs).
25 | * Then start up server to regenerate new configs (with comments and usages)
26 | 2. Copy settings from old config to the new one, and set for new config keys according their usage
27 |
28 | ### In game (v1.28 above)
29 | 1. player without permission will not display the corrisponding command (or arguments)
30 | * `doll` or `playerdoll:doll` are the main commands
31 | * `dollmanage` or `playerdoll:dollmanage` are the same from above, but they bypass some optional checking. OP is reqiured by default
32 | * To create doll, enter `/doll create [skin]` and wait for server to setup the config.
33 | * After creating doll, enter `/doll spawn ` to let the doll connect to the server.
34 | 2. Most of the Doll data modification are require Doll to be online.
35 | * Except `Remove`
36 | * `/doll set` command is Doll specific settings (Doll behavior)
37 | * `/doll gset` command is settings for all players (command permission)
38 | * `/doll pset` command is settings for specific players (Override Gset if set)
39 |
--------------------------------------------------------------------------------
/customlanguages/chs.yml:
--------------------------------------------------------------------------------
1 | # Translated by Anonymous author
2 |
3 | # Auto Updates if version is not equal to plugin hardcoded value
4 | version: 25
5 |
6 | ###
7 | # &0 black
8 | # &1 dark_blue
9 | # &2 dark_green
10 | # &3 dark_aqua
11 | # &4 dark_red
12 | # &5 dark_purple
13 | # &6 gold
14 | # &7 gray
15 | # &8 dark_gray
16 | # &9 blue
17 | # &a green
18 | # &b aqua
19 | # &c red
20 | # &d light_purple
21 | # &e yellow
22 | # &f white
23 | #
24 | # &k obfuscated
25 | # &l bold
26 | # &m strikethrough
27 | # &n underline
28 | # &o italic
29 | # &r reset
30 | #
31 | # $n new line (For overlay Text display & Lang file only)
32 | ###
33 |
34 | MessagePrefix: '&e[&6PlayerDoll&e]&r'
35 | #Commands
36 |
37 | # All strings under Message group will display Plugin prefix when send message
38 | Message:
39 | # Commands execution message
40 | no-permission: '&c没有[%a%]权限为[%b%]使用命令'
41 | require-player: '&c只有玩家才能使用这个命令'
42 | no-target: '&c找不到目标'
43 | multi-select: '&c此命令不接受@参数'
44 | not-owner: '&c不是主人'
45 | # Create cmd
46 | long-name: '&c假人的名字不能超过15字符'
47 | regex-fail: '&c假人名称必须符合[A-Z][a-z][0-9][_]'
48 | preserved-name: '&c这是保留名称,请使用其它名称'
49 | dupe-name: '&c重复的假人名称'
50 | max-create: '&c已达到创建上限'
51 | success-create: '&a成功创建假人'
52 | # Give cmd
53 | player-offline: '&c这个玩家已离线'
54 | self-give: '&c无法给予自己'
55 | doll-give: '&c无法给予假人'
56 | cannot-create: '&c这个玩家没有权限创建假人'
57 | # Pset cmd
58 | doll-pset: '&c不能为假人设置玩家权限'
59 | # Spawn cmd
60 | in-world: '&c假人已生成'
61 | max-capacity: '&c服务器假人名额已满'
62 | null-uuid: '&c假人UUID异常,请联系管理员'
63 | spawn-error: '&c假人%a%生成失败,请稍后再试。'
64 | spawn-success: '&a假人成功生成'
65 | # Jump cmd
66 | self-jump: '&c真人玩家不支持跳跃行为'
67 | # Lookat cmd
68 | empty-lookat: '&c找不到准星目标'
69 | # Doll Join Event
70 | owner-offline: '&c主任离线中,使用预设的前缀和后缀'
71 | # Disconnect Event
72 | doll-disconnect: '&9假人%a%已离线'
73 |
74 | control-button:
75 | back: '&f返回'
76 | hint: '&2左键启用$n&c右键停用'
77 | prev: '&f上一页'
78 | curr: '&f当前'
79 | next: '&f下一页'
80 |
81 | inv-name:
82 | backpack: "&l&e%a%的背包"
83 | data: "&l&e%a%的资料"
84 | gset: "&l&e%a%的全局设置"
85 | pset: "&l&e%a%的%b%设置"
86 | info: '&l&e%a%'
87 | set: "&l&e%a%的设置"
88 |
89 | info:
90 | set: '&9设置'
91 | gset: '&9全体设置'
92 | data: '&9数据'
93 | offline: '&c下线'
94 | remove: '&c删除'
95 | remove-hint: '这个假人的所有数据$n(经验值、物品栏、末影箱)将会消失'
96 |
97 | uuid: '&eUUID:%a%'
98 | owner: '&5主人:%a% (%b%)'
99 | hp: '&4HP:%a%/%b%'
100 | hunger: '&2饱食度:%a%/%b%'
101 | gamemode: '&7游戏模式:%a%'
102 |
103 |
104 | set-menu:
105 | echest:
106 | name: '末影箱'
107 | desc: '&f开放末影箱给所有玩家'
108 | invulnerable:
109 | name: '无敌'
110 | desc: "&f使假人无视伤害和投掷物,同时不会吸引仇恨"
111 | hostility:
112 | name: '敌对性'
113 | desc: "&f假人是否会被怪物当成目标"
114 | pushable:
115 | name: '推动'
116 | desc: "&f假人是否会被碰撞箱推动"
117 | gravity:
118 | name: '重力'
119 | desc: "&f使假人从空中坠落"
120 | glow:
121 | name: '高亮'
122 | desc: "&f应用发光效果"
123 | large_step_size:
124 | name: '步幅增加'
125 | desc: "&f使假人可跳过1/0.6格高的放开"
126 | phantom:
127 | name: '幻翼生成'
128 | desc: '&f假人是否会生成幻翼'
129 | join_at_start:
130 | name: '自动加入'
131 | desc: '&f使假人在服务器启动时自动加入世界'
132 | hide_from_list:
133 | name: '列表隐藏'
134 | desc: '&f使假人不显示于info命令的Tab补全列表'
135 | pickable:
136 | name: '拾取'
137 | desc: '&f假人是否能够拾取物品'
138 | real_player_tick_update:
139 | name: '真人Tick (实体更新)'
140 | desc: '&f使假人于网络阶段/实体阶段Tick'
141 | real_player_tick_action:
142 | name: '真人Tick (动作更新)'
143 | desc: '&f使假人于封包阶段/实体更新Tick'
144 | admin:
145 | name: '管理'
146 | desc: '&f开放此GUI的所有权限'
147 | inv:
148 | name: '背包'
149 | desc: '&f开放假人的背包权限'
150 | attack:
151 | name: '攻击'
152 | desc: "&f开放假人的攻击权限"
153 | use:
154 | name: '交互'
155 | desc: "&f开放假人的交互权限"
156 | mount:
157 | name: '骑乘'
158 | desc: "&f开放假人的骑乘权限"
159 | dismount:
160 | name: '下马'
161 | desc: "&f开放假人的下马权限"
162 | copy:
163 | name: '复制'
164 | desc: "&f设置假人的复制权限"
165 | despawn:
166 | name: '下線'
167 | desc: "&f开放假人的下線权限"
168 | drop:
169 | name: '丢弃物品'
170 | desc: "&f开放假人的丢弃物品权限"
171 | exp:
172 | name: '经验获取'
173 | desc: "&f开放假人的经验获取权限"
174 | gset:
175 | name: '全局设置'
176 | desc: "&f开放假人的全局设置权限"
177 | jump:
178 | name: '跳跃'
179 | desc: "&f开放假人的跳跃权限"
180 | look:
181 | name: '视角设置'
182 | desc: "&f开放假人的视角设置权限"
183 | lookat:
184 | name: '注视'
185 | desc: "&f开放假人的注视权限"
186 | menu:
187 | name: '资料页'
188 | desc: "&f开放假人的资料页权限"
189 | move:
190 | name: '移动'
191 | desc: "&f开放假人的移动权限"
192 | pset:
193 | name: '个别设置'
194 | desc: "&f开放假人的个别设置权限"
195 | set:
196 | name: '设置'
197 | desc: "&f开放假人的设置权限"
198 | slot:
199 | name: '快捷栏'
200 | desc: "&f开放假人的快捷栏权限"
201 | sneak:
202 | name: '蹲下'
203 | desc: "&f开放假人的蹲下权限"
204 | spawn:
205 | name: '生成'
206 | desc: "&f开放假人的生成权限"
207 | sprint:
208 | name: '奔跑'
209 | desc: "&f开放假人的奔跑权限"
210 | stop:
211 | name: '停止'
212 | desc: "&f开放假人的停止权限"
213 | strafe:
214 | name: 'Strafe'
215 | desc: "&fSet strafe command"
216 | swap:
217 | name: '換手'
218 | desc: "&f开放假人的換手权限"
219 | tp:
220 | name: '傳送'
221 | desc: "&f开放假人的傳送权限"
222 | turn:
223 | name: 'z转身'
224 | desc: "&f开放假人的轉身权限"
225 | unsneak:
226 | name: '解除蹲下'
227 | desc: "&f开放假人的解除蹲下权限"
228 | unsprint:
229 | name: '解除奔跑'
230 | desc: "&f开放假人的解除奔跑权限"
231 | # Not a command
232 | hidden:
233 | name: 隐藏
234 | desc: '&f设置玩家是否能看到假人'
235 |
236 | inv-menu:
237 | inv: '&7背包'
238 | real-inv: '&7实际背包'
239 | echest: '&d末影箱'
240 | level: '&e经验'
241 |
242 | level-display: '&e等级:%a%'
243 | level-get: "&a点击以获得1等级的经验值"
244 |
245 | info-cmd:
246 | name: '假人: '
247 | uuid: 'UUID: '
248 | status-online: 在线
249 | status-offline: 离线
250 | owner: '主人: '
251 | doll-setting: '[假人设置]'
252 | g-setting: '[全局设置]'
253 |
254 |
255 | cmd-hover:
256 | action-main: '主手物品: %a%'
257 | action-off: '副手物品: %a%'
258 | despawn: '位置: [%a% %b% %c%]'
259 | dismount: '正在骑乘: %a%'
260 | exp: '等级: %a%'
261 | give: '主人: %a%'
262 | gset: '启用:'
263 | look: '朝向: %a%'
264 | mount: '正在骑乘: %a%'
265 | pset: '已设置:'
266 | remove: '主人: %a%'
267 | set: '启用:'
268 | slot: '当前快捷栏: %a%'
269 | sneak: '蹲下: %a%'
270 | spawn: '主人: %a%'
271 | sprint: '奔跑: %a%'
272 | tp: '位置: [%a% %b% %c%]'
273 | turn: '朝向: %a%'
274 |
--------------------------------------------------------------------------------
/customlanguages/cht.yml:
--------------------------------------------------------------------------------
1 | # Translated by Anonymous author
2 |
3 | # Auto Updates if version is not equal to plugin hardcoded value
4 | version: 25
5 |
6 | ###
7 | # &0 black
8 | # &1 dark_blue
9 | # &2 dark_green
10 | # &3 dark_aqua
11 | # &4 dark_red
12 | # &5 dark_purple
13 | # &6 gold
14 | # &7 gray
15 | # &8 dark_gray
16 | # &9 blue
17 | # &a green
18 | # &b aqua
19 | # &c red
20 | # &d light_purple
21 | # &e yellow
22 | # &f white
23 | #
24 | # &k obfuscated
25 | # &l bold
26 | # &m strikethrough
27 | # &n underline
28 | # &o italic
29 | # &r reset
30 | #
31 | # $n new line (For overlay Text display & Lang file only)
32 | ###
33 |
34 | MessagePrefix: '&e[&6PlayerDoll&e]&r'
35 | #Commands
36 |
37 | # All strings under Message group will display Plugin prefix when send message
38 | Message:
39 | # Commands execution message
40 | no-permission: '&c你沒有[%a%]權限為[%b%]使用指令'
41 | require-player: '&c必須由玩家發送此指令'
42 | no-target: '&c找不到目標'
43 | multi-select: '&c此指令不接受@用法'
44 | not-owner: '&c不是持有人'
45 | # Create cmd
46 | long-name: '&c假人名稱不能超過15字符'
47 | regex-fail: '&c假人名稱必須使用[A-Z][a-z][0-9][_]'
48 | preserved-name: '&c此為保留名稱,請使用其他名稱'
49 | dupe-name: '&c重複的假人名稱'
50 | max-create: '&c已達到創建上限'
51 | success-create: '&a成功創建假人'
52 | # Give cmd
53 | player-offline: '&c該玩家已離線'
54 | self-give: '&c無法給予自己'
55 | doll-give: '&c無法給予假人'
56 | cannot-create: '&c該玩家沒有權限創建假人'
57 | # Pset cmd
58 | doll-pset: '&c不能為假人設定玩家權限'
59 | # Spawn cmd
60 | in-world: '&c假人已生成'
61 | max-capacity: '&c伺服器假人名額已滿'
62 | null-uuid: '&c假人UUID異常, 請聯絡管理員'
63 | spawn-error: '&c假人%a%生成失敗, 請稍後再試'
64 | spawn-success: '&a假人成功生成'
65 | # Jump cmd
66 | self-jump: '&c真人玩家不支援跳躍行為'
67 | # Lookat cmd
68 | empty-lookat: '&c找不到準星目標'
69 | # Doll Join Event
70 | owner-offline: '&c持有人離線中,使用預設前綴及後綴'
71 | # Disconnect Event
72 | doll-disconnect: '&9假人%a%已離線'
73 |
74 | # Version Query
75 | ver-query: '&7目前插件運作的版本是%a%'
76 | # Reloaded plugin
77 | reloaded: '&e重載完成'
78 |
79 | control-button:
80 | back: '&f返回'
81 | hint: '&2左鍵啟用$n&c右鍵停用'
82 | prev: '&f上一頁'
83 | curr: '&f當前:%a%/%b%'
84 | next: '&f下一頁'
85 |
86 | inv-name:
87 | backpack: "&l&e%a%的背包"
88 | data: "&l&e%a%的資料"
89 | gset: "&l&e%a%的全體設定"
90 | pset: "&l&e%a%的%b%設定"
91 | info: '&l&e%a%'
92 | set: "&l&e%a%的設定"
93 |
94 | info:
95 | set: '&9設定'
96 | gset: '&9全體設定'
97 | data: '&9資料'
98 | offline: '&c下線'
99 | remove: '&c刪除'
100 | remove-hint: '此假人的所有資料$n(經驗值、背包、終界箱)將會消失'
101 |
102 | uuid: '&eUUID:%a%'
103 | owner: '&5持有人:%a% (%b%)'
104 | hp: '&4HP:%a%/%b%'
105 | hunger: '&2飽食度:%a%/%b%'
106 | gamemode: '&7遊戲模式:%a%'
107 |
108 |
109 | set-menu:
110 | echest:
111 | name: '終界箱'
112 | desc: '&f開放終界箱予所有玩家'
113 | invulnerable:
114 | name: '無敵'
115 | desc: "&f使假人無視傷害及投射物,及無法仇恨$n在較高版本中的創造模式玩家仍可造成傷害"
116 | hostility:
117 | name: '敵對性'
118 | desc: "&f假人會否被怪物當作目標"
119 | pushable:
120 | name: '推動'
121 | desc: "&f假人會否被碰撞箱推動"
122 | gravity:
123 | name: '重力'
124 | desc: "&f使假人從空中墜落"
125 | glow:
126 | name: '高亮'
127 | desc: "&f應用發光效果"
128 | large_step_size:
129 | name: '步輻增加'
130 | desc: "&f使假人可越過1/0.6格高的方塊"
131 | phantom:
132 | name: '夜魅生成'
133 | desc: '&f假人會否生成夜魅'
134 | join_at_start:
135 | name: '自動加入'
136 | desc: '&f使假人在伺服器開啟時自動進入世界'
137 | hide_from_list:
138 | name: '列表隱藏'
139 | desc: '&f使假人不顯示於info指令的Tab補全列表'
140 | pickable:
141 | name: '拾取'
142 | desc: '&f使假人可否從世界獲得物品'
143 | real_player_tick_update:
144 | name: '真人Tick (實體更新)'
145 | desc: '&f使假人於網絡階段/實體階段Tick'
146 | real_player_tick_action:
147 | name: '真人Tick (動作更新)'
148 | desc: '&f使假人於封包階段/實體階段Tick'
149 | admin:
150 | name: '管理'
151 | desc: '&f開放此GUI的所有權限'
152 | inv:
153 | name: '背包'
154 | desc: '&f開放假人的背包權限'
155 | attack:
156 | name: '攻擊'
157 | desc: "&f開放假人的攻擊權限"
158 | use:
159 | name: '交互'
160 | desc: "&f開放假人的交互權限"
161 | mount:
162 | name: '騎乘'
163 | desc: "&f開放假人的騎乘權限"
164 | dismount:
165 | name: '下車'
166 | desc: "&f開放假人的下車權限"
167 | copy:
168 | name: 'Copy'
169 | desc: "&fSet Copy command"
170 | despawn:
171 | name: '下線'
172 | desc: "&f開放假人的下線權限"
173 | drop:
174 | name: '丟棄物品'
175 | desc: "&f開放假人的丟棄物品權限"
176 | exp:
177 | name: '經驗獲取'
178 | desc: "&f開放假人的經驗獲取權限"
179 | gset:
180 | name: '全體設定'
181 | desc: "&f開放假人的全體設定權限"
182 | jump:
183 | name: '跳躍'
184 | desc: "&f開放假人的跳躍權限"
185 | look:
186 | name: '視角設定'
187 | desc: "&f開放假人的視角設定權限"
188 | lookat:
189 | name: '注視'
190 | desc: "&f開放假人的注視權限"
191 | menu:
192 | name: '資訊頁'
193 | desc: "&f開放假人的資訊頁權限"
194 | move:
195 | name: '移動'
196 | desc: "&f開放假人的移動權限"
197 | pset:
198 | name: '個別設定'
199 | desc: "&f開放假人的個別設定權限"
200 | set:
201 | name: '設定'
202 | desc: "&f開放假人的設定權限"
203 | slot:
204 | name: '快捷欄'
205 | desc: "&f開放假人的快捷欄權限"
206 | sneak:
207 | name: '蹲下'
208 | desc: "&f開放假人的蹲下權限"
209 | spawn:
210 | name: '生成'
211 | desc: "&f開放假人的生成權限"
212 | sprint:
213 | name: '奔跑'
214 | desc: "&f開放假人的奔跑權限"
215 | stop:
216 | name: '停止'
217 | desc: "&f開放假人的停止權限"
218 | strafe:
219 | name: 'Strafe'
220 | desc: "&fSet strafe command"
221 | swap:
222 | name: '換手'
223 | desc: "&f開放假人的換手權限"
224 | tp:
225 | name: '傳送'
226 | desc: "&f開放假人的傳送權限"
227 | turn:
228 | name: '轉身'
229 | desc: "&f開放假人的轉身權限"
230 | unsneak:
231 | name: '解除蹲下'
232 | desc: "&f開放假人的解除蹲下權限"
233 | unsprint:
234 | name: '解除奔跑'
235 | desc: "&f開放假人的解除奔跑權限"
236 | # Not a command
237 | hidden:
238 | name: 湮滅
239 | desc: '&f設定玩家可否洞察假人'
240 |
241 | inv-menu:
242 | inv: '&7背包'
243 | real-inv: '&7實際背包'
244 | echest: '&d終界箱'
245 | level: '&e經驗'
246 |
247 | level-display: '&e等級:%a%'
248 | level-get: "&a按此以獲得1等級的經驗值"
249 |
250 | info-cmd:
251 | name: '假人: '
252 | uuid: 'UUID: '
253 | status-online: 在線
254 | status-offline: 離線
255 | owner: '持有人: '
256 | doll-setting: '[假人設定]'
257 | g-setting: '[全體設定]'
258 |
259 |
260 | cmd-hover:
261 | action-main: '主手物品: %a%'
262 | action-off: '副手物品: %a%'
263 | despawn: '位置: [%a% %b% %c%]'
264 | dismount: '正在騎乘: %a%'
265 | exp: '等級: %a%'
266 | give: '持有人: %a%'
267 | gset: '啟用:'
268 | look: '朝向: %a%'
269 | mount: '正在騎乘: %a%'
270 | pset: '已設定:'
271 | remove: '持有人: %a%'
272 | set: '啟用:'
273 | slot: '當前快捷欄: %a%'
274 | sneak: '蹲下: %a%'
275 | spawn: '持有人: %a%'
276 | sprint: '奔跑: %a%'
277 | tp: '位置: [%a% %b% %c%]'
278 | turn: '朝向: %a%'
279 |
--------------------------------------------------------------------------------