Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
SyExtract
A red envelope plugin for Minecraft Paper/Purpur 1.21 with Vault economy support.
Features
- Create red envelopes (set name, amount, quantity)
- Each red envelope has a unique numeric ID starting from 1 (e.g., 1, 2, 3)
- GUI interface for viewing and claiming red envelopes
- New "Create Red Envelope" button in GUI — click it and type name, amount, and count in chat
- BossBar progress bar displayed at the top of the screen after creating a red envelope, showing remaining count in real time
- Automatic notification to the sender when someone claims their red envelope (includes claimer name, envelope name, amount, and currency name)
- Configurable tax-free threshold: red envelopes with total amount less than 10000 are tax-free; 2% tax for amounts of 10000 or more
- If a red envelope is not fully claimed 1 minute after creation, a clickable reminder is sent to online players who haven't claimed it
- Claim buttons in broadcast and reminder messages are now truly clickable
- Multi-language support (简体中文/English)
- Vault economy system support
- Configurable fee system
- Player ban system (restrict sending/claiming red envelopes)
- Red envelope expiration settings
- Unclaimed amounts are automatically refunded when red envelopes expire
- Red envelope data is fully preserved after server restart (including amount distribution and claim records)
- Highly configurable
Requirements
- Minecraft Server: Paper/Purpur 1.21
- Java: 17 or higher
- Dependencies: Vault + any economy plugin (e.g., EssentialsX)
Commands
| Command | Permission | Description |
|---|---|---|
/sye create <name> <amount> <count> |
syextract.create | Create a red envelope |
/sye open |
syextract.open | Open the red envelope GUI |
/sye broadcast <id> |
syextract.broadcast | Broadcast a red envelope to all players |
/sye claim <id> |
syextract.claim | Claim a specific red envelope by ID |
/sye ban <player> <time> |
syextract.ban | Ban a player |
/sye unban <player> |
syextract.unban | Unban a player |
/sye reload |
syextract.reload | Reload configuration |
Command Aliases
create→copen→obroadcast→brclaim→clban→bunban→ureload→r
Time Format
Ban duration supports the following formats:
1h- 1 hour1d- 1 day1w- 1 week30d- 30 days
Permissions
| Permission | Default | Description |
|---|---|---|
| syextract.use | true | Basic usage permission |
| syextract.create | true | Create red envelope permission |
| syextract.open | true | Open GUI permission |
| syextract.claim | true | Claim red envelope permission |
| syextract.broadcast | true | Broadcast red envelope permission |
| syextract.ban | op | Ban player permission |
| syextract.unban | op | Unban player permission |
| syextract.reload | op | Reload configuration permission |
| syextract.admin | op | All admin permissions |
Configuration
config.yml
# Language Settings
# Available values: zh (简体中文), en (English)
language: zh
# Red envelope settings
red-envelope:
# Default claim duration (hours)
default-expire-hours: 24
# Minimum red envelope amount
min-amount: 1.0
# Minimum red envelope count
min-count: 1
# Maximum red envelope count
max-count: 100
# Fee settings (charged when creating)
fee:
enabled: true
percentage: 0.05
min-fee: 1.0
# Tax settings (charged when claiming)
tax:
# Tax-free threshold: red envelopes with total amount below this are tax-free
threshold: 10000
# Tax rate: applied when total amount is at or above the threshold
percentage: 0.02
# Economy settings
economy:
# Currency name (used when Vault does not provide one)
currency-name: "Coins"
# Reminder settings
reminder:
# Seconds after creation to send unclaimed reminder (default: 60)
delay-seconds: 60
# GUI settings
gui:
item-material: "SUNFLOWER"
# Broadcast message settings
broadcast:
envelope-completed: "&6&l🎉 Red envelope &e{name} &7has been fully claimed..."
Language Files
The plugin supports multi-language through language files located in plugins/SyExtract/lang/:
zh.yml- 简体中文 (default)en.yml- English
You can customize all messages in these files. To switch language, change the language option in config.yml.
Data Storage
The plugin generates the following data files in the plugins/SyExtract/ directory:
envelopes.yml- Red envelope data (including amount distribution and claim records)bans.yml- Ban datalang/- Language files (auto-generated)
Usage Examples
-
Create a red envelope via command
/sye create HappyNewYear 1000 10Create a red envelope named "HappyNewYear" with a total of 1000 coins divided into 10 shares. The system will display the red envelope ID upon successful creation.
-
Create a red envelope via GUI
/sye openOpen the GUI and click the "Create Red Envelope" button (nether star icon) at the bottom. Then type the name, amount, and count in chat one by one.
-
Open GUI to claim red envelopes
/sye openThe GUI can be opened even when no red envelopes are available.
-
Broadcast a red envelope
/sye broadcast 1Broadcast the red envelope with ID "1" to all online players. Players can click the "[Claim Now]" button in the chat to claim it.
-
Claim a specific red envelope
/sye claim 1Directly claim the red envelope with ID "1".
-
Ban a player
/sye ban PlayerName 7dBan a player for 7 days, preventing them from sending and claiming red envelopes.
Notes
- Creating a red envelope deducts the envelope amount + fee
- Red envelopes use the "line-cutting" random distribution algorithm — each person has an equal probability of receiving any amount, so there is no advantage to claiming first
- Expired unclaimed red envelopes will be automatically refunded to the sender
- Each player can only claim the same red envelope once
- Each red envelope has a unique numeric ID for easy sharing and claiming
- When a red envelope's total amount reaches the tax-free threshold (default 10000), claimed amounts are subject to tax
- Red envelope data is fully preserved after server restart, including individual amounts and claim records
- If a red envelope is not fully claimed 1 minute after creation, the system automatically reminds online players who haven't claimed it
Changelog
v1.5.0
- Fixed red envelope amount distribution algorithm: switched to the "line-cutting" method to ensure everyone has an equal probability of receiving any amount — no longer does the first claimer get the largest amount
- Fixed a bug where red envelope amounts were regenerated after server restart, causing distribution errors (amounts are now saved and loaded properly)
- Added "Create Red Envelope" button in GUI — click it and type name, amount, and count in chat
- Added BossBar progress bar at the top of the screen after creating a red envelope, showing remaining count in real time
- Added automatic notification to the sender when someone claims their red envelope (includes claimer name, envelope name, amount, and currency name)
- Added tax system: configurable tax-free threshold (default 10000) and tax rate (default 2%) in config.yml
- Added 1-minute unclaimed reminder: sends a clickable reminder message to online players who haven't claimed the red envelope
- Broadcast and reminder messages now have truly clickable claim buttons
- Fixed a bug where GUI slot mappings conflicted when multiple players opened the GUI simultaneously
- Fixed a bug where the sender's name showed as "Unknown" when claiming the last red envelope
- Added a periodic cleanup task for expired red envelopes
- Currency name is now automatically retrieved from Vault, with a configurable fallback in config.yml
v1.4.0
- Added multi-language support (简体中文/English)
- Language files are now stored in
lang/folder - All messages can be customized through language files
- Added
languageoption in config.yml
v1.3.0
- Added notification when red envelope is fully claimed
- Shows the luckiest player (hand king) who got the highest amount
- Added
broadcast.envelope-completedmessage configuration
v1.2.0
- Fixed broadcast message not found issue (success.broadcast)
- Fixed clickable claim button in broadcast messages
- Changed red envelope ID from random 6-character to sequential numeric ID starting from 1
v1.1.0
- Added unique ID for each red envelope
- Added automatic refund for expired unclaimed red envelopes
- Added
/sye broadcastcommand to broadcast red envelopes - Added
/sye claimcommand to claim by ID - GUI can now be opened even when no red envelopes are available
- Updated to Java 17 compatibility
v1.0.0
- Initial release
Author
- Author: Shiyuan
- GitHub: Shiyuan-318
- Year: 2026
SyExtract
一个适用于 Minecraft Paper/Purpur 1.21 的红包插件,支持 Vault 经济系统。
功能特性
- 创建红包(设置名称、金额、数量)
- 每个红包拥有从1开始的唯一数字ID(如1、2、3)
- GUI界面查看和领取红包
- GUI中新增"创建红包"按钮,点击后在聊天框依次输入名称、金额、个数即可创建
- 创建红包后在屏幕上方显示BossBar进度条,实时显示剩余个数
- 有人领取红包时,自动通知红包发放者(包含领取者名称、红包名称、金额、货币名称)
- 可配置免税界限:红包总额小于10000免税,大于等于10000收2%税
- 红包创建1分钟后若未领完,自动给未领取的在线玩家发送可点击的提醒消息
- 广播消息和提醒消息中的领取按钮可点击直接领取
- 多语言支持(简体中文/English)
- Vault经济系统支持
- 可配置的手续费系统
- 玩家封禁系统(限制发放/领取红包)
- 红包过期设置
- 过期未领取的红包金额自动退还给发放者
- 服务器重启后红包数据完整保留(包括金额分配和领取记录)
- 高度可配置
运行要求
- Minecraft服务端:Paper/Purpur 1.21
- Java:17或更高版本
- 依赖:Vault + 任意经济插件(如EssentialsX)
命令
| 命令 | 权限 | 说明 |
|---|---|---|
/sye create <名称> <金额> <数量> |
syextract.create | 创建红包 |
/sye open |
syextract.open | 打开红包GUI |
/sye broadcast <红包ID> |
syextract.broadcast | 广播红包给所有在线玩家 |
/sye claim <红包ID> |
syextract.claim | 领取指定ID的红包 |
/sye ban <玩家> <时间> |
syextract.ban | 封禁玩家 |
/sye unban <玩家> |
syextract.unban | 解封玩家 |
/sye reload |
syextract.reload | 重载配置 |
命令别名
create→copen→obroadcast→brclaim→clban→bunban→ureload→r
时间格式
封禁时长支持以下格式:
1h- 1小时1d- 1天1w- 1周30d- 30天
权限
| 权限 | 默认 | 说明 |
|---|---|---|
| syextract.use | true | 基本使用权限 |
| syextract.create | true | 创建红包权限 |
| syextract.open | true | 打开GUI权限 |
| syextract.claim | true | 领取红包权限 |
| syextract.broadcast | true | 广播红包权限 |
| syextract.ban | op | 封禁玩家权限 |
| syextract.unban | op | 解封玩家权限 |
| syextract.reload | op | 重载配置权限 |
| syextract.admin | op | 所有管理权限 |
配置文件
config.yml
# 语言设置
# 可选值: zh (简体中文), en (English)
language: zh
# 红包设置
red-envelope:
# 红包默认可领取时间(小时)
default-expire-hours: 24
# 最小红包金额
min-amount: 1.0
# 最小红包数量
min-count: 1
# 最大红包数量
max-count: 100
# 手续费设置(创建红包时收取)
fee:
enabled: true
percentage: 0.05
min-fee: 1.0
# 税收设置(领取红包时收取)
tax:
# 免税界限:红包总额小于此值则免税
threshold: 10000
# 税率:红包总额大于等于免税界限时按此比例收税
percentage: 0.02
# 经济设置
economy:
# 货币名称(当Vault未提供时使用)
currency-name: "金币"
# 提醒设置
reminder:
# 红包创建后多少秒发送未领取提醒(默认60秒)
delay-seconds: 60
# GUI设置
gui:
item-material: "SUNFLOWER"
# 广播消息设置
broadcast:
envelope-completed: "&6&l🎉 红包通知 &r&7标题为 &e{name} &7的红包被领完了..."
语言文件
插件支持多语言,语言文件位于 plugins/SyExtract/lang/ 目录:
zh.yml- 简体中文(默认)en.yml- English
你可以在这些文件中自定义所有消息。切换语言请修改 config.yml 中的 language 选项。
数据存储
插件在 plugins/SyExtract/ 目录下生成以下数据文件:
envelopes.yml- 红包数据(包含金额分配和领取记录)bans.yml- 封禁数据lang/- 语言文件(自动生成)
使用示例
-
通过命令创建红包
/sye create 新年红包 1000 10创建一个名为"新年红包"的红包,总金额1000,分为10份。创建成功后会显示红包ID。
-
通过GUI创建红包
/sye open打开GUI后,点击下方的"创建红包"按钮(下界之星图标),然后在聊天框依次输入名称、金额、个数。
-
打开GUI领取红包
/sye open即使当前没有可领取的红包也可以打开GUI。
-
广播红包
/sye broadcast 1将ID为"1"的红包广播给所有在线玩家,玩家可以点击聊天中的"[立即领取]"按钮领取。
-
领取指定红包
/sye claim 1直接领取ID为"1"的红包。
-
封禁玩家
/sye ban 玩家名 7d封禁玩家7天,期间无法发放和领取红包。
注意事项
- 创建红包会扣除红包金额 + 手续费
- 红包采用"切线法"随机分配算法,每个人获得金额的概率完全相同,不存在先领多后领少的问题
- 过期未领取的红包金额会自动退还给发放者
- 每个玩家只能领取同一个红包一次
- 每个红包拥有唯一的数字ID,方便分享和领取
- 红包总额达到免税界限(默认10000)时,领取金额会被收取税费
- 服务器重启后红包数据完整保留,包括各份金额和领取记录
- 红包创建1分钟后若未领完,系统会自动提醒未领取的在线玩家
更新日志
v1.5.0
- 修复红包金额分配算法:改用"切线法"确保每个人获得金额的概率完全相同,不再出现第一个领取者金额最大的问题
- 修复服务器重启后红包金额重新生成导致分配错乱的bug(现在会保存和加载金额列表)
- GUI新增"创建红包"按钮,点击后在聊天框依次输入名称、金额、个数即可创建
- 创建红包后在屏幕上方显示BossBar进度条,实时显示剩余个数
- 有人领取红包时自动通知发放者(含领取者名称、红包名称、金额、货币名称)
- 新增税收系统:可在config.yml中设置免税界限(默认10000)和税率(默认2%)
- 红包创建1分钟后若未领完,自动给未领取的在线玩家发送可点击的提醒消息
- 广播消息和提醒消息中的领取按钮现在可以真正点击领取
- 修复GUI多玩家同时打开时槽位映射冲突的bug
- 修复领取最后一个红包时发送者名称显示为"Unknown"的bug
- 新增定期清理过期红包的自动任务
- 货币名称现在从Vault自动获取,支持在config.yml中配置备用名称
v1.4.0
- 新增多语言支持(简体中文/English)
- 语言文件存放在
lang/目录 - 所有消息均可通过语言文件自定义
- config.yml新增
language选项
v1.3.0
- 新增红包领完通知
- 显示手气王(获得最高金额的玩家)
- 新增
broadcast.envelope-completed消息配置
v1.2.0
- 修复广播消息找不到的问题(success.broadcast)
- 修复广播消息中领取按钮不可点击的问题
- 红包ID从随机6字符改为从1开始的顺序数字ID
v1.1.0
- 为每个红包添加唯一ID
- 过期未领取的红包自动退款
- 新增
/sye broadcast命令广播红包 - 新增
/sye claim命令按ID领取 - 即使没有红包也可以打开GUI
- 更新至Java 17兼容
v1.0.0
- 初始版本
作者
- 作者:Shiyuan
- GitHub:Shiyuan-318
- 年份:2026


