alkarinv / BattleArena

Arena plugin for player vs player or team vs team battles and Core for any custom Event plugin.
29 stars 58 forks source link

Breaks when latest CombatTag plugin is being used. Update for support of latest CombatTag. #293

Open WeaselSqueezer opened 10 years ago

WeaselSqueezer commented 10 years ago

The current BattleArena v3.9.7.9 does not support the CombatTag plugin past CombatTag v6.1.2 The commit: https://github.com/cheddar262/Combat-Tag/commit/f535c3559aaa1fb013e3ca98101ad3124dbc306a#diff-216bb1b262e8024b26850d552415f346L161 which changed the method signature of the method being used to check if a player is tagged or not, and now a NoSuchjava.lang.NoSuchMethodError exception is thrown such as:

java.lang.NoSuchMethodError: com.trc202.CombatTag.CombatTag.isInCombat(Ljava/lang/String;)Z
    at mc.alk.arena.util.plugins.CombatTagUtil.isTagged(CombatTagUtil.java:19)
    at mc.alk.arena.controllers.plugins.CombatTagInterface.isTagged(CombatTagInterface.java:25)
    at mc.alk.arena.executors.BAExecutor._canJoin(BAExecutor.java:1474)
    at mc.alk.arena.executors.BAExecutor.canJoin(BAExecutor.java:1447)
    at mc.alk.arena.executors.BAExecutor.canJoin(BAExecutor.java:1443)
    at mc.alk.arena.executors.BAExecutor.join(BAExecutor.java:215)
    at mc.alk.arena.executors.BAExecutor.join(BAExecutor.java:198)
    at mc.alk.arena.executors.BAExecutor.join(BAExecutor.java:185)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at mc.alk.arena.executors.BaseExecutor.onCommand(BaseExecutor.java:258)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180)
    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:726)
    at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:999)
    at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:830)
    at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28)
    at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:65)
    at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:180)
    at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:81)
    at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:720)
    at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283)
    at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583)
    at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489)
    at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)
 java.lang.NoSuchMethodError: com.trc202.CombatTag.CombatTag.isInCombat(Ljava/lang/String;)Z
    at mc.alk.arena.util.plugins.CombatTagUtil.isTagged(CombatTagUtil.java:19)
    at mc.alk.arena.controllers.plugins.CombatTagInterface.isTagged(CombatTagInterface.java:25)
    at mc.alk.arena.executors.BAExecutor._canJoin(BAExecutor.java:1474)
    at mc.alk.arena.executors.BAExecutor.canJoin(BAExecutor.java:1447)
    at mc.alk.arena.executors.BAExecutor.canJoin(BAExecutor.java:1443)
    at mc.alk.arena.executors.BAExecutor.join(BAExecutor.java:215)
    at mc.alk.arena.executors.BAExecutor.join(BAExecutor.java:198)
    at mc.alk.arena.executors.BAExecutor.join(BAExecutor.java:185)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at mc.alk.arena.executors.BaseExecutor.onCommand(BaseExecutor.java:258)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180)
    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:726)
    at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:999)
    at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:830)
    at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28)
    at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:65)
    at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:180)
    at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:81)
    at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:720)
    at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283)
    at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:583)
    at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:489)
    at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)

Perhaps it would be good to use the API provided in the CombatTag plugin. If the authors of that plugin follow good practice, the public method signatures in that API should not change, and this shouldn't be a problem again. Please update this as soon as possible. Thanks!

cindyker commented 10 years ago

I also just ran into this. I use CombatTagInstakill.jar so I don't have to update it with versions.

WeaselSqueezer commented 10 years ago

Oh that's useful. I wish I knew that existed after I just cloned the full version and removed the NPC spawning... Well anyway, even with that version of the plugin, this bug still exists since some old methods in the plugin itself (not MinecraftServer) are being used that were later removed once CombatTag was updated to transition from player name to player UUID.

Europia79 commented 9 years ago

Someone else also requested a fix and I was able to get to it:

https://github.com/BattlePluginsDev/BattleArena/commit/8972ece190bd05254db1ae885b6fad2b93e697b2