v3.3.7
• Quest cache now validates targets on startup — purges old entries with fantasy/invalid names
• Recycled quests are filtered before being served to players
v3.3.8
• Added runtime safety net validation in QuestManager and QuestChainManager before any quest is given to a player
v3.3.9
• Objective-type-aware validation — HARVEST_CROP only allows real crops, FISH only fishable items, SMELT only smeltable outputs, etc.
v3.4.0
• AI prompts now include exact whitelists of valid targets per objective type (27 mobs, 35 blocks, 15 crops, etc.)
• Automatic retry — if a quest is rejected by the validator, retries generation once before showing an error
v3.4.1
• Fixed quest cache never populating — cacheQuest/cacheChain were never called anywhere
• Now wired into quest and chain generation flow — cache builds over time, reducing AI API calls
v3.3.6
v3.3.5
- Fixed ConcurrentModificationException when tracking mob kills and block breaks
- Quest targets are now validated against real Minecraft names — no more fantasy/invented targets
- Quests with invalid targets are automatically rejected and replaced with a valid fallback
- AI prompts strengthened to prevent hallucinated item/mob names
- Grey hint line in Quest Log now always shows the correct Minecraft item/mob to interact with
Reputation System Wired Into Gameplay
- +10 rep on quest completion (configurable via reputation.per-quest)
- +50 rep on quest chain completion (configurable via reputation.per-chain)
- -5 rep on quest abandon (configurable via reputation.per-abandon)
- -3 rep on quest expiry
- Chat message shows rep gained/lost and current tier after each event
- Tiers: Outlaw → Wanderer → Adventurer → Champion → Legend → Mythic
Quest Log Objective Hints
- Grey italic hint line below each objective explaining exactly how to complete it
- Examples: "Mine Stone blocks with a pickaxe", "Smelt Iron Ingot in a furnace or blast furnace", "Catch Cod using a fishing rod"
- Covers all 16 objective types with context-aware descriptions
Quests are no longer limited to just killing mobs. The AI now generates a huge variety of objectives to keep gameplay fresh and exciting.
•Harvesting crops
•Fishing
•Crafting & Smelting
•Brewing potions
•Enchanting items
•Trading with villagers
•Taming & Breeding animals
•Exploring new biomes
All quest types are fully tracked and reward players on completion.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Difficulty Transparency
•Run /ag difficulty to see your personal tier and score breakdown
•View your quest success rate, kill count, playtime, and reward multiplier
•The reward scaling system is no longer hidden — full transparency for all players
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Dashboard Improvements
•Each player now shows their difficulty tier with a color-coded badge
•Playtime is displayed next to every player name
•New tier filter dropdown — quickly find Novice, Veteran, Champion, or Legend players
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Quality of Life
•Playtime is now tracked automatically every 5 minutes
•Bounty refunds now work even if the poster is offline when the bounty expires
•Tab-complete improved for all commands — players and admins
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Bug Fix
- CRITICAL: Bounty reward was never paid to the killer — The plugin had no PlayerDeathEvent listener, so BountyManager.onPlayerKill() was never called when a player died. The reward logic existed but was completely unreachable.
- Added a dedicated onPlayerDeath handler in PlayerListener that fires when a player is killed by another player
- The handler calls BountyManager.onPlayerKill(killer, victim) which finds all active bounties on the victim and deposits the reward to the killer via Vault
- Also added kill-player quest objective tracking in the same handler (bonus fix)
- Fixed onEntityDeath to skip player entities (now handled separately) to prevent double-processing
Upgrade Instructions
Replace your old JAR with Aethelgard-3.2.3.jar and restart your server. No config changes needed.
AETHELGARD v3.2.0 — LINK-GENERATOR DASHBOARD
No more open ports. No firewall rules. No IP setup.
Inspired by LuckPerms Editor, the web dashboard now works like this:
1. Run /ag dashboard in-game
2. Plugin uploads your server snapshot to mrsalt.xyz
3. A unique link appears in chat (e.g. https://mrsalt.xyz/dashboard/abc-123 )
4. Open it in any browser — full dashboard loads instantly
5. Plugin syncs every 15 seconds — changes apply automatically
DASHBOARD FEATURES
• Live Stats — TPS, online players, active quests, blight/boss status
• Player Management — view all players, send messages, adjust reputation
• Event Controls — start/end blight, spawn world boss, force world scan
• Guild Overview — all guilds with member counts and leaders
• Config Editor — edit all plugin settings in the browser, no file editing
SECURE BY DESIGN
• Session token is SHA-256 hashed — no plaintext secrets stored
• Sessions expire after 24 hours automatically
• Works behind any reverse proxy, NAT, or shared hosting
• No ports to open, no IP to expose
IN-GAME ADMIN DASHBOARD
New /ag admin command provides backup access to all admin functions
- Full system status monitoring
- Player management & reputation controls
- Config editor, event controls, quest/guild/bounty managers
- Perfect fallback when web dashboard is unreachable
INPUT VALIDATION HARDENING
All numeric inputs now protected from abuse exploits:
- Bounty amounts: Positive values only, max $1B, no NaN/Infinity
- Reputation scores: Clamped to -10,000 to 100,000 range
- Quest objectives: Validated 1-1,000 range
- Integer overflow attacks detected and blocked
Critical Security Fix: GUI Item Pickup Abuse Prevention
What's Fixed
- Critical Vulnerability: Fixed GUI item pickup exploit where players could pick up barrier blocks and paper items from the bounty board
- BountyBoardGUI: New dedicated listener prevents all item interactions in the bounty board inventory
- Event Protection: All GUI classes now properly cancel InventoryClickEvent to prevent item pickup
Security Improvements
- QuestLogGUI: All quest items, buttons, and info items protected
- AdminPanelGUI: All toggle buttons, stats, and action items protected
- MythicMobsSelectorGUI: All mob selection items protected
- BountyBoardGUI: NEW - Bounty board items protected
Recommendation
Update immediately - This release addresses a critical abuse vulnerability that could allow players to exploit GUI items.
This is a drop-in replacement for v3.0.1. No config changes or database migration required.
What's fixed:
Upgrade: Replace your old JAR with Aethelgard-3.0.2.jar and restart your server.
- Tab-completion is now permission-aware. Default players no longer see admin commands in their tab-complete suggestions. Each player only sees the commands they are allowed to use.
- /quest — prophecy and season are now suggested. /quest abandon now suggests your active quest slot numbers.
- /guild — confirm is now suggested when leaving as the last member. Guild names are suggested for join, info, and disband. Guild member names are suggested for kick and promote. The admin-only disband subcommand is now visible to admins in tab-complete.
- /bounty — claim was missing from tab-complete and has been added. /bounty place and /bounty cancel now support offline players — you can target players who are not currently online.
- /stats — New standalone command added as an alias for /ag status. Requires aethelgard.admin.
