MEBFloatingText

原创 插件 MEBFloatingText 1.2.0

请登录后获取
[MD] # 更新日志 ## [1.2.0] 配合 MEBTerritory(领地系统)的功能版本:新增浮空字归属权与插件托管机制,并开放公开 API。 数据无需迁移,直接替换插件即可。老数据缺少「所有者」「托管插件」两个键时按服务器公共浮空字处理。 ### 归属权 每条浮空字新增可选的户主,管理权限判定如下。 | 浮空字 | 可执行隐藏 / 移动 / 删除 / 修改样式 | | --- | --- | | 无户主(服务器公共) | 最高权限、OP | | 有户主 | 户主本人、最高权限 | | 被插件托管 | 同上,且内容不可手动修改 | - 最高权限的判定满足以下任一条件即可:控制台、持有 `MEBFloatingText.master` 权限节点、为 MEBSociety 的「最高权限」。 - 手动创建的浮空字不记录户主,归属服务器公共。如需指定归属,使用 `/mebft owner`。 ### 插件托管 - 浮空字可标记为由指定插件托管,内容由该插件生成并刷新。 - 托管中的浮空字不允许手动修改内容,其余操作(隐藏、移动、删除)不受限制。 ### 新增指令 | 子指令 | 别名 | 用法 | 说明 | 权限 | | --- | --- | --- | --- | --- | | `owner` | `归属` `户主` | `/mebft owner <id> [玩家名\|-]` | 查看或修改浮空字户主,`-` 为改回服务器公共 | 查看:所有人<br>修改:**仅最高权限** | ### 新增权限节点 | 节点 | 默认 | 说明 | | --- | --- | --- | | `MEBFloatingText.master` | `false` | 管理任意浮空字,包括修改归属 | ### 公开 API 新增 `MengBao\MEBFloatingText\API\FloatingTextAPI`,供其他插件调用。 ```php use MengBao\MEBFloatingText\API\FloatingTextAPI; if (FloatingTextAPI::isAvailable()) { FloatingTextAPI::put("territory_7", $worldName, $position, $lines, "mengbao", "MEBTerritory"); } ``` | 方法 | 说明 | | --- | --- | | `isAvailable()` | MEBFloatingText 是否已装且已启用 | | `put($id, $world, $position, $lines, $owner, $managedBy)` | 新建或更新一条托管浮空字 | | `setLines($id, $lines)` | 仅更新内容 | | `remove($id)` / `exists($id)` / `get($id)` | 删除 / 判断存在 / 获取对象 | | `setOwner($id, $owner)` | 修改户主,`null` 为改回服务器公共 | | `listManagedIds($pluginName)` | 获取指定插件托管的全部 id | | `listOwnedIds($playerName)` | 获取指定玩家名下的全部 id | - `put()` 为「新建或更新」语义。目标已存在时保留其对齐、宽度、行间距与显示开关。 - 更新时若世界发生变化,先移除旧世界中的实体。 - 未安装 MEBFloatingText 时 `isAvailable()` 返回 `false`,其余方法返回 `false` 或空数组,不抛出异常。建议以 `softdepend` 方式引用。 ### 其他改动 - GUI 按归属显示按钮:无管理权限的浮空字不显示管理按钮,托管中的浮空字不显示「编辑文本内容」按钮,列表中标注户主名。 - GUI 的修改操作在提交时重新校验权限。 - `info` 与 GUI 详情新增「户主」「托管插件」两行。 - 语言键缺失时回退至插件包内置语言文件,升级后新增的语言键无需手动补齐。 ### 数据变更 `FloatingTexts.yml` 的每条浮空字新增两个可选键。 | 键 | 含义 | | --- | --- | | 所有者 | 户主(小写玩家名),`~` 为服务器公共浮空字 | | 托管插件 | 托管插件名,`~` 为无托管 | [/MD]
后退
顶部 底部