# SimplePrefixes

一个旨在允许玩家选择简单的前缀,以便在聊天中使用!
# 要求
- Paper 服务器 (例如:[PurpurMC](https://purpurmc.org/))
- 此插件利用了 Paper 的 Mini-Message。
- [PlaceholderAPI 插件](https://github.com/PlaceholderAPI/PlaceholderAPI)
# 功能

- 玩家友好的 GUI 用于选择昵称。
- 不直接与其他插件交互。
- 插件使用并持有占位符中的前缀,不会影响权限组 / 元数据。
- 支持 PlaceholderAPI 占位符。
- 支持 Mini-Message 格式。
- 支持多种类型要求: `PERMISSION`, `STATISTIC`, `ADVANCEMENT`, `COMPARE_INT`
# 占位符、命令和权限
`%sp_prefix%`
> 用于前缀的占位符。 在您的聊天插件中使用此占位符。
>
> 用法示例:`%sp_prefix% %player_displayname% » {message}`
`%sp_prefix_legacy%`
> 用于前缀的占位符。 当您需要使用旧方式(`&a` / `§a`而不是 `
`)处理内容时,需要此占位符。
>
> 用法示例:`%sp_prefix% %player_displayname% » {message}`
`/sp gui`
> 打开一个生成的 GUI,该 GUI 按前缀 ID 组织前缀。
`/sp reset`
> 重置您的前缀。
`/sp set `
> 设置您的前缀。
`/sp reload`
> 重新加载插件。
# 配置文件
```yml
saving-type: "file"
default-prefix: "[Player] "
```
## 配置文件设置
| 设置 | 描述 | 有效值 |
|----------------|---------------------------------------------|---------------|
| saving-type | 应该使用哪种类型的保存系统? | `PDC`, `FILE` |
| default-prefix | 默认前缀,支持占位符。 | 字符串 |
### 保存类型
这些是当前实现的保存类型...
__PersistentDataContainer (PDC)__
> 插件会将当前配备的前缀 ID 保存到玩家自身。
> 这使得他们在离线时无法访问前缀。
>
> 这主要用于插件的初始测试,但如果您不喜欢文件系统,那里。
__YML 文件 (FILE)__
> 插件会将所有玩家的前缀 ID 保存到配置 YML 文件中,该文件存储在 config 旁边。
> 这使他们在离线时可以访问前缀,但每次玩家的前缀更改时,
> 插件都会保存前缀。
>
> 这是默认值。
## 创建前缀
```yml
prefix-id:
display-name: "Prefix ID"
description:
- "This is to show an example Prefix!"
- "This is a second line of description!"
prefix: "[Something]"
verify-always: false
show-when-locked: true
requirements:
- "permission simpleprefix.example true"
- "statistic PLAYER_KILLS >= 10"
- "advancement nether/summon_wither true"
- "compare_int %placeholder% < 1"
```
`prefix-id`
> 这是前缀 ID。 每个前缀由此值唯一标识。
>
> 这意味着您不能有两个相同的 Prefix ID。
>
> `prefix-id` 本身是您需要更改的值。不要包含空格。
`display-name`
> 这是前缀的显示名称。 它基本上是用格式化的方式来显示此前缀。
>
> 支持 PlaceholderAPI 占位符。
`prefix`
> 这是将在 %sp_prefix% 处显示的表示前缀的字符串。
>
> 支持 PlaceholderAPI 占位符。
```yml
# A prefix with the ID "example-prefix"...
example-prefix:
display-name: "The Example Prefix"
prefix: "[Example] "
```
### 前缀要求
要求是必须为真才能装备前缀的事情。
这些要求有多种形式,将在下面进行说明。
> **注意**
>
> 格式不正确或产生错误的需要将被忽略。
>
> 无法保证失败的要求也不会被检查。
> 要检查玩家的权限,玩家必须在线,
> 因此当玩家离线时,这些检查将被忽略。
>
> `verify-always` 将使要求的检查在每次请求玩家的前缀时都进行检查。
> 如果要求检查失败,保存的前缀将被清除。
**权限**
格式: `permission [false]`
>
> `` 表示玩家可能具有的权限。
>
> `[false]` 是可选的,必须提供才能反转结果。
> 这意味着如果权限是 `example.permission`,玩家不能拥有此权限。
>
> 示例: `permission example.permission` (玩家具有 example.permission 权限)
>
> 示例: `permission example.permission false` (玩家不具有 example.permission 权限)
**统计**
格式: `statistic `
>
> `` 是 [此页面](https://jd.papermc.io/paper/1.19/org/bukkit/Statistic.html) 上枚举值。
> 这表示玩家拥有的某些统计信息。
>
> `` 是比较运算符。
> 有效运算符是 >, <, >=, <=, ==, !=
>
> `` 是一个整数,可以与统计信息进行比较。
>
> 示例: `statistic ANIMALS_BRED >= 100` (玩家繁殖了 100 或更多动物)。
**成就**
格式: `advancement [false]`
> `` 是表示成就的命名键。
>
> 您可以在 [此页面](https://minecraft.fandom.com/wiki/Advancement) 上找到原版成就。
> 这表示玩家可以获得的成就。 Minecraft 成就使用 `minecraft` 命名空间。
>
> `[false]` 是可选的,必须提供才能反转结果。
> 这意味着如果成就为 `minecraft:nether/summon_wither`,玩家不能拥有这个成就。
>
> 示例: `advancement minecraft:nether/summon_wither` (玩家具有 Minecraft Summon Wither 成就)。
>
> 示例: `advancement minecraft:nether/summon_wither false` (玩家不具有 Minecraft Summon Wither 成就)。
**比较整数**
格式: `compare_int `
> `` 是任何可以返回有效整数的 PlaceholderAPI 占位符。
>
> `` 是比较运算符。
> 有效运算符是 >, <, >=, <=, ==, !=
>
> `` 是一个整数,可以与占位符进行比较。
>
> 示例: `compare_int %player_absorption% > 0` (玩家的吸收值大于 0)。
**尚未实施**
- 字符串比较,区分大小写
- 字符串比较,不区分大小写
## 待办事项
- 可配置图标
- 字符串比较,要求检查