File Details
wavedefense-0.2.53.1.jar
- R
- Jun 1, 2026
- 1.01 MB
- 0
- 1.20.1
- Forge
File Name
wavedefense-0.2.53.1.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
[0.2.53.1] - 2026-06-01 (hotfix)
Fixed — Monitor alert spam on dev/test startup
WaveDefenseMonitor was broadcasting [ALERT WARNING] Current TPS: 13.9 (threshold: 18.0) and [ALERT CRITICAL] Current TPS: 13.9 (threshold: 15.0) — Server performance severely degraded! to every operator on every server boot, including dev workspaces where the first 30–60 seconds of low TPS is normal load-time behaviour.
Three changes:
- Broadcast is now opt-in. New config
debug.monitorBroadcastAlerts(defaultfalse). Alerts are still written to the server log; only the chat broadcast is suppressed. Enable for live diagnostics on a production server. - Startup grace period. All alert evaluation is suppressed for the first 60 seconds of monitor uptime so world-load lag never triggers warnings.
- Thresholds relaxed.
TPS_WARNING18 → 12,TPS_CRITICAL15 → 8 — values that only fire under genuine sustained server-wide problems.
Also fixed the duplicated [ALERT WARNING] in the chat message — the translation key wavedefense.auto.alert_s_s_942c0f5f had a literal [ALERT %s] prefix, but the first substitution already carried the severity label. Reduced to §c[%s] §f%s.
[0.2.53] - 2026-06-01
Added — PvP UX gaps, Tacz compat, scoreboard, and shop quantity fix
Part A — Shop item quantity fix ShopItemEditorScreen previously had no UI for ItemStack.getCount() — every shop item was forced to count 1. Each of the 4 item slots now has an ×N count EditBox (1–64); values persist via a pendingCounts[] buffer across rebuildWidgets() and are applied to each non-empty stack in save().
Part B — Five PvP UX improvements
-
B1 — DM spawn modes (
Location.DmSpawnMode:TEAM_SPAWN/RANDOM_SPAWN/SMART_SPAWN). Admin cycles modes via a new button in the Deathmatch editor section. Smart spawn picks the candidate with the largest min-distance to any living enemy (target ≥10 blocks). New helperPvpRoundManager.pickDmSpawn()is shared byPlayerRespawnHandler(respawn) andPvpRoundManager.startActiveRound()(initial DM spawn) so behaviour is identical in both paths. -
B2 — DM kill leaderboard HUD: top-right panel in DM mode shows the player's own kill count, the current leader (name + kills), and the kill target. Uses the existing
ClientPvpStateManager.getPlayers()data — no extra network traffic. -
B3 — CtP capture speed multiplier: when enabled (
Location.ctpSpeedMultiplier), every additional teammate standing on a point increases capture rate proportionally (progress += sign × min(teamCount, 4)). Capped at 4× to keep mechanic meaningful in large lobbies. Off by default for backward-compat. Editor toggle visible only for CtP. -
B4 — CtP "capture all points" win condition (
Location.ctpCaptureAllWin): when enabled, owning every capture point simultaneously instantly ends the round with the owning team as winner. Layered on top of the existing first-to-score / timer conditions. New broadcast messagewavedefense.msg.ctp_all_points_captured. -
B5 — Post-match scoreboard: new
OpenPostMatchScoreboardPacket(S→C) sent fromPvpRoundManager.endPvpMatch()to every player in the location, carrying mode label, winning team, per-player stats (kills/deaths/assists/points) and per-team round wins. NewPostMatchScoreboardScreenrenders the table sorted by points→kills→deaths with the winning team's row highlighted. 10 new lang keys across all 8 lang files.
Part C — Optional Timeless and Classics Zero (Tacz) integration
-
compat/TaczCompat.java— pure-reflection compatibility layer mirroring the provenMineAndSlashCompatpattern. Zero compile-time dependency on Tacz; every public method is a no-op when Tacz is absent. -
Gun discovery — reflects into one of several known Tacz class paths (
com.tacz.guns.resource.CommonAssetManager,com.tacz.guns.resource.manager.CommonGunPackLoader, etc.) to find theMap<ResourceLocation, GunData>of currently loaded guns. Each gun's category (pistol/rifle/shotgun/SMG/sniper/RPG/MG) is read viagetType()/getCategory()reflection with synonym normalisation. Fallback: when Tacz internals cannot be read, enumerates every item in thetacznamespace viaForgeRegistries.ITEMSas categoryotherand logs a single warning. -
Shop item picker (
ItemSelectionScreen) — when Tacz is loaded, a second filter row appears below the standard 6 categories:Tacz All / Pistols / Rifles / Shotguns / SMGs / Snipers / RPGs / MGs / Other. Selecting a Tacz tab replaces the regular item list with stacks built viaTaczCompat.buildGunStack(gunId)(setsGunIdNBT on thetacz:modern_kinetic_guncontainer item). Clicking the active tab again clears the Tacz filter. -
Bulk-add (
TaczBulkAddScreen+ new "🔫 Tacz" button inShopEditorScreenglobal view) — admin enters a default price per category and clicksAdd Pistols (12)→ 12 newShopItementries are appended to the location's shop list, each containing one gun stack with the configured price and categoryWEAPON. After bulk-add, the packet is sent and the editor returns to the parent screen showing the new rows. -
mods.toml — Tacz declared as optional dependency (
mandatory=false,versionRange="[1.0.0,)").
New files
src/main/java/com/wavedefense/compat/TaczCompat.javasrc/main/java/com/wavedefense/gui/PostMatchScoreboardScreen.javasrc/main/java/com/wavedefense/gui/TaczBulkAddScreen.javasrc/main/java/com/wavedefense/network/packets/OpenPostMatchScoreboardPacket.java
New translation keys (+46 per language × 8 langs = 368 keys total)
Categories: shop item count (1), DM spawn modes (4), DM HUD (3), CtP speed/capture-all (5), scoreboard (10), Tacz tabs + bulk UI (16), plus messages for capture-all and timeout draw.