protected void KickUnsynced(TasClient tas) { for (int i = 0; i < users.Count; ++i) { TasClient.UserBattleStatus u; if (tas.IsConnected && tas.GetBattle().ContainsUser(users[i], out u)) { if (u.SyncStatus == TasClient.SyncStatuses.Unknown && (DateTime.Now - times[i]) > TimeSpan.FromSeconds(timeout)) { tas.Kick(users[i]); } } } }
internal static int FilterUsers(string[] words, TasClient tas, Spring spring, out string[] vals, out int[] indexes) { TasClient.Battle b = tas.GetBattle(); string[] temp = new string[b.Users.Count]; int i = 0; foreach (TasClient.UserBattleStatus u in b.Users) { temp[i++] = u.name; } return Filter(temp, words, out vals, out indexes); }
public AbstractPoll(TasClient tas, Spring spring, AutoHost ah) { this.tas = tas; this.spring = spring; this.ah = ah; initialUserCount = 0; var b = tas.GetBattle(); if (b != null) { foreach (var us in b.Users) { if (us.name != tas.UserName) { users.Add(us.name); votes.Add(0); if (!us.IsSpectator) initialUserCount++; } } } }
public void FindLinks(string[] words, FileType type, TasClient tas, TasSayEventArgs e) { if (words.Length == 0) { var b = tas.GetBattle(); if (b == null) return; Program.main.AutoHost.Respond(e, string.Format("Getting SpringDownloader mirrors for currently hosted {0}", type)); if (type == FileType.Map) RequestLink(new LinkRequest(b.Map.Checksum, e)); else RequestLink(new LinkRequest(b.Mod.Checksum, e)); } else { List<string> items; if (type == FileType.Map) items = new List<string>(Program.main.Spring.UnitSyncWrapper.MapList.Keys); else items = new List<string>(Program.main.Spring.UnitSyncWrapper.ModList.Keys); int[] resultIndexes; string[] resultVals; int cnt = AutoHost.Filter(items.ToArray(), words, out resultVals, out resultIndexes); if (cnt == 0) Program.main.AutoHost.Respond(e, string.Format("No such {0} found", type)); Program.main.AutoHost.Respond(e, string.Format("Getting SpringDownloader mirrors for {0}, please wait", resultVals[0])); int hash = type == FileType.Map ? Program.main.Spring.UnitSyncWrapper.MapList[resultVals[0]].Checksum : Program.main.Spring.UnitSyncWrapper.ModList[resultVals[0]].Checksum; RequestLink(new LinkRequest(hash, e)); } }
public void Apply(TasClient tas, Ladder ladder) { Battle b = tas.GetBattle(); if (b == null) return; BattleDetails d = b.Details; if (startingMetal.HasValue) d.StartingMetal = startingMetal.Value; if (startingEnergy.HasValue) d.StartingEnergy = startingEnergy.Value; if (maxUnits.HasValue) d.MaxUnits = maxUnits.Value; if (startPos.HasValue) d.StartPos = startPos.Value; if (endCondition.HasValue) d.EndCondition = endCondition.Value; if (limitDgun.HasValue) d.LimitDgun = limitDgun.Value; if (diminishingMM.HasValue) d.DiminishingMM = diminishingMM.Value; if (ghostedBuildings.HasValue) d.GhostedBuildings = ghostedBuildings.Value; d.Validate(); int mint, maxt; if (ladder != null) d = ladder.CheckBattleDetails(d, out mint, out maxt); tas.UpdateBattleDetails(d); if (enableAllUnits) tas.EnableAllUnits(); if (disabledUnits.Length > 0) tas.DisableUnits(UnitInfo.ToStringList(disabledUnits)); foreach (string s in perform) tas.Say(TasClient.SayPlace.Battle, "", s, false); }
internal static int FilterUsers(string[] words, TasClient tas, Spring spring, out string[] vals, out int[] indexes) { var b = tas.GetBattle(); var temp = new string[b.Users.Count]; int i = 0; foreach (var u in b.Users) temp[i++] = u.name; return Filter(temp, words, out vals, out indexes); }
public VotePlanet(TasClient tas, Spring spring, AutoHost ah) : base(tas, spring, ah) { this.tas = tas; this.spring = spring; this.ah = ah; var pw = Program.main.PlanetWars; var fact = pw.GetOffensiveFaction(); faction = fact.Name; users.Clear(); votes.Clear(); initialUserCount = 0; var b = tas.GetBattle(); if (b != null) { foreach (var us in b.Users) { if (us.name != tas.UserName && !us.IsSpectator && pw.GetPlayerInfo(us.name).FactionName == faction) { users.Add(us.name); votes.Add(0); initialUserCount++; } } } }
public void Apply(TasClient tas, Ladder ladder) { var b = tas.GetBattle(); if (b == null) return; var d = b.Details; int mint, maxt; if (ladder != null) d = ladder.CheckBattleDetails(d, out mint, out maxt); tas.UpdateBattleDetails(d); if (enableAllUnits) tas.EnableAllUnits(); if (disabledUnits.Length > 0) tas.DisableUnits(UnitInfo.ToStringList(disabledUnits)); foreach (var s in perform) tas.Say(TasClient.SayPlace.Battle, "", s, false); }
public void Apply(TasClient tas) { Battle b = tas.GetBattle(); if (b == null) return; BattleDetails d = b.Details; if (startingMetal.HasValue) d.StartingMetal = startingMetal.Value; if (startingEnergy.HasValue) d.StartingEnergy = startingEnergy.Value; if (maxUnits.HasValue) d.MaxUnits = maxUnits.Value; if (startPos.HasValue) d.StartPos = startPos.Value; if (endCondition.HasValue) d.EndCondition = endCondition.Value; if (limitDgun.HasValue) d.LimitDgun = limitDgun.Value; if (diminishingMM.HasValue) d.DiminishingMM = diminishingMM.Value; if (ghostedBuildings.HasValue) d.GhostedBuildings = ghostedBuildings.Value; d.Validate(); tas.UpdateBattleDetails(d); if (enableAllUnits) tas.EnableAllUnits(); if (disabledUnits.Length > 0) { tas.DisableUnits(UnitInfo.ToStringList(disabledUnits)); } }