服务器管理+

服务器管理+

ServerManagement+为您提供对完整经济系统的便捷访问,并具备提升管理员游戏体验所需的QOL功能。

ServerManagement+

Minecraft 的全方位服务器管理解决方案

支持的版本: Minecraft 1.20.1 (Forge 47.4.0+ / Fabric API 0.92.8+) | Minecraft 1.21.1 (Forge 52.1.0+ / NeoForge 21.1.80+ / Fabric API 0.116.1+)

ServerManagement+ 为您提供了一套完整的服务器运行工具——包含完整经济系统的银行账户、玩家市场、赌场、每日任务、世界管理以及一个精美的管理员仪表板——所有这些都整合在一个模组中。


💬 加入我们的 Discord 社区!

有疑问、遇到了奇怪的 Bug,或者对新功能有奇思妙想?我们刚刚开放了官方社区服务器!加入我们可以获得直接支持、紧跟开发动态,并与其他服务器管理员交流。

🔗 加入 ServerManagement+ Discord 服务器


发布状态与路线图

最新版本 — Minecraft 1.20.1 v2.1.1-b1 和 1.21.1 v2.1.0-b1

v2.1.1-b1 版本现已面向 Minecraft 1.20.1 独家发布!

  • 1.20.1 (v2.1.1-b1): 已为 Forge 和 Fabric 发布。新的 v2.1.1-b1 更新彻底改写了模组的自动更新系统!现在它可以可靠地检查 Modrinth 和 CurseForge 上的新版本,并配备了一个智能的服务器端脚本生成器,可在更新后优雅地重启您的服务器。我们已将旧版笨重的更新网络系统替换为更简洁、更快速的新系统。⚠️ 重要提示:由于整个更新器已被重写,您需要手动下载并安装本次 v2.1.1-b1 更新,这是最后一次!一旦安装完成,新的自动更新器将接管所有未来的更新。 此外,此版本还修复了所有界面中的 GUI 缩放问题,并解决了特定条件下的启动崩溃问题。
  • 1.21.1 (v2.1.0-b1): 已为 Forge、NeoForge 和 Fabric 发布。(1.21.1 的 v2.1.1-b1 更新目前正在开发中)。

1.20.1 和 1.21.1 版本均具有完全一致的功能,包括对所有界面进行了全面的 GUI 润色、统一的姿态矩阵缩放(修复了 2-4 倍 / 自动缩放下布局问题)、玩家管理器重构,以及针对聊天隔离、Tab 列表隔离、/spectate、/teleportlobby 和 OP-2 控制台的一系列关键修复。

下一步 — 即将推出的移植与更新

适用于 Minecraft 1.21.1 的 v2.1.1-b1 更新目前正在开发中。此外,针对 Minecraft 1.21.4 和 1.21.11 的专门移植也在积极开发中。

功能特性

管理员仪表板

一个现代深色主题的指挥中心,可通过 /sm 命令打开。六个功能卡片让您可以快速进入世界管理器、玩家管理器、控制台、全局设置、经济管理或模组设置。每个界面都有统一的导航,包括返回/关闭按钮和精美的标题栏。

  • 实时服务器控制台 — 直接从 GUI 运行服务器命令。输出按日志级别进行颜色编码(红色表示错误,黄色表示警告),并且支持滚动。需要 OP 等级 2。
  • 全局设置 — 使用 iOS 风格的开关切换聊天隔离(按维度分隔聊天消息)和 Tab 列表隔离(按维度分隔玩家列表)。
  • 模组设置 — 无需重启服务器即可启用或禁用单个功能(世界管理器、玩家管理器、SlimeHead、经济系统、服务器性能、MOTD)。每个开关都附带简短描述,并有交替的行背景以提高可读性。

经济系统

每位玩家首次加入时都会获得一个银行账户,并带有可配置的初始余额(默认:$1,000)。

  • 余额管理 — 查看您的余额、交易记录,跟踪每一笔资金流向
  • 玩家间转账 — 直接发送金钱或创建金钱请求,由对方玩家接受或拒绝
  • 交易历史 — 所有购买、销售、转账、任务奖励、赌博和免费领取的完整审计记录,带有类型专属图标
  • 快捷栏通知 — 在快捷栏上方显示非侵入式的成功/错误消息
  • 管理员工具 — 通过命令或管理员仪表板设置、给予或扣取任意玩家的金钱
  • 经济统计 — 实时经济概览:账户总数、流通货币量、通货膨胀率、市场活跃度、赌博统计和交易量
  • 加密存储 — 所有经济数据均通过 AES-256-GCM 加密保护

MineBay 市场

一个功能完备的玩家市场,您可以与其他玩家买卖物品。

  • 创建上架 — 出售您物品栏中的任何物品或物品组
  • 灵活的定价 — 接受金钱、最多 3 种不同类型的物品,或两者兼收
  • 动态市场价格 — 带有可配置通货膨胀的供需跟踪
  • 还价 — 买家可以提出替代价格;卖家审核后接受或拒绝
  • 溢流物品栏 — 如果在购买时您的物品栏已满,物品将安全存放以供稍后领取(在生存模式和创造模式均有效)
  • 物品安全 — 服务器权威的物品处理与托管退回机制。物品绝不会丢失或复制
  • 草稿系统 — 分步骤创建上架,带有物品选择器和数量控制
  • 利润率控制 — 卖家可以将价格调整在市场价值的 -50% 到 +200% 之间

MineStacks 赌场

完整的赌场体验,包含四种游戏,均使用 SecureRandom 保证结果可验证的公平性。

  • 抛硬币 — 2% 庄家优势,2 倍赔率。简单的正反面
  • 掷骰子 — 3% 庄家优势。押大/小(2 倍)、点数 7(5 倍)或对子(6 倍)
  • 老虎机 — 5% 庄家优势。赔率从樱桃(2 倍)到头奖(100 倍),两相同符号可获得一半赔率
  • 轮盘 — 2.7% 庄家优势。押红/黑、偶/奇、低/高可获 2 倍回报

支持金钱下注($10–$10,000)和物品下注(自动估价)。包含旋转动画、获胜粒子效果、屏幕震动和音效。您的赌博统计数据会被记录。

每日任务与免费奖励

每天随机分配三个任务,从可配置的模板池中抽取。

任务类型:

类型 示例
破坏方块 破坏 250 个方块
击杀生物 击杀 50 只生物
旅行距离 旅行 5,000 格
合成物品 合成 100 个物品
挖掘矿石 挖掘 75 个矿石
与村民交易 交易 25 次
  • 实时进度跟踪,在 GUI 中显示进度条
  • 即时通知 — 任务完成时立即通知 — 点击聊天消息即可领取奖励
  • 可配置奖励 — 每个任务模板可设置金钱和/或物品奖励
  • 每日免费奖励 — 每 24 小时可领取一次免费金钱和可选物品(冷却时间可配置)
  • 管理员模板编辑器 — 在 GUI 中创建、编辑、启用/禁用和删除任务模板

世界管理

通过可视化界面管理所有服务器世界。

  • 世界列表 — 查看所有维度及其玩家数量
  • 传送 — 点击即可在世界间传送(带冷却时间)
  • 传送门控制 — 开启或关闭下界和末地传送门
  • 大厅出生点 — 设置大厅出生点并将玩家传送到该位置(精确坐标+朝向,不仅仅是方块对齐的出生点)
  • 聊天隔离 — 按维度隔离聊天消息(在 1.20.1 和 1.21.1 上完全可用)
  • Tab 列表隔离 — 按维度隔离玩家列表(在 1.20.1 和 1.21.1 上完全可用)
  • 定时器系统 — 按计划自动启用/禁用传送门,并在 GUI 中显示实时倒计时

玩家管理器

用于管理在线和离线玩家的管理员工具。已使用标签页、搜索和分页功能重构。

  • 在线标签页 — 查看所有在线玩家及其位置、维度和游戏模式
  • 封禁标签页 — 封禁/解封玩家(可通过配置文件缓存操作离线玩家);可选的 IP 封禁
  • 白名单标签页 — 添加/移除玩家,并切换白名单强制开启/关闭
  • 旁观 — 实时观察任何玩家,支持跨维度跟踪、潜行模式(同维度),以及 Tab 列表伪装,使旁观者的名字不会以斜体灰色显示给其他人
  • 查看物品栏 — 只读检查玩家的物品栏
  • 踢出 — 踢出在线玩家,可附带原因
  • 自动同步 — 服务器在每次更改后将封禁/白名单/开关状态推送到客户端
  • 在名称字段中按 E 键不再关闭界面

SlimeHead

一个有趣的装饰物品——带有自定义纹理的不可破坏的史莱姆头颅方块。

  • 通过 /slimehead 命令获得,或由史莱姆有 5% 的几率掉落
  • 放置后,非管理员无法破坏
  • 可在创造模式工具与实用物品标签页中找到

MOTD 编辑器

通过可视化编辑器自定义您服务器的每日消息(MOTD)。

  • 富文本格式 — 应用颜色代码和格式(粗体、斜体、下划线、删除线),并带有实时预览
  • 多行支持 — 可编辑服务器 MOTD 的两行文本
  • 仅限管理员 — 可从仪表板访问,需要 OP 等级 2
  • 即时生效 — 更改无需重启服务器即可立即生效
  • 可开关 — 可通过配置启用/禁用自定义 MOTD

服务器性能工具

性能设置面板,包含八个运行时开关和一个可滚动的统计标签页 — 可一览 TPS、MSPT、内存使用情况和实体数量。

  • 物品合并处理器 — 将每个维度每 tick 的物品实体合并数量限制在 500 个(不再有刷怪塔倾倒导致的 O(n²) 卡顿)
  • 生物生成限制器 — 每 tick 限制生成数量,以平滑生成高峰
  • 红石节流器 — 限制每 tick 的快速红石更新
  • 所有开关均可在运行时调整;无需重启

通知系统

可点击的聊天通知让玩家保持消息灵通,而不会显得打扰。

  • 登录通知 — 管理员看到仪表板链接;玩家看到免费奖励和任务提醒
  • 付款提醒 — 当您发送或接收金钱时收到通知
  • 任务完成 — 任务完成时即时通知,带有可点击的领取按钮
  • 奖励已领取 — 领取奖励时的确认通知

帮助集成

所有 ServerManagement+ 命令都已集成到原版 /help 命令中。

  • /help — 列出所有可用命令,包括带有描述的 ServerManagement+ 命令
  • /help <command> — 任何模组命令的详细用法(例如,/help bank)
  • 管理员过滤 — 管理员命令标记为 [Admin],对非管理员隐藏
  • 可与原版及其他模组的命令协同工作

自动模组更新与智能重启

为已连接的客户端提供自动在线模组更新,并可轻松更新服务器。

  • 双平台更新 — 自动检查 Modrinth 和 CurseForge 以查找最新更新。
  • 优雅的服务器关闭 — 更新服务器时,它会安全地保存您的世界,并在热替换模组 JAR 文件之前正常关闭。
  • 智能重启脚本 — 扫描您的服务器中的 run.bat / run.sh 并智能地接入它们,以便您的服务器在应用更新后自动重启。管理员可以选择在游戏内自动修补其运行脚本!
  • 多版本感知 — 跨不同 Minecraft 版本的 OTA 更新会被阻止(例如,1.20.1 客户端不会收到 1.21.1 更新)
  • 多加载器感知 — Forge 客户端不会收到 NeoForge 或 Fabric 的 JAR 文件,反之亦然
  • 限速 — 每个玩家每会话仅传输一次;如果客户端在传输中断开连接,则会提前中止

更新器工作原理(供手动审查者参考)

为确保模组处理更新的方式完全透明,而不会触发误报的安全标记:

  1. API 获取:模组仅对官方的 api.modrinth.com 和 api.curseforge.com 端点发出标准 GET 请求以检查版本号。
  2. 独立更新器:为避免 Windows 上的文件锁定问题,模组将内嵌的 updater.jar 解压到服务器根目录。该 JAR 在一个独立的临时 JVM 进程中运行,其唯一任务是等待主服务器退出,将新下载的模组 JAR 复制覆盖旧文件,然后删除自身。
  3. 服务器端脚本修改:如果管理员通过游戏内 GUI 提示选择启用智能重启功能,模组将读取其现有的 run.bat 或 run.sh 脚本,备份为 run.bat.bak,并注入一个标准的 -Dservermanagement.smartstart=true JVM 参数。它不会执行任意 Shell 代码或下载外部脚本。所有脚本生成都在本地完成,并需要管理员在游戏内明确同意。
  4. 客户端同意:在客户端,如果检测到更新,模组会用一个专用的 UI 覆盖层拦截主菜单。在用户点击**"立即更新"之前,客户端绝不会自动下载或安装任何内容。用户还会被明确提供"稍后更新"和"跳过此版本"**的选项。
  5. 自行验证:如果您是代码审查者或服务器管理员,并希望安全地测试该系统,请克隆我们的开源仓库并降低版本号以模拟过时的模组。由于模组的当前版本是静态验证的,您需要降低 gradle.properties 中的版本号,并将 ForgeUpdateHooks.java 和 FabricUpdateHooks.java 中硬编码的 "2.1.1-b01" 版本字符串更改为 "2.1.0"。编译该模组(gradlew build),启动本地测试服务器,并通过游戏内管理员菜单明确选择启用智能重启功能。您将观察到模组安全地下载更新、解压 updater.jar、将您的运行脚本备份为 .bak 文件,并干净地注入 -Dservermanagement.smartstart=true 标志,全程不执行任何任意 Shell 代码。没有任何隐藏行为。

安全性

所有敏感数据在静态存储时均加密,在传输中均经过身份验证。

  • 对经济数据、每日任务、金钱请求和成就跟踪采用 AES-256-GCM 加密
  • 唯一服务器密钥在首次运行时自动生成,并以受限权限存储
  • HMAC-SHA256 数据包认证可防止重放和篡改
  • 会话管理,使用每个玩家的令牌和30分钟超时
  • 原子事务,自动托管退回 — 无部分操作,无数据丢失
  • 防止物品复制 — 市场列表和报价中的服务器权威物品验证;防竞态条件的槽位清理;同步的余额操作
  • 网络缓冲区加固 — 所有数据包字符串和整数字段在解码层强制执行严格的长度/值限制,以防止超大负载导致内存耗尽
  • NBT 大小限制 — 所有 NBT 数据加载使用 10MB 的 NbtAccounter 限制,以防止损坏文件导致内存耗尽
  • 每个管理员数据包都强制执行权限检查 — 包括维度传送和控制台命令执行
  • 输入验证 — 在网络层使用 [a-zA-Z0-9_]{1,16} 正则表达式验证玩家名,然后再进行任何服务器端处理
  • 防止日志注入 — 用户控制的字符串在记录前会被清理,以防止日志伪造
  • 线程安全的经济系统 — 同步的余额操作、带 try-catch 回滚的原子托管、基于快照的集合迭代、虚拟线程/守护线程保存调度器,以及共享管理器中的并发集合

命令

玩家命令

命令 描述
/bank 打开银行 GUI
/bank balance 查看您的余额
/bank pay <玩家> <金额> 向玩家发送金钱
/bank request <玩家> <金额> 向玩家请求金钱
/bank requests 查看待处理的金钱请求
/bank accept <id> 接受金钱请求
/bank deny <id> 拒绝金钱请求
/bank stats 查看您的银行统计信息
/bank dailies 打开每日任务 GUI
/bank dailies claim <1-3> 领取已完成的每日任务
/bank dailies free 领取每日免费奖励
/minebay 打开 MineBay 市场
/minestacks 或 /casino 打开 MineStacks 赌场
/teleportlobby 传送到大厅

管理员命令

命令 权限 描述
/sm 或 /servermanagement OP 2 打开管理员仪表板
/smconfig OP 2 打开模组设置 GUI
/smconfig toggle <功能> OP 2 切换功能开关
/smconfig info OP 4 显示配置版本信息
/smconfig validate OP 4 验证配置完整性
/smconfig reset confirm OP 4 将配置重置为默认值
/worldmanager 或 /wm OP 2 打开世界管理器
/playermanager 或 /pm OP 2 打开玩家管理器
/spectate <玩家> OP 2 旁观一名玩家
/stopspectate OP 2 停止旁观
/viewinv <玩家> OP 2 查看玩家的物品栏
/netherportals <true|false> OP 2 切换下界传送门
/endportals <true|false> OP 2 切换末地传送门
/setlobby OP 2 设置大厅出生点
/clearlobby OP 2 移除大厅出生点
/slimehead [玩家] OP 2 给予一个史莱姆头颅
/bank admin set <玩家> <金额> OP 2 设置玩家的余额
/bank admin give <玩家> <金额> OP 2 给玩家金钱
/bank admin take <玩家> <金额> OP 2 从玩家处扣取金钱
/servermanagement resetdailies OP 2 强制重置所有每日任务
/smmetrics OP 2 查看性能指标
/smmetrics reset OP 2 重置性能指标

配置

配置文件位于 config/servermanagement-common.toml。关键设置:

设置 默认值 描述
起始余额 $1,000 新玩家的初始金钱
加密存储 启用 AES-256-GCM 数据加密
交易历史记录限制 100 每个玩家存储的交易数量
每日任务数 3 每天分配给每位玩家的任务数量
免费奖励金额 $50 每日免费领取的金额
免费奖励冷却时间 24 小时 两次免费领取之间的时间间隔
每玩家最大上架数 10 MineBay 上架数量上限
最大定价物品数 3 每个上架接受的物品种类数
还价 启用 允许买家提出报价
传送冷却时间 5 秒 世界间传送的间隔时间

所有经济数据、任务模板和玩家进度都会在服务器重启后持久保存,并支持自动备份和迁移。

安装

要求

  • Minecraft: 1.20.1 或 1.21.1(1.21.4 移植版将于今年夏天推出)
  • Forge: 47.4.0+ (MC 1.20.1) 或 52.1.0+ (MC 1.21.1)
  • NeoForge: 21.1.80+ (MC 1.21.1)
  • Fabric API: 0.92.8+ (MC 1.20.1) 或 0.116.1+ (MC 1.21.1),搭配 Fabric Loader 0.19.2+ (MC 1.20.1) 或 0.18.1+ (MC 1.21.1)
  • Java: 17+ (MC 1.20.1) 或 21+ (MC 1.21.1)

安装步骤

  1. 为您的 Minecraft 版本和模组加载器下载 JAR 文件:
    • MC 1.20.1 Forge: ServerManagement-forge-1.20.1-2.1.0-mc1.20.1.jar
    • MC 1.20.1 Fabric: ServerManagement+-fabric-1.20.1-2.1.0-mc1.20.1.jar
    • MC 1.21.1 Forge: ServerManagement-forge-1.21.1-2.1.0-mc1.21.1.jar
    • MC 1.21.1 NeoForge: ServerManagement-neoforge-1.21.1-2.1.0-mc1.21.1.jar
    • MC 1.21.1 Fabric: ServerManagement+-fabric-1.21.1-2.1.0-mc1.21.1.jar
  2. 将其放入服务器的 mods/ 文件夹中
  3. 启动服务器 — 配置和数据文件夹会自动生成
  4. (可选)在客户端也安装以获得完整的 GUI 支持(仅服务器端安装也可以运行)
  5. 在 config/servermanagement-common.toml 中调整设置,然后重启

首次设置(服务器所有者)

  1. 检查配置值(起始余额、奖励、冷却时间)
  2. 使用 /sm 打开管理员仪表板以探索功能
  3. 进入经济管理以创建每日任务模板
  4. 设置免费奖励的金额和物品
  5. 使用 /bank、/minebay 和 /minestacks 测试经济流程

数据存储

所有模组数据存储在 world/data/servermanagement/ 中:

文件 内容 格式
economy.json 银行账户和余额 加密 JSON
daily_tasks.json 玩家任务进度 加密 JSON
daily_task_templates.json 管理员任务模板 加密 JSON
money_requests.json 待处理的转账 加密 JSON
achievement_rewards.json 成就领取记录 加密 JSON
world_manager.json 世界设置 纯 JSON
minebay_listings.dat 市场列表 压缩 NBT
playerdata/[UUID]/bank_inventory.dat 银行物品 压缩 NBT
playerdata/[UUID]/transactions.dat 交易历史 压缩 NBT

在更新前请备份 world/data/servermanagement/ 和 config/servermanagement/。

故障排除

问题 解决方案
"无法加载经济数据" 从备份中恢复 economy.json,或删除它以重置
MineBay 列表无法加载 检查 minebay_listings.dat — 如果损坏则从备份恢复
每日任务未重置 验证服务器系统时钟;调整配置中的 resetHour
GUI 无法打开 确保模组同时安装在客户端和服务器上;重新连接
交易失败 查看聊天中的错误消息 — 交易会自动回滚,不会丢失数据

许可证

MIT 许可证 — 可自由使用、修改和分发。

ServerManagement+ — Minecraft 1.20.1 v2.1.1-b1 (Forge 47.4.0+ / Fabric API 0.92.8+) — Minecraft 1.21.1 v2.1.0-b1 (Forge 52.1.0+ / NeoForge 21.1.80+ / Fabric 0.116.1+) — Minecraft 1.21.4 移植版将于今年夏天推出

ServerManagement+ 团队