EntityDamageEvent kits & stomper

Discussion in 'Plugin Development' started by Skrarity, Dec 31, 2015.

Thread Status:
Not open for further replies.
  1. So i tried to make kits, the thing i wrote in the main class (below , called "main class code:"), the "stomper" "fisherman" stuff are just empty arraylists.

    So the error at the end is actually EVERYTIME even tho i didn't have a kit.

    Main class (the method parts i used):
    Code:
    public ArrayList<Player> getKitOf(Player p) {
            if(stomper.contains(p)) {
                return stomper;
            } else if(fisherman.contains(p)){
                return fisherman;
            } else if(phantom.contains(p)) {
                return phantom;
            } else if(kangaroo.contains(p)) {
                return kangaroo;
            } else if(flash.contains(p)) {
                return kangaroo;
            } else if(turtle.contains(p)) {
                return turtle;
            } else {
                return null;
            }
            }
       
        public ArrayList<Player> kitStomper() {
            return stomper;
        }
       
        public ArrayList<Player> kitFisherman() {
            return fisherman;
        }
       
        public ArrayList<Player> kitTurtle() {
            return turtle;
        }
       
        public void setKitOf(Player p,ArrayList<Player> kit) {
            if(kangaroo.contains(p) || fisherman.contains(p) || turtle.contains(p) || stomper.contains(p) || flash.contains(p) || phantom.contains(p)) {
                kangaroo.remove(p);
                fisherman.remove(p);
                turtle.remove(p);
                stomper.remove(p);
                flash.remove(p);
                phantom.remove(p);
                return;
            }
            if(!(kit == fisherman || kit == fisherman || kit == turtle || kit == stomper || kit == flash  || kit == phantom)) {
                System.out.println("ERROR , 149 main Class, Wrong Kit!");
               
                return;
            }
            kit.add(p);
            System.out.println(p.getName() + " (" + p.getUniqueId() + ") has been added to " + kit.toString());
           
        }
    EntityDamagEvent:
    Code:
        @EventHandler
        public void whenDamage(EntityDamageEvent e) {
            Player p = (Player)e.getEntity();
            if(board.getKitOf(p).equals(board.kitStomper())){
            if(e.getEntity() instanceof Player) {
               
            double dmg = e.getDamage();
           
    
            for(Entity nearby : p.getNearbyEntities(6,6,6)) {
                if(nearby instanceof Player) {
                    ((Player) nearby).setHealth(-dmg);
                    board.killerEloEvent(p, (Player)nearby,true,0.3);
                }
            }
                   
            e.setDamage(4);
           
       
            }   
        }
            }
    Error message:
    Code:
    [15:35:12 ERROR]: Could not pass event EntityDamageEvent to Tundracoon v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:86) [craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:536) [craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:522) [craftbukkit.jar:git-Bukkit-12698ea]
            at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:568) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.d(EntityLiving.java:1092) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:733) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.e(EntityLiving.java:929) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.Block.fallOn(Block.java:636) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.Entity.a(Entity.java:794) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.a(EntityLiving.java:151) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.Entity.move(Entity.java:611) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.g(EntityLiving.java:1385) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.m(EntityLiving.java:1635) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityInsentient.m(EntityInsentient.java:338) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityLiving.t_(EntityLiving.java:1475) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntityInsentient.t_(EntityInsentient.java:193) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.EntitySlime.t_(EntitySlime.java:77) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.World.entityJoinedWorld(World.java:1420) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.World.g(World.java:1398) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.World.tickEntities(World.java:1269) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.WorldServer.tickEntities(WorldServer.java:560) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:727) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:629) [craftbukkit.jar:git-Bukkit-12698ea]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:537) [craftbukkit.jar:git-Bukkit-12698ea]
            at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_8_R3.entity.CraftSlime cannot be cast to org.bukkit.entity.Player
            at eu.tundra.board.kitEvent.whenDamage(kitEvent.java:28) ~[?:?]
            at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51]
            at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[craftbukkit.jar:git-Bukkit-12698ea]
            ... 29 more
     
  2. Offline

    mug561

    which is your 'kitEvent' class?
    Be nice if you posted whole classes, but whatever suits your fancy.

    EDIT: It'd be very helpful if you posted whole classes.
     
  3. Offline

    Zombie_Striker

    You are casting a slime to a player. Check to make sure the entity is actually a player by checking if the entity is an instanceof Player.
     
    mine-care likes this.
  4. Offline

    mine-care

    is it suposed to be like this?

    Compare objects with .equals(); if kit is a copy of the list -say- phantom, then the == operator will return false.
    Do not use the system printstream while developing bukkit plugins, instead use Logger(s)
    That is causing the error right there. e.getEntity() returns a LivingEntity which has a variety of implementations and is not just player. Check before casting.
     
Thread Status:
Not open for further replies.

Share This Page