Damageable interface clashes with required extend EntityPlayer for Player Mixin

Events are going to have to be handled slightly differently, because the cancellable events are completely broken. In the existing implementation, it checks for cancellable interfaces wrong.

Discussion here

Youtrack issue: http://issues.spongepowered.org/youtrack/issue/SPONGE-76

Isn’t using double, namely 64 bit IEEE 754, overkill for the intended use? Wouldn’t it be simpler to revert to the standard Minecraft type of float for damage? The dynamic range of float should be adequate, right? Is there a driving reason (for comparisons or decimal representation reasons) that double is being used?

I may be over simplifying the problem but I was able to remove the need to compile with a superclass.

First I removed the check for identical superclasses in verifyClasses
Then made findTargetMethod and findTargetField search recursively through the superclasses until java/lang/Object
Therefore now @modwizcode’s MixinPlayer compiled and worked

That is a solution but apparently not the right one. I think @mumfrey has the right idea on the github issue.

Double is better for the fact that Minecraft’s number do get rather large, however I think internally the most precision Minecraft ever uses is a short (even though it uses a float type variable). The reason this issue is so important is more for the general case of Mixins having to handle conflicting definitions while compiling.