PvP 开关

PvP 开关

战斗标记与持续PVP偏好设置,从宠物保护到更多功能!

Title

fabric modrinth curseforge

这是一个允许玩家单独开关 PvP 的模组,同时还提供了一些我认为可能对你有用的额外功能。我也知道有不少模组实现了类似的功能,但我认为我可以制作出超越简单开关的东西。

本模组提供的功能

  • PvP偏好:玩家自行选择是否为自己禁用或启用 PvP
  • 彩色名称标签:利用原版的队伍系统来显示玩家的 PvP 状态
  • 战斗标记:标记期间无法切换 PvP 状态,若在标记激活时因任何原因断开连接,玩家将立即死亡
  • 全局 PvP:强制为服务器内所有玩家启用或禁用 PvP;此设置优先于所有其他设置
  • 宠物保护:保护所有已驯服的生物免受 PvP 已关闭的玩家攻击(宠物主人的 PvP 状态不纳入考虑)
  • 在其他维度强制 PvP:你可以在特定维度强制开启 PvP
  • LuckPerms 支持:允许你自定义各项功能的可访问性
  • 可配置性:部分内容可配置;关于可配置内容的详细信息,请参阅下方的配置章节

免责声明

本模组会忽略 server.properties 文件中的 pvp 设置。请坚持使用模组最新版本,因为由于我的工作并非完美无缺,旧版本可能存在漏洞或缺少功能。也请务必阅读依赖项章节。

依赖项

命令与权限

命令 描述 权限节点
/pvp 切换你的 PvP 开关状态。 pvptoggle.player.toggle
/pvp <player> 更改某位玩家的 PvP 偏好。 pvptoggle.op.other.toggle
/pvp <player> timeout <duration> 阻止某位玩家在指定时长(以秒为单位)内切换 PvP。 pvptoggle.op.other.timeout
/pvp status 显示你当前的 PvP 状态。 pvptoggle.player.status
/pvp status <player> 查看某位玩家 PvP 状态的详细信息列表。 pvptoggle.op.other.status
/pvp status flag 切换是否显示你的 PvP 标记计时器。 pvptoggle.player.status
/pvp global <state> <shouldBroadcast> 将全局 PvP 状态设置为 on、off 或 neutral。<shouldBroadcast> 参数(true 或 false)用于决定是否广播此消息。 pvptoggle.op.global
/pvp reload 重新加载配置文件。 pvptoggle.op.reload

还有 pvptoggle.op.exempt 权限节点,标记你免受惩罚,例如被标记、进入冷却等。

再次说明,正如依赖项章节所述,如果你不关心通过 LuckPerms 等其他模组来自定义权限节点,可以完全忽略它们。所有标记为“player”的节点默认对所有玩家可用,而标记为“op”的节点对任何拥有2级或更高管理员权限等级的玩家可用。

配置

配置文件路径:config/pvptoggle/pvp-toggle.json (启动时生成)

{
  // 警告:请勿复制此示例 JSON

  // 切换冷却时间
  "toggle_cooldown": 120.0,

  // 参与战斗后被标记的持续时间
  "combat_flag_duration": 60.0,

  // 新玩家的默认 PvP 偏好
  "default_pvp_preference": true,

  // 控制台反馈
  "broadcast_to_other_ops": false,

  // 以下设置应不言自明
  "punish_combat_log": true,
  "protect_tameables": true,
  "force_pvp_in_other_dimensions": false,
  "team_colors": true,
  "prevent_item_pickup_when_pvp_off": false,
  "forced_pvp_in_other_dimensions": {
    "minecraft:overworld": false,
    "minecraft:the_nether": false,
    "minecraft:the_end": false
  },

  /* 例如,将 "tpa" 加入黑名单命令列表将屏蔽任何包含 "tpa" 字样的命令。
  你也可以只屏蔽特定命令如 "tpaaccept",而不必屏蔽所有相关命令 */
  "blacklisted_commands_when_flagged": [
    "tpa",
    "home"
  ]
}

除了 toggle_cooldown 和 combat_flag_duration 是浮点数(从 0.0 秒到最大 9999.0 秒)之外,每个设置都是布尔值(true/false)。

编辑值后重启服务器或使用 /pvp reload 来应用更改。如果 JSON 文件损坏,请删除它以便重新生成。

支持

感谢你的下载。如果你能在模组页面的评论区报告你遇到的任何潜在问题,我将不胜感激,因为我目前没有其他方式接收反馈。你也可以通过分享本模组来支持我,因为无论有多少人受益于它的使用,这都能真正激励我继续开发。