Skip to content

Repository files navigation

StarMultiWorld

一个基于 Paper 的多世界管理插件,支持世界的创建、删除、重置、传送与列表管理,内置按世界划分的权限控制、强制游戏模式与首次出生点功能。

功能特性

  • 🌍 世界管理 (/mw)
    • /mw create <世界> [环境] [种子] — 创建或加载世界,支持 NORMAL / NETHER / THE_END
    • /mw delete <世界> [force] — 删除世界(需二次确认,删除前自动备份)
    • /mw reset <世界> [force] — 使用随机种子重新生成世界(需二次确认,重置前自动备份)
    • /mw tp <世界> [玩家] — 传送到指定世界(可传送其他玩家)
    • /mw setspawn [世界] — 将当前位置设为某世界的重生点
    • /mw info [世界] — 查看世界信息(环境、种子)
    • /mw list — 列出所有已管理的世界
    • /mw reload — 热重载插件配置
  • 🔐 按世界权限控制
    • 通过 starmw.world.<世界名> 控制玩家进入对应世界
    • PlayerTeleportEventPlayerPortalEvent(HIGH)中拦截,PlayerChangedWorldEvent(MONITOR)兜底
  • 🎮 强制游戏模式
    • 进入世界时按 worlds.yml 中配置的游戏模式强制切换
    • 可通过 starmw.bypass.gamemode 权限绕过
  • 👋 首次出生点
    • 新玩家首次加入服务器时自动传送到 config.yml 中配置的位置
  • 🛡️ 安全删除 / 重置
    • 删除或重置前自动异步备份世界存档,备份失败则中止操作
    • 支持 force 参数跳过备份直接执行

环境要求

依赖 版本
服务端 Paper 26.1.2+
Java 25+

构建与安装

# 构建
./gradlew build

# 产物位于
# build/libs/StarMultiWorld-<version>.jar

将构建出的 jar 放入服务端的 plugins/ 文件夹,重启服务器即可。

本地启动测试服务器:

./gradlew runServer

命令与权限

命令 描述 权限 默认
/mw tp <世界> [玩家] 传送到一个世界 starmw.command.tp / starmw.command.tp.other OP
/mw setspawn [世界] 设置世界的重生点 starmw.command.setspawn OP
/mw create <世界> [环境] [种子] 创建新世界 starmw.command.create OP
/mw delete <世界> [force] 删除一个世界(先备份) starmw.command.delete OP
/mw reset <世界> [force] 使用随机种子重置世界(先备份) starmw.command.reset OP
/mw info [世界] 查看世界信息 starmw.command.info OP
/mw list 列出所有世界 starmw.command.list OP
/mw reload 重载插件配置 starmw.command.reload OP
权限 描述 默认
starmw.bypass.gamemode 绕过强制游戏模式更改 OP
starmw.admin 上述所有权限的汇总 OP
starmw.world.* 允许进入所有世界 OP
starmw.world.<世界名> 进入指定世界的权限(动态注册)

配置文件

首次启动后会在 plugins/StarMultiWorld/ 下生成 config.ymlworlds.yml

config.yml

# 是否启用 worlds.yml 中配置的世界出生点
use-world-spawn: true

# 是否启用强制切换游戏模式(进入世界时按 worlds.yml 配置强制切换)
enforce-game-mode: true

# 首次进入服务器的玩家的出生点设置
first-spawn:
  enabled: true      # 是否启用
  world: world       # 出生点所在的世界名称
  x: 0.5
  y: 61.0
  z: 0.5
  yaw: 90.0
  pitch: 0.0

worlds.yml

每个世界一个条目,WorldConfigManager 会在启动时自动从服务器现有世界生成:

worlds:
  world:
    environment: NORMAL
    spawn:
      x: 0.5
      y: 61.0
      z: 0.5
      yaw: 90.0
      pitch: 0.0
    gamemode: SURVIVAL    # 留空表示继承服务器全局设置
    seed: 12345

世界名称不区分大小写。环境为 NORMAL / NETHER / THE_END,也可按名称后缀自动检测:_nether → NETHER,_the_end / _end → THE_END。

技术栈

About

StarM服务器多世界管理插件

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages