YuPay - In-Game Payment/Donation Supporting WeChat Pay and Alipay icon

YuPay - In-Game Payment/Donation Supporting WeChat Pay and Alipay -----

YuPay — A Modern In-Game Payment/Donation Plugin for 1.8.x-1.26.x, Supporting WeChat Pay and Alipay




YuPay 1.4.1.0 → 1.5.0.0 Major Update:

  1. Fixed a long-standing bug where rewards could occasionally be duplicated after payment.
  2. Fixed a long-standing bug where payment would still be processed after cancellation.
  3. Introduced a wide range of APIs for seamless third-party plugin integration.
  4. Added more Bukkit events for third-party plugins to listen to.
  5. Implemented richer and more comprehensive commands.
  6. Expanded in-game interaction capabilities.
  7. Improved the refund mechanism.
  8. Fixed bugs related to refunds.
  9. Fixed an issue where configuration file updates failed to fill in missing entries.
  10. Implemented a cross-server mechanism supporting multi-server environments.
----------, May 30, 2026

Yupay Plugin Update Notice v1.4.1.0 (Upgrade from v1.4.0.3)

Dear Server Owners & Admins,

This update brings the following improvements and fixes:

Fixes
1️⃣ Fixed a crash caused by residual processes not being cleaned up when the plugin failed to start
5️⃣ Fixed startup failures in some modules

️ Enhancements
2️⃣ Strengthened the card key system for improved security
3️⃣ Strengthened the refund system with better transaction rollback logic
4️⃣ Strengthened permission nodes for more granular access control

Optimization
6️⃣ Improved compatibility on hybrid server environments

Support & Feedback

We recommend upgrading as soon as possible for a more stable experience. Thank you for your support!

— Yupay Development Team
----------, May 12, 2026

1.4.0.2
----------, May 10, 2026

  1. 修复安装了protocol后无法扭头看二维码的BUG
  2. 修复安装了protocol后矫正包过于频繁的问题
  3. 增强history指令,现可以查看退款记录以及退款金额明细
  4. 增强退款、卡密明细,现可以一键点击复制
  5. 纠正部分文本错误
----------, May 10, 2026

1.4.0.0 → 1.4.0.1 更新日志

  • 修复了 Purpur 核心下的声音异常问题。

  • 在没有 ProtocolLib 依赖的环境下,大幅增强了地图回收功能,物品复制现象减少 99%。

  • 二维码生成速度提升 600%。

  • 修复了在高版本 Paper 核心上二维码生成错误的 Bug。

  • 完善了指令补全机制,现已实现 100% 全覆盖,所有指令均可无死角自动补全。
----------, May 9, 2026

Yupay Sponsorship Plugin v1.4.0.0 – The “No Joke” Update (From 1.2.3.1 to 1.4.0.0)

Server owners, this is the one you’ve been waiting for! Refunds, card keys, turbocharged performance, and a security guard that never sleeps — all packed into a seamless upgrade. Here’s the full rundown

  1. Seamless Upgrade — Fully Backward-Compatible
    No matter which older version you’re on, just drop in the new file and you’re done. No config loss, no headaches — truly a silent migration.

  2. Refund System Lands — Drama Ends Here
    Players can request refunds in-game; you can approve, reject, force-refund, or even issue partial refunds. Every single refund action leaves a clear trace, so disputes are a thing of the past.

  3. Payment History on Steroids — Paginate & Copy in a Snap
    Browse through historical payments page by page, and filter by date, amount, or status with ease. The little magic touch? One-click copy for order IDs — reconciliation just got twice as fast.

  4. PAPI Null Fix — No More Vanishing Act
    Fixed the problem where PAPI variables would simply disappear when the object was null. Now everything displays gracefully, leaving no awkward gaps in your menus or scoreboards.

  5. Ultimate Multilingual Evolution — Every Player, Their Own Language
    Ships with Simplified Chinese and English by default, and you can customize texts for any language you want. Here’s the real kicker: each player can independently set their own preferred language — a true “different player, different language” experience that makes global servers shine.

  6. ⚡ Explosive Startup Boost — Dependency Check 600% Faster
    We rewrote the startup routine. Dependency verification is now 6 times faster, and the plugin no longer relies on JVM launch arguments. Just toss it into your plugins folder and you’re ready to roll.

  7. ️ 24/7 Security Radar — Guarding Every Cent
    A background security monitor now runs around the clock, detecting if any other plugin is trying to secretly listen in on Yupay. Any suspicious behavior triggers an immediate alert — consider your sponsorship funds under full-time bodyguard protection.

  8. Developer’s Playground — Full Lifecycle Events Now Open
    We’ve exposed hooks for the entire payment and card-key lifecycle. Devs can now tap into every tiny action, offering limitless possibilities for deep integration and custom extensions.

  9. Card Key System + 10+ PAPI Variables Arrive
    A brand-new card key module is live — create, edit, query, and redeem keys, with a full redemption history at your fingertips. Along with it come over 10 dedicated PAPI variables, so you can display card key info wherever your imagination desires.
Player & Community QQ Group: 1080918424
Ideas, feedback, bug reports, or just hanging out — you’re always welcome. See you there!
----------, May 9, 2026

YuPay 赞助系统 v1.22.1-1.2.3.0 更新日志
感谢各位服主和玩家的支持!本次更新我们集中修复了一些“陈年老 BUG”,并根据大家的反馈优化了赞助流程中的细节体验。

玩家体验优化
  • ️ 支付锁定状态新增按 [E] 退出 现在,当您拿着二维码地图等待支付时,除了输入 /yupay cancel 或按 [Q] 丢出地图外,直接按 [E] 打开背包也会自动取消本次赞助并返还您原来的手持物品。三种退出方式任您选择,提示消息也更加明确了!

  • 无偿赞助提示更清晰 使用 -n 参数进行无偿赞助时,游戏内会给出明确的消息提示,告知您本次赞助不会发放任何游戏内奖励,避免产生误解。

  • ️ 修复低版本服务器生成二维码地图失败的问题 针对部分 1.8 - 1.12 核心的服务器,我们修复了因注解兼容性导致的“无法生成二维码地图”或“地图生成报错”的问题。现在即便在较老的服务端核心上,地图支付功能也能稳定运行。
️ 后台与管理功能改进
  • 支付宝证书模式兼容修复 修复了在后台配置支付宝证书模式(公钥证书)时无法正常发起支付或回调失败的问题。现在无论您使用普通公钥模式还是证书模式,赞助流程均能顺畅走通。

  • ⚙️ 新增依赖库校验跳过开关 在 config.yml 中新增了跳过启动时第三方库校验的选项。如果在某些特殊网络环境下启动极慢,现在可以通过配置加速启动过程(仅建议服主在遇到特定网络问题时开启)。

  • 支付宝接口调试日志配置 为服主增加了更详细的支付宝通讯日志开关。当遇到支付疑难杂症时,服主可以通过开启此配置快速定位是网络问题还是证书配置问题。
升级建议: 建议所有正在使用 YuPay 的服主更新至此版本,以获得更稳定的支付宝兼容性和更友好的玩家支付引导。

如升级后遇到任何问题,欢迎加入交流 QQ 群 1080918424 反馈。

YuPay 团队 - 让每一次支持都充满温度 ❤️

YuPay Donation System v1.22.1-1.2.3.0 Changelog
Thank you to all server admins and players for your continued support! This update focuses on resolving long-standing bugs and refining the in-game donation experience based on your feedback.

Player Experience Improvements
  • ️ Added [E] Key to Cancel Payment Lock While holding a QR code map awaiting payment, you can now press [E] to open your inventory to instantly cancel the donation. This will automatically return your original item. In addition to /yupay cancel and pressing [Q], you now have three intuitive ways to exit the payment screen. Hints in chat have been updated accordingly!

  • Clearer No-Reward Donation Prompt When using the -n parameter for a donation without in-game rewards, a distinct message will now appear in chat confirming that no perks or currency will be granted, preventing any potential confusion.

  • ️ Fixed Map Generation on Legacy Server Versions Resolved an annotation compatibility issue that caused QR code maps to fail generation on older server cores (1.8 - 1.12). The map payment feature is now stable and reliable even on legacy Spigot/Paper forks.
️ Backend & Admin Enhancements
  • Alipay Certificate Mode Compatibility Fix Fixed a critical issue where Alipay Certificate Mode (Public Key Certificate) configurations would fail to initialize or process callbacks correctly. The payment flow is now seamless regardless of whether you use standard public key mode or certificate mode.

  • ⚙️ Added Option to Skip Library Checksum Verification A new configuration option has been added to config.yml allowing admins to skip the startup checksum verification of runtime libraries. This can significantly speed up server startup in specific network environments. (Recommended for advanced troubleshooting only.)

  • Alipay API Debug Logging Introduced a configurable debug logging level for Alipay API communications. When encountering payment issues, admins can now enable detailed logs to quickly identify whether the problem is network-related or a certificate misconfiguration.
Upgrade Recommendation: All server owners currently using YuPay are strongly encouraged to update to this version to ensure full Alipay compatibility and to provide a smoother guidance experience for donating players.

If you encounter any issues after upgrading, feel free to join our QQ community group 1080918424 for support and feedback.

YuPay Team — Making every contribution feel rewarding ❤️
----------, Apr 15, 2026

Update to support JDK 8
----------, Mar 23, 2026

YuPay Release Notes · v1.2.2.0-SNAPSHOT
Callback Server Upgrade
The built‑in HTTP callback server has been replaced from the JDK’s com.sun.net.httpserver to Undertow 2.3.18.Final.

Undertow is a production‑grade HTTP server from the JBoss/WildFly project, widely used in enterprise Java applications. For plugin users, the most noticeable changes are:

  • Callback notifications are no longer queued or blocked when the server is busy – responses to WeChat Pay / Alipay notifications become more timely.
  • A request body size limit (default 64 KB) is added; abnormal requests are rejected directly, saving server resources.
  • An optional IP whitelist is added – when configured, only requests from the official WeChat/Alipay servers can reach the callback endpoint.
  • When the plugin stops, the callback server waits for in‑flight requests to finish before shutting down, so ongoing order confirmations are not interrupted.
First Launch Instructions
Undertow and its dependencies are not bundled inside the plugin JAR. They will be automatically downloaded from Maven Central and cached in plugins/YuPay/libs/ when the server starts for the first time.

On first launch you will see log messages similar to the following – this is normal:

[LibraryLoader] Downloading: undertow-core-2.3.18.Final.jar ← https://repo1.maven.org/maven2/...
[LibraryLoader] ✓ Download completed: undertow-core-2.3.18.Final.jar (xxx KB)
[LibraryLoader] ✓ Verification passed (newly downloaded): undertow-core-2.3.18.Final.jar

After the download completes, subsequent startups use the cached files without requiring an internet connection.

Note: The server must be able to access repo1.maven.org on first launch. Please ensure network connectivity.

New Configuration Options in config.yml
The following optional fields have been added under the existing callback: node. If omitted, the default values (shown in parentheses) will be used:

callback:
port: 8080
host: "0.0.0.0"

# Threading model
io-threads: 2 # Number of IO threads – recommended not to exceed CPU cores (default 2)
worker-threads: 8 # Number of worker threads for business processing (default 8)

# Timeouts (milliseconds)
read-timeout-ms: 10000
write-timeout-ms: 10000

# Security
max-body-size: 65536 # Maximum request body size in bytes (default 64 KB)
allowed-ips: [] # IP whitelist – leave empty to disable

# Debugging
access-log: false # When enabled, logs every callback to the console

# Shutdown behavior
shutdown-grace-ms: 3000 # Grace period for graceful shutdown (milliseconds)

Old configuration files do not need to be modified manually. Any unspecified fields will fall back to the defaults, and the plugin can be updated without issues.

Other Fixes
  • Fixed an issue where cumulative sponsorship tier records were not saved when using SQLite. The original code used MySQL‑specific ON DUPLICATE KEY UPDATE syntax, which caused errors on SQLite and resulted in lost tier records. The plugin now automatically selects the correct syntax based on the database type.
  • Fixed a missing app_id consistency check for Alipay callbacks. The plugin now verifies that the app_id in the callback matches the one configured.
  • Added a timestamp replay attack prevention check for WeChat Pay callbacks. Callbacks with a timestamp older than 5 minutes are rejected.
If you encounter any issues after the upgrade, please feel free to join our QQ group 1080918424 for feedback.
----------, Mar 23, 2026

fix help command
fix libraryloader
----------, Mar 22, 2026

YuPay 1.2.1 → 1.2.1.1 Changelog
Update Overview
This update focuses on comprehensive stability and maintainability improvements. We have invested significant effort in thoroughly testing all features across all major Minecraft versions from 1.8 to 1.21, ensuring consistent and reliable performance in various server environments. Additionally, the core code has been deeply refactored, and built-in dependencies have been removed, resulting in a smaller plugin size, cleaner structure, and easier future maintenance.

✅ Version Compatibility & Testing

  1. Full Version Compatibility Testing
    • Conducted complete regression testing on all major Minecraft versions from 1.8.x to 1.21.x.
    • Resolved compatibility issues that caused feature malfunctions, command errors, or UI display problems across different API versions, ensuring consistent behavior on all supported platforms.
    • Improved interaction logic with economy plugins (Vault) across different versions, eliminating potential compatibility risks.
Improvements

  1. Code Refactoring
    • Performed a comprehensive refactoring of the plugin's core logic, resulting in clearer functional module separation.
    • Optimized code structure, eliminated redundant code, and significantly improved readability and maintainability, laying a solid foundation for future feature development.
    • Standardized exception handling and logging for easier troubleshooting.
  2. Size Optimization
    • Removed all built-in dependencies (such as HikariCP). These are now dynamically loaded via the server’s lib/ directory or environment.
    • This greatly reduces the plugin JAR file size and avoids conflicts caused by dependency version mismatches.
  3. Configuration & File Structure
    • With the removal of bundled dependencies, the plugin file structure is now leaner, containing only the core functional code.
Bug Fixes

  • Fixed command tab-completion issues on certain versions caused by API changes.
  • Resolved issues where certain features failed to work correctly on 1.13+ versions due to Material name changes.
  • Fixed potential exceptions in item generation and detection across different versions.
Configuration Changes
This update does not modify the structure of config.yml or messages.yml. The configuration version remains unchanged.

  • Important Note: Because built-in dependencies have been removed, please ensure that required dependencies (such as Vault) are properly installed and configured on your server, and that their versions are compatible with your server core.
Update Guide

  1. Backup: Stop your server and back up the existing plugins/YuPay/ folder.
  2. Replace: Delete the old YuPay-1.2.1.jar file and place the new YuPay-1.2.1.1.jar into the plugins/ directory.
  3. Start: Start your server. The plugin will automatically load the new code.
  4. Verify: After startup, check the console logs to ensure the plugin loads without errors. It is recommended to test core functions (such as /pay) in-game to confirm everything works as expected.
Feedback & Support
If you encounter any issues with the new version, please feel free to join our QQ group for support: 1080918424.

Version: 1.2.1.1 Release Date: March 21, 2026
----------, Mar 21, 2026

YuPay 1.2 → 1.2.1 Changelog
Overview
This update focuses on feature enhancements and user experience improvements. It introduces a no‑reward donation mode, global blacklist, dynamic PAPI placeholders, in‑game configuration changes, and numerous hardcoded message cleanups, making the plugin more maintainable and flexible.

✨ New Features
1. No‑Reward Donation Mode (-n / --no-reward)
  • Players can donate without receiving any economy or command rewards by adding -n to the command, e.g., /pay 100 -n.
  • Order identification: No‑reward orders have a FREE_ prefix in the order ID.
  • Use case: Pure support for the server without affecting game economy.
2. Global Blacklist
  • Use the keyword all to ban or unban all players at once.
  • Commands:
    • /yupay ban all [reason] – disables donations for everyone.
    • /yupay unban all – removes the global ban.
  • Use case: Quickly stop all donations in case of emergencies.
3. Dynamic PAPI Placeholders
  • New placeholders:
    • %yupay_top_<rank>_name% and %yupay_top_<rank>_amount% – supports both new (top_1_name) and old (top1_name) formats.
    • %yupay_is_banned%
    • %yupay_total_orders%, %yupay_success_orders%
    • %yupay_orders_in_<time>%, %yupay_success_orders_in_<time>%, %yupay_amount_in_<time>%
    • Server‑wide equivalents: %yupay_server_total_orders%, %yupay_server_success_orders%, %yupay_server_orders_in_<time>%, %yupay_server_success_orders_in_<time>%, %yupay_server_amount_in_<time>%
  • All time placeholders accept milliseconds as <time>.
4. Enhanced Dynamic Configuration Editing
  • New configuration options economy.enabled and commands.enabled.
  • /yupay set now supports:
    • economy-enabled true/false – toggle economy rewards.
    • commands-enabled true/false – toggle command rewards.
    • min-amount, max-amount, max-daily-amount – adjust amount limits on the fly.
  • New /yupay config command to view current configuration (admin only).
5. Message System Cleanup
  • All hardcoded text has been moved to messages.yml.
  • New message keys added:
    • pay-success-no-reward – success message for no‑reward donations.
    • config-header, config-footer, config-line – config display interface.
    • set-invalid-boolean – error for invalid boolean input.
    • Updated ban-usage and unban-usage to include all.
    • Database‑related logs now use consistent db-* keys.
6. Database Enhancements
  • New methods in PaymentDAO:
    • getOrderCountByUUID(), getOrderCountByUUIDInTime()
    • getServerOrderCount(), getServerOrderCountInTime(), getServerAmountInTime()
Optimizations & Improvements
Code Structure
  • Unified QR code generation into QRCodeUtils.
  • Merged MessageUtils methods into MessageManager.
  • Streamlined no‑reward flag handling in PayCommand and YupayCommand.
Version Compatibility
  • Config version upgraded to 5.
  • Messages version upgraded to 5.
  • Vault is now a soft dependency (removed from depend list).
Logging
  • Database operations now use centralized message keys.
  • Blacklist actions log detailed information.
Bug Fixes
  • Fixed no‑reward mode still triggering economy and command rewards.
  • Fixed map QR code display issues on some server versions.
  • Fixed global ban not preventing players from donating.
Configuration Changes
New config.yml Options
economy:
# Whether economy rewards are enabled
enabled: true

commands:
# Whether command rewards are enabled
enabled: true

New messages.yml Keys
pay-success-no-reward: "&a&l✅ &fDonation successful! You chose no-reward mode and received no bonuses."

config-header: "&6&m⎯⎯⎯&r &e&l⚙ YuPay Configuration &6&m⎯⎯⎯&r"
config-footer: "&6&m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯&r"
config-line: "&e{key}&7: &f{value}"

set-invalid-boolean: "&cPlease enter true or false"

Upgrade Guide
Automatic Update
  1. Stop your server.
  2. Replace the JAR with YuPay-1.2.1-SNAPSHOT.jar.
  3. Start the server. The plugin will automatically update config files while preserving your custom values.
  4. Check the console log for confirmation.
Manual Update (if automatic fails)
  1. Back up your config.yml and messages.yml.
  2. Delete the old config files.
  3. Start the server to generate fresh configs.
  4. Restore your custom settings manually from the backups.
Support
For any questions or feedback, join our community:

QQ Group: 1080918424

Version: 1.2.1-SNAPSHOT
Release Date: March 20, 2026
----------, Mar 20, 2026

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 /pay will receive a warning message, including the reason if provided.
  • The database automatically creates the yu_banned_players table; no manual intervention required.
2. Currency Conversion Feature
  • Administrators can use the /yupay convert command to convert between Vault currency and PlayerPoints.
  • Conversion rates can be set in config.yml (under the conversion-rates section).
  • 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.
  • 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.yml under pay.order-subject, supporting {player} and {amount} variables.
8. Fully Customizable Command Aliases
  • All command aliases can now be fully customized in the commands section of config.yml, no longer restricted by plugin.yml. For example, you can change /pay to /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 template
    • conversion-rates.vault-to-points / points-to-vault – Currency conversion rates
    • qrcode.default-output-mode – Default QR code output mode
    • qrcode.text-qr-size / text-black-char – Text QR code parameters
    • database.mysql.jdbc-params – Customizable MySQL JDBC parameters
    • database.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 blacklist
    • convert – Currency conversion
    • history – Order history query
  • The /pay command 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 commands section in config.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
  1. Before updating, please back up your configuration files (config.yml and messages.yml). The plugin will automatically preserve your modified settings, but it's better to be safe.
  2. If using MySQL, it is recommended to set jdbc-params in the configuration for optimal performance (example parameters are provided).
  3. To use the map QR code mode, you must install ProtocolLib; otherwise, this mode will not work.
  4. 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-size and text-black-char for 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
----------, Mar 19, 2026

YuPay Changelog - Version 1.1.1
Dear server owners and players, thank you for using YuPay! This update (1.1.1) focuses on optimizing and enhancing configuration management, the logging system, sound compatibility, and PlaceholderAPI integration, making the plugin even smoother to use. Here are the detailed changes:

✨ New Features & Enhancements
1. Smart Configuration Update Mechanism (No more manual tweaking!)
  • When an outdated configuration file is detected, the plugin automatically backs up the old file (e.g., config.yml.backup_1) and generates a brand new default configuration.

  • Automatically preserves your custom settings: The plugin intelligently identifies keys present in both the old and new configurations and migrates only those values from the old config to the new one. This ensures that your crucial settings—such as payment keys, database passwords, exchange rates—are never lost, while you still get the latest default options.

  • The configuration update process is fully transparent, with detailed logs printed to the console.
2. Enhanced Messaging System (Goodbye to startup error logs)
  • The message manager (MessageManager) now has a built-in fallback mechanism. Even before updating configuration files, it can load default messages from the plugin's JAR, ensuring all logs and prompts display correctly.

  • No more repetitive "message missing" warnings at startup; console output is much cleaner.
3. Improved Sound Utilities (More stable cross-version compatibility)
  • SoundUtils now uses lazy initialization, performing version detection only after the plugin has fully loaded, avoiding issues with accessing plugin instances during class loading.

  • All log output now uses the plugin's own Logger and supports customization via the message file, making it easier to unify log formatting.

  • Friendlier error messages when sound playback fails, with fallback sounds ensuring functionality remains unaffected.
4. PlaceholderAPI Expansion Upgrade (More useful placeholders)
  • Version synchronization: The placeholder expansion version now matches the plugin's main version (changed from 1.0 to 1.1.1), no longer hardcoded.

  • New placeholders:
    • %yupay_total_all% – Total server-wide donations (CNY)

    • %yupay_recent_day% – Player's donations in the last 24 hours

    • %yupay_recent_week% – Player's donations in the last 7 days

    • %yupay_recent_month% – Player's donations in the last 30 days
  • Existing placeholders (%yupay_total%, %yupay_rank%, %yupay_top{n}_name%, %yupay_top{n}_amount%) remain stable and fully functional.
5. Internal Code Optimizations
  • Removed all hardcoded log texts; now unified through the message manager for better multi-language support.

  • Improved command registration logic to ensure custom primary names and aliases work correctly.

  • Enhanced exception handling in database queries to prevent a single failure from affecting the entire plugin.
Bug Fixes
  • Fixed the issue where "message missing" warnings repeatedly appeared at startup due to outdated message files.

  • Fixed the bug where the PlaceholderAPI expansion version always showed as 1.0.

  • Fixed compatibility issues in SoundUtils that could cause sound constants not to be found on older server versions.

  • Fixed the problem where user customizations could be accidentally overwritten during configuration updates (now smart retention is implemented).
How to Update
  1. Replace the old YuPay.jar in your server's plugins folder with the new version.

  2. Highly recommended: On the first startup with the new version, the plugin will automatically back up and update your configuration files. If you've made custom changes before, please check config.yml and messages.yml to ensure your custom values are retained, and verify that the new version numbers (config-version and messages-version) have been updated to 1.

  3. If you use PlaceholderAPI, the new placeholders will take effect immediately without any extra steps.
Feedback & Support
If you encounter any issues or have suggestions, feel free to join our community group: 1080918424 (QQ)
----------, Feb 27, 2026

✨ New Feature: Dynamic Command Registration
You can now customize the main names and aliases of all commands through commands.names and commands.aliases in config.yml, without modifying plugin.yml.

  • Main Name Customization: For example, change /pay to /donate by simply setting pay: "donate" in the configuration.

  • Alias Extension: Add multiple additional aliases for each command, making it easier for players to remember and use.

  • Hot Reload Support: After executing /yupay reload, new command names and aliases take effect immediately without restarting the server.
✨ New Feature: Automatic Configuration File Update (Multi-language Support)
The plugin now automatically detects the versions of config.yml and messages.yml on startup and intelligently merges newly added configuration items while preserving all your custom settings.

  • Version Control: New config-version / messages-version fields have been added at the top of configuration files. The plugin determines whether an update is needed based on these version numbers.

  • Dynamic Messages: Log prompts during the update process have been changed from hardcoded text to being read from messages.yml. You can now freely modify these prompt texts to achieve multi-language adaptation.
Bug Fixes
  • Fixed an issue where some aliases were not properly refreshed after reloading commands, ensuring the reliability of dynamic command registration.
⚠️ Upgrade Notice
This update involves changes to configuration file versions. The plugin will automatically merge newly added items and update version numbers on first startup. We recommend backing up your original configuration files before upgrading, just in case.

Thank you for using YuPay! If you have any questions or suggestions, please join our QQ group: 1080918424.
----------, Feb 27, 2026

We've completely overhauled the core code to achieve a massive backward compatibility leap. One download now works seamlessly across Minecraft 1.8, 1.9, 1.10... all the way to the latest 1.21.
----------, Feb 8, 2026

Resource Information
Author:
----------
Total Downloads: 79
First Release: Feb 7, 2026
Last Update: May 30, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings