Skip to content

屏蔽功能

LyOptimize 用于让玩家按需屏蔽客户端收到的部分视觉效果、模型、消息和其他玩家。插件通过 /lo 指令切换各项屏蔽状态,并使用 PlaceholderAPI 变量返回当前状态。

插件项目使用 Java 8 编译,构建依赖中声明了 Paper API 1.16.5-R0.1-SNAPSHOT。PlaceholderAPI 为软依赖;需要使用状态变量时必须安装并启用 PlaceholderAPI。

功能概览

功能作用玩家是否可以单独切换
其他暴雪粒子屏蔽屏蔽其他来源的暴雪粒子效果
自身暴雪粒子屏蔽屏蔽自身产生的暴雪粒子效果
怪物暴雪粒子屏蔽屏蔽怪物产生的暴雪粒子效果
原版粒子屏蔽屏蔽服务端发送的原版粒子效果
模型屏蔽屏蔽全局模型显示
自定义消息屏蔽屏蔽配置中由玩家控制的消息关键词
玩家隐藏隐藏其他在线玩家
强制消息屏蔽按关键词屏蔽消息否,始终生效

各项屏蔽状态按玩家分别保存。执行对应指令会切换一次状态,再次执行即可恢复显示或接收。

指令

插件注册的主指令为 /lo

指令说明
/lo obp [玩家]屏蔽或显示其他暴雪粒子
/lo sbp [玩家]屏蔽或显示自身暴雪粒子
/lo mbp [玩家]屏蔽或显示怪物暴雪粒子
/lo par [玩家]屏蔽或显示全局原版粒子
/lo model [玩家]屏蔽或显示全局模型
/lo message [玩家]屏蔽或显示玩家可控消息
/lo player [玩家]隐藏或显示其他在线玩家

项目证据中仅声明了 /lo 主指令,未声明独立的权限节点,因此本文不列出未确认的权限名称。

粒子屏蔽

分类

子指令屏蔽对象
obp其他来源的暴雪粒子效果
sbp自身产生的暴雪粒子效果
mbp怪物产生的暴雪粒子效果
par服务端发送的原版粒子效果

par 只针对服务端发送的原版粒子效果,不代表所有自定义粒子或暴雪粒子效果。其他暴雪粒子效果需要使用 obpsbpmbp 对应的开关。

模型屏蔽

使用以下指令切换全局模型屏蔽:

text
/lo model [玩家]

开启屏蔽后,插件会尝试将附近生物模型设置为空;关闭屏蔽后恢复模型显示。

该功能针对全局模型显示,不等同于只隐藏某一个指定生物或某一个指定模型。

消息屏蔽

使用以下指令切换玩家可控消息屏蔽:

text
/lo message [玩家]

消息屏蔽分为两部分:

类型配置项生效方式
强制屏蔽hide-custom-message匹配关键词后直接屏蔽消息,不需要玩家开启开关
玩家可控屏蔽player-hide-custom-message玩家开启消息屏蔽后,匹配关键词的消息才不会发送给该玩家

配置中的消息不是普通的颜色代码文本,而是消息内容经过处理后的 JSON 文本。插件按照关键词进行匹配,因此配置关键词时应使用实际消息中能够匹配到的文字。

多个关键词使用 | 分隔时,同一组中的关键词需要同时匹配到消息,插件才会屏蔽整条消息。

玩家隐藏

使用以下指令切换玩家隐藏:

text
/lo player [玩家]

开启后,目标玩家看不到其他在线玩家;关闭后重新显示其他在线玩家。

PlaceholderAPI 变量

LyOptimize 声明了对 PlaceholderAPI 的软依赖。安装并启用 PlaceholderAPI 后,可以在菜单按钮名称、按钮描述或状态提示中使用以下变量。

变量返回内容
%lo_obp%其他暴雪粒子是否屏蔽,返回 §7屏蔽§a显示
%lo_sbp%自身暴雪粒子是否屏蔽,返回 §7屏蔽§a显示
%lo_mbp%怪物暴雪粒子是否屏蔽,返回 §7屏蔽§a显示
%lo_par%原版粒子是否屏蔽,返回 §7屏蔽§a显示
%lo_model%模型是否屏蔽,返回 §7屏蔽§a显示
%lo_message%自定义消息是否屏蔽,返回 §7屏蔽§a显示
%lo_player%其他玩家是否屏蔽,返回 §7屏蔽§a显示

配置文件

LyOptimize 的默认配置文件为 config.yml。以下配置项均来自插件项目中的默认配置。

数据库配置

配置项类型作用
mysql.enable布尔值是否启用数据库存储,默认值为 false
mysql.databasename文本数据库名称
mysql.username文本数据库用户名
mysql.password文本数据库密码
mysql.port数字数据库端口,默认配置为 3306
mysql.ip文本数据库地址,默认配置为 127.0.0.1

数据库开关需要重启服务器后生效。

使用 MySQL 存储时,必须安装 LyMySQLCore,并确保 LyMySQLCore 已成功连接数据库。只有在 LyMySQLCore 已安装且数据库连接成功后,相关 MySQL 存储功能才会生效;仅修改配置但未成功连接数据库时,相关功能不会生效。

状态提示消息

以下配置项用于自定义玩家切换状态时收到的提示消息。配置值支持插件当前配置中使用的颜色代码写法,例如 &7&a

配置项触发时机
message.hide-player开启玩家隐藏后
message.show-player关闭玩家隐藏后
message.hide-custom-message开启玩家可控消息屏蔽后
message.show-custom-message关闭玩家可控消息屏蔽后
message.hide-other-blizzard-particles开启其他暴雪粒子屏蔽后
message.show-other-blizzard-particles关闭其他暴雪粒子屏蔽后
message.hide-self-blizzard-particles开启自身暴雪粒子屏蔽后
message.show-self-blizzard-particles关闭自身暴雪粒子屏蔽后
message.hide-mob-blizzard-particles开启怪物暴雪粒子屏蔽后
message.show-mob-blizzard-particles关闭怪物暴雪粒子屏蔽后
message.hide-minecraft-particles开启原版粒子屏蔽后
message.show-minecraft-particles关闭原版粒子屏蔽后
message.hide-model开启模型屏蔽后
message.show-model关闭模型屏蔽后

强制消息屏蔽

配置项:

yaml
hide-custom-message:
  - '这是一条关键词|这是第二个关键词|第三个'

hide-custom-message 是强制屏蔽关键词列表。匹配到对应关键词后,消息会被屏蔽,不受玩家是否开启消息屏蔽影响。

玩家可控消息屏蔽

配置项:

yaml
player-hide-custom-message:
  - '关键词1|关键词2|关键词3'

player-hide-custom-message 是玩家可控屏蔽关键词列表。玩家使用 /lo message [玩家] 开启消息屏蔽后,匹配到对应关键词的消息才会被屏蔽。

关键词匹配规则

  • 每个列表项是一组匹配条件。
  • 同一列表项中的多个关键词使用 | 分隔。
  • 使用 | 分隔的关键词需要同时匹配到同一条消息。
  • 关键词应来自实际消息中可匹配的文字,而不是直接照搬普通颜色代码文本。
  • 如果配置后没有生效,应根据实际消息内容调整关键词。

状态保存

插件支持使用本地文件或 MySQL 保存玩家的屏蔽状态,具体保存方式由配置决定。

使用 MySQL 存储时必须满足以下条件:

  • 已安装 LyMySQLCore。
  • LyMySQLCore 已成功连接数据库。
  • 修改 mysql.enable 后已重启服务器。

未安装 LyMySQLCore、数据库连接失败或未重启服务器时,MySQL 存储不会生效。

菜单接入

这些切换指令适合接入设置菜单。菜单按钮执行对应的 /lo 子指令即可切换状态;按钮名称或描述可以使用 PlaceholderAPI 状态变量显示当前状态。

例如,模型和玩家隐藏状态可以分别使用 %lo_model%%lo_player% 获取。

常见问题

par 为什么没有屏蔽某些特效?

par 只针对服务端发送的原版粒子效果。其他暴雪粒子效果需要使用 obpsbpmbp 对应的开关。

消息关键词为什么没有生效?

请检查以下内容:

  • 关键词是否来自消息实际使用的 JSON 内容。
  • 关键词拼写是否与实际消息一致。
  • 同一组中使用 | 分隔的关键词是否都能在消息中匹配到。
  • player-hide-custom-message 对应的消息屏蔽开关是否已经开启。
  • 如果仍然无法屏蔽,请改用消息中更稳定、明确的文字片段。

强制屏蔽和玩家可控屏蔽有什么区别?

hide-custom-message 始终生效,匹配到关键词后直接屏蔽消息;player-hide-custom-message 只有在玩家开启 /lo message [玩家] 后才会对该玩家生效。

PlaceholderAPI 变量为什么没有返回内容?

请确认已经安装并启用 PlaceholderAPI。LyOptimize 仅声明了对 PlaceholderAPI 的软依赖,不会替代 PlaceholderAPI 提供变量解析功能。

MySQL 存储为什么没有生效?

请确认已经安装 LyMySQLCore,并且 LyMySQLCore 已成功连接数据库。mysql.enable 修改后还需要重启服务器;仅修改配置但未成功连接数据库时,相关 MySQL 存储功能不会生效。