CwWorldET - 综合世界探索管理插件丨🔥自定义多个随机传送点丨⭐世界倒计时和个人倒计时探索丨随机撤离点 · Paper 1.21.X

原创 世界管理 CwWorldET - 综合世界探索管理插件丨🔥自定义多个随机传送点丨⭐世界倒计时和个人倒计时探索丨随机撤离点 · Paper 1.21.X 2.3.2

请登录后获取
版权类型
原创
插件中文名称
综合世界探索管理插件
插件英文名称
CwWorldET
原帖地址
#
支持的核心(服务端)
  1. Paper
语言支持
中文(简体)
前置组件
可选前置:
Multiverse-Core[多世界管理] - https://dev.bukkit.org/projects/multiverse-core
PlaceholderAPI
GSit
HolographicDisplays / DecentHolograms
适配版本(Java)
  1. 1.21

✨ 功能概览​

模块 说明​

多世界传送点——每个世界可配置多个命名传送点,支持权重随机传送与防碰撞检测(半径可配置)。​

世界限时探索——支持世界统一倒计时或玩家独立倒计时;BossBar 实时显示剩余时间,Title 在提醒点全屏广播。​

背包限制——图形化配置(# 禁用、A 背包槽),装备不同背包可解锁额外格子;丢弃背包时对应物品掉落;支持屏障占位与死亡不掉落。​

进入限制——可要求清空背包存储区(E背包)才允许进入,快捷栏可保留。​

组队系统——GUI 创建/寻找队伍、邀请玩家、队长离线自动转移、无友伤。​

组队传送——队长发起全队传送,队员投票同意,自动检查背包条件,拒绝或条件不符不进入冷却。​

倒地救援——致命伤害进入重伤倒地状态,队友需长按右键救援,救援期间倒计时暂停;支持 GSit 爬行动作。​

撤离系统——每个世界可设置多个撤离区域,进入后开始倒计时,成功后传送至安全点;支持临时撤离点随机激活。​

全息名称——支持 HolographicDisplays / DecentHolograms,显示撤离点名称与动态状态(正常/撤离中/未激活)。​

世界管理 GUI——图形界面编辑世界参数:启用状态、计时模式、时长、冷却、结束动作、背包限制、倒地、自动重置、禁用指令等。​

指令禁用——每个世界可独立开关并配置禁止使用的指令列表,支持 GUI 实时增删。​

自动重置——世界无玩家时自动重置倒计时,可全局开关及各世界独立开关,后台日志可配置。​

传送冷却——离开世界后进入可配置的冷却时间,防止频繁传送(仅成功传送后触发)。​

管理员传送——/cwet tpworld 允许管理员传送到任意世界出生点,不受传送点限制。​

PlaceholderAPI——提供 10+ 个占位符,方便在计分板、TAB、聊天等位置显示插件信息。​



📋 指令列表​

玩家指令​

指令 说明​

/cwet rtp <世界名> [传送点] 随机或指定传送到目标世界;队长使用则发起组队传送
/cwet pt 打开组队 GUI 界面
/cwet help 查看帮助

指令 说明 管理员指令(权限 cwet.admin)​

/cwet reload 重载所有配置文件
/cwet create <世界名> 接管服务器中存在的世界
/cwet tpcreate <ID> <名称> 在当前世界创建传送点
/cwet tpremove <世界名> <ID|all> 删除指定传送点或全部
/cwet remove <世界名> 移除接管的世界(需确认)
/cwet edit 打开世界管理 GUI
/cwet givebackpack <类型> [玩家] 给予背包物品(小包/中包/大包/超大包)
/cwet extraction create <ID> <名称> 使用木斧圈选后创建撤离区域
/cwet worldreload <世界名|all> 重置世界倒计时(归零,不自动开始)
/cwet tpworld <世界名> 管理员传送到任意世界出生点
/cwet debug 开关调试模式

内部指令(由点击事件触发)​

/cwet teamtp accept <队长> – 同意组队传送
/cwet teamtp deny <队长> – 拒绝组队传送
/cwet team join <邀请者> – 同意队伍邀请
/cwet team deny <邀请者> – 拒绝队伍邀请
/cwet team acceptjoin <申请人> – 同意入队申请
/cwet team denyjoin <申请人> – 拒绝入队申请
/cwet confirm <世界名> – 确认移除世界


⚙️ 配置文件​

所有世界配置独立存放于 plugins/CwWorldET/worlds/ 目录下,每个 .yml 文件代表一个世界。主配置 config.yml 控制全局选项。​


主配置文件 config.yml​

YAML:
language: lang/zh_CN.yml
extraction_hologram: true     # 全局全息开关
auto-reset:
  enabled: true               # 全局自动重置开关
  countdown: 180              # 无玩家后重置倒计时(秒)
  log: false                  # 是否在控制台输出重置日志
debug: false                  # 调试模式

背包物品配置 items.yml​

YAML:
backpacks:
  small:
    material: LEATHER_HORSE_ARMOR
    model_data: 1001
    ia_item_id: ""
    display_name: "小背包"
    unlock_pattern: []
  medium:
    # ...

世界配置文件示例 worlds/world_name.yml​

YAML:
# =========================================================
# CwWorldET 世界配置文件模板
# 文件名必须是世界文件夹名(例如 world_nether.yml),
# 放置在 plugins/CwWorldET/worlds/ 目录下。
# =========================================================

# 是否启用本世界(true/false)。若为 false,插件将完全忽略此世界。
enabled: true

# ---------- 倒计时相关 ----------
timer:
  # 倒计时模式:
  #   world  - 世界统一倒计时(进入该世界的所有玩家共享同一个倒计时)
  #   player - 每个玩家独立倒计时
  mode: world

  # 总倒计时时长(单位:秒)
  duration: 3600

  # 提醒时间点列表(单位:秒)。
  # 当剩余时间等于这些值时,会向世界内玩家发送 Title 广播。
  reminders: [600, 300, 60]

  # 倒计时结束后玩家将被传送到的世界(用于结束动作“传送”或“死亡”后的传送)
  death-teleport-world: world

  # 倒计时结束后的动作:
  #   death    - 玩家死亡(并传送至 death-teleport-world 的出生点)
  #   teleport - 直接传送到 death-teleport-world 的出生点(不死亡)
  #   none     - 什么也不做
  end-action: death

  # 倒计时结束后执行的控制台指令列表(可选)。
  # 可以使用 %world% 作为当前世界名的占位符。
  end-commands:
    - "say 世界 %world% 的探索时间已结束!"

# ---------- 退出行为 ----------
quit:
  # 在被限制的世界中退出服务器时,是否直接判定玩家死亡
  death-on-quit: true

  # 仅当计时模式为 player 时有效。
  # 若为 true,玩家退出服务器会冻结其个人倒计时,下次上线继续剩余时间;
  # 若为 false,则退出服务器直接取消个人倒计时。
  freeze-player-timer-on-quit: true

# ---------- 背包格子限制 ----------
inventory:
  # 是否启用背包格子限制
  restricted: true

  # 背包存储区行数(不包含最下方的快捷栏,通常为 3 或 4)
  rows: 4

  # 背包禁用图案。
  # 每一行字符串对应存储区的一行(从上到下)。
  #   '#' 表示禁用格子
  #   空格 表示可用格子
  #   'A' 表示背包扩展槽(可以放置背包物品,且该槽始终可用)
  # 注意:图案的行数应与上面的 rows 一致(或小于 rows)。
  pattern:
    - "     ####"
    - "     ####"
    - "########A"

# ---------- 进入限制 ----------
entry:
  # 进入该世界前是否必须清空背包存储区(即 E 背包,不包含快捷栏)。
  # 快捷栏(0-8格)的物品可以保留。
  require-empty-inventory: true

# ---------- 传送点设置 ----------
teleport:
  # 传送点列表(键值对映射)。
  # 每个传送点必须包含坐标、世界、朝向和随机权重。
  points:
    spawn:                           # 传送点唯一ID
      world: world_nether            # 传送点所在世界(通常与当前配置世界相同)
      x: 0.5
      y: 70
      z: 0.5
      yaw: 0                         # 水平视角(度)
      pitch: 0                       # 垂直视角(度)
      weight: 50.0                   # 随机权重:值越大,使用 /cwet rtp 随机传送时被选中的概率越高
    cave:
      world: world_nether
      x: 100.5
      y: 30
      z: -50.5
      yaw: 90
      pitch: 0
      weight: 50.0

  # 防碰撞检测半径(格)。
  # 玩家随机传送时,会优先选择该半径内没有其他玩家的传送点。
  player-radius: 10.0

# ---------- 传送冷却 ----------
# 离开该世界后的传送冷却时间(秒)。
# 0 表示无冷却。
cooldown: 120

# ---------- 倒地救援系统(可选) ----------
downed:
  # 是否启用倒地系统
  enabled: true

  # 倒地倒计时(秒)。超时未获救则真正死亡。
  duration: 60

  # 被队友救起后恢复的生命值比例(0.33 即恢复最大生命值的 33%)
  rescue-health: 0.33

# ---------- 自动重置 ----------
auto-reset:
  # 当世界内无玩家时,是否自动重置世界倒计时(归零,等待下次进入再重新开始)。
  # 注意:此开关受 config.yml 中的全局自动重置开关影响。
  enabled: true

# ---------- 禁用指令 ----------
disabled-commands:
  # 是否启用禁用指令功能
  enabled: true
  # 禁止玩家在该世界使用的指令列表(填写命令名,不带斜杠,例如 spawn)
  # 支持子命令匹配,例如 "tpa" 会拦截 /tpa 以及 /tpa xxx
  list:
    - spawn
    - home
    - back

# ---------- 撤离系统(可选) ----------
extraction:
  # 是否启用撤离系统
  enabled: true

  # 撤离区域列表
  regions:
    exit_a:                          # 撤离区域唯一ID
      # 区域显示名称(全息名称模板)。
      # 支持换行符 \n,使用 {1} 表示动态状态(正常 / 撤离中 X秒 / 未激活等)。
      name: "安全撤离点A\\n撤离状态: {1}"

      # 区域所在世界
      world: world_nether

      # 区域的第一个角坐标(与 pos2 共同构成立方体区域)
      pos1:
        x: 10
        y: 70
        z: 10

      # 区域的第二个角坐标
      pos2:
        x: 20
        y: 75
        z: 20

      # 玩家进入该区域后开始撤离的倒计时秒数
      countdown: 30

      # 撤离目标类型:
      #   world_spawn - 传送到当前世界的出生点
      #   fixed       - 传送到下方设置的固定坐标
      target-type: fixed

      # 当 target-type 为 fixed 时,目标世界
      target-world: world

      # 固定目标点坐标
      target-x: 0
      target-y: 70
      target-z: 0
      target-yaw: 0
      target-pitch: 0

      # 是否为临时撤离点。
      # 若为 true,该撤离点不会一直存在,而是在世界倒计时首次激活时,
      # 根据 temporary-chance 的概率随机开启。
      temporary: false

      # 临时撤离点的激活概率(0.0 ~ 1.0)
      temporary-chance: 0.5

      # 是否在区域中心显示全息名称(需要安装 HolographicDisplays 或 DecentHolograms)
      hologram: true


📦 PlaceholderAPI 占位符​

占位符 说明​

%cwet_time_<世界名>% 世界整体剩余时间(格式 分:秒)​

%cwet_time_<世界名>_player% 玩家个人剩余时间​

%cwet_online_<世界名>% 指定世界在线人数​

%cwet_teams_online% 服务器内队伍总数​

%cwet_cooldown_<世界名>% 玩家在该世界的传送冷却剩余秒数​

%cwet_pt_<1~3>_name% 队伍第N名成员名称(1为队长)​

%cwet_pt_<1~3>_health% 成员状态(🟢血量 / 🟡等待救援 / 🔵正在救援 / 🔴已阵亡)​

%cwet_pt_world_<世界名>% 指定世界内队伍数量​


🛠️ 使用流程​

安装插件并重启服务器,配置 config.yml 和 items.yml。​

使用 /cwet create <世界名> 接管目标世界,或直接编辑 worlds/<世界名>.yml。​

通过 /cwet tpcreate 添加传送点,或使用 /cwet edit 在 GUI 中调整参数。​

执行 /cwet reload 让配置即时生效。​

玩家使用 /cwet rtp 传送,/cwet pt 组队。​


(可选)安装 PlaceholderAPI 以使用占位符;安装 GSit 实现倒地爬行;安装全息插件显示撤离点。​


❓ 常见问题​

Q: 背包格子的屏障方块为什么会掉落?​

A: 死亡或丢弃背包时,插件会自动恢复真物品并移除屏障,不会残留。掉落物品即为玩家真实装备,屏障仅为视觉提示。​


Q: 组队传送被拒绝后仍然有冷却?​

A: 从 2.2.0 起,只有成功传送后才会设置冷却,拒绝、超时或背包未清空均不会冷却。​


Q: 临时撤离点始终开启?​

A: 请确保 temporary: true 且 temporary-chance 小于1。临时撤离点在世界计时器首次激活时随机决定开启。​


Q: Back 指令在被接管世界死亡后无法使用,但去其他世界后还能用吗?​

A: 可以。插件仅阻止返回被接管世界,其他正常传送不受影响。​


Q: 如何关闭世界的自动重置?​

A: 在 config.yml 中将 auto-reset.enabled 设为 false 可全局关闭,或单独在世界配置中关闭 auto-reset.enabled。​

后退
顶部 底部