
YuPay
YuPay is a modern, feature-rich payment and donation plugin designed for Minecraft servers (compatible with 1.8.x-1.26.x). It seamlessly integrates WeChat Pay and Alipay
Список изменений
🎉 YuPay 1.2 Update Notes
Dear Server Owners, thank you for using YuPay! This update brings a host of new features, optimizations, and bug fixes designed to provide you with a more powerful and flexible donation management experience. Below are the detailed changes from version 1.1.1 to 1.2.
✨ New Features
1. Donation Blacklist System
- Administrators can now ban specific players from using the donation feature, with an optional reason.
- Commands:
/yupay ban <player> [reason]– Ban a player from donating/yupay unban <player>– Unban a player
- Banned players attempting to use
/paywill receive a warning message, including the reason if provided. - The database automatically creates the
yu_banned_playerstable; no manual intervention required.
2. Currency Conversion Feature
- Administrators can use the
/yupay convertcommand to convert between Vault currency and PlayerPoints. - Conversion rates can be set in
config.yml(under theconversion-ratessection). - Command format:
/yupay convert <player> <source_type(vault/points)> <target_type(vault/points)> <amount>
3. Donation Amount Limits
- Configurable minimum/maximum single donation amounts (
pay.min-amount/pay.max-amount, -1 for unlimited). - Configurable daily cumulative donation limit (
pay.max-daily-amount); players exceeding this limit cannot donate further that day. - Clear warning messages are shown when limits are exceeded.
4. Multiple QR Code Output Modes
- In addition to the original clickable link, now supports:
- Text QR Code: Generates an ASCII-art QR code in chat, suitable for clients that cannot click links (e.g., Bedrock Edition). Can be used via
/pay <amount> text. - Map QR Code: Generates a map item with the QR code placed in the player's inventory (requires ProtocolLib). Can be used via
/pay <amount> map.
- Text QR Code: Generates an ASCII-art QR code in chat, suitable for clients that cannot click links (e.g., Bedrock Edition). Can be used via
- Default output mode can be set in
config.yml(qrcode.default-output-mode:link/text/map).
5. Order History Query
- Players can use
/yupay history [page]to view their own donation records (order ID, amount, status, time). - Administrators can use
/yupay history <player> [page]to view other players' history.
6. More PAPI Placeholders
%yupay_has_paid_in_<time_milliseconds>%– Whether the player has donated within the specified time (true/false)%yupay_recent_amount_gt_<time_milliseconds>_<amount>%– Whether donations within the specified time exceed a threshold (true/false)%yupay_pay_methods_count%– Number of available payment channels%yupay_pay_methods_list%– List of available payment channel names (comma separated)%yupay_is_limited%– Whether the player is currently restricted by the daily limit (true/false)%yupay_daily_remaining%– Remaining donation amount for today
7. Customizable Order Subject
- The product name for payment orders can now be customized in
config.ymlunderpay.order-subject, supporting{player}and{amount}variables.
8. Fully Customizable Command Aliases
- All command aliases can now be fully customized in the
commandssection ofconfig.yml, no longer restricted byplugin.yml. For example, you can change/payto/donate.
⚙️ Configuration Changes
-
New Configuration Options:
pay.min-amount– Minimum single donation amount (default: 0.01)pay.max-amount– Maximum single donation amount (default: -1)pay.max-daily-amount– Maximum cumulative daily donation amount (default: -1)pay.order-subject– Order subject templateconversion-rates.vault-to-points/points-to-vault– Currency conversion ratesqrcode.default-output-mode– Default QR code output modeqrcode.text-qr-size/text-black-char– Text QR code parametersdatabase.mysql.jdbc-params– Customizable MySQL JDBC parametersdatabase.table-names.banned-players– Blacklist table name (default:yu_banned_players)
-
Automatic Database Updates: On first startup of version 1.2, the plugin will automatically create the blacklist table and update indexes. It is recommended to back up your database beforehand, but the plugin includes a safe update mechanism.
🔧 Command Changes
-
New Subcommands for
/yupay:set <option> <value>– Dynamically modify configuration (e.g., default payment method, economy type, conversion rates)ban / unban– Manage the blacklistconvert– Currency conversionhistory– Order history query
-
The
/paycommand now supports a third parameter to specify output mode:/pay 10– Uses the default mode/pay 10 wechat text– Specifies WeChat as the payment method and outputs a text QR code
-
All command aliases can be fully customized via the
commandssection inconfig.yml.
🔐 Permission Changes
The following permission nodes have been added, allowing fine-grained control using plugins like LuckPerms:
| Permission Node | Description | Default |
|---|---|---|
yupay.command.pay | Allows use of the pay command | All players |
yupay.command.top | Allows viewing the leaderboard | All players |
yupay.command.total | Allows viewing total donation amounts | All players |
yupay.command.history | Allows viewing one's own donation history | All players |
yupay.reload | Allows reloading the configuration | OP |
yupay.ban | Allows managing the blacklist | OP |
yupay.convert | Allows performing currency conversion | OP |
yupay.admin | Includes all OP permissions above | OP |
yupay.user | Includes all basic player permissions | All players |
📦 Dependency Changes
- New Optional Dependency:
ProtocolLib– Required for the map QR code feature (can be ignored if not using map mode)
🐛 Bug Fixes
- Leaderboard Display Error: After players change their names, the leaderboard no longer shows duplicate entries; it now groups by UUID and uses the latest player name.
- Database Connection Optimization: The connection pool now supports SQLite and allows custom JDBC parameters, improving MySQL stability.
- Message Text Supports More Placeholders: For example,
{command}is now available to dynamically display the actual command name, ensuring help messages are correct even after aliases are customized.
⚠️ Important Notes
- Before updating, please back up your configuration files (
config.ymlandmessages.yml). The plugin will automatically preserve your modified settings, but it's better to be safe. - If using MySQL, it is recommended to set
jdbc-paramsin the configuration for optimal performance (example parameters are provided). - To use the map QR code mode, you must install
ProtocolLib; otherwise, this mode will not work. - The text QR code mode requires no additional dependencies, but the ASCII art may not display perfectly in all chat fonts. You can adjust
text-qr-sizeandtext-black-charfor better results.
Thank you again for your support! If you have any questions or suggestions, feel free to join our QQ discussion group: 1080918424.
Wishing your server great success!
—— YuPay Development Team