TISUnion / PrimeBackup

A powerful backup plugin for MCDR, an advanced backup solution for your Minecraft world
https://tisunion.github.io/PrimeBackup/
GNU Lesser General Public License v3.0
81 stars 5 forks source link

[功能请求]投票回档 #34

Closed PeterFujiyu closed 3 months ago

PeterFujiyu commented 4 months ago

MCDR 权限和投票回档机制改进建议

1. 引入投票理由记录和通知机制

2. 设定动态等待时间和实时反馈

4. 优化小规模服务器和紧急回档机制

改进后的具体规则和案例

规则总结

  1. 投票机制

    • 任何权限小于回档所需权限的玩家均可发起投票回档。
    • 如果游戏中只有一个真玩家(不包括假人[carpet fake player]),则无需权限即可进行回档。
    • 当有多个玩家时,发起投票,玩家可以输入 1y 表示赞成,输入 0n 表示反对。不投票则视为中立。
    • 如果赞成票数 >= 反对票数 * 1.5(向下取整),则可以无需权限等级2(helper)即可进行回档、删除备份等操作。
  2. 权限等级和投票通过条件

    • 权限等级1的玩家投票通过门槛为反对票数的2倍。
    • 权限等级2的玩家(helper)及以上可以直接回档,无需投票。
  3. 小规模服务器和紧急回档

    • 对于只有少数几个真玩家的服务器,可以通过配置文件设定更灵活的回档机制,比如降低赞成票数的门槛。
    • 设定紧急回档机制,在发生重大BUG或服务器崩溃时,由高权限玩家或管理员(op player)直接决定回档,无需投票。

案例

  1. 真玩家数:10;回档人权限:1;赞成:6;反对:1;中立:1

    • 结果:允许回档确认 (!!pb confirm)
    • 赞成数(6) >= 反对数(1) * 1.5 = 1.5(向下取整为1),允许回档。
  2. 真玩家数:1;回档人权限:1;赞成:0;反对:0;中立:0

    • 结果:允许回档确认 (!!pb confirm)
    • 只有一个真玩家,无需权限即可回档。
  3. 真玩家数:10;回档人权限:2;赞成:0;反对:9;中立:0

    • 结果:无需等待,直接回档 (!!pb confirm)
    • 权限等级2(helper)及以上无需投票即可回档。
  4. 真玩家数:10;回档人权限:0;赞成:5;反对:3;中立:1

    • 结果:不允许确认
    • 赞成数(5) < 反对数(3) * 1.5 = 4.5(向下取整为4),不满足回档条件。
  5. 真玩家数:10;回档人权限:3;赞成:0;反对:9;中立:0

    • 结果:允许立刻回档确认 (!!pb confirm)
    • 高权限玩家无需投票即可回档。
  6. 真玩家数:1;回档人权限:0;赞成:0;反对:0;中立:0

    • 结果:允许回档确认 (!!pb confirm)
    • 只有一个真玩家,无需权限即可回档,但需要等待时间确认。

自定义方式

1.用配置文件

Thanks. 2024.06.27

Fallen-Breath commented 4 months ago

这一种与具体服务器需求紧密关联,且与 PB 备份核心操作无关的需求,建议自行编写插件实现。你可以在自定义的插件中实现所需的投票 / 紧急回档逻辑,然后再调用 PB 的回档指令。当然记得提高回档指令所需权限,避免玩家直接操作回档