Links
Tags
Creators
Details
4.4.1
Compatibility
Changes
[4.4] — Final Bug-Fix Pass (All 32 Known Bugs Resolved)
Fixed
Low
-
L-01 · BungeeCord API deprecated in
CooldownManager(CooldownManager.java) Two action-bar sends usedplayer.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(…))— BungeeCord/Spigot legacy chat API that is deprecated on Paper 1.21 and may be removed in a future Paper version. Replaced with Paper-nativeplayer.sendActionBar(Component). BungeeCord imports (net.md_5.bungee.*) removed. AdventureLegacyComponentSerializerused for §-code → Component conversion to keep the existing colour format intact. -
L-02 ·
ChatColor.translateAlternateColorCodes()deprecated across 9 files (ColorUtil.java,LegendaryRecipe.java,Arena.java,DungeonManager.java,HologramManager.java,MessageManager.java,ScoreboardManager.java,AbilityManager.java,LobbyManager.java,ArenaManager.java)ChatColor.translateAlternateColorCodes('&', s)is a Spigot legacy API marked deprecated on Paper 1.21. All 9 call-sites were replaced withColorUtil.colorize(s).ColorUtilwas rewritten to useLegacyComponentSerializer.legacyAmpersand()internally while still returning a §-codedStringso all downstreamsendMessage/setDisplayNamecall-sites work unchanged. AColorUtil.strip()convenience method was also added using Adventure'sPlainTextComponentSerializer. -
L-03 ·
Player.setResourcePack()deprecated on Paper 1.21 (ConnectionListener.java) BothsetResourcePack(url)andsetResourcePack(url, hash)overloads are deprecated. The replacement is Adventure'sResourcePackRequest/ResourcePackInfoAPI, sent viaplayer.sendResourcePacks(request). ConnectionListener now builds aResourcePackRequestwith an optionalrequiredflag and configurable prompt text (see config keysresource-pack.requiredandresource-pack.prompt). -
L-04 · Loot tables hardcoded in
LootTableManager.java(LootTableManager.java,loot.yml) All 30 loot entries (11 common, 11 uncommon, 8 rare) were hardcoded — impossible to change without recompiling. Extracted to a new bundled resourceloot.yml.LootTableManagernow callsplugin.saveResource("loot.yml", false)on first run then loads viaYamlConfiguration. Areload()method is exposed so changes take effect with/perf reload(or equivalent) without restarting the server. Malformed entries log a warning and are skipped; the remaining valid entries load normally. -
L-05 · 4 dungeon types are invisible aliases (
DungeonManager.java)buildUndergroundDungeonandbuildAncientMineshaftwere one-line delegates tobuildCryptandbuildGoldMinewith no documentation. Server operators had no way to know they were paying the performance cost of spawning a dungeon that was identical to another one. Both methods are now annotated with deprecation Javadoc explaining the alias relationship, and a startup INFO message tells operators which config keys to set tofalseto remove the duplicates:dungeons.underground.enabled: falseanddungeons.mineshaft.enabled: false. -
L-08 ·
ConnectionListener— reconnect during active match loses game state (ConnectionListener.java,ArenaListener.java,GamePlayer.java) When a player disconnected and reconnected during a PLAYING or DEATHMATCH phase, thePlayerJoinEventhandler only sent the resource pack. The player spawned at world spawn (or last logout point), in the wrong game mode, with no scoreboard. Three changes:GamePlayergains alastLocationfield updated byArenaListener.onPlayerMove()on every block-level movement.ConnectionListener.onPlayerJoin()now callsMatchService.restoreSession()one tick after join to re-apply scoreboard, bossbar, and game mode.- If the rejoining player was alive, they are teleported to
gp.getLastLocation()so they return exactly where they were before the disconnect.
[4.4.1] — Language update
New Feature
Added 6 new language(de,es,ja,ko,pt,zh) total 10
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:VxdGAFxk:YFyntVXW"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:VxdGAFxk:YFyntVXW"
}

