Tags
Creators
Details
5.5.6+fabric.26.1
Compatibility
Required content
Changes
PayBot 5.5.6
✨ Có gì mới?
PayBot 5.5.6 là bản cập nhật quan trọng nâng cấp toàn diện về bảo mật dòng tiền, chống giao dịch trùng lặp tuyệt đối (Idempotency), bảo vệ chống Command Injection và tối ưu hóa hệ thống build.
🛡️ Chống Trùng Lặp Thanh Toán Tuyệt Đối (Payment Idempotency)
- Bổ sung bảng
sepay_transactionstrong Database để ghi nhận và lưu trữ Transaction ID duy nhất của từng giao dịch SePay. - Khi SePay gửi lại webhook hoặc có request trùng lặp, hệ thống tự động phát hiện và bỏ qua việc phát thưởng lần hai, tránh thất thoát tài nguyên và tiền bạc của server.
- Phân định rõ ràng mã phản hồi HTTP: Trả về HTTP 200 khi giao dịch đã xử lý xong hoặc trùng lặp, trả về mã lỗi thích hợp khi có sự cố hệ thống để SePay kích hoạt cơ chế retry an toàn.
💳 Chính Sách Xử Lý Thanh Toán Thiếu / Đủ (Underpaid Policy)
- Tích hợp máy trạng thái đơn nạp chuẩn Order State Machine:
CREATED→PENDING→PAYMENT_DETECTED→VERIFIED→APPROVED→REWARDED→COMPLETED. - Trường hợp người chơi chuyển thiếu tiền (
transferAmount < required): Hệ thống tự động chuyển đơn sang trạng tháiUNDERPAID, gửi cảnh báo trực tiếp cho người chơi và Admin, tuyệt đối không tự ý phát thưởng cho đến khi được duyệt thủ công. - Trường hợp chuyển đủ hoặc thừa tiền: Tự động ghi nhận chính xác và kích hoạt chu trình giao thưởng ngay lập tức.
🔐 Tăng Cường Bảo Mật & Chống Tấn Công
- Chống Command Injection (RCE): Tích hợp bộ khử khuẩn
SecuritySanitizer, lọc sạch tất cả các ký tự phân tách lệnh nguy hiểm (;,\n,\r,|,&,§) trong tên người chơi và số tiền nạp trước khi đưa vào console. - Bảo vệ thông tin thẻ cào (Card Masking): Toàn bộ số Serial và mã PIN thẻ cào được che tự động (
1234****78) trong file log và console, chống lộ thông tin nhạy cảm. - Chống tấn công từ chối dịch vụ (DoS Protection): Giới hạn kích thước payload HTTP tối đa 64KB, ngăn chặn triệt để nguy cơ tràn bộ nhớ do request dung lượng lớn.
- Sửa lỗi rò rỉ Thread: Cải tiến
tryConnectMySQL(), đảm bảo executor luôn được giải phóng trong khốifinally.
🧩 Chuẩn Hóa Phiên Bản & Khắc Phục Lỗi Modrinth
- Sửa triệt để lỗi Modrinth tự nhận diện sai khoảng phiên bản (ví dụ jar 1.18 bị Modrinth tự hiểu là tương thích cả 1.18.1 và 1.18.2): Đã chuyển toàn bộ 41 file
fabric.mod.jsonsang bộ so sánh chính xác (=1.18,=1.19, v.v.). - Tự động ánh xạ và liên kết chính xác phiên bản Fabric API tương ứng cho từng phiên bản Minecraft trên Modrinth.
⚡ Tối Ưu Vòng Đời Tắt Server (Graceful Teardown)
- Chuẩn hóa thứ tự dừng trong
onDisable(): Dừng nhận request HTTP → Hủy toàn bộ tác vụ nền (Schedulers / Pollers) → Đóng phiên làm việc → Đóng kết nối Database an toàn. - Loại bỏ hoàn toàn các lỗi
Connection is closedhoặc kẹt luồng khi tắt hoặc reload server.
📌 Tóm lại
PayBot 5.5.6 mang đến:
✅ Chống duplicate thanh toán 100% bằng cơ chế Idempotency
✅ Chính sách xử lý chuyển thiếu tiền an toàn và minh bạch
✅ Bảo vệ console tuyệt đối chống Command Injection
✅ Che giấu mã PIN và Serial thẻ cào trong log hệ thống
✅ Giới hạn dung lượng request HTTP chống DoS
✅ Khắc phục triệt để lỗi khoảng phiên bản trên Modrinth
✅ Tắt và đóng kết nối hoàn hảo, không rò rỉ tài nguyên
Đây là bản cập nhật chuẩn mực về an toàn dòng tiền, bảo mật tuyệt đối và độ tin cậy vận hành cho PayBot.
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:mLgal5cH:8SO0HNeX"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mLgal5cH:8SO0HNeX"
}

