CutClean enable and disable

Discussion in 'Plugin Development' started by timsmans, Mar 29, 2016.

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

    timsmans

    Hello
    I am making a cutclean uhc plugin whit a disable and enable function i dont know what is wrong but it just doesnt work can someone help me?
    Code:
    package me.xTimDevx.ScyleUHC.Scenario;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.inventory.ItemStack;
    
    import me.xTimDevx.ScyleUHC.Main;
    
    public class CutClean implements Listener, CommandExecutor{
       
            public CutClean(Main main) {
            }
            public CutClean() {
            }
           
            public boolean isCutclean() {
                return cutclean;
            }
    
            public void setCutclean(boolean cutclean) {
                this.cutclean = cutclean;
            }
    
            public boolean cutclean = false;
           
            public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                if (!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "Solo los jugadores pueden hacer esto");
                    return true;
                }
    
                Player p = (Player) sender;
            if (cmd.getName().equalsIgnoreCase("cutclean")) {
                if(!cutclean) {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §cCUTCLEAN §7scenario is now §aEnabled§7!");
                    cutclean = true;
                    return true;
                }else{
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §cCUTCLEAN §7scenario is now §cDisabled§7!");
                    cutclean = false;
                    return true;
                }
            }
                if (cmd.getName().equalsIgnoreCase("cutcleantest")) {
                    if(!cutclean) {
                        p.getServer().broadcastMessage("werkt");
                        return true;
                    }
                    if(cutclean) {
                        p.getServer().broadcastMessage("wel");
                        return true;
                    }
            }
            return true;
            }
            @EventHandler
            public void onEntityDeath(EntityDeathEvent event) {
                if(cutclean) {
                    return;
                }else{
                Entity e = event.getEntity();
              
                if (e.getType() == EntityType.CHICKEN) {
                    for (ItemStack drops : event.getDrops()) {
                        if (drops.getType() == Material.RAW_CHICKEN) {
                            drops.setType(Material.COOKED_CHICKEN);
                        }
                    }
                }
                if (e.getType() == EntityType.COW) {
                    for (ItemStack drops : event.getDrops()) {
                        if (drops.getType() == Material.RAW_BEEF) {
                            drops.setType(Material.COOKED_BEEF);
                        }
                    }
                }
                if (e.getType() == EntityType.PIG) {
                    for (ItemStack drops : event.getDrops()) {
                        if (drops.getType() == Material.PORK) {
                            drops.setType(Material.GRILLED_PORK);
                        }
                    }
                }
                }
            }
            @EventHandler
            public void onBlockBreak(BlockBreakEvent event) {
                if(cutclean) {
                    return;
                }else{
              Block block = event.getBlock();
              if (block.getType() == Material.IRON_ORE)
              {
                event.setCancelled(true);
                block.setType(Material.AIR);
                block.getState().update();
                block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.IRON_INGOT));
              }
              if (block.getType() == Material.GOLD_ORE)
              {
                event.setCancelled(true);
                block.setType(Material.AIR);
                block.getState().update();
                block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.GOLD_INGOT));
              }
              if (block.getType() == Material.GRAVEL)
              {
                event.setCancelled(true);
                block.setType(Material.AIR);
                block.getState().update();
                block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.FLINT));
              }
              if (block.getType() == Material.DIAMOND_ORE)
              {
                event.setCancelled(true);
                block.setType(Material.AIR);
                block.getState().update();
                block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.DIAMOND));
              }
            }
            }
            }
     
  2. Offline

    timtower Administrator Administrator Moderator

    @timsmans Could you also post your main class?
     
  3. Offline

    timsmans

    Code:
    package me.xTimDevx.ScyleUHC;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    
    import org.bukkit.Bukkit;
    import org.bukkit.GameMode;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageEvent;
    import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    import org.bukkit.event.player.PlayerMoveEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.ShapedRecipe;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    
    import me.xTimDevx.ScyleUHC.Scenario.CutClean;
    import me.xTimDevx.ScyleUHC.Utils.Tps;
    import me.xTimDevx.ScyleUHC.extra.DeathEvent;
    import me.xTimDevx.ScyleUHC.extra.GoldenHeads;
    import me.xTimDevx.ScyleUHC.extra.VoidEvent;
    import me.xTimDevx.ScyleUHC.extra.globalmute;
    
    public class Main extends JavaPlugin implements Listener {
       
        public static ArrayList<Player> pre = new ArrayList<Player>();
        public static ArrayList<Player> nofall = new ArrayList<Player>();
       
          @SuppressWarnings("deprecation")
        public void setupHeads()
          {
            ItemStack goldenHead = new ItemStack(Material.GOLDEN_APPLE);
            ItemMeta gMeta = goldenHead.getItemMeta();
            gMeta.setDisplayName("§eGolden Head");
            gMeta.setLore(Arrays.asList(new String[] { "§cYou've crafted a Golden Head!", "§cConsuming this will grant you even greater effects", "§cthan a normal Golden Apple!" }));
            goldenHead.setItemMeta(gMeta);
           
           
            ShapedRecipe goldenHeadRecipe = new ShapedRecipe(goldenHead);
            goldenHeadRecipe.shape(new String[] { "@@@", "@#@", "@@@" });
           
            goldenHeadRecipe.setIngredient('@', Material.GOLD_INGOT);
            goldenHeadRecipe.setIngredient('#', Material.SKULL_ITEM, 3);
            Bukkit.getServer().addRecipe(goldenHeadRecipe);
          }
       
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            Bukkit.getServer().getPluginManager().registerEvents(new globalmute(this), this);
            Bukkit.getServer().getPluginManager().registerEvents(new VoidEvent(this), this);
            Bukkit.getServer().getPluginManager().registerEvents(new DeathEvent(this), this);
            Bukkit.getServer().getPluginManager().registerEvents(new GoldenHeads(this), this);
            Bukkit.getServer().getPluginManager().registerEvents(new CutClean(this), this);
            getCommand("globalmute").setExecutor(new globalmute());
            getCommand("cutclean").setExecutor(new CutClean());
            getCommand("cutcleantest").setExecutor(new CutClean());
            setupHeads();
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
       
        public static World UHC = Bukkit.getServer().getWorld("UHC");
       
        @SuppressWarnings("deprecation")
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
           
            ItemStack beef = new ItemStack(Material.COOKED_BEEF, 10);
            ItemStack boat = new ItemStack(Material.BOAT);
           
            final Player p = (Player) sender;
             if(cmd.getName().equalsIgnoreCase("uhc")) {
                 if(args.length == 0) {
                p.sendMessage("§cERROR: /UHC <args>");
                return true;
            }
            else if(args.length == 1) {
                if(args[0].equalsIgnoreCase("host")) {
                    if(!p.hasPermission("uhc.mode.host")) {
                        p.sendMessage("§cYou are not allowed in this mode.");
                        return true;
                    }
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §c" + p.getName()+ " §7is now in the mode §cHOST§7.");
                    p.setGameMode(GameMode.CREATIVE);
                    return true;
                }
                if(args[0].equalsIgnoreCase("player")) {
                    if(!p.hasPermission("uhc.mode.player")) {
                        p.sendMessage("§cYou are not allowed in this mode.");
                        return true;
                    }
                    p.getServer().broadcastMessage("§bScyle§lUHC §8" + p.getName()+ " §7is now in the mode §cPLAYER§7.");
                    p.setGameMode(GameMode.SURVIVAL);
                    return true;
                }
                 if(args[0].equalsIgnoreCase("spec")) {
                    if(!p.hasPermission("uhc.mode.player")) {
                        p.sendMessage("§cYou are not allowed in this mode.");
                        return true;
                    }
                    p.getServer().broadcastMessage("§bScyle§lUHC §8" + p.getName()+ " §7is now in the mode §cSPEC§7.");
                    p.setGameMode(GameMode.SPECTATOR);
                    return true;
                }
                 if(args[0].equalsIgnoreCase("pre")) {
                    if(!p.hasPermission("uhc.cmd.pre")) {
                        p.sendMessage("§cYou are not to use this command.");
                        return true;
                    }
                   
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Teleporting phase started!");
                    p.performCommand("globalmute");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 1000000000, 10000), true);
                        nofall.add(p1);
                    }
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                              for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                                p1.teleport(new Location(Tps.uhc, 0, 100, 0));
                            }
                                  }     
                          },60L);
                     
                            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                                  @Override
                                  public void run() {
                            p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Scatter in §c5 seconds§7!");
                              for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                                  p1.setHealth(20);
                                p1.sendTitle("§b§lUHC", "§7Scatter in §c5 seconds§7!");
                              }
                                  }     
                          },80L);
                           
                            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                                @Override
                                public void run() {
                          p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Scatter in §c4 seconds§7!");
                          for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                            p1.sendTitle("§b§lUHC", "§7Scatter in §c4 seconds§7!");
                          }
                                }     
                        },100L);
                           
                            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                                @Override
                                public void run() {
                          p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Scatter in §c3 seconds§7!");
                          for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                            p1.sendTitle("§b§lUHC", "§7Scatter in §c3 seconds§7!");
                          }
                                }     
                        },120L);
                           
                            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                                @Override
                                public void run() {
                          p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Scatter in §c2 seconds§7!");
                          for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                            p1.sendTitle("§b§lUHC", "§7Scatter in §c2 seconds§7!");
                               pre.add(p1);
                          }
                                }     
                        },140L);
                           
                            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                                @Override
                                public void run() {
                                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                                      p1.sendTitle("§b§lUHC", "§7Scatter in §c1 seconds§7!");
                                    }
                          p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Scatter in §c1 seconds§7!");
                          p.getServer().broadcastMessage("§bScyle§lUHC §8» §7UHC will start when the lag is gone!");
                          p.performCommand("scatter");
                                }     
                        },160L);
                Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                      @Override
                      public void run() {
                          for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                            p1.sendTitle("", "");
                          }
                      }     
              },170L);
                 }
                 if(args[0].equalsIgnoreCase("start")) {
                    if(!p.hasPermission("uhc.cmd.start")) {
                        p.sendMessage("§cYou are not allowed to use this command.");
                        return true;
                    }
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c0 minutes §7in!");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.setHealth(p1.getMaxHealth());
                        p1.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 1, 1), true);
                        p1.getInventory().clear();
                        p1.getInventory().addItem(beef);
                        p1.getInventory().addItem(boat);
                        p1.sendTitle("§b§lUHC", "§7Event is §c0 §7minutes in!");
                        pre.remove(p1);
                        nofall.remove(p1);
                    }
                    return true;
                 }
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c5 minutes §7in!");
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Everyone has been §ahealed §7enjoy!");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.setHealth(p1.getMaxHealth());
                        p1.sendTitle("§b§lUHC", "§7Final heal applyed!");
                    }
                          }     
                  },6000L);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c10 minutes §7in!");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.sendTitle("§b§lUHC", "§7Event is §c10 §7minutes in!");
                    }
                          }     
                  },12000L);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c20 minutes §7in!");
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7PVP is now §aenabled§7! good luck.");
                    p.performCommand("pvp global on");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.sendTitle("§b§lUHC", "§7PVP is now enabled! good luck.");
                    }
                          }     
                  },24000L);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c30 minutes §7in!");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.sendTitle("§b§lUHC", "§7Event is §c30 §7minutes in!");
                    }
                          }     
                  },36000L);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c40 minutes §7in!");
                    for (Player p1 : Bukkit.getServer().getOnlinePlayers()) {
                        p1.sendTitle("§b§lUHC", "§7Event is §c40 §7minutes in!");
                    }
                          }     
                  },48000L);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c50 minutes §7in!");
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Border is shrinking to §c250x250 §7blocks!");
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7The border will reach §c250x250 §7in §c5 minutes§7!");
                    p.performCommand("worldborder set 250 300");
                          }     
                  },600000L);
                      Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                          @Override
                          public void run() {
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Event is §c60 minutes §7in!");
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7Border is shrinking to §c75x75 §7blocks!");
                    p.getServer().broadcastMessage("§bScyle§lUHC §8» §7The border will reach §c75x75 §7in §c5 minutes§7!");
                    p.performCommand("worldborder set 75 300");
                          }     
                  },72000L);
                    return false;
          }
            return true;
    }
            return true;
        }
        @EventHandler
        public void onMove(PlayerMoveEvent e){
            if(pre.contains(e.getPlayer())) {
                e.getPlayer().teleport(e.getPlayer());
            }
        }
        @EventHandler(priority = EventPriority.HIGH)
        public void onFallDamage(EntityDamageEvent event){
            if(nofall.contains(event.getEntity())) {
                if(event.getEntity() instanceof Player && event.getCause() == DamageCause.FALL)
                    event.setCancelled(true);   
            }
        }
    }
     
  4. Offline

    Lolmewn

  5. Offline

    timsmans

    I tried to fix it but i just can't get it working
     
  6. Offline

    GamerzKing

    • Don't abuse static. Instead use a getter and setter to get the ArrayList.
    • Don't create an ArrayList with a complete Player object, as it is known to cause memory leaks. Instead, just simply use their UUID.
    • Don't blind cast the sender (CommandSender) to your player (Player). Check if it's actually a Player before the casting. If you execute the command from the console, you will get errors.
    • Use the ChatColor enum or the translateAlternateColorCodes instead of directly using the symbol. If Mojang changed the color symbol, that would be a pain to change. Also, the symbol isn't supported by all operating systems, and can corrupt your file if you aren't careful.
    • Follow Java naming conventions, and name your variables in camelCase form.
     
Thread Status:
Not open for further replies.

Share This Page