DamagerRewards
[​IMG] [​IMG] [​IMG]

DamagerRewards 是一个基于 MythicMobs 的伤害排名奖励系统插件,为 Minecraft 服务器提供公平、灵活的 Boss 战奖励机制。

核心功能
伤害统计系统
  • 实时伤害记录 - 自动监听并记录玩家对 MythicMobs 怪物造成的伤害
  • 智能排名计算 - 根据总伤害量自动生成实时排行榜
  • 多怪物支持 - 可同时为多种不同的 MythicMobs 怪物配置独立的奖励系统
奖励发放机制
  • 排名奖励 - 根据伤害排名给予不同等级的奖励(如第1名获得传说装备,第2名获得稀有装备等)
  • 参与奖励 - 所有参与攻击的玩家都能获得基础参与奖励,鼓励团队合作
  • 自动发放 - 怪物死亡时自动执行奖励命令,无需手动干预
灵活配置系统
  • 范围限制 - 可设置玩家与怪物的距离限制,防止远程"蹭伤害"
  • 智能排名 - 系统根据TopRewards配置自动确定排名数量,无需手动设置
  • 世界限制 - 可指定在哪些世界启用奖励系统
  • 多身份命令执行 - 支持控制台、玩家、OP三种身份执行奖励命令
  • 实时排名显示 - 怪物死亡后自动向范围内玩家显示完整伤害排行榜
占位符支持
  • PlaceholderAPI 集成 - 提供丰富的占位符用于其他插件调用
  • 实时数据 - 占位符数据实时更新,可用于记分板、聊天等场景

    安装与使用
    前置要求
    • Minecraft 服务端: Paper 1.20.1 或更高版本
    • Java: 17 或更高版本
    • 必需插件: MythicMobs 5.5+
    • 可选插件: PlaceholderAPI(用于占位符功能)
    安装步骤
    1. 下载 DamagerRewards.jar 文件
    2. 将文件放入服务器的 plugins 目录
    3. 重启服务器或使用 /reload 命令
    4. 插件会自动生成配置文件和示例配置
    基础配置
    主配置文件 (config.yml)
    # 是否启用调试模式
    debug: false

    # 语言设置
    language: zh_CN

    # 插件设置
    settings:
    # 是否在控制台显示详细日志
    verbose-logging: false

    # 是否自动保存数据
    auto-save: true

    # 自动保存间隔(分钟)
    save-interval: 5
    消息配置 (message.yml)
    所有插件输出的消息都可以在此文件中自定义,支持颜色代码和占位符:

    prefix: "&6[DamagerRewards] &f"

    plugin:
    reloaded: "${prefix}&a配置文件已重新加载!"
    no-permission: "${prefix}&c你没有权限执行此命令!"

    reward:
    top-reward: "${prefix}&6恭喜 &a{player} &6获得第{rank}名奖励!"
    participation-reward: "${prefix}&6感谢 &a{player} &6的参与,获得参与奖励!"
    ⚙️ 怪物配置详解
    每个怪物都需要在 mobs 目录下创建独立的配置文件。文件名可以自定义,但必须以 .yml 结尾。

    简化设计理念
    本插件采用简化的配置设计:
    • 无伤害门槛: 所有造成伤害的玩家都参与排名,无需达到特定伤害值
    • 动态排名数: 系统根据TopRewards中配置的奖励数量自动确定排名数
    • 智能奖励: 前N名获得排名奖励,其余获得安慰奖励,避免重复发放
    • 透明显示: 自动向在场玩家显示完整排行榜,增加游戏体验
    配置文件示例 (mobs/king.yml)
    # 统计的MythicMobs插件中配置的怪物名(注意不是DISPLAY)
    MythicMobs: King

    # 排名奖励配置[支持多种执行身份]
    # 系统会自动根据配置的Top奖励数量确定排名数
    # 由于兼容了PlaceholderAPI插件注册按排名识别玩家名的占位符,我们直接用占位符代替玩家名
    # 支持命令执行身份前缀:
    # [console]命令 - 控制台身份执行(默认)
    # [player]命令 - 玩家身份执行
    # [op]命令 - 玩家OP身份执行(临时提升权限)
    TopRewards:
    Top1:
    - "[console]eco give %dr_top_1% 100" # 控制台身份执行经济命令
    - "[console]say 恭喜 %dr_top_1% 玩家获得第一名!" # 公告消息
    - "[player]warp spawn" # 玩家身份传送到出生点
    - "[op]gamemode creative" # 临时OP权限设置创造模式
    - "[console]mm item 传说圣剑 give %dr_top_1% 1" # 控制台给予物品
    Top2:
    - "[console]eco give %dr_top_2% 50" # 第二名奖励
    - "[player]heal" # 玩家身份恢复血量
    - "[console]mm item 优良圣剑 give %dr_top_2% 1"
    Top3:
    - "[console]eco give %dr_top_3% 25" # 第三名奖励
    - "[console]mm item 普通圣剑 give %dr_top_3% 1"

    # 安慰奖励(给未获得排名奖励的参与者)
    # 只要对boss造成过伤害且在自定义范围内就算参与
    # 支持多指令配置和执行身份前缀
    AllRewards:
    all:
    - "[console]eco give <player> 10" # 控制台给予基础奖励
    - "[player]feed" # 玩家身份恢复饱食度
    - "[console]say 由于玩家<player>参与了战斗,获得安慰奖励!"
    - "[console]mm item 安慰奖品 give <player> 1"

    # 自定义生效的世界名限制
    world:
    world1: false # 在world1禁用
    world2: true # 在world2启用

    # 自定义玩家范围限制(方块)
    Range: 50
    配置参数说明
    参数 说明 示例
    MythicMobs MythicMobs 中配置的怪物内部名称 King
    TopRewards 排名奖励命令配置,支持多种执行身份前缀 Top1: "[console]give %dr_top_1% diamond 1"
    AllRewards 安慰奖励命令配置,支持多种执行身份前缀 all: "[player]heal"
    world 世界启用/禁用配置 world: true
    Range 玩家与怪物的最大距离限制,也是排名显示范围 50
    命令执行身份前缀
    前缀 执行身份 说明 适用场景
    [console] 控制台 以控制台身份执行,拥有最高权限(默认) 经济奖励、物品给予、公告消息
    [player] 玩家 以玩家当前权限执行命令 传送、治疗、个人技能
    [op] 临时OP 临时提升玩家为OP后执行,执行后自动恢复 游戏模式切换、高权限命令
    奖励命令说明
    排名奖励占位符
    • %dr_top_1% - 第1名玩家名称
    • %dr_top_2% - 第2名玩家名称
    • %dr_top_3% - 第3名玩家名称
    • 以此类推...
    参与奖励占位符
    • <player> - 当前参与玩家名称
    命令示例
    TopRewards:
    Top1:
    - "[console]give %dr_top_1% diamond 10" # 控制台给第1名10个钻石
    - "[player]warp vip" # 玩家身份传送到VIP区域
    - "[op]gamemode creative" # 临时OP设置创造模式
    Top2:
    - "[console]give %dr_top_2% gold_ingot 5" # 控制台给第2名5个金锭
    - "[player]heal" # 玩家身份恢复血量
    Top3:
    - "[console]eco give %dr_top_3% 1000" # 控制台给第3名1000金币

    AllRewards:
    all:
    - "[console]give <player> bread 3" # 控制台给每个参与者3个面包
    - "[player]feed" # 玩家身份恢复饱食度
    向后兼容性
    不带前缀的命令将默认以控制台身份执行:

    TopRewards:
    Top1: "give %dr_top_1% diamond 1" # 等同于 [console]give %dr_top_1% diamond 1
    命令执行身份详解
    执行身份类型
    DamagerRewards 支持三种不同的命令执行身份,通过前缀标识符来区分:

    1. 控制台执行 [console](默认)
    • 权限等级: 最高(服务器控制台权限)
    • 适用场景: 经济奖励、物品给予、公告消息
    • 特点: 无权限限制,可执行任何服务器命令
    • 示例: [console]eco give %dr_top_1% 1000
    2. 玩家执行 [player]
    • 权限等级: 玩家当前权限
    • 适用场景: 个人技能、传送命令、玩家专有功能
    • 特点: 受玩家权限组限制,只能执行玩家有权限的命令
    • 示例: [player]warp home
    3. OP执行 [op]
    • 权限等级: 临时OP权限
    • 适用场景: 游戏模式切换、高权限命令
    • 特点: 临时提升玩家为OP,执行后自动恢复原状态
    • 安全机制: 使用try-finally确保权限正确恢复
    • 示例: [op]gamemode creative
    使用最佳实践
    推荐用法
    TopRewards:
    Top1:
    - "[console]eco give %dr_top_1% 1000" # 经济奖励用控制台
    - "[player]heal" # 个人技能用玩家身份
    - "[op]gamemode creative" # 特殊权限用OP
    - "[console]broadcast 恭喜 %dr_top_1%!" # 公告用控制台
    注意事项
    • 玩家离线: 使用[player]或[op]前缀时,如果玩家离线,命令将被跳过并记录警告
    • 权限安全: [op]前缀会临时提升权限,执行后立即恢复,确保安全性
    • 命令语法: 前缀必须放在命令最前面,格式为[身份]命令内容
    • 向后兼容: 不带前缀的命令默认以控制台身份执行
    错误处理
    • 无效前缀将默认使用控制台执行
    • 玩家离线时会跳过player/op命令并记录日志
    • OP权限操作异常时会自动恢复原始状态
    排名显示系统
    当怪物死亡后,系统会自动向范围内的所有玩家显示完整的伤害排行榜:

    显示效果
    === King 伤害排行榜 ===
    1. PlayerA 造成了 150.50 伤害
    2. PlayerB 造成了 120.30 伤害
    3. PlayerC 造成了 80.20 伤害
    4. PlayerD 造成了 45.10 伤害
    ========================

    显示规则
    • 范围限制: 只有在配置的Range范围内的玩家才能看到排名
    • 世界限制: 遵循配置文件中的世界启用/禁用设置
    • 实时显示: 怪物死亡后立即显示给在场玩家
    • 完整排名: 显示所有参与伤害统计的玩家排名
    奖励分发逻辑
    • 前N名: 根据TopRewards中配置的数量,前N名玩家获得对应的排名奖励
    • 其余玩家: 未获得排名奖励的参与者获得AllRewards安慰奖励
    • 排除重复: 已获得排名奖励的玩家不会再获得安慰奖励
    游戏内使用
    管理员命令
    • /dr 或 /damagerrewards - 显示帮助信息
    • /dr reload - 重新加载所有配置文件
    权限节点
    • damagerrewards.admin - 管理员权限(默认:OP)
    • damagerrewards.reload - 重载配置权限(默认:OP)
    游戏流程
    1. 配置怪物 - 在 mobs 目录下为每种 MythicMobs 怪物创建配置文件
    2. 玩家攻击 - 玩家攻击配置的怪物时,系统自动记录伤害
    3. 实时排名 - 系统实时计算并更新伤害排行榜
    4. 怪物死亡 - 怪物死亡时:
      • 向范围内玩家显示完整伤害排行榜
      • 根据TopRewards配置给前N名发放排名奖励
      • 给其余参与者发放安慰奖励
      • 重置排名数据
    PlaceholderAPI 占位符
    如果安装了 PlaceholderAPI,可以使用以下占位符:

    全局排名占位符
    • %dr_top_1% - 全局第1名玩家名称
    • %dr_top_2% - 全局第2名玩家名称
    • %dr_top_3% - 全局第3名玩家名称
    特定怪物排名占位符
    • %dr_top_1_king% - King 怪物第1名玩家名称
    • %dr_top_2_dragon% - Dragon 怪物第2名玩家名称
    • %dr_top_3_boss% - Boss 怪物第3名玩家名称
    这些占位符可以用在记分板、聊天格式、全息显示等支持 PlaceholderAPI 的地方。

    ️ 故障排除
    常见问题
    Q: 插件无法加载? A: 检查是否安装了 MythicMobs 插件,确保服务器版本为 Paper 1.20.1+

    Q: 怪物死亡后没有发放奖励? A: 检查以下几点:
    • 怪物配置文件中的 MythicMobs 名称是否正确
    • 玩家是否在配置的距离范围内
    • 当前世界是否在 world 配置中启用
    • TopRewards 和 AllRewards 配置是否正确
    Q: 占位符不工作? A: 确保安装了 PlaceholderAPI 插件,并使用 /papi reload 重载占位符

    Q: 奖励命令执行失败? A: 检查控制台错误日志,确保奖励命令语法正确,相关插件已安装

    Q: 使用 [player] 或 [op] 前缀的命令没有执行? A: 检查以下几点:
    • 玩家是否在线(离线玩家无法执行这两种命令)
    • 玩家是否有执行该命令的权限([player] 前缀)
    • 查看控制台日志中的警告信息
    Q: 使用 [op] 前缀后玩家权限异常? A: 插件已内置安全机制,OP权限会在命令执行后自动恢复。如果仍有问题,请检查:
    • 服务器是否有其他插件干扰权限系统
    • 是否启用了调试模式查看详细日志
    Q: 命令前缀格式错误怎么办? A: 无效的前缀格式会自动回退到控制台执行,检查:
    • 前缀是否为 [console]、[player]、[op] 之一
    • 方括号是否为英文格式
    • 前缀后是否有空格或其他字符
    调试模式
    在 config.yml 中设置 debug: true 可以启用调试模式,查看详细的运行日志。
Resource Information
Author:
----------
Total Downloads: 46
First Release: Jul 29, 2025
Last Update: Jul 29, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings