Solved Can't give individual score to a player...

Discussion in 'Plugin Development' started by Swakiny, Feb 23, 2016.

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

    Swakiny

    Screenshot:

    [​IMG]
    We have the same value.
    Example:
    My value is 5, JD's 1. When i hit the dragon scoreboard set my value to 5 and JD's value to 5 too...

    Source-code:
    Code:
    package dynamic.corazion;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Scanner;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.World;
    import org.bukkit.entity.Arrow;
    import org.bukkit.entity.Egg;
    import org.bukkit.entity.EnderDragon;
    import org.bukkit.entity.EnderPearl;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.LivingEntity;
    import org.bukkit.entity.Player;
    import org.bukkit.entity.Snowball;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;
    import org.bukkit.scoreboard.Team;
    
    
    
    public class EnderDragonDamaged implements Listener
    {
       
        public void Scoreboard()
        {
           
        }
       
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        @EventHandler
        public void EnderDragonDmg(EntityDamageByEntityEvent dmge)
        {
            /**/
            World world = Bukkit.getServer().getWorld("enderDragonEvent");
            List<LivingEntity> mobs = world.getLivingEntities();
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard board = manager.getNewScoreboard();
            Objective hue = board.registerNewObjective("test", "dummy");
            hue.setDisplaySlot(DisplaySlot.SIDEBAR);
            hue.setDisplayName("Dano causado");
            List<Entity> players = world.getEntities();
           
           
           
           
            /**/
            for(LivingEntity dragon : mobs)
            {
                if(dragon instanceof EnderDragon)
                {
                   
                    if(dmge.getDamager() instanceof Player)
                    {
                        Player player = (Player) dmge.getDamager();
                        if(player instanceof Player)
                        {
                        dmge.setDamage(0.5);
                        player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                        CriarArquivo();   
                        configLength();
                       
                        Integer value = 0;
                        if(sc().hasNextLine())
                        {
                            Integer dg = Integer.parseInt(sc().next());
                            value = dg;
                            value++;
                            map.put(player.getName(), value);
                            Bukkit.broadcastMessage("HUE:" + value);
                            try{
                            PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                            out.flush();
                            out.write(String.valueOf(value));
                            out.close();}catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                       
                        for(Entity pl : players ){
                            if(pl instanceof Player)
                            {
                                Score score = hue.getScore(pl.getName());
                                score.setScore(map.get(dmge.getDamager().getName()));
                                player.setScoreboard(board);
                               
                            }
                        }
    
                           
                        }
                    }
                    else if(dmge.getDamager() instanceof Arrow)
                    {
                        Arrow flecha = (Arrow) dmge.getDamager();
                        Player player = (Player) flecha.getShooter();
                        if(flecha instanceof Arrow)
                        {
                            dmge.setDamage(0.5);
                            player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                            CriarArquivo();   
                            configLength();
                           
                            Integer value = 0;
                            if(sc().hasNextLine())
                            {
                                Integer dg = Integer.parseInt(sc().next());
                                value = dg;
                                value++;
                                map.put(player.getName(), value);
                                Bukkit.broadcastMessage("HUE:" + value);
                                try{
                                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                                out.flush();
                                out.write(String.valueOf(value));
                                out.close();}catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                            Score score = hue.getScore(player.getName());
                            score.setScore(map.get(player.getName()));
                            player.setScoreboard(board);
                        }
               
                    }
                    else if(dmge.getDamager() instanceof Snowball)
                    {
                        Snowball bneve = (Snowball) dmge.getDamager();
                        Player player = (Player) bneve.getShooter();
                        if(bneve instanceof Snowball)
                        {
                        dmge.setDamage(0.5);
                        player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                        CriarArquivo();   
                        configLength();
                       
                        Integer value = 0;
                        if(sc().hasNextLine())
                        {
                            Integer dg = Integer.parseInt(sc().next());
                            value = dg;
                            value++;
                            map.put(player.getName(), value);
                            Bukkit.broadcastMessage("HUE:" + value);
                            try{
                            PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                            out.flush();
                            out.write(String.valueOf(value));
                            out.close();}catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        Score score = hue.getScore(player.getName());
                        score.setScore(map.get(player.getName()));
                        player.setScoreboard(board);
                        }
               
                    }
                    else if(dmge.getDamager() instanceof Egg)
                    {
                       
                        Egg ovo = (Egg) dmge.getDamager();
                        Player player = (Player) ovo.getShooter();
                        if(ovo instanceof Egg)
                        {
                        dmge.setDamage(0.5);
                        player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                        CriarArquivo();   
                        configLength();
                       
                        Integer value = 0;
                        if(sc().hasNextLine())
                        {
                            Integer dg = Integer.parseInt(sc().next());
                            value = dg;
                            value++;
                            map.put(player.getName(), value);
                            Bukkit.broadcastMessage("HUE:" + value);
                            try{
                            PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                            out.flush();
                            out.write(String.valueOf(value));
                            out.close();}catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        Score score = hue.getScore(player.getName());
                        score.setScore(map.get(player.getName()));
                        player.setScoreboard(board);
                        }
               
                    }
                   
                   
                    else if(dmge.getDamager() instanceof EnderPearl)
                    {
                       
                        EnderPearl perola = (EnderPearl) dmge.getDamager();
                        Player player = (Player) perola.getShooter();
                        if(perola instanceof EnderPearl)
                        {
                        dmge.setDamage(0.5);
                        player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                        CriarArquivo();   
                        configLength();
                       
                        Integer value = 0;
                        if(sc().hasNextLine())
                        {
                            Integer dg = Integer.parseInt(sc().next());
                            value = dg;
                            value++;
                            map.put(player.getName(), value);
                            Bukkit.broadcastMessage("HUE:" + value);
                            try{
                            PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                            out.flush();
                            out.write(String.valueOf(value));
                            out.close();}catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        Score score = hue.getScore(player.getName());
                        score.setScore(map.get(player.getName()));
                        player.setScoreboard(board);
                        }
               
                    }
                }
            }
    
           
           
        }
       
       
       
       
        public void CriarArquivo()
        {
            if(!configFile().exists())
            {
                try{
                    configFile().createNewFile();
                    Bukkit.broadcastMessage("Arquivo criado..");
                } catch (IOException e) {
                    e.printStackTrace();
                }   
            }
           
        }
       
       
       
        public File configFile()
        {
            World w = Bukkit.getServer().getWorld("enderDragonEvent");
            String kk = "null";
            File config1 = null;
            List<LivingEntity> lv = w.getLivingEntities();
            for(LivingEntity dg : lv)
            {
                if(dg instanceof EnderDragon)
                {
                   
                    EntityDamageByEntityEvent xxc = (EntityDamageByEntityEvent)dg.getLastDamageCause();
                    kk = xxc.getDamager().getName();
                    if(xxc.getDamager() instanceof Player)
                    {
                        Player player = (Player) xxc.getDamager();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof Arrow)
                    {
                        Arrow flecha = (Arrow) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof Egg)
                    {
                        Egg flecha = (Egg) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof Snowball)
                    {
                        Snowball flecha = (Snowball) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof EnderPearl)
                    {
                        EnderPearl flecha = (EnderPearl) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                   
                }
            }
               
           
            return config1;
        }
       
        public Scanner sc()
        {
            Scanner scan = null;
            try {
                scan = new Scanner(configFile());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }   
            return scan;
        }
       
        public BufferedWriter wr()
        {
        FileWriter esc = null;
        BufferedWriter br = null;
        try {
            esc = new FileWriter(configFile());
            br = new BufferedWriter(esc);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return br;
       
        }
        public void configLength()
        {
            if (configFile().length()== 0)
            {
                Bukkit.broadcastMessage("Escrevendo no arquivo...");
                try{
                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                out.flush();
                out.write("1");
                out.close();
                Bukkit.broadcastMessage("Arquivo escrito.");
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
       
    
    
    }
       
    
     
  2. Offline

    Zombie_Striker

    I think you may need to use "Rubber Duck Debugging". You are casting the Entities last damage cause to an Event
    This is repeated multiple times. Move this out of the if statement.

    Have you debugged? What lines deal with the player's score?
     
  3. Offline

    Swakiny

    51 to 55
    78 to 102
     
  4. Offline

    Zombie_Striker

    Here is your problem. You are looping through all player's online and you are setting everyone's score to be what is in the map.
     
    MasterDoctor likes this.
  5. Offline

    Swakiny

    @Zombie_Striker

    Yeah I know, but the point is: I have no idea of how to set individual scores... Like... How can I look for players in a certain world then set a world scoreboard with individual scores?
     
  6. Offline

    Zombie_Striker

    @Swakiny
    You cann loop through all the players online by using Bukkit.getOnlinePlayers(). This will only return the players, so there are less objects to loop through.

    To make sure it is specific to a player, check if the player is the damager. If it is, set his score.
     
  7. Offline

    Swakiny

    @Zombie_Strike

    How it looks?

    Code:
    if(dmge.getDamager() instanceof Player)
                    {
                        Player player = (Player) dmge.getDamager();
                        if(player instanceof Player)
                        {
                        dmge.setDamage(0.5);
                        player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                        CriarArquivo();  
                        configLength();
                      
                        Integer value = 0;
                        if(sc().hasNextLine())
                        {
                            Integer dg = Integer.parseInt(sc().next());
                            value = dg;
                            value++;
                            map.put(player.getName(), value);
                            Bukkit.broadcastMessage("HUE:" + value);
                            try{
                            PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                            out.flush();
                            out.write(String.valueOf(value));
                            out.close();}catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        String kz = dmge.getDamager().getName();
                        if(jog.isEmpty()){
                        jog.add(kz);
                        }else if(!(jog.contains(kz))){
                        jog.add(kz);
                        } else{Bukkit.broadcastMessage("A lista ja contem esse nome...");}
                        if(jog.size() <= 5)
                        {
                            try{
                        Score score = hue.getScore(jog.get(0));
                        score.setScore(map.get(jog.get(0)));
                        Score score2 = hue.getScore(jog.get(1));
                        score2.setScore(map.get(jog.get(1)));
                        Score score3 = hue.getScore(jog.get(2));
                        score3.setScore(map.get(jog.get(2)));
                        Score score4 = hue.getScore(jog.get(3));
                        score4.setScore(map.get(jog.get(3)));
                        Score score5 = hue.getScore(jog.get(4));
                        score5.setScore(map.get(jog.get(4)));
                            } catch (Exception e){ Bukkit.getServer().getConsoleSender().sendMessage("[DragonEvent]: " + "Menos de 5 players no scoreboard....");}
                        Bukkit.broadcastMessage("Scoreboard set");
                      
                        }
                      
                        player.setScoreboard(board);
                      
                          
                        }
                    }
     
    Last edited: Feb 24, 2016
  8. Offline

    Zombie_Striker

    @Swakiny
    You test if the damager is a player, and then you test if the damager is a player. Shouldn't the one if statement be enough?

    Does it work? Have you tried it yet?
     
  9. Offline

    Hawktasard

  10. Offline

    Swakiny

    I don't know why, but if I don't check 2 times I get error... I'll see if I can check only 1 time... But it's working...

    @Zombie_Striker

    By the way, about casting last damage cause to an event, then i just need to...
    EntityDamageByEntityEvent xxc = (EntityDamageByEntityEvent)dg;
    insteadof
    EntityDamageByEntityEvent xxc = (EntityDamageByEntityEvent)dg.getLastDamageCause();??

    About one statement I get it to work, wasn't working because I was casting Player player = (Player) dmge.getDamager(); BEFORE veryfing if the damager is a player. LOL

    Now I think everything is working fine...
    Code:
    package dynamic.corazion;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Scanner;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.World;
    import org.bukkit.entity.Arrow;
    import org.bukkit.entity.Egg;
    import org.bukkit.entity.EnderDragon;
    import org.bukkit.entity.EnderPearl;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.LivingEntity;
    import org.bukkit.entity.Player;
    import org.bukkit.entity.Snowball;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;
    import org.bukkit.scoreboard.Team;
    
    
    
    public class EnderDragonDamaged implements Listener
    {
        int ppd = 0;
        public void Scoreboard()
        {
           
        }
    
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        List<String> jog = new ArrayList<String>();
        @EventHandler
        public void EnderDragonDmg(EntityDamageByEntityEvent dmge)
        {
            /**/
            World world = Bukkit.getServer().getWorld("enderDragonEvent");
            List<LivingEntity> mobs = world.getLivingEntities();
           
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard board = manager.getNewScoreboard();
            Objective hue = board.registerNewObjective("test", "dummy");
            hue.setDisplaySlot(DisplaySlot.SIDEBAR);
            hue.setDisplayName("Dano causado");
    
           
           
           
           
            /**/
            for(LivingEntity dragon : mobs)
            {
                if(dragon instanceof EnderDragon)
                {
                   
                       
                       
                       
                       
                       
                        if(dmge.getDamager() instanceof Player)
                        {
                        Player player = (Player) dmge.getDamager();
                           
                        dmge.setDamage(0.5);
                        player.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                        CriarArquivo();   
                        configLength();
                       
                        Integer value = 0;
                        if(sc().hasNextLine())
                        {
                            Integer dg = Integer.parseInt(sc().next());
                            value = dg;
                            value++;
                            map.put(player.getName(), value);
                            Bukkit.broadcastMessage("HUE:" + value);
                            try{
                            PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                            out.flush();
                            out.write(String.valueOf(value));
                            out.close();}catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        String kz = dmge.getDamager().getName();
                        if(jog.isEmpty()){
                        jog.add(kz);
                        }else if(!(jog.contains(kz))){
                        jog.add(kz);
                        } else{Bukkit.broadcastMessage("A lista ja contem esse nome...");}
                        if(jog.size() <= 5)
                        {
                            try{
                        Score score = hue.getScore(jog.get(0));
                        score.setScore(map.get(jog.get(0)));
                        Score score2 = hue.getScore(jog.get(1));
                        score2.setScore(map.get(jog.get(1)));
                        Score score3 = hue.getScore(jog.get(2));
                        score3.setScore(map.get(jog.get(2)));
                        Score score4 = hue.getScore(jog.get(3));
                        score4.setScore(map.get(jog.get(3)));
                        Score score5 = hue.getScore(jog.get(4));
                        score5.setScore(map.get(jog.get(4)));
                            } catch (Exception e){ Bukkit.getServer().getConsoleSender().sendMessage("[DragonEvent]: " + "Menos de 5 players no scoreboard....");}
                        Bukkit.broadcastMessage("Scoreboard set");
                       
                        }
                       
                        player.setScoreboard(board);
                       
                           
                        }
                        else if(dmge.getDamager() instanceof Arrow)
                        {
                            Arrow flecha = (Arrow) dmge.getDamager();
                            Player p = (Player) flecha.getShooter();
                            dmge.setDamage(0.5);
                            p.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                            CriarArquivo();   
                            configLength();
                           
                            Integer value = 0;
                            if(sc().hasNextLine())
                            {
                                Integer dg = Integer.parseInt(sc().next());
                                value = dg;
                                value++;
                                map.put(p.getName(), value);
                                Bukkit.broadcastMessage("HUE:" + value);
                                try{
                                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                                out.flush();
                                out.write(String.valueOf(value));
                                out.close();}catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                            String kz = p.getName();
                            if(jog.isEmpty()){
                            jog.add(kz);
                            }else if(!(jog.contains(kz))){
                            jog.add(kz);
                            } else{Bukkit.broadcastMessage("A lista ja contem esse nome...");}
                            if(jog.size() <= 5)
                            {
                                try{
                            Score score = hue.getScore(jog.get(0));
                            score.setScore(map.get(jog.get(0)));
                            Score score2 = hue.getScore(jog.get(1));
                            score2.setScore(map.get(jog.get(1)));
                            Score score3 = hue.getScore(jog.get(2));
                            score3.setScore(map.get(jog.get(2)));
                            Score score4 = hue.getScore(jog.get(3));
                            score4.setScore(map.get(jog.get(3)));
                            Score score5 = hue.getScore(jog.get(4));
                            score5.setScore(map.get(jog.get(4)));
                                } catch (Exception e){ Bukkit.getServer().getConsoleSender().sendMessage("[DragonEvent]: " + "Menos de 5 players no scoreboard....");}
                            Bukkit.broadcastMessage("Scoreboard set");
                           
                            }
                           
                            p.setScoreboard(board);
                           
                        }
                        else if(dmge.getDamager() instanceof EnderPearl)
                        {
                            EnderPearl perola = (EnderPearl) dmge.getDamager();
                            Player p = (Player) perola.getShooter();
                            dmge.setDamage(0.5);
                            p.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                            CriarArquivo();   
                            configLength();
                           
                            Integer value = 0;
                            if(sc().hasNextLine())
                            {
                                Integer dg = Integer.parseInt(sc().next());
                                value = dg;
                                value++;
                                map.put(p.getName(), value);
                                Bukkit.broadcastMessage("HUE:" + value);
                                try{
                                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                                out.flush();
                                out.write(String.valueOf(value));
                                out.close();}catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                            String kz = p.getName();
                            if(jog.isEmpty()){
                            jog.add(kz);
                            }else if(!(jog.contains(kz))){
                            jog.add(kz);
                            } else{Bukkit.broadcastMessage("A lista ja contem esse nome...");}
                            if(jog.size() <= 5)
                            {
                                try{
                            Score score = hue.getScore(jog.get(0));
                            score.setScore(map.get(jog.get(0)));
                            Score score2 = hue.getScore(jog.get(1));
                            score2.setScore(map.get(jog.get(1)));
                            Score score3 = hue.getScore(jog.get(2));
                            score3.setScore(map.get(jog.get(2)));
                            Score score4 = hue.getScore(jog.get(3));
                            score4.setScore(map.get(jog.get(3)));
                            Score score5 = hue.getScore(jog.get(4));
                            score5.setScore(map.get(jog.get(4)));
                                } catch (Exception e){ Bukkit.getServer().getConsoleSender().sendMessage("[DragonEvent]: " + "Menos de 5 players no scoreboard....");}
                            Bukkit.broadcastMessage("Scoreboard set");
                           
                            }
                           
                            p.setScoreboard(board);
                           
                        }
                        else if(dmge.getDamager() instanceof Snowball)
                        {
                            Snowball neve = (Snowball) dmge.getDamager();
                            Player p = (Player) neve.getShooter();
                            dmge.setDamage(0.5);
                            p.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                            CriarArquivo();   
                            configLength();
                           
                            Integer value = 0;
                            if(sc().hasNextLine())
                            {
                                Integer dg = Integer.parseInt(sc().next());
                                value = dg;
                                value++;
                                map.put(p.getName(), value);
                                Bukkit.broadcastMessage("HUE:" + value);
                                try{
                                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                                out.flush();
                                out.write(String.valueOf(value));
                                out.close();}catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                            String kz = p.getName();
                            if(jog.isEmpty()){
                            jog.add(kz);
                            }else if(!(jog.contains(kz))){
                            jog.add(kz);
                            } else{Bukkit.broadcastMessage("A lista ja contem esse nome...");}
                            if(jog.size() <= 5)
                            {
                                try{
                            Score score = hue.getScore(jog.get(0));
                            score.setScore(map.get(jog.get(0)));
                            Score score2 = hue.getScore(jog.get(1));
                            score2.setScore(map.get(jog.get(1)));
                            Score score3 = hue.getScore(jog.get(2));
                            score3.setScore(map.get(jog.get(2)));
                            Score score4 = hue.getScore(jog.get(3));
                            score4.setScore(map.get(jog.get(3)));
                            Score score5 = hue.getScore(jog.get(4));
                            score5.setScore(map.get(jog.get(4)));
                                } catch (Exception e){ Bukkit.getServer().getConsoleSender().sendMessage("[DragonEvent]: " + "Menos de 5 players no scoreboard....");}
                            Bukkit.broadcastMessage("Scoreboard set");
                           
                            }
                           
                            p.setScoreboard(board);
                           
                        }
                        else if(dmge.getDamager() instanceof Egg)
                        {
                            Egg ovo = (Egg) dmge.getDamager();
                            Player p = (Player) ovo.getShooter();
                            dmge.setDamage(0.5);
                            p.sendMessage(ChatColor.RED  + "Vida restante do dragão: " + ChatColor.WHITE + ChatColor.ITALIC +  dragon.getHealth());
                            CriarArquivo();   
                            configLength();
                           
                            Integer value = 0;
                            if(sc().hasNextLine())
                            {
                                Integer dg = Integer.parseInt(sc().next());
                                value = dg;
                                value++;
                                map.put(p.getName(), value);
                                Bukkit.broadcastMessage("HUE:" + value);
                                try{
                                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                                out.flush();
                                out.write(String.valueOf(value));
                                out.close();}catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                            String kz = p.getName();
                            if(jog.isEmpty()){
                            jog.add(kz);
                            }else if(!(jog.contains(kz))){
                            jog.add(kz);
                            } else{Bukkit.broadcastMessage("A lista ja contem esse nome...");}
                            if(jog.size() <= 5)
                            {
                                try{
                            Score score = hue.getScore(jog.get(0));
                            score.setScore(map.get(jog.get(0)));
                            Score score2 = hue.getScore(jog.get(1));
                            score2.setScore(map.get(jog.get(1)));
                            Score score3 = hue.getScore(jog.get(2));
                            score3.setScore(map.get(jog.get(2)));
                            Score score4 = hue.getScore(jog.get(3));
                            score4.setScore(map.get(jog.get(3)));
                            Score score5 = hue.getScore(jog.get(4));
                            score5.setScore(map.get(jog.get(4)));
                                } catch (Exception e){ Bukkit.getServer().getConsoleSender().sendMessage("[DragonEvent]: " + "Menos de 5 players no scoreboard....");}
                            Bukkit.broadcastMessage("Scoreboard set");
                           
                            }
                           
                            p.setScoreboard(board);
                           
                        }
                    }
                }
    
           
           
        }
       
       
       
       
        public void CriarArquivo()
        {
            if(!configFile().exists())
            {
                try{
                    configFile().createNewFile();
                    Bukkit.broadcastMessage("Arquivo criado..");
                } catch (IOException e) {
                    e.printStackTrace();
                }   
            }
           
        }
       
       
       
        public File configFile()
        {
            World w = Bukkit.getServer().getWorld("enderDragonEvent");
            String kk = "null";
            File config1 = null;
            List<LivingEntity> lv = w.getLivingEntities();
            for(LivingEntity dg : lv)
            {
                if(dg instanceof EnderDragon)
                {
                   
                    EntityDamageByEntityEvent xxc = (EntityDamageByEntityEvent)dg;
                    kk = xxc.getDamager().getName();
                    if(xxc.getDamager() instanceof Player)
                    {
                        Player player = (Player) xxc.getDamager();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof Arrow)
                    {
                        Arrow flecha = (Arrow) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof Egg)
                    {
                        Egg flecha = (Egg) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof Snowball)
                    {
                        Snowball flecha = (Snowball) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                    else if(xxc.getDamager() instanceof EnderPearl)
                    {
                        EnderPearl flecha = (EnderPearl) xxc.getDamager();
                        Player player = (Player) flecha.getShooter();
                    config1 = new File("plugins\\Dynamic\\DragonEvent\\", player.getName() + ".txt");
                    }
                   
                }
            }
               
           
            return config1;
        }
       
        public Scanner sc()
        {
            Scanner scan = null;
            try {
                scan = new Scanner(configFile());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }   
            return scan;
        }
       
        public BufferedWriter wr()
        {
        FileWriter esc = null;
        BufferedWriter br = null;
        try {
            esc = new FileWriter(configFile());
            br = new BufferedWriter(esc);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return br;
       
        }
        public void configLength()
        {
            if (configFile().length()== 0)
            {
                Bukkit.broadcastMessage("Escrevendo no arquivo...");
                try{
                PrintWriter out = new PrintWriter(new FileWriter(configFile()));
                out.flush();
                out.write("1");
                out.close();
                Bukkit.broadcastMessage("Arquivo escrito.");
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
       
    
    
    }
       
    
     
    Last edited: Feb 25, 2016
  11. Offline

    Zombie_Striker

    @Swakiny
    You may be getting the error if the if "dme" or the damager is null. Check if those two objects are null before creating the player instance.
     
  12. Offline

    Swakiny

    If i remove dg.GetLastDemageCause i get error...


    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_8_R3.entity.C
    raftEnderDragon cannot be cast to org.bukkit.event.entity.EntityDamageByEntityEv
    ent
    at dynamic.corazion.EnderDragonDamaged.configFile(EnderDragonDamaged.jav
    a:365) ~[?:?]


    Line 365
    EntityDamageByEntityEvent xxc = (EntityDamageByEntityEvent)dg.getLastDamageCause();
     
  13. Offline

    Zombie_Striker

     
  14. Offline

    Swakiny

    Yeah but if I don't cast Entities last damage cause to an Event I get error. If I do, everything works fine...
     
  15. Offline

    Zombie_Striker

  16. Offline

    Swakiny

    oh. Now I got it. Let me try.

    @Zombie_Striker

    So... like this?

    Entity xxc = (Entity) (((EntityDamageByEntityEvent) dg.getLastDamageCause()).getDamager());
     
    Last edited: Feb 25, 2016
Thread Status:
Not open for further replies.

Share This Page