- 版权类型
- 原创
- 插件中文名称
- 邀请系统
- 插件英文名称
- XZInviteReward
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Leaves
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- (可选)PlayerPoints https://www.minebbs.com/resources/playerpoints.9144/
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
XZInviteReward
简介
• 邀请码:进服自动生成,长度与字符集可配置• 邀请门槛:邀请码主人需累计在线达标后,他人才能使用
• 邀请请求:码主人需在线同意/拒绝,可设过期时间
• 单次奖励:成功邀请后立即执行配置命令
• 累计奖励:按邀请人数分档发奖,GUI 可自定义
• 邀请记录:分页查看被邀请玩家在线、充值、返利
• 点券返利:软依赖 PlayerPoints,按比例返利给邀请人
• 版本支持:材质兼容层,覆盖 1.12.X ~ 1.21.X
命令
指令 | 说明 | 权限 |
|---|---|---|
/邀请 [邀请码] | 向其他人发送邀请 | 所以人 |
/xzia open | 打开邀请系统界面 | 所有人 |
/xzia reset [玩家名] | 重置该玩家全部数据 | 管理员 |
/xzia regen [玩家名] | 为该玩家重新生成邀请码 | 管理员 |
/xzia settime [玩家名] [时间] | 为该玩家设置在线时长 | 管理员 |
/xzia info [玩家名] | 查看该玩家的邀请信息 | 管理员 |
/xzia reload | 重载插件配置 | 管理员 |
/xzia save | 手动保存数据 | 管理员 |
配置
config.yml(主要配置文件)
YAML:
# 数据存储方式 (yaml: 本地存储, mysql: 数据库存储)
storage:
type: yaml
mysql:
host: localhost
port: 3306
database: minecraft
username: root
password: "password"
table-prefix: xzinvite_
use-ssl: false
# 主人需要累计在线时长(分钟),邀请码才能被其他人使用
required-online-minutes: 120
# 邀请码长度
code-length: 8
# 邀请码字符集 (去掉容易混淆的字符: 0/O/1/l/I)
code-chars: "ABCDEFGHJKMNPQRSTUVWXYZ23456789"
# 当玩家第一次进服时,自动生成的邀请码是否自动发放到聊天栏
announce-code-on-join: false
# 邀请计数归属模式:
# code-owner - (传统) B 输入 A 的码 -> A 的 invited +1
# active - (主动) A 输入 B 的码 -> A 的 invited +1 (A 主动拉了 B)
invite-count-mode: active
# 调试模式
debug: false
# 邀请请求过期时间(分钟)
# 设置为 0 表示永不过期
request-expire-minutes: 10
# 点券返利系统
rebate:
# 是否启用点券返利
enabled: true
# 返利比例(0.1 = 10%)
rate: 0.1
# 邀请码奖励
single-reward:
enabled: true
message: "&a输入邀请码成功! 你获得了奖励!"
commands:
- "[CONSOLE] money give {player} 2000"
- "[CONSOLE] broadcast &f玩家 &b{player} &f成功邀请 &b{inviter} &f来到服务器!"
gui.yml(界面配置文件)
YAML:
# 邀请系统主界面
title: "&8&l邀请奖励 &7({player})"
size: 27
show-player-head: true
info-item:
material: BOOK
name: "&e邀请信息"
lore:
- "&7你的邀请码: &b{code}"
- "&7当前在线时长: &a{online_minutes} &7/ &a{need_minutes} 分钟"
- "&7累计邀请人数: &a{count}"
- "&7点券返利: &6{rebate} &7点券"
- "&7状态: {status}"
milestone-item:
material: CHEST
name: "&e累计奖励"
lore:
- "&7当前邀请人数: &a{count}"
- "&7距离下一档奖励: &e{next} &7人"
- "&e点击查看详细进度"
invited-list-item:
material: PAPER
name: "&e邀请记录"
lore:
- "&7已邀请人数: &a{count}"
- "&e点击查看详细列表"
# 邀请记录界面
invited-list-menu:
title: "&8&l邀请记录"
# 累计奖励界面
milestone-menu:
title: "&8&l累计奖励"
enabled: true
disabled-title: "&c累计奖励暂未开启"
disabled-subtitle: "&7请等待管理员开放"
rewards:
- count: 5
material: GOLD_INGOT
name: "&e邀请 {count} 人奖励 {status}"
lore:
- "&7奖励内容:"
- "&f金币 x5000"
- "&7当前进度: &a{current} &7/ &a{count}"
message:
- "&e&l━━━━━━━━━━━━━━━━━━━━━"
- "&e邀请奖励:"
- "&f金币x5000"
- "&e&l━━━━━━━━━━━━━━━━━━━━━"
commands:
- "[CONSOLE] money give {player} 5000"
- "[CONSOLE] broadcast &f玩家 &b{player} &f成功邀请 &b5位 &f好友来到服务器!"
- count: 10
material: DIAMOND
name: "&b邀请 {count} 人奖励 {status}"
lore:
- "&7奖励内容:"
- "&f金币 x5000"
- "&7当前进度: &a{current} &7/ &a{count}"
message:
- "&e&l━━━━━━━━━━━━━━━━━━━━━"
- "&e邀请奖励:"
- "&f金币x5000"
- "&e&l━━━━━━━━━━━━━━━━━━━━━"
commands:
- "[CONSOLE] money give {player} 5000"
- "[CONSOLE] broadcast &f玩家 &b{player} &f成功邀请 &b10位 &f好友来到服务器!"
- count: 15
material: EMERALD
name: "&a邀请 {count} 人奖励 {status}"
lore:
- "&7奖励内容:"
- "&f金币 x5000"
- "&7当前进度: &a{current} &7/ &a{count}"
message:
- "&e&l━━━━━━━━━━━━━━━━━━━━━"
- "&e邀请奖励:"
- "&f金币x5000"
- "&e&l━━━━━━━━━━━━━━━━━━━━━"
commands:
- "[CONSOLE] money give {player} 5000"
- "[CONSOLE] broadcast &f玩家 &b{player} &f成功邀请 &b15位 &f好友来到服务器!"
messages.yml(消息配置文件)
YAML:
# 命令提示信息
prefix: "&f[&b邀请系统&f]"
no-permission: "&c你没有权限执行该命令."
player-only: "&c该命令只能由玩家执行."
unknown-command: "&c未知子命令,使用 /inviteadmin 查看帮助."
player-not-found: "&c找不到玩家 {player}."
code-generated: "&a已为你生成专属邀请码: &b{code} &7(请妥善保管)"
code-self: "&e你的专属邀请码是: &b{code}"
code-other: "&e玩家 &b{player} &e的专属邀请码是: &b{code}"
code-not-found: "&c邀请码 &b{code} &c不存在."
code-self-input: "&c你不能输入自己的邀请码."
code-already-used: "&c你已经使用过该邀请码了."
code-already-used-by: "&c该邀请码已被使用."
code-not-ready: "&c该邀请码的主人在线时长还未达到要求 ({online_minutes}/{need_minutes} 分钟)."
code-accept-success: "&a成功使用邀请码 &b{code} &a! 来自 &b{inviter}&a."
inviter-online-time: "&e玩家 &b{inviter} &e当前在线时长: &a{online_minutes} &7/ &a{need_minutes} &7分钟."
data-reset: "&a已重置玩家 &b{player} &a的所有数据."
data-reloaded: "&a配置文件已重新加载."
cannot-input-own-code: "&c你不能使用自己的邀请码."
milestone-unlocked: "&f[&e里程碑达成&f] &f玩家 &e{player} &f已成功邀请 &e{count} &f位好友来到服务器,获得奖励!"
# 邀请请求相关消息
request-incoming-notify-line1: "&e玩家 &b{player} &e想使用你的邀请码 &b{code}&e,请选择:"
request-sent: "&a请求已发送! 等待 &b{code} &a的主人 &e同意后即可成功邀请."
request-accepted-notify: "&a你的邀请请求已被 &b{owner} &a同意!&7奖励已发放!"
request-rejected-notify: "&c很遗憾,&b{owner} &c拒绝了你的邀请请求。"
request-rejected-owner-notify: "&e你已拒绝 &b{player} &e的邀请请求 (码: {code})"
request-accepted-self: "&a已同意邀请请求!"
request-rejected-self: "&c已拒绝邀请请求."
request-list-empty: "&7暂无邀请请求."
request-owner-offline: "&c邀请码的主人不在线,请稍后再试."
request-already-pending: "&c你已经发送过邀请请求,请等待 &b{owner} &c处理或等待请求过期后再试."
mutual-invite-not-allowed: "&c无法使用该邀请码! &b{owner} &c已经使用过你的邀请码,不能互相邀请."
# 点券返利相关消息
rebate-received: "&f[&b邀请系统&f] &e你邀请的玩家 &b{player} &e充值了 &6{amount} &e点券,你获得了 &6{rebate} &e点券返利!"
结语
感谢使用 XZInviteReward 插件,我会持续更新更多功能。对于插件如果你有任何问题或建议,请添加作者的QQ:3414446