Plugin Help CTF Plugin not working right

Discussion in 'Plugin Help/Development/Requests' started by DamnHippo, Feb 6, 2015.

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

    DamnHippo

    Hello,

    I'm working on a CTF plugin, I've ran into an issue witch makes absolutely no sense. When Red team player's bring the blue team's flag back to the base it doesn't work, when blue team bring's red's flag back to base it work's fine. Here is the code that I'm using. (I understand that it's done messy but that's not what I came here for)

    Blue Team code (Works fine)

    Code:
    @EventHandler
        public void BlueBase(PlayerInteractEvent event) {
            if (event.getAction().equals(Action.PHYSICAL)) {
                if (event.getClickedBlock().getTypeId() == 72) {
                    Player player = event.getPlayer();
                    if (blue.contains(player)) {
                        ItemStack is = new ItemStack(Material.WOOL, 1,
                                DyeColor.RED.getData());
                        for (Player p : game) {
    
                        if (player.getInventory().contains(is) && settings.getInvasion().get("RFlags") == "0"){
                                p.sendMessage(prefix + "§6Blue team has collected 1 of 3 Red Flags.");
                                settings.getInvasion().set("RFlags", "1");
                                 settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                                flag.remove(player);
                                player.getInventory().remove(is);
                                player.updateInventory();
                                settings.saveInvasion();
    
                                return;
                        }
                        if (player.getInventory().contains(is) && settings.getInvasion().get("RFlags") == null){
                           
                       
                            p.sendMessage(prefix + "§6Blue team has collected 1 of 3 Red Flags.");
                            settings.getInvasion().set("RFlags", "1");
                             settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                            flag.remove(player);
                            player.getInventory().remove(is);
                            player.updateInventory();
                            settings.saveInvasion();
                            return;
                    }
                        if (player.getInventory().contains(is) && settings.getInvasion().get("RFlags") == "1"){
                            p.sendMessage(prefix + "§6Blue team has collected 2 of 3 Red Flags.");
                            settings.getInvasion().set("RFlags", "2");
                             settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                            flag.remove(player);
                            player.getInventory().remove(is);
                            player.updateInventory();
                       
                            settings.saveInvasion();
                            return;
                    }
                        if (player.getInventory().contains(is) && settings.getInvasion().get("RFlags") == "2"){
                            p.sendMessage(prefix + "§6Blue team has won the game!");
                             settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                            settings.getInvasion().set("BFlags", null);
                            settings.getInvasion().set("RFlags", null);
                            flag.remove(player);
                            settings.saveInvasion();
                            invasion.BlueReset(player, player);
                            invasion.RedReset(player, player);
    
                            for (Player win : blue) {
                                Integer kills = settings.getInvasion().getInt("Stats."
                                        + win.getUniqueId() + ".Kills");
                                settings.getInvasion().set("Stats." + win.getUniqueId()
                                        + ".Kills", kills + 3);
                            }
                            for (Player ps : game) {
                                ps.getInventory().clear();
                                ps.getInventory().setBoots(
                                        new ItemStack(Material.AIR, 1));
                                ps.getInventory().setLeggings(
                                        new ItemStack(Material.AIR, 1));
                                ps.getInventory().setChestplate(
                                        new ItemStack(Material.AIR, 1));
                                ps.getInventory().setHelmet(
                                        new ItemStack(Material.AIR, 1));
                                World ws = Bukkit.getServer().getWorld(
                                        Main.config.getString("spawn.world"));
                                      float yaws = (float)Main.config.getDouble("spawn.yaw");
                                      float pitchs = (float)Main.config.getDouble(
                                        "spawn.pitch");
                                      double xs = Main.config.getDouble("spawn.x");
                                      double ys = Main.config.getDouble("spawn.y");
                                      double zs = Main.config.getDouble("spawn.z");
                                      p.teleport(new Location(ws, xs, ys, zs, yaws, pitchs));
                                p.setHealth(20);
                                p.setFoodLevel(20);
                                p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
                            }
                            game.clear();
                            red.clear();
                            blue.clear();
                            redflag.clear();
                            blueflag.clear();
                            game.clear();
                            lobby.clear();
                            warrior.clear();
                            Red1.clear();
                            Blue1.clear();
                            select.clear();
                            archer.clear();
                            flag.clear();
                            return;
    
                    }
                       
                    }
                    if (!(player.getInventory().contains(Material.WOOL, (byte) 14) && blue.contains(player))) {
                    }
                    if(!(blue.contains(player))){
                        event.setCancelled(false);
                    }
                }
            }
            }
        }

    Red Teams (Not working)

    Code:
        @EventHandler
        public void RedBases(PlayerInteractEvent event) {
            if (event.getAction().equals(Action.PHYSICAL)) {
                if (event.getClickedBlock().getTypeId() == 70) {
                    Player player = event.getPlayer();
                    if (Red1.contains(player.getName())) {
                        ItemStack is = new ItemStack(Material.WOOL, 1,
                                DyeColor.BLUE.getData());
    
                        if (player.getInventory().contains(is) && settings.getInvasion().get("BFlags") == "0"){
                            player.sendMessage(prefix + "§6Red team has collected 1 of 3 Blue Flags.");
                                flag.remove(player.getName());
                                settings.getInvasion().set("BFlags", "1");
                                  settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                                player.getInventory().remove(is);
                                player.updateInventory();
                                settings.saveInvasion();
                                return;
                        }
                        if (player.getInventory().contains(is) && settings.getInvasion().get("BFlags") == null){
                           
                       
                            player.sendMessage(prefix + "§6Red team has collected 1 of 3 Blue Flags.");
                            settings.getInvasion().set("BFlags", "1");
                             settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                             flag.remove(player.getName());
                            player.getInventory().remove(is);
                            player.updateInventory();
                            settings.saveInvasion();
                            return;
                    }
                        if (player.getInventory().contains(is) && settings.getInvasion().get("BFlags") == "1"){
                            player.sendMessage(prefix + "§6Red team has collected 2 of 3 Blue Flags.");
                             settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                            settings.getInvasion().set("BFlags", "2");
                            flag.remove(player.getName());
                            player.getInventory().remove(is);
                            player.updateInventory();
                       
                            settings.saveInvasion();
                            return;
                    }
                        if (player.getInventory().contains(is) && settings.getInvasion().get("BFlags") == "2"){
                            player.sendMessage(prefix + "§6Red team has won the game!");
                             settings.getInvasion().set("Stats." + player.getName().toString() + ".Flags", "False");
                            settings.getInvasion().set("BFlags", null);
                            settings.getInvasion().set("RFlags", null);
                            settings.saveInvasion();
                            invasion.BlueReset(player, player);
                            invasion.RedReset(player, player);
    
                            for (Player win : red) {
                                Integer kills = settings.getInvasion().getInt("Stats."
                                        + win.getUniqueId() + ".Kills");
                                settings.getInvasion().set("Stats." + win.getUniqueId()
                                        + ".Kills", kills + 3);
                            }
                            for (Player p : game) {
                                p.getInventory().clear();
                                p.getInventory().setBoots(
                                        new ItemStack(Material.AIR, 1));
                                p.getInventory().setLeggings(
                                        new ItemStack(Material.AIR, 1));
                                p.getInventory().setChestplate(
                                        new ItemStack(Material.AIR, 1));
                                p.getInventory().setHelmet(
                                        new ItemStack(Material.AIR, 1));
                                World ws = Bukkit.getServer().getWorld(
                                        Main.config.getString("spawn.world"));
                                      float yaws = (float)Main.config.getDouble("spawn.yaw");
                                      float pitchs = (float)Main.config.getDouble(
                                        "spawn.pitch");
                                      double xs = Main.config.getDouble("spawn.x");
                                      double ys = Main.config.getDouble("spawn.y");
                                      double zs = Main.config.getDouble("spawn.z");
                                      p.teleport(new Location(ws, xs, ys, zs, yaws, pitchs));
                                p.setHealth(20);
                                p.setFoodLevel(20);
                                p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
                            }
                            game.clear();
                            red.clear();
                            blue.clear();
                            redflag.clear();
                            blueflag.clear();
                            game.clear();
                            lobby.clear();
                            warrior.clear();
                            Red1.clear();
                            Blue1.clear();
                            select.clear();
                            flag.clear();
                            archer.clear();
                            return;
    
                    }
                       
                    }
                    if (!(player.getInventory().contains(Material.WOOL, (byte) 11) && Red1.contains(player.getName()))) {
                    }
                    if(!(blue.contains(player))){
                        event.setCancelled(false);
                    }
                }
            }
            }
     
  2. Offline

    Yukari

    The clicked block on line 4 is different between the versions, is the red one supposed to be a diamond block and the blue on a crafting table?

    Other than that, put some print statements in it and see where it stops working.
     
Thread Status:
Not open for further replies.

Share This Page