Skip to content

优化 LyOptimize

LyOptimize 是一个面向 DragonCore 客户端显示效果的优化插件。插件通过服务端数据包监听和 DragonCore 客户端通信,允许管理员按玩家单独关闭部分客户端内容,减少模型、粒子、聊天消息和其他玩家实体带来的显示开销。

插件包含 LyOptimizeLyOptimize-Core 两个构件。LyOptimize 负责插件入口和授权相关逻辑,LyOptimize-Core 负责服务端功能、玩家数据和数据包监听。

MySQL 前置要求

启用 MySQL 存储时,必须安装 LyMySQLCore,并确认它已经成功连接数据库。只有在配置开启 MySQL 且数据库连接成功时,玩家设置才会读写 MySQL;否则插件会使用本地 YAML 文件保存数据。

插件信息

项目内容
插件名LyOptimize
项目版本1.0.2
作者离渊
主命令/lo
软依赖PlaceholderAPI
编译目标Java 8
编译 APIPaper API 1.16.5-R0.1-SNAPSHOT
NMS 代码引用v1_12_R1

项目证据没有提供完整的服务端版本兼容列表。代码同时使用 Paper API 1.16.5-R0.1-SNAPSHOTv1_12_R1 NMS 类,实际运行兼容性应以插件发布包及对应服务端环境为准。

依赖与运行组件

组件类型说明
DragonCore必需运行组件插件使用 DragonCore 的客户端通信、模型和粒子接口。
ProtocolLib必需运行组件插件使用 ProtocolLib 监听服务端聊天、原版粒子、实体元数据和 DragonCore 自定义数据包。
LyMySQLCoreMySQL 前置仅在启用 MySQL 存储时必须安装,并且必须成功连接数据库。
PlaceholderAPI软依赖用于提供 LyOptimize 变量。

功能

功能说明
隐藏其他玩家对指定玩家隐藏在线玩家,减少客户端可见玩家实体。
屏蔽 DragonCore 模型对指定玩家隐藏实体的 DragonCore 模型;关闭屏蔽后刷新当前世界中的实体模型。
屏蔽其他暴雪粒子屏蔽来源为其他玩家,或无法识别为自身、玩家和怪物的 DragonCore 暴雪粒子。
屏蔽自身暴雪粒子屏蔽来源为当前查看玩家自身的 DragonCore 暴雪粒子。
屏蔽怪物暴雪粒子屏蔽来源为怪物实体的 DragonCore 暴雪粒子。
屏蔽原版粒子取消发送到玩家客户端的原版世界粒子数据包。
屏蔽自定义消息根据聊天消息 JSON 内容匹配关键词并取消发送消息。
强制消息屏蔽通过 hide-custom-message 对所有玩家强制屏蔽匹配消息。
玩家消息屏蔽通过 player-hide-custom-message,仅对开启自定义消息屏蔽的玩家生效。
玩家设置保存保存七项独立的玩家屏蔽开关。
YAML 存储MySQL 未启用或连接不可用时,将玩家数据保存到插件数据目录下的独立 YAML 文件。
MySQL 存储MySQL 开启且连接成功时,将玩家数据保存到以插件名命名的数据表。
PlaceholderAPI 变量返回各项屏蔽开关的当前显示状态,可用于菜单或状态文本。

支持版本

项目文件明确记录的构建环境如下:

项目支持信息
JavaJava 8
Bukkit APIPaper API 1.16.5-R0.1-SNAPSHOT
NMSnet.minecraft.server.v1_12_R1

项目没有提供完整的服务端版本列表。由于核心代码直接引用 v1_12_R1 NMS,使用其他服务端版本前需要确认插件发布包是否包含对应适配。

玩家设置

插件为每名玩家保存以下七项开关,初次读取时默认均为 false

数据键对应功能默认值
hideSelfBlizzardParticles屏蔽自身暴雪粒子false
hideOtherBlizzardParticles屏蔽其他暴雪粒子false
hideMobBlizzardParticles屏蔽怪物暴雪粒子false
hideModel屏蔽模型false
hideMinecraftEffect屏蔽原版粒子false
hideCustomMessage屏蔽自定义消息false
hidePlayer隐藏其他玩家false

玩家数据会在玩家进入服务器时读取,在玩家退出或设置发生变化时保存。启用 MySQL 时,只有 LyMySQLCore 已安装并成功连接数据库,MySQL 读取和保存才会生效。

指令

插件在 plugin.yml 中注册主命令 /lo。代码中的指令权限判断使用管理员身份判断,执行者需要是 OP;项目没有声明独立的 Bukkit 权限节点。

带有 [玩家] 参数的指令要求目标玩家在线,并且目标玩家已经完成数据加载。

指令说明执行要求
/lo查看 LyOptimize 指令帮助。OP
/lo reload重载配置和数据包监听器。OP
/lo obp [玩家]切换目标玩家的其他暴雪粒子屏蔽。关闭时清理目标玩家当前已存在的相关粒子。OP,目标在线
/lo mbp [玩家]切换目标玩家的怪物暴雪粒子屏蔽。关闭时清理目标玩家当前已存在的相关粒子。OP,目标在线
/lo sbp [玩家]切换目标玩家的自身暴雪粒子屏蔽。关闭时清理目标玩家当前已存在的相关粒子。OP,目标在线
/lo par [玩家]切换目标玩家的全局原版粒子屏蔽,仅处理服务端发送的原版粒子效果。OP,目标在线
/lo model [玩家]切换目标玩家的全局模型屏蔽,并刷新目标玩家当前世界中的生物模型。OP,目标在线
/lo message [玩家]切换目标玩家的自定义消息屏蔽。OP,目标在线
/lo player [玩家]切换目标玩家的隐藏其他玩家功能。OP,目标在线

配置文件

主配置文件为 plugins/LyOptimize/config.yml,包含以下配置组:

配置组用途
mysql配置玩家设置的 MySQL 存储。数据库开关需要重启服务器。
message配置切换屏蔽功能时发送给目标玩家的提示。
hide-custom-message配置对所有玩家强制生效的聊天消息关键词。
player-hide-custom-message配置仅在玩家开启自定义消息屏蔽后生效的聊天消息关键词。

详细配置键、消息内容和关键词匹配规则请查看配置说明

数据与生效范围

LyOptimize 的屏蔽开关属于查看玩家自己的客户端显示设置:管理员切换的是目标玩家的显示状态,不是全服统一状态。

项目生效方式
DragonCore 暴雪粒子根据粒子数据包中的来源 UUID 或位置字段判断来源,再按照自身、其他玩家和怪物分类处理。
原版粒子监听服务端 WORLD_PARTICLES 数据包,开启后直接取消发送。
自定义消息检查服务端聊天数据包中的 JSON 内容,匹配关键词后取消发送。
DragonCore 模型监听实体元数据数据包,并向目标客户端发送空模型;关闭时重新发送实体模型。
其他玩家使用 Bukkit 的玩家显示控制,对目标玩家隐藏或显示在线玩家。

页面索引

页面内容
配置说明MySQL、提示消息和聊天关键词配置。
屏蔽功能玩家隐藏、模型、暴雪粒子、原版粒子和消息屏蔽的处理机制。
插件变量PlaceholderAPI 变量及返回值。
常见问题数据保存、依赖、消息匹配和屏蔽效果排查。
更新日志插件版本更新记录。