PotionEffectBug

Discussion in 'Plugin Development' started by benetu, Mar 2, 2015.

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

    benetu

    I have a problem with the EntityDamageEvent...
    The EntityDamagebyEntityEvent is working fine...
    I created some messages i should receive everytime the event is fired, but it is not working...
    I'm not getting any error messages, i would be verry happy if you would help me :S


    Code:
    public class Damage implements Listener{
    
        ItemStack Granate = new ItemStack(Material.EGG);
        ItemStack Shooter = new ItemStack(Material.NETHER_STAR);
        String game = "§3[Paintball]";
        World Eggs;
       
        public Damage(Paintball pb){
            pb.getServer().getPluginManager().registerEvents(this, pb);
            ItemMeta Granatem = Granate.getItemMeta();
            Granatem.setDisplayName("§aGrenade");
            Granatem.setLore(Arrays.asList("§8Exploding egg..."));
            Granate.setItemMeta(Granatem);
            ItemMeta Shooterm = Shooter.getItemMeta();
            Shooterm.setDisplayName("§aPaintball Gun");
            Shooterm.setLore(Arrays.asList("§8Magic..."));
            Shooter.setItemMeta(Shooterm);
            Eggs = pb.getServer().getWorld("Eggs");
        }
       
        @EventHandler(priority = EventPriority.HIGH)
        public void onDamageEvent(EntityDamageEvent ev){
                     //Not even getting the message....
            ((Player) ev.getEntity()).sendMessage("Test 1");
            if(!(ev.getEntity().getWorld().equals(Eggs))) return;
            if(ev.getCause().equals(DamageCause.FIRE)){
                ((Player) ev.getEntity()).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 50, 50));
                ((Player) ev.getEntity()).sendMessage("Test2");
            }
            if(ev.getCause().equals(DamageCause.FIRE_TICK)){
                ((Player) ev.getEntity()).addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 50, 50));
                ((Player) ev.getEntity()).sendMessage("Test3");
            }
            ((Player) ev.getEntity()).sendMessage("Test 4");
            ev.setCancelled(true);
        }
        @EventHandler(priority = EventPriority.HIGHEST)
        public void onDamagebyEntityEvent(EntityDamageByEntityEvent ev){
            if(!(ev.getEntity().getWorld().equals(Eggs))) return;
            if(!(ev.getCause().equals(DamageCause.PROJECTILE))) return;
            ev.setCancelled(false);
            Snowball pShooterSnowball  = (Snowball)ev.getDamager();
            Player pShooter = (Player) pShooterSnowball.getShooter();
            Player p = (Player) ev.getEntity();
           
            Location spawn = p.getWorld().getSpawnLocation();
            if(p.getHealth() <= 1){
                //Sterbe Prozess
                ev.setDamage(0);
                spawn.setY(spawn.getY() - 1);
                Dreierfeld(spawn);
                spawn.setY(spawn.getY() + 1);
                p.teleport(spawn);
                p.getInventory().clear();
                p.getInventory().addItem(Shooter);
                p.getInventory().addItem(Granate);
                p.setFireTicks(0);
                p.setMaxHealth(10);
                p.setHealth(10);
                p.playSound(p.getLocation(), Sound.BLAZE_DEATH, 1, 1);
                //Nachricht
                for(Player player : Bukkit.getServer().getOnlinePlayers()){
                    if(player.getWorld().equals(Eggs)){
                        if(p.equals(pShooter)){
                            player.sendMessage(game + " §a" + p.getDisplayName() + " §8commited Suicide");
                        } else {
                            player.sendMessage(game + " §a" + p.getDisplayName() + " §8has been killed by §a" + pShooter.getDisplayName() + "§8!");
                        }
                    }
                }
                //pShooter Belohnungen
                if(p.equals(pShooter)) return;
                pShooter.playSound(p.getLocation(), Sound.WOLF_HOWL, 1, 1);
                pShooter.setMaxHealth(pShooter.getMaxHealth() + 2);
                return;
            }
            ev.setDamage(0);
            p.setHealth(p.getHealth() - 1);
        }
    }
     
  2. Offline

    benetu

    You dont get the Blindness effect, so i created the Test 1, 2 ,3 ,4 messages, but you dont even get them (The whole Block is not working)
     
  3. Offline

    nj2miami

    Something about this just does not seem like it would work. Cast a player first then send the message and see if that works. Keep it simple when debugging.

    Code:
    if(ev.getEntity() instanceof Player) {
      Player p = (Player) ev.getEntity();
      p.sendMessage(<msg>);
    else
      // do a broadcast message or console message here
     
  4. Offline

    benetu

    @nj2miami Thats not my problem, the event is NOT firing, so bugs of mine are not my problem yet...
     
  5. @benetu He is helping you improve, did you register the event?
     
  6. Offline

    benetu

Thread Status:
Not open for further replies.

Share This Page