Skip to content

FakePlayer-CE.Build6

Choose a tag to compare

@EndlessPixel EndlessPixel released this 11 Sep 09:25
· 163 commits to master since this release

FakePlayer-CE.Build6

Fake Player Entity Removal Fix & Full Leaf Compatibility Polish
This release fixes the core issue that fake players could not be completely removed from the server, thoroughly optimizes the fake player cleanup logic, perfects compatibility with all modern Leaf forks, and inherits all stability fixes from Build5.
Highlights

  • Complete Fake Player Removal: Overhauled fake player cleanup logic, truly deregisters fake player entities from the server via native NMS methods, completely resolving the residual fake player issue.
  • Full Leaf Fork Compatibility: Adapted to Leaf’s special CraftServer#getServer() return logic, ensuring removal commands work normally on all Leaf versions.
  • Iterative Optimization Based on Build5: Inherits all Build5 fixes, including Leaf spawn exception fixes and CommandAPI 12.0.0 adaptation, for more stable overall performance.
    Critical Fixes
  • Fixed fake players cannot be completely removed (Issue #3): Traditional Player.kick() is a no-op for custom NetworkManager-injected fake players. The old logic only cleared internal plugin records but did not disconnect server-side entities. The new cleanup process calls NMS native PlayerList.remove(ServerPlayer) to permanently deregister fake player entities from the server. Fully compatible with Leaf forks that directly return PlayerList via CraftServer#getServer().
  • Inherited Build5 Compatibility Fix: Resolved ClassCastException when executing/fp spawn on Leaf 1.21.11 / 26.2, fixing the type conversion error between DedicatedPlayerList and MinecraftServer.
    Important Notes
  • Vanilla native /kick command cannot affect fake players by design, as fake players do not occupy real server connections.
  • Please use the dedicated plugin commands /fp kill or /fp killall to remove fake player entities.
    Usage
  • Java: 21+ (Java 25 recommended for 26.x support)
  • Server: Paper / Leaf 1.20.1+ (Purpur compatible)
  • API: CommandAPI 12.0.0+ (Mandatory dependency)
    Credits
  • CE Maintenance: @EndlessPixel

FakePlayer-CE.Build6 —— 假人彻底移除修复与 Leaf 兼容性完善

假人实体彻底移除修复、全版本 Leaf 分支兼容优化
本次更新修复了假人无法从服务器彻底删除的核心问题,全面重构假人清理逻辑,完善对全系现代 Leaf 服务端分支的适配,并继承 Build5 所有稳定性修复内容。
核心特性

  • 假人彻底移除机制:全面改版假人清理逻辑,通过 NMS 原生方法从服务端注销假人实体,彻底解决假人残留、无法删除的问题。
  • 全量 Leaf 分支兼容:适配 Leaf 服务端 CraftServer#getServer() 特殊返回逻辑,确保假人删除指令在所有 Leaf 版本正常生效。
  • 迭代继承 Build5 修复:完整保留 Build5 所有修复内容,包含 Leaf 假人生成异常修复、CommandAPI 12.0.0 适配,整体运行更稳定。
    关键修复
  • 修复假人无法彻底移除问题(Issue #3):插件假人通过自定义 NetworkManager注入服务端,原生 Player.kick() 对假人连接为空操作。旧版逻辑仅清空插件内部记录,未真正断开服务端实体。新版清理流程调用 NMS 原生 PlayerList.remove(ServerPlayer),可从服务器彻底注销假人实体,同时完美适配 CraftServer#getServer() 直接返回PlayerList 的 Leaf 分支服务端。
  • 继承 Build5 兼容性修复:解决 Leaf 1.21.11 / 26.2 版本中,执行 /fp spawn 出现的类型转换异常,修复 DedicatedPlayerList 无法转换为 MinecraftServer 的报错。
    重要说明
  • 服务端原版 /kick 指令对假人无效,属于设计特性,原因是假人并非真实客户端连接。
  • 移除假人请使用插件专属指令:/fp kill(移除单个假人)或 /fp killall(移除所有假人)。
    使用要求
  • Java: 21+(26.x 服务端推荐使用 Java 25)
  • 服务端: Paper / Leaf 1.20.1+(兼容 Purpur 服务端)
  • 前置依赖: CommandAPI 12.0.0 及以上(必需前置)
    鸣谢
  • CE 维护: @EndlessPixel