Releases: lftkraft/wapeB
Releases · lftkraft/wapeB
Release list
v1.0.13-alpha.1
🚀 What's New in v1.0.13-alpha.1
🌐 1. Server Scope Separation (activeserver vs server)
activeserver(Enforcement Scope): Defines precisely where the punishment takes effect:global➔ Enforced network-wide across all proxy connected servers.survival➔ Enforced strictly on the designated server.server1,server2➔ Comma-separated list for multi-server targeted punishments.
server(Origin Server): Tracks and stores the exact originating server or source (e.g.lobby,server1,web).- Database Schema Auto-Migration: Automatically provisions
active_server VARCHAR(255)andserver VARCHAR(64)columns in SQLite and MySQL databases with zero configuration required.
⚡ 2. Velocity Proxy Integration & Companion Plugin
- Official release of the
wapeb-velocitycompanion bridge plugin. - Instant Cross-Server Sync: Transmits punishment and sync packets over the
wapeb:channelplugin messaging channel without waiting for database polling cycles. - Proxy-Level Enforcement: Automatically disconnects players at the proxy layer with formatted kick screens when network-wide or target server bans/kicks occur.
- Deduplication Engine: Built-in cache prevents duplicate chat and console broadcasts across servers.
☕ 3. Java Developer API (WapeBAPI) Overhaul
- New Overloaded Execution Methods:
banPlayer(target, reason, executor, duration, silent, ipBan, activeServer, server)mutePlayer(target, reason, executor, duration, silent, ipMute, activeServer, server)warnPlayer(target, reason, executor, silent, activeServer, server)kickPlayer(target, reason, executor, silent, activeServer, server)
PlayerPunishEvent:- Added
getActiveServer(),setActiveServer(String),getServer(), andsetServer(String).
- Added
- Query Methods:
- All query methods (
getPunishments,getActiveBan,getHistory,getStaffHistory, etc.) returnPunishmentinstances with populatedgetActiveServer()andgetServer().
- All query methods (
🌐 4. HTTP REST Web API Extensions
/api/punish/executeacceptsactive_server(target scope) andorigin_server(origin)./api/player/punishments,/api/player/checkban,/api/player/checkmute, and/api/punish/activeserializeactiveServerandserverin JSON responses.
💬 5. New Message Placeholders
%server%➔ Origin server name where punishment was issued.%activeserver%/%active_server%➔ Target enforcement scope.
📦 Installation & JitPack Dependency
Gradle (build.gradle)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
compileOnly 'com.github.lftkraft:wapeB:v1.0.13-alpha.1'
}Maven (pom.xml)
<dependencies>
<dependency>
<groupId>com.github.lftkraft</groupId>
<artifactId>wapeB</artifactId>
<version>v1.0.13-alpha.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
⚠️ Note: This is an Alpha Pre-release. Please test in a staging/test environment before deploying to production networks.
v1.0.12
🚀 What's New in v1.0.12
⏱️ 1. Ceiling Duration Rounding & Accurate Time Display
- Implemented ceiling second rounding (
(millis + 999) / 1000) for all remaining duration calculations. - Fixed the issue where a freshly issued 14-day ban would immediately display as
13d 23h 59m 59sinstead of the clean, expected14d.
💬 2. New Time Placeholders
- Added
%time%,%time_left%, and%expires_in%placeholders as aliases for%duration%across all kick screens, broadcast messages, and Discord webhooks.
🔍 3. Case-Insensitive Smart Player & Punishment Lookup
- All punishment lookup and management commands (
/unban,/unmute,/checkban,/checkmute,/history,/warnings,/unwarn,/ban,/mute) now perform case-insensitive player matching. - Offline players and direct database lookups match regardless of username capitalization.
🛡️ 4. Offline & Pre-emptive Punishment Fixes
- Removed restrictive
hasPlayedBefore()Bukkit checks that previously prevented unbanning or managing offline/pre-emptively banned accounts. - Improved offline UUID resolution fallback when handling direct IP and console punishments.