-
-
Notifications
You must be signed in to change notification settings - Fork 27
Description
[10:28:35] [Server thread/INFO]: Kainz0 issued server command: /arena leave
[10:28:35] [Server thread/WARN]: [BattleArena] An error occurred calling event action org.battleplugins.arena.event.action.types.RestoreAction@51287993
java.lang.IllegalArgumentException: Health value (2936.0) must be between 0 and 2910.0. (attribute base value: 2910.0, player: Kainz0)
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:482) ~[guava-32.1.2-jre.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.entity.CraftLivingEntity.setHealth(CraftLivingEntity.java:107) ~[paper-1.20.4.jar:git-Paper-499]
at org.battleplugins.arena.competition.PlayerStorage.restoreHealth(PlayerStorage.java:215) ~[BattleArena.jar:?]
at org.battleplugins.arena.competition.PlayerStorage.restoreAll(PlayerStorage.java:185) ~[BattleArena.jar:?]
at org.battleplugins.arena.competition.PlayerStorage$Type.restore(PlayerStorage.java:337) ~[BattleArena.jar:?]
at org.battleplugins.arena.competition.PlayerStorage.restore(PlayerStorage.java:165) ~[BattleArena.jar:?]
at org.battleplugins.arena.event.action.types.RestoreAction.call(RestoreAction.java:27) ~[BattleArena.jar:?]
at org.battleplugins.arena.event.ArenaEventManager.pollActions(ArenaEventManager.java:178) ~[BattleArena.jar:?]
at org.battleplugins.arena.event.ArenaEventManager.callEvent(ArenaEventManager.java:151) ~[BattleArena.jar:?]
at org.battleplugins.arena.competition.LiveCompetition.leave(LiveCompetition.java:279) ~[BattleArena.jar:?]
at org.battleplugins.arena.competition.LiveCompetition.leave(LiveCompetition.java:263) ~[BattleArena.jar:?]
at org.battleplugins.arena.command.ArenaCommandExecutor.leave(ArenaCommandExecutor.java:319) ~[BattleArena.jar:?]
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
at org.battleplugins.arena.command.BaseCommandExecutor.invokeCommand(BaseCommandExecutor.java:289) ~[BattleArena.jar:?]
at org.battleplugins.arena.command.BaseCommandExecutor.runCommand(BaseCommandExecutor.java:272) ~[BattleArena.jar:?]
at org.battleplugins.arena.command.BaseCommandExecutor.onCommand(BaseCommandExecutor.java:102) ~[BattleArena.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999) ~[paper-1.20.4.jar:git-Paper-499]
at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.4.jar:git-Paper-499]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:31) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:434) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:336) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:323) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2230) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$14(ServerGamePacketListenerImpl.java:2190) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1465) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:123) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1442) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1365) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:133) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1343) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1232) ~[paper-1.20.4.jar:git-Paper-499]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-499]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
How to Fix
This is a plugin bug. The plugin should always clamp the health value to the player's current max health before restoring it.
Workarounds:
Check for plugin updates:
See if there is a newer version of BattleArena that fixes this bug.
Patch the plugin (if you have source or can decompile):
In the method that restores health (PlayerStorage.restoreHealth), add a clamp:
Apply
This ensures the health never exceeds the max.
Temporary mitigation:
If you can’t patch, warn players not to change their max health (via classes, gear, etc.) while in the arena.
Or, set a rule to reset health to max on leave (less ideal, but safe).