# 你好,聊天!
一个允许玩家在 Minecraft 服务器聊天中使用表情符号的小型插件。
它与服务器 (客户端) 资源包一起工作,其中包含一个 [文件](https://github.com/Ortodontalio/mc-smindless/blob/main/resourcepack/assets/minecraft/textures/font/unicode_page_90.png)
包含自定义表情符号。
_此小型插件的主要功能包括:_
* 体积小巧;
* **高级自定义**:能够修改插件消息在 [config.yml](https://github.com/Ortodontalio/mc-smindless/blob/main/plugin/src/main/resources/config.yml) 中的设置,
根据 [服务器数据包](https://github.com/Ortodontalio/mc-smindless/blob/main/resourcepack) 添加或删除任何口味的表情符号;
* **可以使用多个占位符**用于单个表情符号(当与集成 Minecraft 服务器的 Discord 的插件一起使用时,这会很有用);
* 该插件使用 **自己的访问控制系统** для表情符号:现在不需要在服务器权限中堆叠每个表情符号的权限!
* 能够复制表情符号的占位符,只需在聊天中按 LMB 即可;
* 能够分配高级表情符号。
# 那么,第一步是什么?
该插件的 [主配置文件](https://github.com/Ortodontalio/mc-smindless/blob/main/plugin/src/main/resources/config.yml) 可以分为两个部分:
* 消息文本;
* 表情符号定义。
在 **消息文本部分**,您可以为每种情况编写任何文本(缺乏权限、错误的玩家等)。
因此,您可以将服务器名称用作前缀 **Smindless** 的替代品。 请记住,消息支持颜色方案。
对于 **表情符号定义部分**,它由一组具有以下格式的表情符号组成:
```
[表情符号键]:
inputs: ":占位符_1:,:占位符_2:,...,:占位符_N:"
output: 解码的 Unicode 符号
premium: true/false
```
**表情符号键** 是在管理表情符号访问权限命令中需要指定的键。
它可以是任何不带空格的字符集。
**Inputs** 是玩家必须在聊天中键入的内容,才能将文本转换为表情符号。 必须具有以下格式:`:sometext:`。
多个占位符由逗号分隔。 请记住,如果您不希望玩家在转换成表情符号之前手动输入很长的文本,最好使用简短的占位符。
**Output** 是所有键入的占位符将转换成的内容。
**Premium** 表示此表情符号是否为高级表情符号。它可以是 `true`、`false` 或省略。 如果省略,则被认为是 `false`。
例如,对于下一个表情符号
```
cute:
inputs: ":cute:"
output: "逃"
```
> Wow, it's sooo cute!:cute:
将转换为
>Wow, it's sooo cute!逃
这个汉字将通过服务器数据包转换成一个美丽的笑脸。 [数据包中的第一个文件](https://github.com/Ortodontalio/mc-smindless/blob/main/resourcepack/assets/minecraft/font/default.json)
包含 Unicode 字符在 90 页面上的序列,并且 [第二个文件](https://github.com/Ortodontalio/mc-smindless/blob/main/resourcepack/assets/minecraft/textures/font/unicode_page_90.png)
分别在聊天中显示这些字符。 第二个文件的大小为 768 x 786 像素。 该文件包含 16 x 16 的图像(表情符号)。 可以轻松地推断出,使用此文件大小,一个表情符号的大小将为 48 x 48 像素。 可以减小或增大文件的大小,
但请勿使用会导致表情符号大小具有小数值的尺寸!
# 主命令
该插件提供的唯一命令是 /smi。接下来使用标志进行某些操作。
启动服务器工作时或每次更改 config.yml 中的表情符号列表时,必须执行的最重要操作是 /smi reload 或 /smi r。
> /smi r - 将表情符号列表加载到内存中,以便对玩家可用
> (或在进行了更改时重载列表;您无需每次都重载服务器,如果进行了更改,只需执行此命令即可)
之后,您可以通过命令 /smi list 或 /smi l 检查表情符号列表。
> /smi l - 获取表情符号列表。 在此菜单中,您可以使用 LMB 复制某些表情符号,然后将其粘贴到聊天中。
> 
> 如果将鼠标悬停在某些表情符号上,您可以查看其占位符 - 这是在发送消息时需要打印的文本,以便在聊天中显示表情符号。
> 
您可能已经注意到屏幕截图中 _灰色表情符号_ - 这些是玩家无法发送的表情符号,
即使玩家复制或输入了占位符也是如此。 这是因为此表情符号已被阻止使用,或者
玩家没有此表情符号的高级访问权限。 要阻止或允许使用表情符号,可以使用命令
/smi b {playerName} {smilePlaceholder} 和 /smi ub {playerName} {smilePlaceholder}, 分别。
> /smi b {playerName} {smilePlaceholder} - 该命令阻止指定玩家使用表情符号的可能性。
> 请使用占位符,而不是表情符号本身,用于所有访问控制命令。
> 
> 阻止后,表情符号将变成灰色,这意味着无法使用此表情符号。
>
> /smi ub {playerName} {smilePlaceholder} - 它以相同的方式工作,只是相反,它解锁了表情符号。
下一个命令对是授予或撤销高级表情符号。
> /smi g {playerName} {smilePlaceholder} - 授予特定玩家访问高级表情符号的权限。
> 
> /smi ug {playerName} {smilePlaceholder} - 以相同的方式工作,只是撤销了高级表情符号的访问权限。
为了避免与访问控制命令混淆,还可以使用其他玩家的可用表情符号列表,
以及使用 LMB 授予和撤销权限。
> /smi pl {playerName} - 显示特定玩家的表情符号列表。
> 使用 LMB 授予或撤销玩家的某个表情符号的权限。
> 
这就是目前的情况! 请记住,访问权限存储在插件文件夹中的两个子文件夹中 - _ban-list_ 和 _premium-list_。
因此,您可以通过这些子文件夹中的文件来添加或删除玩家的表情符号键 **(这些是从 config.yml 文件中获取的键,而不是占位符!)**。
# 注意
目前,**资源包中只有 7 个表情符号。为了使表情符号起作用,您必须在游戏中的语言选择菜单中禁用 Unicode 字体支持!**
目前,由于缺乏测试人员,插件尚未经过充分测试(与 Discord 的交互尚未完全调查,但预计会支持)。 如果您发现问题,请通过 Telegram 机器人告知我们。
# 许可
此项目使用 [GNU AGPLv3 许可 (GNU Affero, GNU Affero General Public License Version 3)](COPYING)。
# 您有任何问题或建议吗?
如果您有任何建议、想法以及发现的 bug,请通过 [Telegram 机器人](https://t.me/am_support_bot) 与我们联系,
我们将尽力尽快回复您,并乐于收到您的消息。 请勿发送垃圾邮件或辱骂信息,否则您将被阻止。