All versions
alpha.2-1.0.13-autosync
Alpha
wapeB 1.0.13-alpha.23 weeks ago 2
Uploaded by
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
Compatible with wapeb-velocity 1.0.1 (or newer).
https://github.com/lftkraft/wapeb-velocity
+ Config auto-sync
🚀 What's New in v1.0.13-alpha.2
📸 1. Automatic Chat Snapshot System
- In-Memory Rolling Buffer: Automatically tracks the last 300 chat messages globally with nanosecond precision and player context.
- Incident Snapshot Creation: Automatically captures and persists relevant chat history upon punishment execution into formatted, human-readable JSON files (
plugins/wapeB/snapshots/<id>.json). - Human-Readable Formatting: Snapshots now include formatted dates (
created_date), per-message timestamps (time,date), and a directchat_logstring array for effortless staff inspection. - Flexible Retention Policy: Added hour and day retention cleanup (
retention: "1h","12h","7d","30d"), running asynchronously every 15 minutes with zero server tick impact. - Offline Delivery Queue: If backend servers issue punishments while empty, snapshots are safely queued in
pending_snapshots/and automatically flushed to Velocity upon player join.
🔗 2. Comprehensive Proof (Evidence) System
- New
/proofCommand: Added/proof <set|remove|reset|check> <id> [url]with full tab-completion. - Punishment Command Flag: All punishment commands (
/ban,/mute,/kick,/warn,/banip,/muteip) now accept-proof:<url>directly (e.g.,/mute Player 1h Toxicity -proof:https://imgur.com/...). - Clean Clickable Links: Proof URLs in chat (
/checkban,/checkmute,/proof check) are cleanly clickable with browser opening support without intrusive hover text. - Full Ecosystem Integration: Proof links seamlessly display across GUI menus, Discord Webhooks, Java API, and the REST Web API (
/api/punish/proof).
🔄 3. Automatic Config & Language File Synchronization (Auto-Sync)
- Seamless Upgrades: Updating the plugin jar now automatically scans and merges all newly introduced configuration sections and message keys into existing files on disk.
- Preserves Custom Settings: Existing customized messages, prefixes, and database credentials remain 100% untouched while new features are added seamlessly.
- Missing Key Fallback: Safe fallback to default language strings prevents any
Missing messageerrors.
🌐 4. Multi-Server & Velocity Cross-Server Synchronization
- Server Identity: Configurable
server-nameidentifier per Spigot instance (Lobby,szerver1,szerver2, etc.). - Broadcast Scoping: Added
broadcast.show-remote-punishmentsconfiguration to toggle whether punishments targeting external servers broadcast locally. - Real-Time Network Sync: Synchronized punishment broadcasts and chat snapshots across the network via the
wapeb:mainPlugin Messaging channel.
⚡ 5. Asynchronous Event & Threading Fixes (Paper/Purpur)
- Async Event Compatibility:
PlayerPunishEvent,PlayerUnpunishEvent,PlayerFreezeEvent,PlayerUnfreezeEvent, andLockdownToggleEventnow dynamically detect and report their calling thread context (super(!Bukkit.isPrimaryThread())). - Completely resolves
IllegalStateException: Event may only be triggered synchronouslywhen executing punishments on asynchronous database worker threads.
📜 6. Smart History Sorting & Pagination
- Guaranteed Newest-First Order: Resolved query order reversal so the most recent punishments (e.g., #17, #16) always appear on Page 1.
- Page Header Indicators: Added dynamic page tracking (
(%page%/%max_page%)) and%total%placeholders in/history.
🌍 7. Complete Localization & UTF-8 Refresh
- Updated all 11 built-in language configurations (
hu,en,de,fr,es,pt,ru,ro,da,sv,custom) with the latest Proof, Snapshot, and Console notification keys. - Enforced clean UTF-8 encoding across Hungarian and international message files.
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:NrSjC9qg:3zMl0pSN"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:NrSjC9qg:3zMl0pSN"
}

