Scoreboard MiniGame Win

Discussion in 'Plugin Development' started by GalaxyDevelope, Nov 27, 2014.

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

    GalaxyDevelope

    So my mini-game (Call of Duty) is a scoreboard mini-game that I coded in Java during my free time.
    I want it so that if the score is (lets say) 10, then the player would win and the scoreboard will get reset.
    Code:
    package com.GalaxyDevelope.COD;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerRespawnEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    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 COD extends JavaPlugin implements Listener {
        @SuppressWarnings({ "deprecation"})
        @Override
        public void onEnable() {
            System.out.println("Call of Duty Has Been Enabled!");
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
       
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard boardA = manager.getNewScoreboard();
        Scoreboard boardB = manager.getNewScoreboard();
        Team teamA = boardA.registerNewTeam("Red");
        Team teamB = boardB.registerNewTeam("Blue");
        Objective objA = boardA.registerNewObjective("§aCOD", "playerKillCount");
        Objective objB = boardB.registerNewObjective("§aCOD", "playerKillCount");
        objA.setDisplaySlot(DisplaySlot.SIDEBAR);
        objB.setDisplaySlot(DisplaySlot.SIDEBAR);
        Score scoreA = objA.getScore(ChatColor.GREEN + "Kills:"); //Get a fake offline player
        Score scoreB = objB.getScore(ChatColor.GREEN + "Kills:"); //Get a fake offline player
        scoreA.setScore(0);
        scoreB.setScore(0);
        int i = 0;
                for(Player player : Bukkit.getOnlinePlayers()) {
                    if(i < Bukkit.getOnlinePlayers().length / 2) {
                        //ADD TO RED TEAM
                        player.sendMessage(ChatColor.DARK_RED + "You Have Been Added To The Red Team");
                        teamA.addPlayer(player);
                        teamA.setAllowFriendlyFire(false);
                        teamA.setPrefix(ChatColor.DARK_RED + "[RED] ");
                        Location location = player.getLocation();
                        location.setX(-1145);
                        location.setY(63);
                        location.setZ(390);
                        player.teleport(location);
                        player.setScoreboard(boardA);
                        if(teamA.hasPlayer(player) && objA.equals(10)) {
                            boardA.resetScores(player);
                            boardB.resetScores(player);
                            Bukkit.broadcastMessage(ChatColor.DARK_RED + "The Red Team Wins!");
                        }
                    } else {
                        //ADD TO BLUE TEAM
                        player.sendMessage(ChatColor.AQUA + "You Have Been Added To The Blue Team");
                        teamB.addPlayer(player);
                        teamB.setAllowFriendlyFire(false);
                        teamB.setPrefix(ChatColor.AQUA + "[BLUE] ");
                        Location location = player.getLocation();
                        location.setX(-950);
                        location.setY(63);
                        location.setZ(378);
                        player.teleport(location);
                        player.setScoreboard(boardB);
                        if(scoreB.equals(10)) {
                            boardA.resetScores(player);
                            boardB.resetScores(player);
                            Bukkit.broadcastMessage(ChatColor.AQUA + "The Blue Team Wins!");
                        }
                    }
                    i++;
     
    }
    }
        @SuppressWarnings("deprecation")
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(commandLabel.equalsIgnoreCase("COD") && sender.hasPermission("cod.use")) {
           
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard boardA = manager.getNewScoreboard();
            Scoreboard boardB = manager.getNewScoreboard();
            Team teamA = boardA.registerNewTeam("Red");
            Team teamB = boardB.registerNewTeam("Blue");
            Objective objA = boardA.registerNewObjective("COD", "playerKillCount");
            Objective objB = boardB.registerNewObjective("COD", "playerKillCount");
            objA.setDisplaySlot(DisplaySlot.SIDEBAR);
            objB.setDisplaySlot(DisplaySlot.SIDEBAR);
            Score scoreA = objA.getScore(ChatColor.GREEN + "Kills:"); //Get a fake offline player
            Score scoreB = objB.getScore(ChatColor.GREEN + "Kills:"); //Get a fake offline player
            scoreA.setScore(0);
            scoreB.setScore(0);
            int i = 0;
                    for(Player player : Bukkit.getOnlinePlayers()) {
                        if(i < Bukkit.getOnlinePlayers().length / 2) {
                            //ADD TO RED TEAM
                            player.sendMessage(ChatColor.DARK_RED + "You Have Been Added To The Red Team");
                            teamA.addPlayer(player);
                            teamA.setAllowFriendlyFire(false);
                            teamA.setPrefix(ChatColor.DARK_RED + "[RED] ");
                            Location location = player.getLocation();
                            location.setX(-1145);
                            location.setY(63);
                            location.setZ(390);
                            player.teleport(location);
                            player.setScoreboard(boardA);
                            if(scoreA.equals(10)) {
                                boardA.resetScores(player);
                                boardB.resetScores(player);
                                Bukkit.broadcastMessage(ChatColor.DARK_RED + "The Red Team Wins!");
                            }
                        } else {
                            //ADD TO BLUE TEAM
                            player.sendMessage(ChatColor.AQUA + "You Have Been Added To The Blue Team");
                            teamB.addPlayer(player);
                            teamB.setAllowFriendlyFire(false);
                            teamB.setPrefix(ChatColor.AQUA + "[BLUE] ");
                            Location location = player.getLocation();
                            location.setX(-950);
                            location.setY(63);
                            location.setZ(378);
                            player.teleport(location);
                            player.setScoreboard(boardB);
                            if(scoreB.equals(10)) {
                                boardA.resetScores(player);
                                boardB.resetScores(player);
                                Bukkit.broadcastMessage(ChatColor.AQUA + "The Blue Team Wins!");
                            }
                        }
                        i++;
     
        }
            }
            return false;
        }
        @SuppressWarnings("deprecation")
        public void scoreboard(){
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard boardA = manager.getNewScoreboard();
            Scoreboard boardB = manager.getNewScoreboard();
            Team teamA = boardA.registerNewTeam("Red");
            Team teamB = boardB.registerNewTeam("Blue");
            Objective objA = boardA.registerNewObjective("COD", "playerKillCount");
            Objective objB = boardB.registerNewObjective("COD", "playerKillCount");
            objA.setDisplaySlot(DisplaySlot.SIDEBAR);
            objB.setDisplaySlot(DisplaySlot.SIDEBAR);
            Score scoreA = objA.getScore(ChatColor.GREEN + "Kills:"); //Get a fake offline player
            Score scoreB = objB.getScore(ChatColor.GREEN + "Kills:"); //Get a fake offline player
            scoreA.setScore(0);
            scoreB.setScore(0);
            int i = 0;
                    for(Player player : Bukkit.getOnlinePlayers()) {
                        if(i < Bukkit.getOnlinePlayers().length / 2) {
                            //ADD TO RED TEAM
                            player.sendMessage(ChatColor.DARK_RED + "You Have Been Added To The Red Team");
                            teamA.addPlayer(player);
                            teamA.setAllowFriendlyFire(false);
                            teamA.setPrefix(ChatColor.DARK_RED + "[RED] ");
                            Location location = player.getLocation();
                            location.setX(-1145);
                            location.setY(63);
                            location.setZ(390);
                            player.teleport(location);
                            player.setScoreboard(boardA);
                            if(teamA.getPlayers().contains(player) && scoreA.equals(10)) {
                                boardA.resetScores(player);
                                boardB.resetScores(player);
                                Bukkit.broadcastMessage(ChatColor.DARK_RED + "The Red Team Wins!");
                            }
                        } else {
                            //ADD TO BLUE TEAM
                            player.sendMessage(ChatColor.AQUA + "You Have Been Added To The Blue Team");
                            teamB.addPlayer(player);
                            teamB.setAllowFriendlyFire(false);
                            teamB.setPrefix(ChatColor.AQUA + "[BLUE] ");
                            Location location = player.getLocation();
                            location.setX(-950);
                            location.setY(63);
                            location.setZ(378);
                            player.teleport(location);
                            player.setScoreboard(boardB);
                            if(scoreB.equals(10)) {
                                boardA.resetScores(player);
                                boardB.resetScores(player);
                                Bukkit.broadcastMessage(ChatColor.AQUA + "The Blue Team Wins!");
                            }
                        }
                        i++;
     
        }
        }
        @EventHandler
        public void onjoin(PlayerJoinEvent e){
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard boardA = manager.getNewScoreboard();
            Scoreboard boardB = manager.getNewScoreboard();
            Objective objA = boardA.registerNewObjective("COD", "playerKillCount");
            Objective objB = boardB.registerNewObjective("COD", "playerKillCount");
            objA.setDisplaySlot(DisplaySlot.SIDEBAR);
            objB.setDisplaySlot(DisplaySlot.SIDEBAR);
            Player p = e.getPlayer();
            p.setScoreboard(boardA);
        }
        public void onPlayerRespawn(PlayerRespawnEvent e){
            Player player = e.getPlayer();
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard boardA = manager.getNewScoreboard();
            Scoreboard boardB = manager.getNewScoreboard();
            Team teamA = boardA.registerNewTeam("Red");
            Objective objA = boardA.registerNewObjective("COD", "playerKillCount");
            Objective objB = boardB.registerNewObjective("COD", "playerKillCount");
            objA.setDisplaySlot(DisplaySlot.SIDEBAR);
            objB.setDisplaySlot(DisplaySlot.SIDEBAR);
            if(teamA.hasPlayer(player)) {
                Location location = player.getLocation();
                location.setX(-1145);
                location.setY(63);
                location.setZ(390);
                player.teleport(location);
            }
            else {
                Location location = player.getLocation();
                location.setX(-950);
                location.setY(63);
                location.setZ(378);
                player.teleport(location);
            }
        }
    }
     
  2. Offline

    mrCookieSlime

    Moved to Plugin Developement.
     
  3. Offline

    mine-care

    First of all please use a method to do blocks of code over and over and over.... Also, i dont have the time to read and edit the code. but the idea is that when someone reaches 10 kills, add him in a arraylist, if the arraylist size is == 10 then stop the game and show the scoreboard to the players.
    Good luck : )
     
Thread Status:
Not open for further replies.

Share This Page