public static void CaptureFlag(Player p, CTFTeam team)
 {
     if (!gameOn) { return; }
     team.hasFlag = null;
     ReturnFlag(team, false);
     p.carryingFlag = false;
     Player.GlobalMessage("&f- " + p.color + p.name + "&S captured the " + team.color + team.name + "&S flag!");
     Server.s.Log(p.name + " captured the " + team.name + " flag!");
     p.Reward(captureFlagReward);
     p.team.points++;
     UpdateScore();
     p.captureStreak++;
     p.captureCount++;
     if (team.capturedFlag == p)
     {
         Player.GlobalMessage("&f- " + p.color + p.name + "&6 is on a streak of &5" + p.captureStreak + "&6!");
     }
     else
     {
         p.captureStreak = 1;
     }
     team.capturedFlag = p;
     if (p.team.points >= scoreLimit)
     {
         GameEnd(p.team);
     }
 }
 public static void TakeFlag(Player p, CTFTeam team)
 {
     if (!gameOn) { return; }
     if (p.justDroppedFlag) { return; }
     if (p.carryingFlag) { return; }
     if (redTeam.players.Count < 1 || blueTeam.players.Count < 1)
     {
             p.SendMessage("&f- &SYou cannot take the flag with no opposition!");
         return;
     }
     team.hasFlag = p;
     team.flagIsHome = false;
     p.carryingFlag = true;
     Player.GlobalMessage("&f- " + p.color + p.name + "&S took the " + team.color + team.name + "&S flag!");
     Server.s.Log(p.name + " took the " + team.name + " flag!");
     p.Reward(takeFlagReward);
 }