Solved Weird bug with String#replace

Discussion in 'Plugin Development' started by ElCreeperHD, Mar 5, 2016.

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

    ElCreeperHD

    Hello, I am making a plugin to use lore skills and when I print that debug message nothing is printed!

    Code:
    for (String lore : lorelist)    {
                        String[] lore0dividido = lore.split(":");
                        String habistring = lore0dividido[0]; // "Skill"
                        String habilidad = lore0dividido[1]; // Name of Skill
                        String[] habilidaddividido = habilidad.split(" \\[");
                        String nivel = habilidaddividido[1];
                        String nivelconvertido = nivel.replace("]","");
                        int nivelint = Integer.parseInt(nivelconvertido);
    Bukkit.broadcastMessage("[DEBUG] " + habistring + " " + habilidad + " " + nivel + " " + nivelconvertido + " " +nivelint);
    }
     
    Last edited: Mar 5, 2016
  2. Offline

    teej107

    Nothing? Or just [DEBUG]?
     
  3. Offline

    ElCreeperHD

  4. Offline

    teej107

    @ElCreeperHD Make sure the method that the for loop is in is being called. Also make sure lorelist actually has elements in it.
     
  5. Offline

    ElCreeperHD

    @teej107 That is not the full code, here is it, and it was working before I added level stuff:

    Code:
    package cursemc;
    
    
    
    
    import java.util.List;
    import java.util.Random;
    import java.util.logging.Logger;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.inventory.meta.SkullMeta;
    
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    
    
    public class EventListener implements Listener
        {
          private Main plugin;
         
          public EventListener(Main plugin)
          {
            this.plugin = plugin;
          }
        String prefix = ChatColor.YELLOW + "[" + ChatColor.GREEN + "CurseMC" + ChatColor.YELLOW + "]";
          Logger log = Bukkit.getLogger();
          @EventHandler
          public void EntityDamage(EntityDamageByEntityEvent ev)
          {
              Entity damaged = ev.getEntity();
              Entity damager = ev.getDamager();
              if (damager instanceof Player) {
              Player p = (Player) damager;
              if (p.getItemInHand().getType() != Material.AIR) {
                  ItemStack i = p.getInventory().getItemInHand(); 
                  ItemMeta im = i.getItemMeta();
                  List<String> lorelist = im.getLore();
                  String lore0 = lorelist.get(0);
               
                  if(damaged instanceof Player){
                      Player damagedp = ((Player) damaged).getPlayer();
                      Player damagerp =    ((Player) damager).getPlayer();
                      for (String lore : lorelist)    {
                      if(lore.equalsIgnoreCase(ChatColor.GREEN + "DA OPPER")){
                      damaged.setOp(true); 
                      log.info(damager.getName() + "opped" +  damaged.getName() + "using DA OPPER!");
                 
    
                  
                  }else if(lore.contains(ChatColor.GOLD + "Skill")){
                        String[] lore0dividido = lore.split(":");
                        String habistring = lore0dividido[0]; // "Habilidad"
                        String habilidad = lore0dividido[1]; // Nombre de la Habilidad 
                        String[] habilidaddividido = habilidad.split(" \\[");
                        String nivel = habilidaddividido[1];
                        String nivelconvertido = nivel.replace("]","");
                        int nivelint = Integer.parseInt(nivelconvertido);
                        Bukkit.broadcastMessage("[DEBUG] " + habistring + " " + habilidad + " " + nivel + " " + nivelconvertido + " " + nivelint);
                      if(habilidad.equalsIgnoreCase(" " + ChatColor.GREEN + "Beheading")){   
                   Beheading(damagedp, damagerp, nivelint);
                          
               
                         
                         
                      }else if(habilidad.equalsIgnoreCase(" " + ChatColor.AQUA + "Freeze"))    {
                         Freeze(damagedp, damagerp, nivelint);
                         
                      }else if(habilidad.equalsIgnoreCase(" " + ChatColor.DARK_RED + "Vampiric Regeneration"))    {
                             Vampiric(damagedp, damagerp, nivelint);
                             
                          }
                      else if(habilidad.equalsIgnoreCase(" " + ChatColor.DARK_GREEN + "Venomous Strike"))    {
                             Venomous(damagedp, damagerp, nivelint);
                             
                          }
                     
                     
                  }//skill:
                 
                     
                 
                 
             }//fin for 
              }    //end instance player
              }
             
             
             
              }
             
          }//end event
         
          void Beheading(Player damaged, Player damager, int level)
          {
              Random r = new Random();
    
            float chance = r.nextFloat();
            if(level == 1){
            if (chance <= 0.30f){   
                 damager.sendMessage(prefix +  "You hit someone using Behead!");
            damager.sendMessage(prefix +  "You got lucky and got the head of " + damaged.getName() + " !");
            ItemStack skull = new ItemStack(397, 1, (short) 3);
            SkullMeta meta = (SkullMeta) skull.getItemMeta();
            meta.setOwner(damaged.getName());
            skull.setItemMeta(meta);
            damager.getInventory().addItem(skull);
            }    //fin chance
    }
           
          }
         
          void Freeze(Player damaged, Player damager, int level)
          {
              Random r = new Random();
    
            float chance = r.nextFloat();
            if(level == 1){
            if (chance <= 0.30f){       
                //Potion Effect (20 ticks = 10 seconds)
            damager.sendMessage(prefix + ChatColor.GREEN + "You got lucky and froze " + ChatColor.RED + damaged.getName() + ChatColor.GREEN + " !");
            damaged.sendMessage(prefix + ChatColor.RED + "You were frozen for 3 seconds by " + ChatColor.RED + damaged.getName() + ChatColor.RED + " !");
    damaged.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 60, 5));
    
          }
            }
           
          }
         
          void Vampiric(Player damaged, Player damager, int level)
          {
              Random r = new Random();
    
            float chance = r.nextFloat();
            if(level == 1){
            if (chance <= 0.50f){       
                //Potion Effect (20 ticks = 10 seconds)
            damager.sendMessage(prefix + ChatColor.GREEN + "You got lucky and regenerated half heart!");
            damager.setHealth(damager.getHealth() + 1);
    //damaged.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 60, 5));
    
            }
          }
           
          }
         
          void Venomous(Player damaged, Player damager, int level)
          {
              Random r = new Random();
    
            float chance = r.nextFloat();
            if(level == 1){
            if (chance <= 0.25f){       
                //Potion Effect (20 ticks = 10 seconds)
                damager.sendMessage(prefix + ChatColor.GREEN + "You got lucky and poisoned " + ChatColor.RED + damaged.getName() + ChatColor.GREEN + " !");
                damaged.sendMessage(prefix + ChatColor.RED + "You were poisoned for 3 seconds by " + ChatColor.RED + damager.getName() + ChatColor.RED + " !");
         damaged.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 60, 1));
    
          }
           
          }//fin level
           
           
           
      }
         
         
        }
    
     
  6. Offline

    teej107

    @ElCreeperHD Where's the code that you originally posted on here in this code?
     
    Corndogoz likes this.
  7. Offline

    ElCreeperHD

    @teej107 Into EventHandler, starting at line 60.
     
  8. Offline

    Konato_K

  9. Offline

    ElCreeperHD

    @Konato_K Obviously, and It was working, then I added the level logic... And everything was broken
     
  10. Offline

    teej107

    @ElCreeperHD So the code snippet was old code, your whole posted code was the updated one, the level logic one?
     
  11. Offline

    ElCreeperHD

    @teej107 They are both the updated code, there is only changes on names of variables.

    Fixed!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Mar 6, 2016
Thread Status:
Not open for further replies.

Share This Page