水獭的文明复兴巨型模组

水獭的文明复兴巨型模组

将一个普通的Minecraft世界转变为轻量级文明服务器,具备持久经济、可配置的挖矿和战斗奖励、五职业新手包、公会领地声明,以及游戏内菜单和手册,便于在单人或多人生存模式下轻松设置。

经济

海獭文明:复兴版

海獭文明:复兴版 是一个 Fabric 模组,它将一个普通的 Minecraft 世界转变为一个简单的文明风格服务器。它增加了玩家可以赚取和交易的货币、挖矿和战斗的奖励、赋予玩家不同角色的职业、可以共同占领领地的公会,以及易于使用的游戏内菜单,让玩家和服务器管理员无需编程知识即可理解和使用该模组。


功能概述

  • 经济系统: 基于 SQLite 的持久化余额,支持玩家间 /pay 转账、管理员货币工具,以及不可变的 wallet_ledger 审计追踪
  • 奖励系统: 可配置的挖矿和战斗奖励,由标签和逐项覆盖驱动,开箱即用地覆盖了广泛的原版方块和生物实体
  • 职业系统: 服务器权威的 JSON 职业目录,具有可配置的触发条件、进度和加成;随附的初始职业包为 矿工伐木工农民挖掘工战士
  • 公会系统: 玩家运营的团体,具有官员军衔、公开或邀请加入、区块占领、保护、传送点、聊天/GUI 领地地图以及区块边界视觉特效
  • 玩家体验: /otter 中心在一个地方展示钱包、职业、公会、奖励和文明路线图信息,/guide 会生成一本发光的游戏内手册,包含当前服务器的最新基础信息

命令

经济

  • /guide — 为你自己生成游戏内海獭文明手册
  • /guide give <玩家> — 管理员将手册给予另一名玩家(仅限游戏管理员 / OP)
  • /money — 显示你的钱包余额
  • /pay <玩家> <金额> — 向另一名玩家发送硬币(原子操作;服务器强制执行每次命令上限、发送者冷却时间、可选固定费用——全部可在 economy.json 中调整)
  • /money set <玩家> <金额> — 替换玩家的余额(仅限游戏管理员 / OP)
  • /money add <玩家> <金额> — 增加玩家的余额(仅限游戏管理员 / OP)
  • /money take <玩家> <金额> — 从玩家余额中扣除,最低扣至 0(仅限游戏管理员 / OP)
  • /economy reload — 无需重启即可重新读取 economy.json(仅限游戏管理员 / OP)
  • /economy log [数量] — 显示服务器范围内最近的账本条目的,最新的在前(仅限游戏管理员 / OP)
  • /economy log player <玩家> [数量] — 将账本条目筛选到单个玩家(仅限游戏管理员 / OP)

职业

  • /job — 显示你当前的职业和进度
  • /job list — 列出服务器已配置的所有职业
  • /job info <id> — 特定职业的详细信息(标签、经验/事件、加成)
  • /job join <id> — 加入一个职业
  • /job leave [id] — 离开一个职业(如果省略 id 则离开所有职业)
  • /job stats — 你在所有活跃职业中的等级/经验
  • /job reload — 重新加载 jobs.json(仅限游戏管理员 / OP)
  • /job validate — 对已加载的职业配置进行健全性检查(仅限游戏管理员 / OP)

公会

  • /guild create <名称> — 创建一个公会(默认 $250,可调整)
  • /guild disband — 仅限所有者;退还领土占领费用
  • /guild invite <玩家> — 邀请一名玩家(官员及以上)
  • /guild join [名称] — 接受待处理的邀请,或按名称加入一个开放公会
  • /guild leave — 离开你的公会
  • /guild kick <玩家> — 踢出一名成员(官员及以上)
  • /guild transfer <玩家> — 将公会所有权转让给另一名成员
  • /guild promote <玩家> / /guild demote <玩家> — 仅限所有者的官员管理
  • /guild claim — 占领你所在的区块(每个 $100,每个公会最多 16 个)
  • /guild unclaim — 释放当前区块
  • /guild unclaimall — 释放你的公会拥有的所有区块
  • /guild map — 聊天中的 ASCII 区块地图以及 30 秒的 GUI 覆盖层(右上角)
  • /guild sethome — 设置公会传送点(官员及以上)
  • /guild home — 传送到公会传送点(任何成员)
  • /guild open / /guild close — 在公开加入和仅限邀请模式之间切换(仅限所有者)
  • /guild info — 你公会的详细信息
  • /guild list — 服务器上的每个公会
  • /guild reload — 重新加载 guilds.json(仅限游戏管理员 / OP)

数据库

  • /ooga db status — 显示数据库模式版本和路径(仅限游戏管理员 / OP)
  • /ooga db migrate — 运行待处理的数据库模式迁移(仅限游戏管理员 / OP)

帮助

  • /otter — 在装有模组的客户端上打开游戏内中心(主页 · 钱包 · 职业 · 公会 · 奖励 · 文明 · 帮助);在原版客户端上则回退为聊天命令列表

功能特性

经济系统

  • 金钱、交易历史、职业状态、公会和领地均在服务器端持久化到 SQLite 数据库中,路径为 config/otters_civ_revived/project_ooga.db
  • 玩家间转账是原子操作——要么双方余额都更新,要么都不更新
  • /pay 策略可由管理员调整:最低/最高转账金额、可选自我支付、发送者冷却时间、可选固定费用(参见 economy.json
  • 管理员可进行设置/增加/扣除操作,以便快速进行管理操作
  • 每次变更(管理员操作、/pay、奖励、初始余额)都会写入 SQLite 的 wallet_ledger 表(不可变、已创建索引、可查询)
  • 管理员可以在聊天中使用 /economy log 实时审计服务器范围内或特定玩家的近期历史记录
  • 数据库以 WAL 模式运行,并在启动时自动创建/迁移
  • 首次加入的初始余额和加入欢迎信息开关都配置在 economy.json

奖励系统

  • 破坏配置的方块可获得硬币
  • 击杀配置的生物可获得硬币
  • 逐方块和逐生物的奖励可覆盖标签范围的默认值
  • 奖励行为完全可以通过 JSON 文件编辑——无需 Java 知识
  • 三层定制:编辑同级的数值文件、在 rewards.json 中内联编辑、或通过服务器数据包扩展捆绑的标签
  • 奖励聊天信息清晰区分:+N 硬币 表示金钱,单独的 [职业] +N 经验 · Lvl X · in/range 表示匹配的活跃职业

覆盖范围

  • 开箱即用地覆盖当前广泛的原版方块
  • 开箱即用地覆盖当前广泛的原版生物实体
  • 未来的方块和生物将通过相同的标签 + 数值文件系统流转,无需更改代码

职业系统

  • 管理员无需编辑 Java 代码即可添加任意职业——只需编辑 jobs.json
  • 每个职业定义自己的触发条件、经验曲线、奖励倍数、加成和显示数据
  • 激活策略支持单活跃职业或多活跃职业设置
  • 初始职业包以单槽模式提供矿工 / 伐木工 / 农民 / 挖掘工 / 战士
  • 默认的初始调校为前期快速升级,后期长尾发展,加成有意保持适度
  • /job validate 现在能为管理员高亮职业重叠和奖励覆盖盲区
  • 职业 HUD 显示服务器同步的主职业标签、图标、等级和进度条
  • 升级公告仅在跨越等级阈值时触发

公会系统

  • 使用一次性费用创建命名公会(默认 $250,可调整)
  • 官员军衔系统:提升/降级成员;官员可以邀请、占领土地和设置公会传送点
  • 官员数量有配置上限,因此所有者可以将领导层保持在低于全部成员上限的水平
  • 所有者可以将公会所有权转让给另一名成员
  • 公会可以是公开的或仅限邀请的,由 allowOpenGuilds 配置控制
  • 区块占领具有可配置的费用和每个公会的上限(每个 $100,默认最多 16 个)
  • 公会传送点:设置传送点(官员及以上)并使用它(任何成员,可选冷却时间)
  • /guild map 在聊天中绘制 9×9 的区块网格,切换临时 GUI 覆盖层,并用粒子展示区块边界
  • 在占领的区块内提供破坏方块、放置方块、使用容器和攻击方块保护
  • 公会数据存储在 SQLite 中;管理员调校配置在 config/otters_civ_revived/guilds.json

玩家体验

  • 首次加入欢迎:三行引导聊天信息,指向 /guide/otter/money 和奖励
  • 回归玩家会看到较短的欢迎回来信息
  • /otter 在装有模组的客户端上打开一个风格化的游戏内菜单,包含实时钱包、职业、公会、奖励和路线图/帮助面板
  • /guild map 还会驱动一个临时的右上角领地覆盖层和区块边界粒子
  • 原版客户端仍然可以从 /otter 获得完整的聊天命令帮助列表
  • /guide 完全在服务器端运行,因此即使是原版或仅服务器玩家也可以生成手册物品;他们只需要一个空的物品栏槽位

配置文件——所有内容的存放位置

所有文件在首次运行时自动生成。你可以在服务器停止时编辑它们;大多数 JSON 配置也可以热重载。

管理员可编辑的 JSON(config/otters_civ_revived/

以下所有文件在首次运行时自动生成,并带有合理的默认值。在服务器停止时编辑任何 JSON;大多数也支持 /reload

economy.json — 货币显示、初始余额、加入欢迎开关和 /pay 策略:

  • currencySymbol — 聊天中显示的符号(默认 "$"
  • currencyName / currencyNamePlural — “硬币” / “硬币”
  • newPlayerStartingBalance — 新玩家首次加入时获得的硬币(默认 0
  • maxBalance — 硬性上限(默认 0 = 无上限)
  • maxTransferPerCommand/pay 限制(默认 100000
  • minTransferAmount/pay 最低金额(默认 1
  • transferCooldownSeconds/pay 调用之间的冷却时间(默认 3
  • transferFlatFee — 从发送者扣除的费用(默认 0
  • allowSelfPay — 玩家可以给自己付款吗?(默认 false
  • showJoinWelcome — 显示加入信息吗?(默认 true

rewards.json — 挖矿/战斗奖励规则:方块/生物标签、冷却时间、维度黑名单、固定奖励

block_values.json — 逐方块的硬币价值(首次运行时从捆绑的方块标签自动预填)

entity_values.json — 逐生物的硬币价值(首次运行时从捆绑的生物标签自动预填)

jobs.json — 服务器职业目录:职业定义、触发条件、进度曲线、奖励倍数、激活策略(单一/

guilds.json — 公会调校:

  • creationCost — 创建公会的费用(默认 250
  • claimCost — 每占领一个区块的费用(默认 100
  • maxClaims — 每个公会最多占领数(默认 16
  • maxMembers — 每个公会最多成员数(默认 20
  • maxOfficers — 每个公会的官员上限(默认 4
  • minNameLength / maxNameLength — 公会名称长度限制
  • disbandRefundClaims — 解散时退还领地占领费用吗?(默认 true
  • allowOpenGuilds — 允许公开加入模式吗?(默认 true
  • homeTeleportCooldownSeconds/guild home 的冷却时间(默认 60
  • protectBlocks — 非成员是否禁止破坏方块?(默认 true
  • protectContainers — 非成员是否禁止使用箱子/熔炉等?(默认 true
  • protectInteractables — 非成员是否禁止使用按钮/拉杆/门?(默认 false
  • allowMemberBuild — 普通成员可以在占领的区块内建造吗?(默认 true
  • allowOfficerBuild — 官员可以在占领的区块内建造吗?(默认 true
  • pvpInClaims — 在占领的区块内允许 PVP 吗?(默认 true
  • showChunkBorders — 显示 /guild map 的粒子边界吗?(默认 true
  • mapRadius/guild map 网格的半径(默认 4,9×9 网格)
  • overlayDurationSeconds — GUI 覆盖层保持可见的时间(默认 30

运行时状态(请勿编辑,自动管理)

  • config/otters_civ_revived/project_ooga.db — 以 WAL 模式运行的 SQLite 数据库。保存钱包、wallet_ledger 审计追踪、公会、区块占领和职业状态。启动时自动创建和迁移。在服务器停止时可以安全备份。
  • config/project_ooga/jobs_hud.properties — 客户端 HUD 位置/缩放。仅存在于装有模组的客户端上。通过 /otter → 职业标签页编辑。

权限

  • 对所有玩家开放: /guide/otter/money/pay、自助 /job 命令集,以及大多数 /guild 命令
  • 公会内角色限制: 官员处理邀请、土地占领和公会传送点设置;所有者处理官员晋升和公开/仅限邀请加入模式
  • 仅限游戏管理员 / OP(与原生作弊命令同等权限):/guide give <玩家>/money set|add|take/economy reload/economy log/job reload/job validate/guild reload/ooga db status|migrate
  • 计划实现一个专门的权限架构(字符串 ID 权限节点、Fabric Permissions API / LuckPerms 兼容性)

注意事项

  • 需要 Fabric API
  • 经济、奖励、职业和公会逻辑都在主机/服务器端运行
  • 动态状态(钱包、账本、公会、领地、职业)持久化在 config/otters_civ_revived/project_ooga.db 中的 SQLite 数据库中(WAL 模式,启动时自动迁移)
  • 客户端安装是可选的,但可以解锁职业 HUD、公会领地覆盖层和风格化的 /otter 菜单
  • 即使没有客户端扩展,/guide 也能正常工作,因为手册只是一个服务器发放的成书物品
  • 面向管理员的配置主要通过 JSON 驱动(economy.jsonrewards.jsonjobs.jsonguilds.json
  • 职业和公会的客户端视图是服务器同步的,因此远程玩家看到的是主机实时的目录和领地状态,而不是从本地文件猜测
  • 技术模组 ID 是 project_ooga
  • 奖励覆盖范围目前很广,并且面向未来——新方块和生物通过相同的标签 + 数值文件系统流转
  • 旧的 FPS HUD 已弃用并禁用;独立的 FPS 覆盖层模组负责 FPS 显示

后续计划

  • 玩家商店 (M4) — 上架、托管交易、市场界面
  • 好友列表和私信 (M4.5)
  • 文明治理:外交、条约、派系项目 (M5)
  • 更深入的职业/专业树、更丰富的管理工具和更细粒度的权限层

使用和内容政策

你可以:

  • 在单人游戏中使用该模组
  • 在多人游戏服务器上使用该模组
  • 将其包含在视频、直播、评测、展示和教程中
  • 在整合包中包含官方未修改的版本

你不能:

  • 对其进行逆向工程
  • 对其进行破解
  • 对其进行分叉
  • 重新上传修改后的构建
  • 重新分发重新打包或修改过的版本
  • 将源代码或捆绑材料作为自己的作品重新发布

如果你想做超出这些范围的事情,请先询问。