expTrade-multi

expTrade-multi

通过指令与其他玩家交易经验等级。发送报价或请求,通过可点击的聊天按钮接受或拒绝。精确的每级经验计算确保公平交易。包含管理员控制和个人玩家阈值。

💱 expTrade

在玩家之间交易经验值——通过箱子 GUI 队列给予、请求并确认每一笔交易。

Fabric NeoForge

Download on Modrinth Join the Discord Source on GitHub

Minecraft 26.x & 1.21.x Single Player & Server Fabric API required on Fabric License MIT


你是否曾经刷完怪物塔后多了 40 级经验,而朋友却还在为附魔第一把镐子苦苦挣扎?expTrade 让玩家可以像交易其他资源一样互相传递经验值——给予、请求,并通过简洁的箱子 GUI 队列确认交易。无需将附魔之瓶扔在地上,也无需信任游戏:每一笔交易都是明确的,在发生前会进行预览,并且有时间限制,过期的交易会自动清理。

该模组完全服务端运行——原版客户端可以加入安装了此模组的服务器并直接使用。也支持单人游戏。没有新方块、新物品或依赖库:只需 /exptrade 命令和一个由原版物品构建的虚拟箱子菜单。

为什么选择 expTrade?

expTrade
💱 方向 给予经验值 或 请求经验值——对方玩家始终拥有最终确认权
📊 单位 整数等级、精确原始经验值或 all ——模组会自动计算经验曲线
📦 队列 实时箱子 GUI 队列,含每玩家 TTL 和倒计时时钟
🛡️ 安全 个人等级阈值 + 接受瞬间的重新验证
🎒 客户端 仅服务端——原版客户端可正常连接并游戏

✨ 主要特性

  • 💱 双向给予或请求。 通过 give 将自己的经验值推送给他人,或通过 request 向他人请求经验值。对方玩家始终拥有最终决定权。
  • 📊 等级或原始经验值。 交易整数等级或精确的原始经验值数量——或使用 all 一次性清空你的经验条。模组会为你处理原版经验曲线的计算。
  • 📦 实时箱子 GUI 队列。 /exptrade pending 会打开一个虚拟箱子,将每个收到的交易单独显示为一行:一个时钟在倒计时剩余时间、发送者的玩家头颅、交易/请求标记、详情页面,以及一键接受 / 拒绝按钮。
  • ⏳ 每玩家队列及 TTL。 每个玩家都有自己的待处理队列(默认上限 10)。交易会在超时后自动过期(默认 60 秒),并通知双方——没有永久的待处理项。
  • 🛡️ 阈值保护。 使用 /exptrade threshold 设置个人等级下限,模组将拒绝任何会导致你低于该阈值的交易——这是防止误输入 give … all 的绝佳保险。
  • 🔍 提交前的余额预览。 每笔交易都会显示双方玩家等级和经验值的 变化前后 对比,确保没有人盲目同意。
  • 🖱️ 可点击的聊天控制。 交易附带 [查看队列]、[取消] 按钮,以及(管理员使用的)[确认] / [取消] 按钮,直接连接到对应命令。
  • ✅ 执行时双重检查。 交易金额在发出时进行验证,并在接受的瞬间重新验证——如果赠送方在此期间花掉了经验值,交易会干净地失败而不是变成负数。
  • 🛠️ 管理员转移。 管理员可以在任意两名在线玩家之间转移经验值,需经过两步确认,可绕过阈值——适用于活动、退款和奖励。
  • 🔒 无物品风险。 GUI 槽位仅用于展示;你无法取出物品或放入自己的物品。唯一可交互的槽位是接受和拒绝。

⌨️ 命令

所有功能都位于 /exptrade 下。<player> 目标必须是在线玩家;数量为正整数,或使用字面量 all 转移你的全部经验条。

命令 功能
/exptrade give <player> levels <amount> 向玩家提供指定数量的等级
/exptrade give <player> levels all 提供全部你的经验值(以等级表示)
/exptrade give <player> exp <amount> 提供指定数量的原始经验值点数
/exptrade give <player> exp all 提供全部你的原始经验值
/exptrade request <player> levels <amount> 请求玩家提供指定数量的等级(根据你的等级转换为原始经验值)
/exptrade request <player> levels all 请求玩家提供全部他们的经验值
/exptrade request <player> exp <amount> 请求玩家提供指定数量的原始经验值
/exptrade request <player> exp all 请求玩家提供全部他们的经验值
/exptrade accept [<player>] 接受队列中的第一笔交易——或来自指定 <player> 的交易
/exptrade decline [<player>] 拒绝第一笔交易——或来自指定 <player> 的交易
/exptrade cancel 取消你发出的待处理交易
/exptrade pending 打开箱子 GUI 交易队列
/exptrade threshold <levels> 设置你的个人最低等级下限(0 = 无下限)

管理员命令

需要管理员/游戏管理员级别的权限。

命令 功能
/exptrade admin transfer <from> <to> levels|exp <amount> 暂存两名玩家之间的经验值转移(绕过阈值)
/exptrade admin transfer <from> <to> levels|exp all 暂存转移全部源玩家的经验值
/exptrade admin confirm 确认你暂存的转移
/exptrade admin cancel 丢弃你暂存的转移
/exptrade config timeout <seconds> 设置交易超时时间(10–300 秒)并保存
/exptrade config maxqueue <size> 设置每玩家队列上限(1–50)并保存
/exptrade config reload 从磁盘重新加载配置文件

⚙️ 配置

设置保存在 config/exptrade.json 中(首次启动时创建)。两个值也可以在游戏内通过 /exptrade config … 命令实时编辑,该命令会替你写入文件;/exptrade config reload 会从磁盘重新读取配置。

键 默认值 范围 含义
timeoutSeconds 60 10–300 待处理交易在队列中停留多久后自动过期
maxQueueSize 10 1–50 单个玩家同一时间可拥有的最大待处理交易数量

通过 /exptrade threshold 设置的每玩家阈值单独存储在 config/exptrade/playerdata.json 中,并在重启后持续存在。

✅ 兼容性

加载器 Fabric 和 NeoForge——单一 jar 文件
Minecraft 26.2.x · 26.1, 26.1.1, 26.1.2 · 1.21.11 · 1.21.9–1.21.10
Fabric API Fabric 上必需 · NeoForge 上不需要
运行端 服务端——支持原版客户端,也支持单人游戏
额外库 无——独立运行

喜欢这个模组吗? 加入 Discord · 为 仓库 点 ⭐ · 探索 Lunixia 的其他 Minecraft QOL 模组

⛏️ 小而专注的模组,去除繁琐的部分。