[Help] Arrow EntityDamageByEntityEvent

Discussion in 'Plugin Development' started by DeluXeNationMC, May 5, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    DeluXeNationMC

    Currently this is my code:
    Code:java
    1. @EventHandler
    2. public void onDamage2(EntityDamageByEntityEvent event){
    3. if(event.getEntity() instanceof Player && event.getDamager() instanceof Arrow){
    4. Player damaged = (Player) event.getEntity();
    5. Arrow arrow = (Arrow) event.getDamager();
    6. if (arrow.getShooter() instanceof Player) {
    7. if (damaged instanceof Player){
    8. Player shooter = (Player) arrow.getShooter();
    9. if(shooter.getInventory().getItemInHand().getItemMeta().hasLore()){
    10. if(shooter.getInventory().getItemInHand().getItemMeta().getLore().contains(ChatColor.GOLD + "Poisonous Bow")){
    11. PotionEffect poison = new PotionEffect(PotionEffectType.POISON, 100, (int) 0.5);
    12. damaged.getWorld().playEffect(damaged.getLocation(), Effect.POTION_BREAK, 6);
    13. damaged.addPotionEffect(poison);

    This gives me an error in console and i just cant figure out why.
    Can any of you guys tell me why ? :)
    Or is there a better way then EntityDamageByEntityEven (i would like to learn the best way :D)
     
  2. Offline

    raGan.

    Mind giving us the exception? And don't capitalize first letter of every word like that, it looks horrible. (sorryifsomenastysoftwareisdoingit)

    You don't need this check "if (damaged instanceof Player){". You are already checking "event.getEntity() instanceof Player".
     
  3. Offline

    GreatBlitz

  4. Offline

    DeluXeNationMC

    Code:
    [10:35:53 ERROR]: Could not pass event ProjectileHitEvent to DeluXeWeapons v1.0
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:320) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at me.Incomprehendable.WorldPlugins.FakePluginManager.fireEvent(FakePlug
    inManager.java:138) [PerWorldPlugins.jar:?]
            at me.Incomprehendable.WorldPlugins.FakePluginManager.callEvent(FakePlug
    inManager.java:124) [PerWorldPlugins.jar:?]
            at org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callProjectile
    HitEvent(CraftEventFactory.java:609) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b302
    0jnks]
            at net.minecraft.server.v1_7_R1.EntityArrow.h(EntityArrow.java:212) [cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.World.entityJoinedWorld(World.java:1348)
    [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.World.playerJoinedWorld(World.java:1329)
    [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.World.tickEntities(World.java:1217) [cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.WorldServer.tickEntities(WorldServer.jav
    a:480) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
    37) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_7_R1.entity.C
    raftArrow cannot be cast to org.bukkit.entity.Player
            at me.DeluXeNationMC.DeluXeWeapons.Main.hit(Main.java:179) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
    _55]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
    _55]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .7.0_55]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_55]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:318) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            ... 14 more
    
     
  5. Offline

    raGan.

    What is on line 179 in Main.java ?
     
  6. Offline

    DeluXeNationMC

    By the way when i shoot myself i get the poison effect it just shoots an error in console :(

    A braket }

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 8, 2016
  7. Offline

    raGan.

    Impossible. You are either reading line number wrong or your code is of different version than your compiled plugin.
     
  8. Offline

    DeluXeNationMC

    raGan.
    my code is a different version of my compiled plugin
    damnit im sorry i should of left it they are both the same now but its still giving me errors should i post the error again?
    i am truly sorry.
     
  9. Offline

    Zethariel

    It would be a lot faster if you posted your whole class. The exception suggests that somewhere in your code you're trying to cast an Arrow to a Player.
     
  10. Offline

    raGan.

    Yes, look for something like this
    Code:
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_7_R1.entity.CraftArrow cannot be cast to org.bukkit.entity.Player
    at me.DeluXeNationMC.DeluXeWeapons.Main.hit(Main.java:179) ~[?:?]
    Code:
    if(event.getEntity() instanceof Arrow){
    Player player = (Player) event.getEntity();
    You are checking if entity is an Arrow and then casting it to Player. Do not.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 8, 2016
  11. Offline

    Zethariel

    @DeluXeNationMCSince you changed the code, you need to provide an up to date stack trace.
     
Thread Status:
Not open for further replies.

Share This Page