CustomDeathMessages

以风格而死,而不是沉默!用幽默、丰富多彩且个性化的消息替换无聊的死亡通知。添加声音、粒子和标题,将每一次死亡变成一场难忘的事件。

资源图片
--- # 📚 自定义死亡消息 - 更新文档 (v0.0.7) > **让每一次死亡都变成一个电影般的时刻…… 或是一场史诗般的灭绝。现在带有内置配置验证。** `CustomDeathMessages` 是一个为 Minecraft 服务器设计的 Spigot/Paper 插件,**它将乏味的默认死亡消息替换为自定义、动态、色彩鲜艳的消息**,并带有可选的 **音效、粒子爆炸、屏幕标题、操作栏、经济成本,甚至还有一个“变暗屏幕”效果**。管理员可以为每种死亡原因、玩家权限组(例如,VIP、Admin)或特定世界(地狱、末地等)定义唯一的死亡消息。版本 0.0.7 在强大的 v0.0.6 的基础上引入了一个 **革命性的集成配置验证器**——确保您的配置在生效之前没有错误。不再有由于缺少逗号而导致服务器崩溃的情况。 > **⚠️ v0.0.7 重要升级说明** > 为了确保您获得所有新的配置选项、系统消息和验证器命令,**强烈建议您**: > 1. **备份**您现有的 `config.yml` 和 `messages.yml` 文件。 > 2. **删除**服务器 `plugins/CustomDeathMessages/` 文件夹中的旧 `config.yml` 和 `messages.yml` 文件。 > 3. 重启或重新加载服务器。插件将自动生成新的、最新的配置文件,其中包含所有新的设置和示例。 > 4. 然后您可以将自定义消息和设置从备份手动添加到新文件中。 --- ## 🧩 特性 * **死亡原因消息:** 为 `FALL`、`FIRE`、`ENTITY_ATTACK`、`DROWNING`、`VOID` 以及更多提供独特的死亡消息。 * **基于权限的组:** VIP、管理员或默认玩家可以获得定制的消息和音效。 * **按世界覆盖:** 定义 `world_nether`、`world_the_end` 或任何自定义世界中的特殊消息。 * **视觉效果:** * 粒子爆炸 (`EXPLOSION`、`FLAME` 等) * 屏幕标题和副标题 (`&cYOU DIED`) * 操作栏消息 (`&c{victim} died!`) * 使用环境粒子(例如,`CLOUD`、`SMOKE`)的“变暗屏幕”效果 * **自定义音效:** 全局或按组的死亡音效,带有可调节的音量和音调。 * **高级占位符:** * `{victim}` — 死亡的玩家。 * `{killer_name}` — 造成杀戮的 **实体** (例如,射出箭矢的骷髅)。 * `{killer_source}` — 造成伤害的 **直接来源** (例如,“Arrow”、“Lava”、“Fireball”)。 * `{killer_displayname}` — 杀手的显示名称(支持插件,如 EssentialsX 或 LuckPerms 的颜色/昵称)。 * `{cause}` — 技术死亡原因 (例如,`FALL`、`ENTITY_ATTACK`)。 * `{world}` — 世界名称。 * `{biome}` — 生物群系名称(例如,“Plains”、“Nether Wastes”、“Deep Dark”)。 * `{x}`、`{y}`、`{z}` — 死亡坐标。 * `{time}` — 服务器时间(从 `config.yml` 格式化)。 * `{distance}` — 受害者和杀手之间的距离(单位:方块),小数点后一位(例如,“5.2”)。 * `{victim_weapon}` — 受害者主手中武器的名称。 * `{victim_effects}` — 受害者拥有的所有活动药水效果列表. * **PlaceholderAPI 支持:** 使用外部占位符扩展功能。 * **重生消息:** 用自定义消息欢迎玩家重生。 * **实时重新加载:** 使用 `/cdmreload` 应用配置更改,无需重新启动。 **具有原子重新加载功能:如果新配置失败,它将回滚到旧配置。** * **测试命令:** 使用 `/cdm test [killer_name] [killer_source]` 预览消息。您可以指定负责实体和直接伤害来源。 * **绕过权限:** 拥有 `cdm.bypass` 权限的玩家不会触发死亡消息(适合工作人员)。 * **消息冷却系统:** 防止相同的随机消息连续显示给玩家。 * **史诗死亡系统:** 死亡成为 **史诗** 的概率是可以配置的,具有独特的死亡消息、音效、粒子、标题和 **闪电击中**。 * **Vault 经济集成:** 向玩家收取展示死亡消息的费用。免除(如管理员)支付除外组。 * **游戏内帮助 (`/cdmhelp`):** 直接在游戏内可访问的多页、完全可配置的帮助系统。动态生成且基于权限控制。 * **条件消息:** 根据复杂的条件显示不同的消息,使用 `AND`、`OR`、`equals`、`startsWith`、`endsWith`、`>`、`<`、`>=`、`<=`。 * **遗留色彩支持:** 自动删除现代十六进制色彩代码,以兼容 Minecraft 1.16 之前的版本。 * **原子配置重新加载:** `/cdmreload` 命令现在会在应用之前验证整个新配置文件。如果任何部分失败,插件将安全地回滚到以前的状态,防止服务器崩溃。 * **基于权限的帮助系统:** 通过 `config.yml` 中的 `help-permissions` 部分控制不同用户组(例如,`default`、`vip`、`op`)可以访问哪些帮助页面。 * **集成配置验证器 (`/cdm config validate`)** — **v0.0.7 新增!** 在配置生效之前,主动扫描您的 `config.yml` 和 `messages.yml` 文件,查找无效的音效、粒子和条件语法错误。 直接在游戏中获得详细的彩色报告 (✅ 成功、❌ 错误、⚠️ 警告)。 --- ## ⚙️ 配置 插件在 `plugins/CustomDeathMessages/` 目录下自动生成两个配置文件: * `config.yml`:全局设置(音效、粒子、半径、视觉效果、史诗死亡概率、成本、遗留支持以及 `help-permissions`)。 * `messages.yml`:按组和原因组织死亡消息,包括史诗消息、条件消息、帮助系统、经济消息和 **验证器新增加的 `config-validator-*` 系统消息** 部分。 ### 📄 config.yml (关键片段 - v0.0.7) ```yaml ## 谁会看到死亡消息? message-to-victim: true message-to-world: true message-to-radius: 0 ## 全局死亡音效 (使用现代名称:entity.player.death) play-sound-on-death: true death-sound: entity.player.death sound-volume: 1.0 sound-pitch: 1.0 ## 粒子效果 play-particles-on-death: true death-particle: EXPLOSION particle-count: 50 ## 启用基于权限的消息? use-permission-based-messages: false ## 按世界覆盖 per-world-messages: world_nether: default: "&4{victim} fue consumido por el Nether." world_the_end: default: "&5{victim} se desvaneció en el vacío eterno." ## 视觉效果 play-title-on-death: false death-title: "&cYOU DIED" death-subtitle: "&7{cause}" play-actionbar-on-death: false death-actionbar: "&c{victim} has perished!" play-darken-screen-effect: false darken-effect-duration-ticks: 20 darken-effect-particle: CLOUD ## {time} 的时间格式 time-format: "HH:mm:ss" ## 重生消息 respawn-message-enabled: true respawn-message: "&a¡{player} has returned from the dead!" # === 新增特性 === # 史诗死亡系统 epic-death-chance: 0.05 # 史诗死亡发生的概率 (0.0 到 1.0) # 成本系统(需要 Vault) cost-per-death-message: 0.0 # 设置为 0.0 以禁用收费。 exempt-groups-from-cost: - "admin" # 此组中的玩家不必支付。 # 遗留支持 (适用于 MC < 1.16) legacy-color-support: false # 设置为 true 以自动删除 <#rrggbb> 代码。 # === 帮助权限 === help-permissions: op: "all" admin: "all" vip: [1, 2] default: [1] ``` ### 📄 messages.yml (关键片段 - v0.0.7) ```yaml # ============================================================================== # 🎯 自定义死亡消息 - 消息 & 效果配置 # ============================================================================== # 插件作者:SicklySurgeon | 版本:0.0.7 # # 📌 集成占位符指南 (首次阅读此内容!) # ----------------------------------------------------------------------------- # {victim}, {killer_name}, {killer_source}, {cause}, {world}, {biome}, {x}, {y}, {z}, {time}, {distance}, {victim_weapon}, {victim_effects}, {cost} # 💡 您可以使用其他插件的任何 PlaceholderAPI 占位符。 # ============================================================================== # ============================================================================== # 💥 史诗死亡消息 & 效果 # ============================================================================== epic-messages: - "&6&l!!! 史诗死亡 !!! &e{victim} &6被 &e{killer_name}&6消灭了!" - "&4&l!!! 末日 !!! &c{victim} &4消失在 &c{killer_name}&4的手中!" - "&5&l!!! 最终幻想 !!! &d{victim} &5屈服于 &d{killer_name}&5!" - "&b&l!!! 狙击手 !!! &3{victim} &b被 &3{killer_name}&b从 &3{distance} &3块外击中了!" # 史诗死亡视觉/音效效果(覆盖全局设置) system-messages: epic-sound: "ENTITY_LIGHTNING_BOLT_THUNDER" epic-particle: "EXPLOSION_EMITTER" epic-particle-count: 100 epic-title: "&6&l史诗死亡!" epic-subtitle: "&e{victim} 以史诗的方式死了!" # ============================================================================== # 🧠 条件消息 (智能、情境化的消息) # ============================================================================== # 操作符: contains, equals, startsWith, endsWith, >, <, >=, <= # 使用 AND / OR 组合。 default: messages: ENTITY_ATTACK: - condition: "{distance} > 10" message: "&c{victim} &4被 &c{killer_name}&4从 &c{distance} &4块外击中!" - condition: "{victim_effects} contains 'Poison'" message: "&c{victim} &2被 &c{killer_name}&2毒死了!" - default: "&c{victim} &4被 &c{killer_name}&4消灭了,使用了 {killer_source}。" # ============================================================================== # ⚙️ 系统 & 命令消息 # ============================================================================== system-messages: # ... (已存在的系统消息) ... # === 史诗死亡效果 === epic-sound: "ENTITY_LIGHTNING_BOLT_THUNDER" epic-particle: "EXPLOSION_EMITTER" # === 经济 === economy-cost-message: "&c${cost} &7已从您的帐户中扣除。" economy-insufficient-funds: "&c您无力支付死亡消息费用(${cost})。" economy-exempt-message: "&7(免于收费)" # ✅✅✅ 新增:配置验证器的系统消息 ✅✅✅ config-validator-title: "✅ [CustomDeathMessages] 配置验证:" config-validator-success-all: "✅ 所有配置都是有效的!" config-validator-summary-prefix: "ℹ️ 当前配置: " config-validator-error-count: "❌ 发现 {error_count} 个问题。请查看上方的消息。" # 成功消息 config-validator-sound-found: "✅ 找到了音效 '{sound_name}'。" config-validator-particle-found: "✅ 找到了粒子 '{particle_name}'。" # 错误消息 config-validator-sound-not-found: "❌ 找不到音效 '{sound_name}'。将使用默认值。" config-validator-particle-not-found: "❌ 无效的粒子 '{particle_name}'。将使用默认值。" # 警告消息 (条件) config-validator-condition-syntax-warning: "⚠️ 警告:位置 '{location}' 中的条件 '{condition}' 具有语法错误 (无效的操作符 '{operator}')。" config-validator-condition-placeholder-warning: "⚠️ 警告:位置 '{location}' 中的条件 '{condition}' 中存在格式错误的占位符。" # 配置摘要 config-validator-summary-message-to-world: "消息到世界。 " config-validator-summary-message-to-radius: "半径:{radius} 个方块。 " config-validator-summary-sound-enabled: "声音:已启用。 " config-validator-summary-sound-disabled: "声音:已禁用。 " config-validator-summary-particles-enabled: "粒子:已启用。 " config-validator-summary-particles-disabled: "粒子:已禁用。 " ``` --- ## 🎮 命令 | 命令 | 描述 | 权限 | |---|---|---| | `/cdmreload` | 重新加载 `config.yml` 和 `messages.yml`。使用原子重新加载:如果配置无效,将安全地回滚到旧配置。 | `cdm.reload` | | `/cdm test [killer_name] [killer_source]` | 测试死亡消息。 您可以选择指定一个 `[killer_name]` 和一个 `[killer_source]`。 | `cdm.test` | | `/cdmhelp [page]` | 在游戏中显示全面、多页帮助指南。 页面的生成是动态的,并且基于权限控制。 | `cdm.test` | | `/cdm config validate` — **新增!** | 扫描您的 `config.yml` 和 `messages.yml` 文件,查找无效的音效、粒子和条件语法,并输出详细的报告。 | `cdm.reload` | --- ## 🔐 权限 | 权限 | 描述 | 默认值 | |---|---|---| | `cdm.reload` | 允许重新加载配置 **并使用新的 `/cdm config validate` 命令**。 | `op` | | `cdm.test` | 允许测试消息以及使用 `/cdmhelp`。 | `op` | | `cdm.bypass` | 玩家将不会收到死亡消息。 | `false` | | `cdm.message.vip` | 为玩家分配 "vip" 组。 | `false` | | `cdm.message.admin` | 为玩家分配 "admin" 组。 | `false` | | `cdm.admin` | 授予访问更新检查器通知的权限。 | `op` | > **注意:** 要启用基于权限的消息,请在 `config.yml` 中将 `use-permission-based-messages: true` 设置为 true,然后将 `cdm.message.vip` 或 `cdm.message.admin` 分配给玩家。 --- ## 🧪 占位符 这些可以在 `messages.yml` 中的任何消息中使用: * `{victim}` — 死亡的玩家。 * `{killer_name}` — 造成杀戮的 **实体** (例如,射出箭矢的骷髅)。 * `{killer_source}` — 造成伤害的 **直接来源** (例如,“Arrow”、“Lava”、“Fireball”)。 * `{killer_displayname}` — 杀手的显示名称(支持插件,如 EssentialsX 或 LuckPerms 的颜色/昵称)。 * `{cause}` — 技术死亡原因 (例如,`FALL`、`ENTITY_ATTACK`)。 * `{world}` — 世界名称。 * `{biome}` — 生物群系名称(例如,“Plains”、“Nether Wastes”、“Deep Dark”)。 * `{x}`、`{y}`、`{z}` — 死亡坐标。 * `{time}` — 服务器时间(从 `config.yml` 格式化)。 * `{distance}` — 受害者和杀手之间的距离(单位:方块),格式化为一位小数(例如,“5.2”)。 * `{victim_weapon}` — 受害者主手中武器的名称(用于条件)。 * `{victim_effects}` — 受害者拥有的所有活动药水效果列表(用于条件)。 --- ## ❓ 常见问题 **问:如何启用基于权限的消息?** > 答:在 `config.yml` 中将 `use-permission-based-messages: true` 设置为 true,然后将 `cdm.message.vip` 或 `cdm.message.admin` 分配给玩家。 **问:为什么旧服务器上不起作用(`<#rrggbb>`)的十六进制颜色?** > 答:将 `legacy-color-support: true` 设置为 `config.yml`。 插件将自动删除十六进制代码以提高兼容性。 **问:如何在不死亡的情况下测试消息?** > 答:使用 `/cdm test [killer_name] [killer_source]`,例如 `/cdm test ENTITY_ATTACK Skeleton Arrow`。 **问:如果玩家有多个组权限会怎样?** > 答:优先级顺序:`admin` > `vip` > `default`。 匹配第一个。 **问:如何向玩家收取展示死亡消息的费用?** > 答:安装 Vault 和经济插件(如 EssentialsX)。 将 `cost-per-death-message` 设置为大于 0.0 的值在 `config.yml` 中。将组添加到 `exempt-groups-from-cost` 以排除他们。 **问:什么是史诗死亡?** > 答:这是一个罕见的、壮观的死亡事件。 它可以配置概率 (`epic-death-chance`) 并且具有独特的死亡消息、音效、粒子、标题和闪电击中。 在 `messages.yml` 中定义史诗消息和效果。 **问:`{killer_name}` 和 `{killer_source}` 有什么区别?** > 答:`{killer_name}` 是最终负责杀戮的实体 (例如,骷髅)。 `{killer_source}` 是直接击中玩家的东西 (例如,“Arrow”、“Lava”、“Fireball”)。这允许非常详细的消息。 **问:如何在配置生效之前知道我的配置是否已损坏?** — **新增!** > 答:运行 `/cdm config validate`! 此命令将扫描文件并提供清晰、彩色报告的任何错误或警告,以便您在它们造成问题之前修复它们。 --- ## 🛠️ 依赖项 * **必需:** Spigot 或 Paper **1.17+**。 * **可选 (软依赖):** * [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) 以获得扩展的占位符支持。 * [Vault](https://www.spigotmc.org/resources/vault.34315/) 用于经济集成。 ## 💡 专业提示 * 使用 `/cdmhelp` 来获取所有您需要的信息,而无需离开游戏。 * 将 `cost-per-death-message: 10.0` 和 `exempt-groups-from-cost: ["admin"]` 设置为公平地将死亡货币化。 * 将 `{time}` 与 `time-format: "h:mm a"` 结合起来,以获得诸如“Bob 在下午 3:45 死亡”之类的消息。 * 将 `epic-death-chance: 0.01` 设置为真正罕见和难忘的事件。 * 结合 `{biome}` 来创建沉浸式的特定世界消息(例如,“被地狱吞噬”)。 * 原子重新加载 (`/cdmreload`) 意味着您可以毫不犹豫地试验配置。 * **v0.0.7 的 #1 专业提示:在编辑配置文件并运行 `/cdmreload` 之前,始终运行 `/cdm config validate`。 这是您获得稳定、无错误服务器的新最佳朋友。** --- 使用 `CustomDeathMessages` v0.0.7,**死亡不再是结束…… 它是一个电影般的事件,一种策略性成本,一种特定于生物群系的故事情节,一种完全记录的体验,现在还是一种保证稳定的体验,这要感谢集成的验证器。** 💀⚡💰🌍✅