1快速开始
FakePlayerPlugin 用来在服务器里放置不会掉线的"假玩家"。 常用来占住挂机位:本体不用一直开着,假人替你留在服务器里,保持在线状态并维持所在区块加载。
三步上手
- 把
FakePlayerPlugin.jar放入plugins/目录并重启服务器。 - 站在你想放假人的位置,执行
/fp add 假人名字。 - 用
/fplist确认已创建;不想要了就/fpr 名字移除。
/fp、/fp add、/fp gui 谁都能用;
每个玩家默认 2 个免费名额。移除别人创建的假人、一次清空全部 才需要管理员权限。
2假人名字与防冒充
假人和真实玩家共用同一个名字空间(TAB、头顶、/lookup 都按名字找人),
所以假人的名字是保留段:由插件统一加前缀,玩家没法用同名账号混进来。
自动前缀
执行 /fp add Steve,真正创建的假人叫 FP_Steve。
前缀由 format.name-prefix 决定(默认 FP_);
如果名字里已经带了前缀(/fp add FP_Foo),不会再叠一层变成 FP_FP_Foo。
显示格式
头顶和 TAB 的名字可以单独配,默认是 &7[&b假人&7] &f%name%,
%name% 会被替换成假人名字,支持 & 颜色码。
防冒充
真实玩家登录时,只要命中下面任何一条,在进服之前就被拒绝:
| 情况 | 结果 |
|---|---|
名字落在保留前缀里(如 FP_xxx) | 拒绝登录:这是假人专用的名字前缀 |
| 名字和已有假人重名(不区分大小写) | 拒绝登录:服务器里已经有一个同名假人 |
usercache.json,也不会让你以后建假人时误判成「这是真实玩家」。
名字规则
| 规则 | 说明 |
|---|---|
| 长度 ≤ 16 | 1.12.2 协议硬上限,超了会让同世界玩家客户端解码失败掉线 |
只用 A-Z a-z 0-9 _ | 不能有空格、点、颜色码 |
| 不区分大小写查重 | FP_Steve 和 FP_steve 视为同一个 |
| 不能是真实玩家名 | 读服务器本地玩家名册判断;读不出来时拒绝创建(宁可不让建,也不占真人名字) |
| 保留词黑名单 | admin、server、all、op、notch 等不能当假人名 |
配置
| 配置项 | 说明 |
|---|---|
format.name-prefix | 假人专用前缀,默认 FP_ |
format.overhead | 头顶显示格式 |
format.tab | TAB 列表显示格式 |
format.block-impersonation | 是否拦截冒充登录,默认开 |
format.migrate-legacy | 老假人是否自动改名成带前缀的,默认开 |
spawn.gamemode | 假人的游戏模式,默认 CREATIVE(创造)。改成 SURVIVAL 才会被怪打死 |
spawn.invulnerable | 假人是否无敌,默认开(除 /kill 与掉虚空) |
a_),所有以它开头的真人账号都会进不来;
把前缀留空则等于关掉防冒充。想改的话先用 /fpr 清掉旧假人再换。
假人会不会被怪打死
不会。假人默认是创造模式 + 无敌:僵尸、骷髅、苦力怕都打不死它, 怪物甚至不会把它当目标。这样假人挂机时不会因为一次夜袭就消失。
| 配置 | 默认 | 效果 |
|---|---|---|
spawn.gamemode | CREATIVE | 创造模式,怪物不攻击;填 SURVIVAL 会像真人一样被打死 |
spawn.invulnerable | true | 除了 /kill 和掉虚空,任何伤害都无效 |
生成时服务器日志会打一行 [假人] FP_Linux 游戏模式 = CREATIVE,无敌 = true,
想知道当前是什么模式看这行就行。
老假人怎么办(自动改名)
升级前创建的假人(比如 LtTestCarol)名字和真人一样。为了统一成新格式,
插件会在开服 / /fpreload 时自动把 data.yml 里的名字改掉:
| 改之前 | 改之后 |
|---|---|
LtTestCarol | FP_LtTestCarol |
Linux | FP_Linux |
只动名字:世界、坐标、朝向、创建者、创建时间、三个单假人开关、开/关状态全部原样保留, 关掉的假人改名后依然是关闭状态 —— 是整段搬到新键下,不是重建。
/fp add 重建。
不想自动改名,把 format.migrate-legacy 设为 false ——
老假人照常能用、同样受防冒充保护,只是名字不带前缀(日志会提醒一次)。
改名会释放旧名字:改完之后真人可以注册 LtTestCarol 了(那已经不再是假人)。
如果有别的插件、脚本或白名单里写着老名字,记得同步改过来;InTheNameOfLinux 的
假人联动会自动跟上。
3命令详解
| 命令 | 说明 | 权限 |
|---|---|---|
/fp | 打开假人管理面板(没装 LinuxChestGUI 时显示插件信息) | 所有人 |
/fp add <名字> | 在当前位置创建一个假人(受名额限制,名字会自动套上假人前缀) | 所有人 |
/fp gui | 打开假人管理面板(装了 LinuxChestGUI 才有这条) | 所有人 |
/fp help | 显示帮助菜单 | 所有人 |
/fplist | 列出服务器上所有假人 | OP |
/fpr <名字> | 移除指定假人 | OP |
/fpr all | 移除全部假人 | OP |
/fpreload | 重载插件配置 | OP |
/fpsave | 手动保存假人数据 | OP |
/fp <名字>、/fakeplayer <名字> 都不再创建假人,
打进去只会回一句「未知子命令」并给出用法。必须写成 /fp add <名字>
—— 否则名字和 add / gui / help 这些子命令会互相打架。
完整命令名
上面都是简写,完整命令名如下(两套都可以用):
| 简写 | 完整命令名 | 其它别名 |
|---|---|---|
/fp | /fakeplayer | — |
/fplist | /fakeplayerlist | /fpl |
/fpr | /fakeplayerremove | /fpremove |
/fpreload | /fakeplayerreload | — |
/fpsave | /fakeplayersave | — |
4使用技巧
假人会一直在原地吗
会。假人创建在你执行命令时所站的位置,之后不会自己走动。 插件会强制加载它所在的区块,所以不会因为区块卸载而掉进虚空。
怎么让假人换个位置
直接 /fpr 名字 移除,然后走到新位置重新 /fp add 名字 创建。
目前不支持直接移动已有假人。
服务器重启后假人还在吗
在。假人数据会写入配置文件,启动后插件分三次延迟加载
(40 / 100 / 200 tick),避免和其它插件抢加载时序。
如果发现假人没回来,先执行 /fplist 确认,再 /fpsave 手动存一次。
会不会被登录插件踢掉
不会。插件兼容 AuthMe,假人不参与登录验证流程, 不会被登录插件判定为"未登录玩家"而踢下线。
/linux lookup <假人名> 会识别出这是假人,
并显示创建者;/linux fp 可以查看假人联动状态,
/linux fpsync 手动同步假人数据。
5配置与数据
数据文件
假人数据保存在插件目录下,一般不需要手动编辑:
| 文件 | 内容 |
|---|---|
fakeplayers.yml | 所有假人的名字、位置、创建者 |
手动保存
插件会在数据变化时自动保存。如果刚做了大量增删、想立刻落盘,
执行 /fpsave。
重载
改了配置后执行 /fpreload,不会删除已有假人。
fakeplayers.yml 里的坐标容易把假人放到未加载的区块,
导致它卡在墙里或掉出世界。要换位置请用命令重新创建。
6名额与购买
普通玩家创建假人是有限额的,避免一个人把常驻区块吃满。
| 项目 | 默认值 | 配置键 |
|---|---|---|
| 免费名额 | 2 个 | limits.default |
| 名额上限 | 5 个 | limits.max |
| 单个价格 | 600 点卷 | limits.buy-price |
| 最多可买 | 3 个 | limits.buy-max |
| 免限额权限 | fakeplayer.bypass | limits.bypass-permission |
怎么买
- 游戏里输入
/pshop打开点券商店 - 点特殊商品
- 点假人名额 +1,扣 600 点卷并立刻到账
名额记在 plugins/FakePlayerPlugin/quota.yml,
和假人数据分开存,删假人不会退名额。
/lchest → 假人管理 → 购买名额 只是把你送到点券商店,
真正的扣费只发生在商店里 —— 不会出现两边各自扣一次的情况。
fakeplayer.bypass 权限的账号创建假人不占名额,
也不受 max-fake-players 总数上限约束。
7单假人配置
三个功能开关是每个假人各管各的,不是全局的:
/lchest → 假人管理 → 假人列表 → 点某个假人 → 假人设置。
| 开关 | 作用 | 存到 data.yml |
|---|---|---|
| 区块常驻 | 把它注册进 PlayerChunkMap,周围区块真正在 tick | chunk-loaded |
| 原版刷怪 | 参与原版刷怪:服务端把它当真玩家,群系 / 亮度 / 结构全按原版 | mob-spawning |
没被单独改过的假人不写这三个键,直接跟随 config.yml 的
keep-loaded-chunks / mob-spawning.enabled /
mob-spawning.require-covered —— 面板上会显示「未单独设置(跟随全局)」。
removePlayer),
再打开会重新注册,不用重启服务器。
8常见问题
/fplist 确认它是否还在记录里。
如果记录里有但看不到,多为区块未加载或客户端视野问题;
如果记录里也没有,说明数据没保存成功,重新创建并用 /fpsave 存一次。
/fp add 名字 创建。
数量很多时注意服务器性能,每个假人都会占用少量资源并强制加载所在区块。
/fpr all。该操作不可撤销,会立即移除全部假人。
9生物保活(keep)
把生物命名为 keep,它就不会被原版刷掉。
怎么做
- 拿一个命名牌,改名为
keep - 右键目标生物(末影螨、蠹虫、蝙蝠、任何可命名生物)
- 聊天栏立即收到:
[FakePlayer]生物将会被Linux的插件保护!
keep 就算(不区分大小写),
所以 keep、Keep、§akeep、myKeep 都行。
为什么需要
原版很多生物都有 despawn 机制:周围一定距离内没有玩家时会被随机删除。
命名牌改名本身并不会阻止这件事 —— 必须显式关掉
removeWhenFarAway 并打开 persistent。
实现方式
| 触发 | 动作 |
|---|---|
| 生物生成(EntitySpawnEvent) | 名字含 keep → 立即加保护 |
| 命名牌改名 | 下一 tick 检查新名字 → 加保护 + 给操作者回执 |
| 每 20 秒补扫 | 遍历已加载实体,覆盖区块重载等情况 |
配置
| 配置项 | 说明 |
|---|---|
keep-entity.scan-seconds | 补扫间隔(秒),默认 20 |
keep-entity.debug | 后台打印每轮维护了多少生物 |
remove() 实体(清理任务),那是拦不住的,需要在那个插件里加白名单。