Yolo

人生只有一次……名字已经说明了一切。 这个插件是为硬核生存服务器设计的,它实现了并略微扩展了服务器上玩家死亡的默认硬核机制。

资源图片
# Yolo - 一个硬核插件 --- [![Discord](https://img.shields.io/discord/1085932576197316629?color=7289da&label=Support&logo=discord&style=for-the-badge)](https://discord.gg/zMqkeRseME) [![GitHub all releases](https://img.shields.io/github/downloads/eingruenesbeb/Yolo/total?logo=github&style=for-the-badge)](https://github.com/eingruenesbeb/Yolo/releases/) [![JitPack](https://img.shields.io/jitpack/version/io.github.eingruenesbeb/Yolo?color=green&style=for-the-badge)](https://jitpack.io/#eingruenesbeb/Yolo/v0.5.0) [![GitHub](https://img.shields.io/github/license/eingruenesbeb/Yolo?style=for-the-badge)](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*