fakeplayer

一个用于 Minecraft 服务器的插件,可以生成虚假玩家,灵感来自 Carpet Mod。

资源图片
# FakePlayer 这是一个受 [Carpet-Mod](https://github.com/gnembon/fabric-carpet) 启发的服务器端插件,适用于 Minecraft `1.20.x` 和 `1.21.x` 及更高版本。 [点击这里](https://youtu.be/NePaDz-P5nI) 观看演示视频。 ## 特性 + 允许你生成看起来像真实玩家的虚假玩家,他们可以保持区块加载 + 虚假玩家可以通过香草命令和插件命令(如 `/ban`、`/tp`)进行重新复活 + 你可以通过 `/fp invsee` 或右键点击它们来打开和编辑他们的物品栏 + 你可以完全控制他们的移动、跳跃、攻击……更好的方式是什么?让它周期性执行 + 每个玩家可以配置自己的个性化设置 ## 要求 + [Paper](https://papermc.io) 或 [Purpur](http://purpurmc.org) 软件 + [CommandAPI](https://commandapi.jorel.dev) 插件 ## 配置文件 **Fakeplayer 仅生成一个名为 `config.tmpl.yml` 的模板配置文件。** 你需要将此文件重命名为 `config.yml` 作为你的配置文件。 这种方法可以在升级时让你预览新内容。 ## 命令 | 命令 | 描述 | 权限 | 备注 | |---------------|-------------------------------------------|------------------------------|-----------------------------------------------------------------| | /fp spawn | 生成一个虚假玩家 | fakeplayer.command.spawn | | | /fp kill | 杀死一个虚假玩家 | fakeplayer.command.kill | | | /fp killall | 杀死服务器上的所有虚假玩家 | OP | | | /fp select | 将一个虚假玩家设置为默认 | fakeplayer.command.select | 当生成了超过 1 个虚假玩家时可用 | | /fp selection | 查看选定的虚假玩家 | fakeplayer.command.selection | 只有当生成了超过 1 个虚假玩家时可用 | | /fp list | 列出已生成的虚假玩家 | fakeplayer.command.list | | | /fp distance | 显示与虚假玩家的距离 | fakeplayer.command.distance | | | /fp drop | 掉落手中的物品 | fakeplayer.command.drop | | | /fp dropstack | 掉落手中的物品堆栈 | fakeplayer.command.dropstack | | | /fp dropinv | 掉落物品栏中的所有物品 | fakeplayer.command.dropinv | | | /fp skin | 从其他玩家复制皮肤 | fakeplayer.command.skin | 从离线玩家复制时有 60 秒的冷却时间 | | /fp invsee | 打开虚假玩家的物品栏 | fakeplayer.command.invsee | 右键点击虚假玩家具有相同效果 | | /fp sleep | 睡觉 | fakeplayer.command.sleep | | | /fp wakeup | 醒来 | fakeplayer.command.wakeup | | | /fp status | 显示玩家状态 | fakeplayer.command.status | | | /fp respawn | 重新复活一个死亡的虚假玩家 | fakeplayer.command.respawn | 当服务器配置未在虚假玩家死亡时踢出时可用 | | /fp tp | 传送到一个虚假玩家 | fakeplayer.command.tp | | | /fp tphere | 将一个虚假玩家传送到你 | fakeplayer.command.tphere | | | /fp tps | 与虚假玩家交换位置 | fakeplayer.command.tps | | | /fp set | 更改一个虚假玩家的配置 | fakeplayer.command.set | | | /fp config | 更改默认配置 | fakeplayer.command.config | | | /fp expme | 转移经验到你 | fakeplayer.command.expme | | | /fp attack | 攻击 | fakeplayer.command.attack | | | /fp mine | 挖掘 | fakeplayer.command.mine | | | /fp use | 使用/互动/放置 | fakeplayer.command.use | | | /fp jump | 跳跃 | fakeplayer.command.jump | | | /fp stop | 停止所有操作 | fakeplayer.command.stop | | | /fp turn | 转身 | fakeplayer.command.turn | | | /fp look | 看着指定位置 | fakeplayer.command.look | | | /fp move | 移动 | fakeplayer.command.mvoe | | | /fp ride | 骑乘 | fakeplayer.command.ride | | | /fp sneak | 潜行 | fakeplayer.command.sneak | | | /fp sprint | 冲刺 | fakeplayer.command.sprint | | | /fp swap | 交换主手和副手物品 | fakeplayer.command.swap | | | /fp hold | 保持对应热条物品 | fakeplayer.command.hold | | | /fp cmd | 执行命令 | fakeplayer.command.cmd | | | /fp reload | 重新加载配置文件 | OP | | ## 个性化配置 **每个玩家**可以配置自己的**个性化**设置,将在下次生成时生效 命令示例: + `/fp config list` - 查看所有个性化配置 + `/fp config set collidable false` - 设置个性化配置 | 配置项目 | 备注 | |--------------------|-------------------------------------------------------------------------------------------------------------------------------------| | collidable | 是否启用碰撞盒 | | invulnerable | 是否启用无敌模式 | | wolverine | 是否启用超级治疗模式 | | look_at_entity | 自动看向附近的攻击性实体(包括玩家),可以与 `attack` 结合使用以自动攻击怪物 | | pickup_items | 是否拾取物品 | | skin | 是否使用你的皮肤 | | replenish | 是否自动补充 | | autofish | 是否自动钓鱼 | ## 权限
点击查看 每个命令都有自己的权限节点,但我们提供了权限包 ### 权限 `fakeplayer.spawn` `fakeplayer.spawn` 包含以下权限: - fakeplayer.command.spawn - 创建虚假玩家 - fakeplayer.command.kill - 杀死虚假玩家 - fakeplayer.command.list - 列出虚假玩家 - fakeplayer.command.distance - 查看距离 - fakeplayer.command.select - 选择虚假玩家 - fakeplayer.command.selection - 查看选定的虚假玩家 - fakeplayer.command.drop - 掉落物品 - fakeplayer.command.dropstack - 掉落整个物品堆栈 - fakeplayer.command.dropinv - 掉落物品栏中的所有物品 - fakeplayer.command.skin - 复制皮肤 - fakeplayer.command.invsee - 查看物品栏 - fakeplayer.command.status - 查看状态 - fakeplayer.command.respawn - 重新复活虚假玩家 - fakeplayer.command.config - 设置默认设置 - fakeplayer.command.set - 设置虚假玩家设置 ### 权限 `fakeplayer.tp` `fakeplayer.tp` 包含以下权限: - fakeplayer.command.tp - fakeplayer.command.tphere - fakeplayer.command.tps ### 权限 `fakeplayer.action` `fakeplayer.action` 包含以下权限: - fakeplayer.command.attack - 攻击 - fakeplayer.command.mine - 挖掘 - fakeplayer.command.use - 使用 - fakeplayer.command.jump - 跳跃 - fakeplayer.command.sneak - 潜行 - fakeplayer.command.sprint - 冲刺 - fakeplayer.command.look - 看着 - fakeplayer.command.turn - 转身 - fakeplayer.command.move - 移动 - fakeplayer.command.ride - 骑乘 - fakeplayer.command.swap - 交换主手和副手物品 - fakeplayer.command.sleep - 睡觉 - fakeplayer.command.wakeup - 醒来 - fakeplayer.command.stop - 停止所有操作 - fakeplayer.command.hold - 切换热条 - fakeplayer.config.replenish - 自动补充 - fakeplayer.config.replenish.chest - 自动补充时可以从附近的箱子补充 - fakeplayer.config.autofish - 自动钓鱼 如果你的服务器没有限制各种玩家命令,你可以直接使用此。 `fakeplayer.basic` 包含所有安全的权限,除了 `/fp cmd` 命令。
## 占位符变量 + `%fakeplayer_total%`: 虚假玩家总数 + `%fakeplayer_creator%`: 虚假玩家的创建者姓名 + `%fakeplayer_actions%`: 虚假玩家的活动操作,例如:`USE|ATTACK` # 自定义翻译 1. 在 `plugins/fakeplayer` 中创建 `message` 文件夹 2. 将 [此文件](fakeplayer-core/src/main/resources/message/message.properties) 复制到 `message` 文件夹 3. 将文件重命名为 `message_language_region.properties`,例如 `message_en_us.properties` 4. 编辑你的 `config.yml`,将 `i18n.locale` 设置为刚刚创建的名称后缀,例如 `en_us` 5. 键入 `/fp reload-translation` 重新加载翻译文件。 如果你更改了 `i18n.local` ,你应该先 `/fp reload` **确保翻译文件使用 UTF-8 编码** # 常见问题 ## xxx 丢失连接:PacketEvents 2.0 注入失败 某些插件更改了虚假玩家的 `Connection`,你可以将 `prevent-kicking` 设置为 `ALWAYS` 来解决它。 ```yaml # config.yml prevent-kicking: ALWAYS ``` ## 虚假玩家没有吸引攻击 默认情况下,虚假玩家处于无敌模式。玩家需要手动关闭无敌模式,使用 `/fp config set invulnerable false` 来吸引攻击。关闭后,他们将 收到饥饿和生命值影响。你可能需要使用 `res` 或信标来确保虚假玩家的 `hunger` 和 `health`。 ## 虚假玩家过一段时间后会自动登出 这可能是由于类似 `AutheMe` 的插件检测到虚假玩家已经很长时间没有登录。你可以在配置文件的 `self-commands` 中包含登录命令,以防止插件 因为长时间不活动而将玩家从服务器踢出: ```yaml # 注意:你应该使用复杂的密码,否则 AuthMe 可能拒绝它 self-commands: - '/register abc123! abc123!' - '/login abc123!' ```