BetterRewards

BetterRewards

创建和管理促销代码,为玩家奖励物品。非常适合活动、赠品和新人奖励。包含防滥用保护和实时统计数据。

PromoCode 模组 — Minecraft Forge 1.16.5

一个为 Minecraft 服务器设计的完整促销码系统。服务器管理员可以创建向玩家奖励物品的兑换码,并完全控制物品数量、使用次数限制和过期时间。


概述

PromoCode 模组为兑换促销码添加了一个直观的游戏内界面。适用于:

  • 🎁 新玩家新手奖励
  • 🎉 活动奖励(节日、特殊场合)
  • 🏆 成就奖励(抽奖、竞赛)
  • 👥 社区福利(Discord 成员、支持者)

主要特性

✅ 简洁的 GUI — 玩家按 /promo 并输入兑换码即可
✅ 灵活的奖励 — 每个兑换码可包含多种物品,数量可自定义
✅ 管理员控制 — 在游戏内使用命令创建/删除兑换码
✅ 使用次数限制 — 可设置最大兑换次数或过期时间
✅ 防滥用机制 — 每位玩家每个兑换码只能领取一次
✅ 统计功能 — 追踪已发放物品总数和唯一玩家数量
✅ 支持离线模式 — 在离线模式服务器上完美运行
✅ 自动保存 — 所有数据持久化存储于 promocodes_data.json


安装方法

服务器管理员

  1. 从 ModRinth 或 CurseForge 下载 .jar 文件
  2. 将其放入你的 Forge 1.16.5 的 mods/ 文件夹中
  3. 启动服务器 — 配置文件将自动生成
  4. 编辑 server_config/promocodemod-server.toml 以添加默认兑换码(可选)
  5. 重启服务器

玩家

该模组为服务端模组,因此你只需要在服务器使用它时安装。它会出现在服务器的模组列表中。


快速上手 — 创建你的第一个兑换码

通过游戏内命令(最简单)

/promo create WELCOME minecraft:diamond 5

现在玩家可以输入 /promo,输入 WELCOME,并获得 5 个钻石!

进阶:多种物品

/promo create STARTER minecraft:diamond 3 minecraft:iron_sword 1 minecraft:bread 10 0 0

玩家将获得:3 个钻石、1 把铁剑、10 个面包。无限次使用,永不过期。

进阶:限定活动

/promo createraw HALLOWEEN:minecraft:pumpkin,20;minecraft:orange_dye,10|50|0

总共只能兑换 50 次,永不过期,包含 20 个南瓜和 10 个橙色染料。

删除旧兑换码

/promo delete WELCOME

完整命令参考

玩家命令

命令 用途
/promo 打开兑换 GUI
/promocode 与 /promo 相同
/promo help 显示所有可用命令

管理员命令(操作权限等级 2+)

创建兑换码:

/promo create <CODE> <item> <count> [maxUses] [expiryEpoch]
/promo create <CODE> <item1> <count1> <item2> <count2> [item3] [count3] [maxUses] [expiryEpoch]
/promo createraw <CODE:item1,count1;item2,count2|maxUses|expiryEpoch>

删除兑换码:

/promo delete <CODE>

显示帮助:

/promo help

参数说明

参数 值 说明
CODE 字母、数字、下划线、连字符 WELCOME、SUMMER2024、EVENT_01
item Minecraft 物品 ID 格式:命名空间:名称(例如 minecraft:diamond)
count 1–64 奖励中每种物品的数量
maxUses 0–999 0 = 无限次兑换
expiryEpoch Unix 时间戳(秒) 0 = 永不过期;示例见下文

过期日期示例

使用 unixtimestamp.com 转换为 Unix 时间戳:

日期 时间戳
2025 年 1 月 1 日 1735689600
2025 年 7 月 1 日 1751500800
2025 年 12 月 31 日 1767225600

设置为 0 表示永不过期。


常用物品 ID

minecraft:diamond              minecraft:emerald
minecraft:golden_apple         minecraft:enchanted_golden_apple
minecraft:netherite_sword      minecraft:diamond_pickaxe
minecraft:diamond_axe          minecraft:iron_sword
minecraft:respawn_anchor       minecraft:bread
minecraft:coal                 minecraft:iron_ingot
minecraft:oak_log              minecraft:obsidian
minecraft:amethyst_block       minecraft:copper_ore

提示: 在 Minecraft 创造模式物品栏中将鼠标悬停在物品上可查看其确切 ID。


配置文件

编辑 server_config/promocodemod-server.toml:

[[promocodes]]
codes = [
    "EARLY_EASTER:minecraft:diamond,5;minecraft:golden_apple,3|100|0",
    "FREESTART:minecraft:iron_sword,1;minecraft:bread,10|200|0",
    "DIAMONDS4ALL:minecraft:diamond,64|10|0"
]

格式: CODE:item1,count1;item2,count2|maxUses|expiryEpoch

更改将在服务器重启后生效。


工作原理

  1. 玩家打开 GUI:/promo
  2. 输入兑换码名称:WELCOME
  3. 点击“确认”(或按回车键)
  4. 如果有效:物品将出现在背包中
    • 如果背包已满,溢出物品将掉落在脚下
  5. 如果无效:显示错误信息
    • 已使用、已过期、达到最大使用次数、无效的兑换码

GUI 中显示的统计信息:

  • 已兑换: 25/100(已领取 100 个可用物品中的 25 个)
  • 玩家: 10(10 位唯一玩家已兑换过物品)

防滥用保护

每位玩家每个兑换码只能兑换一次。此保护在以下情况下依然有效:

  • 更改游戏昵称
  • 同一台电脑上的多个账号
  • 服务器重启
  • 重新安装游戏

⚠️ 注意: 在离线模式服务器上,用户理论上可能使用修改过的客户端绕过此限制。服务器管理员应监控使用情况,并在必要时删除有问题的兑换码。


数据存储

兑换数据自动保存至:

world_folder/promocodes_data.json

内容:

  • 每位玩家已兑换的兑换码
  • 每个兑换码的总兑换次数
  • 通过命令创建的自定义兑换码

请勿手动编辑,除非是备份。该模组会自动管理此文件。


实际应用示例

示例 1:欢迎奖励

/promo create WELCOME minecraft:diamond,5 minecraft:iron_sword,1 minecraft:bread,20 0 0
  • 无限次使用
  • 永不过期
  • 奖励:5 个钻石、铁剑、20 个面包

示例 2:周年庆活动(100 次使用,2026 年 1 月 1 日过期)

/promo create ANNIVERSARY minecraft:golden_apple,3 100 1735689600

示例 3:复杂奖励(3 种物品,50 次使用,永不过期)

/promo createraw STARTER:minecraft:diamond,10;minecraft:emerald,5;minecraft:enchanted_golden_apple,2|50|0

示例 4:季节性活动(2025 年 12 月 31 日过期)

/promo create XMAS minecraft:red_concrete,20 minecraft:green_concrete,20 minecraft:gold_block,5 0 1767225600

服务器管理员提示

📌 公告新兑换码 — 在聊天、Discord 或服务器每日消息中发布
📌 限时活动 — 大型活动使用较高的最大使用次数,小型活动使用较低以保持稀缺性
📌 新手兑换码 — 给新玩家赠送入门工具和物资
📌 监控统计数据 — 定期查看 /promo GUI 以了解参与度
📌 清理旧兑换码 — 删除已过期的兑换码以减少混淆
📌 发布前测试 — 创建测试兑换码并验证其功能正常


故障排除

问题: 创建兑换码时出现“无效物品”错误

  • 解决方案: 检查物品 ID 拼写(例如 minecraft:acacia_log 而非 acacia log)

问题: 创建时提示“兑换码已存在”

  • 解决方案: 先删除旧兑换码:/promo delete OLDCODE

问题: 玩家无法兑换,但兑换码看起来有效

  • 解决方案: 检查是否:
    • 玩家已兑换过(每位玩家限一次)
    • 兑换码已过期(检查 expiryEpoch)
    • 已达到最大使用次数(在 /promo GUI 统计中查看兑换次数)

问题: 物品没有出现在背包中

  • 解决方案: 检查背包空间。溢出物品会掉落在脚下。

问题: 更改配置后服务器崩溃

  • 解决方案: 检查 promocodemod-server.toml 中的语法错误。物品 ID 必须有效。

兼容性

  • Minecraft 版本: 1.16.5
  • 模组加载器: Forge
  • 客户端/服务器: 可作为服务器端和客户端模组(推荐)
  • 离线模式:
  • 在线模式:

已知限制

  • 简单命令每个兑换码最多 3 种物品(如需更多请使用 createraw)
  • 每种物品数量限制为 1–64
  • 管理员没有创建兑换码的 GUI(请使用命令或配置文件)
  • 兑换码不区分大小写,但存储为大写

许可证

此模组仅供非商业用途使用。未经授权转载或未注明出处均不允许。