1.2-SNAPSHOT
Compatibility
Changes
๐ 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
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ND76NcgJ:worRisLd"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ND76NcgJ:worRisLd"
}

