# Yolo - 一个硬核插件
---
[](https://discord.gg/zMqkeRseME)
[](https://github.com/eingruenesbeb/Yolo/releases/)
[](https://jitpack.io/#eingruenesbeb/Yolo/v0.5.0)
[](https://github.com/eingruenesbeb/Yolo/blob/master/COPYING)
---
## 目录
1. [这个插件做什么?](#1-这个插件做什么)
2. [配置](#2-配置)
1. [`config.yml`](#21-configyml)
2. [`chat_messages.properties`](#22-chatmessagesproperties)
3. [`discord/[...].json`](#23-discordjson)
4. [`ban_message.txt`](#24-banmessagetxt)
5. [文本替换](#25-文本替换)
3. [权限](#3-权限)
4. [指令](#4-指令)
5. [其他考虑因素](#5-其他考虑因素)
6. [计划功能](#6-计划功能)
7. [给开发者](#7-给开发者)
---
## 1. 这个插件做什么?
你只有一次机会……插件的名字已经说明了一切。
这个插件是为了硬核生存服务器设计的,它实现了并扩展了原版硬核
机制,用于玩家在服务器死亡的情况。
通常,玩家死亡后会从服务器被封禁,如果(且仅当)在
世界生成之前,`server.properties` 中启用了硬核设置时。
如果该设置被追溯性地设置为true,情况并非如此。
而这,是这个插件发挥作用的地方,通过
无论硬核何时启用,都实现这种行为。
此外,您可以排除玩家不受此规则的影响
并将(非排除)玩家死亡时发送自定义消息到 Discord 服务器。
该插件还可以强制使用您选择的资源包,默认的资源包会用
硬核心替换正常的血条,为任何非排除玩家。
(*您可以查看资源包
[在此](https://drive.google.com/file/d/1UWoiOGFlt2QIyQPVKAv5flLTNeNiI439/view?usp=share_link)。)
## 2. 配置
### 2.1 `config.yml`
目前有四个配置部分。\
第一部分是用于管理发送给非排除玩家的资源包:
```yaml
# 您可以指定自定义资源包并关闭强制将该包应用于非排除玩家。
resource-pack:
force: true
custom:
use: false
url: ""
sha1: ""
```
- `force` 选项允许您控制玩家*是否*必须接受该包。(允许的值:`true`、`false`)
- `custom` 允许您定义默认资源包之外的自定义资源包。
- `use`:设置为 `true` 以使用自定义包,否则设置为 `false`
- `url`:自定义包的下载链接。
- `sha1`:文件的 sha1 校验和。您可以使用
[此工具](https://emn178.github.io/online-tools/sha1_checksum.html) 获取它。
下一个部分是用于配置 Spicord 集成:
```yaml
spicord:
send: false
message_channel_id: ""
```
- `send`:启用 Spicord 集成。 (允许的值:`true`、`false`)
- `message_channel_id`:要发送消息的频道 ID。您可以使用
[此方法](https://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID-) 获取它
(您也可以单独获取频道 ID,通过右键单击频道选择侧边栏中的频道)。
在 `announce` 部分,您可以单独启用消息:
```yaml
announce:
death:
discord: false
chat: true
totem:
discord: false
chat: true
revive:
discord: false
chat: true
```
这应该非常直观。
列出的消息是在各自场合和目标上发送的消息公告。
允许的值是 `true` 或 `false`。
`enable-on-non-hc` 选项允许你在非硬核服务器上启用此插件的功能,而最后的
`easy-disable` 选项允许你在 `true` 时禁用死亡封禁功能(之前死亡的玩家可以加入,如果
启用此功能)。
如果此选项为 true,已封禁的玩家可能需要一段时间才能加入。
同样,可接受的值为 `true` 和 `false`。
### 2.2 `chat_messages.properties`
此文件中定义的 message 是您可以自定义的聊天消息。
不需要添加更多。
您也可以使用 MiniMessage 格式使其 *特殊*。
如何使用此格式,您可以在 [此处](https://docs.advntr.dev/minimessage/format.html) 阅读。
### 2.3 `discord/[...].json`
在这些文件中,您可以自定义插件发送的嵌入式消息。
您可以使用 [此工具](https://leovoel.github.io/embed-visualizer/) 可视化它们并生成 json 文件。
例如,如果您想要自定义在玩家死亡时发送的 Discord 消息,您需要
修改 `plugins/yolo/discord/death_message.json`,如下所示:
```json
{
"embed": {
"title": "%player_name% has died!",
"description": "Press \"F\" to pay respect.",
"color": 16521991,
"author": {
"name": "author name",
"url": "https://discordapp.com",
"icon_url": "https://cdn.modrinth.com/data/ExWUwvY3/a8ab710896279f5c3ed9c377d408a10587f5509d.png"
},
"image": {
"url": "https://media.tenor.com/bMbIAroA0PkAAAAi/rip-rest.gif"
}
}
}
```
### 2.4 `ban_message.txt`
这是您可以自定义玩家死亡时看到的封禁消息的地方。
### 2.5 文本替换
插件发送的每条消息都可以使用以下替换:
- `%player_name%` - 受影响玩家的姓名
- `%totem_uses%` - 消息主题玩家使用的守护牌数量。
- `%death_message%` - 如果玩家已经死亡,死亡消息。(仅在发送玩家死亡消息时可用。)
- `%version%` - 插件的当前版本。
## 3. 权限
有一个权限 `yolo.exempt`,它可以排除拥有该权限的任何玩家,从而不受该插件的影响。还有两个
其他权限与命令相关。这些权限在关于 [命令](#4-commands) 的部分中描述。
有关 Bukkit 及其衍生产品的权限的一般指南,请参阅
[此页面](https://bukkit.fandom.com/wiki/Permissions.yml)。*(我建议使用权限管理器,例如
[LuckPerms](https://luckperms.net/)*
## 4. 指令
目前有以下两个命令可用:
- `/yolo-reload`:此命令对于重新加载此插件的所有依赖于配置的功能非常有用,而无需
重新启动整个服务器。它需要 `yolo.reload` 权限。
- `/revive [revivable player] `:此命令允许您复活一个
玩家,尝试恢复其物品栏,并将其传送到其死亡位置(如果安全)。它需要
`yolo.revive` 权限。您还可以通过将
参数设置为 `false` 来禁用恢复物品栏和传送。 (如果你只想禁用传送,你需要明确将物品栏恢复设置为 `true`。)
- `/checkout_death_location` 此命令允许您传送到死者的死亡地点。 这对于
检查陷阱和重复物品很有用。它需要 `yolo.revive` 权限。
## 5. 其他考虑因素
- 如果 `server.properties` 中启用了硬核模式,则默认情况下资源包始终强制应用于玩家。(
从 0.4.0 版本开始可配置)
- 为了使用 Spicord,您需要正确配置它。为了将此插件注册为 bot 的附加组件,您需要
以如下方式添加它:
```toml
### ↑ 上方不相关的素材 ↑ ###
[[bots]]
name = "" # 在此处输入 bot 的名称。
enabled = true
token = "" # 在此处输入 bot 的 token
command_support = true # 对于此插件的 Spicord 附加组件来说,这与此无关。
command_prefix = "-"
addons = [
# 潜在的其他插件。
"yolo"
]
### ↓ 下方不相关的素材 ↓ ###
```
- **此插件是为 PaperMC-1.19.4 制作的。** 其他版本和平台尚未 *测试*,但这是
计划
在发布完整版本之前完成。 如果这意味着放弃对其他兼容版本的支持,则与不兼容的问题
可以 [提交](https://github.com/eingruenesbeb/Yolo/issues/new/choose),但不会解决。
- 复活具有启用物品栏恢复的玩家可能会导致物品复制,因为玩家仍然会掉落他们的物品。你可能想找
使用 `/checkout_death_location` 来检查副本。
- 这是一个预览版本,因此可能会遇到更多错误或故障。
## 6. 计划功能
- 撤销玩家复活的命令
- GUI 用于复活系统 (计划在 2.0 中)
- 完整支持 PlaceholderAPI (计划在 2.0 中)
- 在 Dynmap、Bluemap 等上标记死亡位置 (计划在 2.0 中)
- 有建议吗?[在此](https://github.com/eingruenesbeb/Yolo/issues/new/choose)提交它!
## 7. 给开发者
要将此项目作为您的依赖项添加,请按照[此链接](https://jitpack.io/#eingruenesbeb/Yolo)操作并选择
您想要的任何版本(转到 *分支* → *master-SNAPSHOT* 以获取最新的版本)。 然后按照以下说明操作。
为了避免膨胀您的 jar 文件,您可以将范围更改为 `compileOnly`。
此外,您需要在您的 `plugin.yml` 文件中声明依赖项,如下所示:
```yml
#### ↑ 其他内容 ↑ ###
depend: [ # 或者 `softdepend`
Yolo
]
#### ↓ 其他内容 ↓ ###
```
您可以在 [此处](https://eingruenesbeb.github.io/Yolo/) 找到文档。
---
*从版本:0.7.0*