From bb97adda77dd3267b35ffb4e46036d2f3ec67dc8 Mon Sep 17 00:00:00 2001 From: MCSamuel Date: Sun, 15 Mar 2026 11:01:21 -0700 Subject: [PATCH 1/2] Modernized MobArena PlayerTags, and fixed a couple bugs --- pom.xml | 2 +- .../bukkit/bridges/MobArenaBridge.java | 24 +- .../mobarena/MobArenaPlayerExtensions.java | 222 ++++++++++++++++++ .../mobarena/MobArenaPlayerProperties.java | 199 ---------------- 4 files changed, 233 insertions(+), 214 deletions(-) create mode 100644 src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java delete mode 100644 src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerProperties.java diff --git a/pom.xml b/pom.xml index 6ab627aa0..a6053a293 100644 --- a/pom.xml +++ b/pom.xml @@ -222,7 +222,7 @@ com.garbagemule MobArena - 0.97.1 + 0.109 system ${basedir}/lib/MobArena.jar diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MobArenaBridge.java b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MobArenaBridge.java index e10f7676a..7f823c07b 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MobArenaBridge.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/bridges/MobArenaBridge.java @@ -1,24 +1,20 @@ package com.denizenscript.depenizen.bukkit.bridges; import com.denizenscript.denizencore.DenizenCore; -import com.denizenscript.depenizen.bukkit.events.mobarena.MobArenaStartsScriptEvent; -import com.denizenscript.depenizen.bukkit.Bridge; -import com.garbagemule.MobArena.MobArena; -import com.garbagemule.MobArena.framework.Arena; -import com.denizenscript.depenizen.bukkit.commands.mobarena.MobArenaCommand; -import com.denizenscript.depenizen.bukkit.events.mobarena.MobArenaEndsScriptEvent; -import com.denizenscript.depenizen.bukkit.properties.mobarena.MobArenaPlayerProperties; -import com.denizenscript.depenizen.bukkit.objects.mobarena.MobArenaArenaTag; -import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizencore.events.ScriptEvent; import com.denizenscript.denizencore.objects.ObjectFetcher; -import com.denizenscript.denizencore.tags.TagRunnable; -import com.denizenscript.denizencore.objects.properties.PropertyParser; -import com.denizenscript.denizencore.tags.ReplaceableTagEvent; import com.denizenscript.denizencore.objects.core.ListTag; import com.denizenscript.denizencore.tags.Attribute; -import com.denizenscript.depenizen.bukkit.events.mobarena.MobArenaWaveChangesScriptEvent; +import com.denizenscript.denizencore.tags.ReplaceableTagEvent; import com.denizenscript.denizencore.tags.TagManager; +import com.denizenscript.denizencore.tags.TagRunnable; +import com.denizenscript.depenizen.bukkit.Bridge; +import com.denizenscript.depenizen.bukkit.commands.mobarena.*; +import com.denizenscript.depenizen.bukkit.events.mobarena.*; +import com.denizenscript.depenizen.bukkit.objects.mobarena.*; +import com.denizenscript.depenizen.bukkit.properties.mobarena.*; +import com.garbagemule.MobArena.MobArena; +import com.garbagemule.MobArena.framework.Arena; public class MobArenaBridge extends Bridge { @@ -38,7 +34,7 @@ public void run(ReplaceableTagEvent event) { ScriptEvent.registerScriptEvent(MobArenaStartsScriptEvent.class); ScriptEvent.registerScriptEvent(MobArenaEndsScriptEvent.class); ScriptEvent.registerScriptEvent(MobArenaWaveChangesScriptEvent.class); - PropertyParser.registerProperty(MobArenaPlayerProperties.class, PlayerTag.class); + MobArenaPlayerExtensions.register(); } public void tagEvent(ReplaceableTagEvent event) { diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java new file mode 100644 index 000000000..1bb3861d7 --- /dev/null +++ b/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java @@ -0,0 +1,222 @@ +package com.denizenscript.depenizen.bukkit.properties.mobarena; + +import com.denizenscript.denizen.objects.PlayerTag; +import com.denizenscript.denizencore.objects.ObjectTag; +import com.denizenscript.denizencore.objects.core.ElementTag; +import com.denizenscript.denizencore.objects.core.MapTag; +import com.denizenscript.denizencore.utilities.debugging.SlowWarning; +import com.denizenscript.depenizen.bukkit.bridges.MobArenaBridge; +import com.denizenscript.depenizen.bukkit.objects.mobarena.MobArenaArenaTag; +import com.garbagemule.MobArena.ArenaPlayer; +import com.garbagemule.MobArena.ArenaPlayerStatistics; +import com.garbagemule.MobArena.MobArena; +import com.garbagemule.MobArena.framework.Arena; + +public class MobArenaPlayerExtensions { + + public static SlowWarning mobArenaPlayerTags = new SlowWarning("mobArenaPlayerTags", "Tags in the format 'PlayerTag.mobarena.x' have been deprecated: check the meta site for updated versions."); + + public static Arena getArena(PlayerTag player) { + return ((MobArena) MobArenaBridge.instance.plugin).getArenaMaster().getArenaWithPlayer(player.getPlayerEntity()); + } + + public static ArenaPlayer getArenaPlayer(PlayerTag player) { + return getArena(player).getArenaPlayer(player.getPlayerEntity()); + } + + public static void register() { + + // <--[tag] + // @attribute + // @returns ElementTag(Boolean) + // @plugin Depenizen, MobArena + // @description + // Returns whether the player is in a mobarena. + // --> + PlayerTag.tagProcessor.registerTag(ElementTag.class, "in_mobarena", (attribute, player) -> { + return new ElementTag(getArena(player) != null); + }); + + // <--[tag] + // @attribute + // @returns MobArenaArenaTag + // @plugin Depenizen, MobArena + // @description + // Returns the arena the player is in. + // NOTE: Requires the player to be in an arena. + // --> + PlayerTag.tagProcessor.registerTag(MobArenaArenaTag.class, "current_mobarena", (attribute, player) -> { + return getArena(player) != null ? new MobArenaArenaTag(getArena(player)) : null; + }); + + // <--[tag] + // @attribute + // @returns ElementTag + // @plugin Depenizen, MobArena + // @description + // Returns the name of the class the player is using. + // NOTE: Requires the player to be in an arena. + // --> + PlayerTag.tagProcessor.registerTag(ElementTag.class, "mobarena_class", (attribute, player) -> { + return getArena(player) != null ? new ElementTag(getArenaPlayer(player).getArenaClass().getConfigName(), true) : null; + }); + + // <--[tag] + // @attribute + // @returns MapTag + // @plugin Depenizen, MobArena + // @description + // Returns the stats of a player in their current arena. + // Valid keys are 'KILLS', 'DAMAGE_DONE', 'DAMAGE_TAKEN', 'LAST_WAVE', 'TIMES_SWUNG', and 'TIMES_HIT'. + // --> + PlayerTag.tagProcessor.registerTag(MapTag.class, "mobarena_stats", (attribute, player) -> { + if (getArena(player) == null) { + attribute.echoError("This player is not in an arena."); + return null; + } + ArenaPlayerStatistics stats = getArenaPlayer(player).getStats(); + MapTag values = new MapTag(); + values.putObject("kills", new ElementTag(stats.getInt("kills"))); + values.putObject("damage_done", new ElementTag(stats.getInt("dmgDone"))); + values.putObject("damage_taken", new ElementTag(stats.getInt("dmgTaken"))); + values.putObject("last_wave", new ElementTag(stats.getInt("lastWave"))); + values.putObject("times_swung", new ElementTag(stats.getInt("swings"))); + values.putObject("times_hit", new ElementTag(stats.getInt("hits"))); + return values; + }); + + PlayerTag.tagProcessor.registerTag(ObjectTag.class, "mobarena", (attribute, player) -> { + mobArenaPlayerTags.warn(attribute.context); + + // <--[tag] + // @attribute + // @returns ElementTag(Boolean) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.in_mobarena' + // @description + // Deprecated in favor of <@link tag PlayerTag.in_mobarena>. + // --> + if (attribute.startsWith("in_arena", 2)) { + attribute.fulfill(1); + return new ElementTag(getArena(player) != null); + } + if (getArena(player) != null) { + + // <--[tag] + // @attribute + // @returns MobArenaArenaTag + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.current_mobarena' + // @description + // Deprecated in favor of <@link tag PlayerTag.current_mobarena>. + // --> + if (attribute.startsWith("current_arena", 2)) { + attribute.fulfill(1); + return new MobArenaArenaTag(getArena(player)); + } + + // <--[tag] + // @attribute + // @returns ElementTag + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_class' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_class>. + // --> + else if (attribute.startsWith("class", 2)) { + attribute.fulfill(1); + return new ElementTag(getArenaPlayer(player).getArenaClass().getConfigName(), true); + } + } + + if (attribute.startsWith("stats", 2)) { + attribute.fulfill(1); + ArenaPlayerStatistics stats = getArenaPlayer(player).getStats(); + if (stats == null) { + return null; + } + + // <--[tag] + // @attribute ].kills> + // @returns ElementTag(Number) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_stats.get[kills]' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'KILLS' key. + // --> + if (attribute.startsWith("kills", 2)) { + attribute.fulfill(1); + return new ElementTag(stats.getInt("kills")); + } + + // <--[tag] + // @attribute ].damage_done> + // @returns ElementTag(Number) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_stats.get[damage_done]' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'DAMAGE_DONE' key. + // @description + // Returns the amount of damage the player has dealt in the arena. + // --> + else if (attribute.startsWith("damage_done", 2)) { + attribute.fulfill(1); + return new ElementTag(stats.getInt("dmgDone")); + } + + // <--[tag] + // @attribute ].damage_taken> + // @returns ElementTag(Number) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_stats.get[damage_taken]' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'DAMAGE_TAKEN' key. + // --> + else if (attribute.startsWith("damage_taken", 2)) { + attribute.fulfill(1); + return new ElementTag(stats.getInt("dmgTaken")); + } + + // <--[tag] + // @attribute ].last_wave> + // @returns ElementTag(Number) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_stats.get[last_wave]' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'LAST_WAVE' key. + // --> + else if (attribute.startsWith("last_wave", 2)) { + attribute.fulfill(1); + return new ElementTag(stats.getInt("lastWave")); + } + + // <--[tag] + // @attribute ].times_swung> + // @returns ElementTag(Number) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_stats.get[times_swung]' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'TIMES_SWUNG' key. + // --> + else if (attribute.startsWith("times_swung", 2)) { + attribute.fulfill(1); + return new ElementTag(stats.getInt("swings")); + } + + // <--[tag] + // @attribute ].times_hit> + // @returns ElementTag(Number) + // @plugin Depenizen, MobArena + // @deprecated Use 'PlayerTag.mobarena_stats.get[times_hit]' + // @description + // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'TIMES_HIT' key. + // --> + else if (attribute.startsWith("times_hit", 2)) { + attribute.fulfill(1); + return new ElementTag(stats.getInt("hits")); + } + } + return null; + }); + } +} diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerProperties.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerProperties.java deleted file mode 100644 index e34234966..000000000 --- a/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerProperties.java +++ /dev/null @@ -1,199 +0,0 @@ -package com.denizenscript.depenizen.bukkit.properties.mobarena; - -import com.denizenscript.depenizen.bukkit.bridges.MobArenaBridge; -import com.garbagemule.MobArena.ArenaPlayer; -import com.garbagemule.MobArena.ArenaPlayerStatistics; -import com.garbagemule.MobArena.MobArena; -import com.garbagemule.MobArena.framework.Arena; -import com.denizenscript.denizencore.objects.properties.Property; -import com.denizenscript.denizencore.objects.Mechanism; -import com.denizenscript.depenizen.bukkit.objects.mobarena.MobArenaArenaTag; -import com.denizenscript.denizen.objects.PlayerTag; -import com.denizenscript.denizencore.objects.core.ElementTag; -import com.denizenscript.denizencore.objects.ObjectTag; -import com.denizenscript.denizencore.tags.Attribute; - -public class MobArenaPlayerProperties implements Property { - - @Override - public String getPropertyString() { - return null; - } - - @Override - public String getPropertyId() { - return "MobArenaPlayer"; - } - - @Override - public void adjust(Mechanism mechanism) { - // None - } - - public static boolean describes(ObjectTag object) { - return object instanceof PlayerTag; - } - - public static MobArenaPlayerProperties getFrom(ObjectTag object) { - if (!describes(object)) { - return null; - } - else { - return new MobArenaPlayerProperties((PlayerTag) object); - } - } - - public static final String[] handledTags = new String[] { - "mobarena" - }; - - public static final String[] handledMechs = new String[] { - }; // None - - public MobArenaPlayerProperties(PlayerTag player) { - this.player = player; - this.arena = ((MobArena) MobArenaBridge.instance.plugin).getArenaMaster().getArenaWithPlayer(player.getPlayerEntity()); - } - - PlayerTag player; - Arena arena; - - @Override - public ObjectTag getObjectAttribute(Attribute attribute) { - if (attribute == null) { - return null; - } - - if (attribute.startsWith("mobarena")) { - - attribute = attribute.fulfill(1); - - // <--[tag] - // @attribute - // @returns ElementTag(Boolean) - // @plugin Depenizen, MobArena - // @description - // Returns whether the player is in an arena. - // --> - if (attribute.startsWith("in_arena")) { - return new ElementTag(arena != null) - .getObjectAttribute(attribute.fulfill(1)); - } - - else if (arena != null) { - - // <--[tag] - // @attribute - // @returns MobArenaArenaTag - // @plugin Depenizen, MobArena - // @description - // Returns the arena the player is in. - // NOTE: requires the player to be in an arena. - // --> - if (attribute.startsWith("current_arena")) { - return new MobArenaArenaTag(arena).getObjectAttribute(attribute.fulfill(1)); - } - - // <--[tag] - // @attribute - // @returns ElementTag - // @plugin Depenizen, MobArena - // @description - // Returns the name of the class the player is using. - // NOTE: requires the player to be in an arena. - // --> - else if (attribute.startsWith("class")) { - return new ElementTag(new ArenaPlayer(player.getPlayerEntity(), arena, - ((MobArena) MobArenaBridge.instance.plugin)).getStats().getClassName()) - .getObjectAttribute(attribute.fulfill(1)); - } - - return null; - } - - else if (attribute.startsWith("stats") && attribute.hasParam()) { - MobArenaArenaTag a = attribute.paramAsType(MobArenaArenaTag.class); - if (a == null) { - return null; - } - ArenaPlayerStatistics stats = new ArenaPlayer(player.getPlayerEntity(), - a.getArena(), ((MobArena) MobArenaBridge.instance.plugin)).getStats(); - - attribute = attribute.fulfill(1); - if (stats == null) { - return null; - } - - // <--[tag] - // @attribute ].kills> - // @returns ElementTag(Number) - // @plugin Depenizen, MobArena - // @description - // Returns the number of kills the player has in the arena. - // --> - if (attribute.startsWith("kills")) { - return new ElementTag(stats.getInt("kills")).getObjectAttribute(attribute.fulfill(1)); - } - - // <--[tag] - // @attribute ].damage_done> - // @returns ElementTag(Number) - // @plugin Depenizen, MobArena - // @description - // Returns the amount of damage the player has dealt in the arena. - // --> - else if (attribute.startsWith("damage_done")) { - return new ElementTag(stats.getInt("dmgDone")).getObjectAttribute(attribute.fulfill(1)); - } - - // <--[tag] - // @attribute ].damage_taken> - // @returns ElementTag(Number) - // @plugin Depenizen, MobArena - // @description - // Returns the amount of damage the player has taken in the arena. - // --> - else if (attribute.startsWith("damage_taken")) { - return new ElementTag(stats.getInt("dmgTaken")).getObjectAttribute(attribute.fulfill(1)); - } - - // <--[tag] - // @attribute ].last_wave> - // @returns ElementTag(Number) - // @plugin Depenizen, MobArena - // @description - // Returns the wave the player reached in their last match in the arena. - // --> - else if (attribute.startsWith("last_wave")) { - return new ElementTag(stats.getInt("lastWave")).getObjectAttribute(attribute.fulfill(1)); - } - - // <--[tag] - // @attribute ].times_swung> - // @returns ElementTag(Number) - // @plugin Depenizen, MobArena - // @description - // Returns the number of times the player has swung their weapon in the arena. - // --> - else if (attribute.startsWith("times_swung")) { - return new ElementTag(stats.getInt("swings")).getObjectAttribute(attribute.fulfill(1)); - } - - // <--[tag] - // @attribute ].times_hit> - // @returns ElementTag(Number) - // @plugin Depenizen, MobArena - // @description - // Returns the number of times the player has hit an enemy in the arena. - // --> - else if (attribute.startsWith("times_hit")) { - return new ElementTag(stats.getInt("hits")).getObjectAttribute(attribute.fulfill(1)); - } - - return null; - } - } - - return null; - } -} From 1bde7044fa3429f2d7faa74b94ee944f336f7e3e Mon Sep 17 00:00:00 2001 From: MCSamuel Date: Mon, 16 Mar 2026 15:24:05 -0700 Subject: [PATCH 2/2] aya updates (1) --- .../mobarena/MobArenaPlayerExtensions.java | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java b/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java index 1bb3861d7..245ff46d0 100644 --- a/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java +++ b/src/main/java/com/denizenscript/depenizen/bukkit/properties/mobarena/MobArenaPlayerExtensions.java @@ -14,14 +14,14 @@ public class MobArenaPlayerExtensions { - public static SlowWarning mobArenaPlayerTags = new SlowWarning("mobArenaPlayerTags", "Tags in the format 'PlayerTag.mobarena.x' have been deprecated: check the meta site for updated versions."); + public static SlowWarning mobArenaPlayerTags = new SlowWarning("mobArenaPlayerTags", "Tags in the 'PlayerTag.mobarena.x' format have been deprecated: check the meta docs for more information."); - public static Arena getArena(PlayerTag player) { + public static Arena getCurrentArena(PlayerTag player) { return ((MobArena) MobArenaBridge.instance.plugin).getArenaMaster().getArenaWithPlayer(player.getPlayerEntity()); } - public static ArenaPlayer getArenaPlayer(PlayerTag player) { - return getArena(player).getArenaPlayer(player.getPlayerEntity()); + public static ArenaPlayer getArenaPlayer(PlayerTag player, Arena arena) { + return arena.getArenaPlayer(player.getPlayerEntity()); } public static void register() { @@ -34,7 +34,7 @@ public static void register() { // Returns whether the player is in a mobarena. // --> PlayerTag.tagProcessor.registerTag(ElementTag.class, "in_mobarena", (attribute, player) -> { - return new ElementTag(getArena(player) != null); + return new ElementTag(getCurrentArena(player) != null); }); // <--[tag] @@ -46,7 +46,8 @@ public static void register() { // NOTE: Requires the player to be in an arena. // --> PlayerTag.tagProcessor.registerTag(MobArenaArenaTag.class, "current_mobarena", (attribute, player) -> { - return getArena(player) != null ? new MobArenaArenaTag(getArena(player)) : null; + Arena arena = getCurrentArena(player); + return arena != null ? new MobArenaArenaTag(arena) : null; }); // <--[tag] @@ -58,7 +59,8 @@ public static void register() { // NOTE: Requires the player to be in an arena. // --> PlayerTag.tagProcessor.registerTag(ElementTag.class, "mobarena_class", (attribute, player) -> { - return getArena(player) != null ? new ElementTag(getArenaPlayer(player).getArenaClass().getConfigName(), true) : null; + Arena arena = getCurrentArena(player); + return arena != null ? new ElementTag(getArenaPlayer(player, arena).getArenaClass().getConfigName(), true) : null; }); // <--[tag] @@ -66,8 +68,8 @@ public static void register() { // @returns MapTag // @plugin Depenizen, MobArena // @description - // Returns the stats of a player in their current arena. - // Valid keys are 'KILLS', 'DAMAGE_DONE', 'DAMAGE_TAKEN', 'LAST_WAVE', 'TIMES_SWUNG', and 'TIMES_HIT'. + // Returns the stats of a player in the specified arena. + // Includes keys 'KILLS', 'DAMAGE_DONE', 'DAMAGE_TAKEN', 'LAST_WAVE', 'TIMES_SWUNG', and 'TIMES_HIT' with ElementTag(Number) values. // --> PlayerTag.tagProcessor.registerTag(MapTag.class, "mobarena_stats", (attribute, player) -> { if (getArena(player) == null) { @@ -92,46 +94,47 @@ public static void register() { // @attribute // @returns ElementTag(Boolean) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.in_mobarena' + // @deprecated use 'PlayerTag.in_mobarena' // @description // Deprecated in favor of <@link tag PlayerTag.in_mobarena>. // --> if (attribute.startsWith("in_arena", 2)) { attribute.fulfill(1); - return new ElementTag(getArena(player) != null); + return new ElementTag(getCurrentArena(player) != null); } - if (getArena(player) != null) { + Arena arena = getCurrentArena(player); + if (arena != null) { // <--[tag] // @attribute // @returns MobArenaArenaTag // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.current_mobarena' + // @deprecated use 'PlayerTag.current_mobarena' // @description // Deprecated in favor of <@link tag PlayerTag.current_mobarena>. // --> if (attribute.startsWith("current_arena", 2)) { attribute.fulfill(1); - return new MobArenaArenaTag(getArena(player)); + return new MobArenaArenaTag(arena); } // <--[tag] // @attribute // @returns ElementTag // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_class' + // @deprecated use 'PlayerTag.mobarena_class' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_class>. // --> else if (attribute.startsWith("class", 2)) { attribute.fulfill(1); - return new ElementTag(getArenaPlayer(player).getArenaClass().getConfigName(), true); + return new ElementTag(getArenaPlayer(player, arena).getArenaClass().getConfigName(), true); } } if (attribute.startsWith("stats", 2)) { attribute.fulfill(1); - ArenaPlayerStatistics stats = getArenaPlayer(player).getStats(); + ArenaPlayerStatistics stats = getArenaPlayer(player, arena).getStats(); if (stats == null) { return null; } @@ -140,7 +143,7 @@ else if (attribute.startsWith("class", 2)) { // @attribute ].kills> // @returns ElementTag(Number) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_stats.get[kills]' + // @deprecated use 'PlayerTag.mobarena_stats.get[kills]' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'KILLS' key. // --> @@ -153,7 +156,7 @@ else if (attribute.startsWith("class", 2)) { // @attribute ].damage_done> // @returns ElementTag(Number) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_stats.get[damage_done]' + // @deprecated use 'PlayerTag.mobarena_stats.get[damage_done]' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'DAMAGE_DONE' key. // @description @@ -168,7 +171,7 @@ else if (attribute.startsWith("damage_done", 2)) { // @attribute ].damage_taken> // @returns ElementTag(Number) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_stats.get[damage_taken]' + // @deprecated use 'PlayerTag.mobarena_stats.get[damage_taken]' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'DAMAGE_TAKEN' key. // --> @@ -181,7 +184,7 @@ else if (attribute.startsWith("damage_taken", 2)) { // @attribute ].last_wave> // @returns ElementTag(Number) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_stats.get[last_wave]' + // @deprecated use 'PlayerTag.mobarena_stats.get[last_wave]' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'LAST_WAVE' key. // --> @@ -194,7 +197,7 @@ else if (attribute.startsWith("last_wave", 2)) { // @attribute ].times_swung> // @returns ElementTag(Number) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_stats.get[times_swung]' + // @deprecated use 'PlayerTag.mobarena_stats.get[times_swung]' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'TIMES_SWUNG' key. // --> @@ -207,7 +210,7 @@ else if (attribute.startsWith("times_swung", 2)) { // @attribute ].times_hit> // @returns ElementTag(Number) // @plugin Depenizen, MobArena - // @deprecated Use 'PlayerTag.mobarena_stats.get[times_hit]' + // @deprecated use 'PlayerTag.mobarena_stats.get[times_hit]' // @description // Deprecated in favor of <@link tag PlayerTag.mobarena_stats> with the 'TIMES_HIT' key. // -->