public void Test_StoreBan_WithSecondsToExpire_InsertsCorrectExpiresOn() { var repoMock = new Mock <IBansRepository>(); var time = new DateTime(2020, 1, 1); var timeMock = MockTime(time); var subject = Subject(repoMock, timeMock); var secondsToAdd = 60; var ban = new Bans { Id = 1, Userid = 1, Name = "any", ByUserid = 1, ByName = "any", ExpiresOn = time.AddSeconds(secondsToAdd), Reason = "any", BannedOn = time }; subject.StoreBan(ban.Userid, ban.Name, ban.ByUserid, ban.ByName, secondsToAdd, ban.Reason); repoMock.Verify(s => s.Create( It.Is <Bans>(b => b.ExpiresOn == ban.ExpiresOn) ), Times.Once); }
public void AddBan(string mask) { if (!Bans.Contains(mask)) { Bans.Add(mask); } }
public ShikimoriClient(ILogger logger, ClientSettings settings) { Client = new ApiClient(logger, settings); Achievements = new Achievements(Client); Animes = new Animes(Client); Bans = new Bans(Client); Calendars = new Calendars(Client); Characters = new Characters(Client); Clubs = new Clubs(Client); Comments = new Comments(Client); Constants = new Constants(Client); Dialogs = new Dialogs(Client); Favorites = new Favorites(Client); Forums = new Forums(Client); Friends = new Friends(Client); Genres = new Genres(Client); Mangas = new Mangas(Client); Messages = new Messages(Client); People = new People(Client); Publishers = new Publishers(Client); Ranobe = new Ranobe(Client); Stats = new Stats(Client); Studios = new Studios(Client); Styles = new Styles(Client); TopicIgnores = new TopicIgnores(Client); Topics = new Topics(Client); UserImages = new UserImages(Client); UserRates = new UserRates(Client); Users = new Users(Client); Videos = new Videos(Client); }
private void UnbanHero(Hero hero) { if (hero == null) { return; } bool removed = false; for (int i = 0; i < Bans.Count; i++) { if (Bans[i] == hero) { Bans.RemoveAt(i); removed = true; break; } } if (!removed) { return; } AvailableAllies.Add(new HeroSelectionViewModel(hero)); AvailableEnemies.Add(new HeroSelectionViewModel(hero)); Refresh(); }
private void BanHero(Hero hero) { if (hero == null) { return; } if (PickedAllies.Any(h => h.Hero == hero) || PickedEnemies.Any(h => h.Hero == hero) || Bans.Any(h => h == hero)) { return; } for (int i = 0; i < AvailableAllies.Count; i++) { if (AvailableAllies[i].Hero == hero) { AvailableAllies.RemoveAt(i); break; } } for (int i = 0; i < AvailableEnemies.Count; i++) { if (AvailableEnemies[i].Hero == hero) { AvailableEnemies.RemoveAt(i); break; } } Bans.Add(hero); }
public virtual bool Unban(PlayerMobile user, bool message = true) { if (!Bans.Remove(user)) { return(false); } if (message) { InternalMessage(user, "You are no longer banned from the channel '{0}'", Name); } OnUnbanned(user, message); return(true); }
private void Blwvm_CloseView() { using (MyDBContext db = new MyDBContext()) { var res = (from b in db.Bans select new BanVM() { ban = b }).LastOrDefault(); if (res != Bans.LastOrDefault()) { Bans.Add(res); } } }
private async Task BannedWordsDrop(SocketMessage msg) { var message = msg as SocketUserMessage; var author = msg.Author as SocketGuildUser; var user = author as SocketUser; string[] badWords = File.ReadAllLines(@"BannedWords.txt"); if (badWords.Any(msg.Content.Contains)) { //ban time constant represents 2 min, not 2 milliseconds. Make sure that the timer creation compensates ulong banTime = UserAccounts.GetAccountBanCount(user) * 2; var role = author.Guild.Roles.FirstOrDefault(x => x.Name.ToString() == "Being Dropped Out of a Helicopter"); Bans.CreateUserBan(author.Id, banTime); Console.WriteLine("Banned word detected"); await msg.Channel.SendMessageAsync("Dropped from the heli, f****t."); } }
public override void Reset() { Name = "Chat"; Summary = ""; Token = UID.ToString(CultureInfo.InvariantCulture); Available = true; ProfanityAction = ProfanityAction.None; TextColor = KnownColor.LawnGreen; TextHue = 85; UserLimit = 500; SpamDelay = TimeSpan.FromSeconds(5.0); History.Clear(); Bans.Clear(); }
public void StoreBan(ulong uid, string name, ulong byuid, string byname, int secondsadd, string reason) { var ban = new Bans { Userid = uid, Name = name, ByUserid = byuid, ByName = byname, ExpiresOn = _timeProvider.UtcNow.AddSeconds(secondsadd), Reason = reason }; if (secondsadd == 0) { ban.ExpiresOn = null; // because c# is was not happy } _bansRepository.Create(ban); }
public void GeneratePicks() { PlayerOptions.Clear(); for (int i = 0; i < Players.Count; i++) { Picks picks = new Picks(NumCivsPerPerson); for (int j = 0; j < NumCivsPerPerson; j++) { Civilization civ; do { civ = (Civilization)gen.Next(0, 43); } while (Bans.Contains(civ) || duplicate(civ, picks) || otherCiv(civ)); picks.picks[j] = civ; } PlayerOptions.Add(picks); } }
private void ReInit() { AvailableAllies.Clear(); AvailableEnemies.Clear(); PickedAllies.Clear(); PickedEnemies.Clear(); Bans.Clear(); if (_stats == null) { AvailableMaps = Array.Empty <Map>(); SelectedMap = null; TheoWinRate = null; return; } AvailableMaps = new [] { new Map(-1, "") }.Concat(_stats.Maps.Values).ToList(); foreach (var hero in _stats.Heroes.Values) { AvailableAllies.Add(new HeroSelectionViewModel(hero)); AvailableEnemies.Add(new HeroSelectionViewModel(hero)); } Refresh(); }
public virtual bool Ban(PlayerMobile user, TimeSpan duration, bool kick = true, bool message = true) { if (kick) { Kick(user, false, message); } if (Bans.ContainsKey(user)) { Bans[user] = duration <= TimeSpan.Zero ? DateTime.MaxValue : DateTime.Now + duration; return(false); } Bans.Add(user, duration <= TimeSpan.Zero ? DateTime.MaxValue : DateTime.Now + duration); if (message) { InternalMessage(user, "You have been banned from the channel '{0}' until {1}", Name, Bans[user].ToSimpleString()); } OnBanned(user, message); return(true); }
/// <summary> /// Bans the user with a specific ban object. /// </summary> public void Ban(ClientBan ban) { Bans.Add(ban); }
private bool IsCommunityBanned(Bans b) => b.Players[0].CommunityBanned;
private bool IsVacBanned(Bans b) => b.Players[0].VacBanned;
public virtual bool IsBanned(PlayerMobile user) { return(user != null && Bans.ContainsKey(user) && Bans[user] > DateTime.Now); }
public override Object onReceive() { byte[] assetDigest = stream.ReadStarByteArray(); var claim = stream.ReadStarVariant(); byte[] UUID = stream.ReadStarUUID(); string name = stream.ReadStarString(); string species = stream.ReadStarString(); byte[] shipWorld = stream.ReadStarByteArray(); string account = stream.ReadStarString(); // Identify player to server this.client.playerData.uuid = Utils.ByteArrayToString(Utils.HashUUID(UUID)).ToLower(); this.client.playerData.name = name; this.client.playerData.account = account; User userPData = Users.GetUser(name, this.client.playerData.uuid, this.client.playerData.ip); if (StarryboundServer.config.maxClients <= StarryboundServer.clientCount) { if (!userPData.getGroup().hasPermission("admin.reservedlist") || StarryboundServer.clientCount == (StarryboundServer.serverConfig.maxPlayers - 1)) { this.client.rejectPreConnected("The server is full. Please try again later."); return(false); } } string[] reasonExpiry = Bans.checkForBan(new string[] { name, this.client.playerData.uuid, this.client.playerData.ip }); if (reasonExpiry.Length == 2 && !userPData.getGroup().hasPermission("admin.bypassban")) { this.client.rejectPreConnected("You are " + ((reasonExpiry[1] == "0") ? "permanently" : "temporarily") + " banned from this server.\nReason: " + reasonExpiry[0]); return(false); } string sAssetDigest = Utils.ByteArrayToString(assetDigest); StarryboundServer.logDebug("AssetDigest", "[" + this.client.playerData.client + "] [" + sAssetDigest + "]"); if (!StarryboundServer.config.allowModdedClients) { if (sAssetDigest != StarryboundServer.unmoddedClientDigest) { this.client.rejectPreConnected("Modded client detected: You cannot modify or add asset files or mods. Please delete your entire Starbound folder and reinstall Starbound to join."); return(false); } } if (String.IsNullOrWhiteSpace(this.client.playerData.name)) { this.client.rejectPreConnected("You may not have a blank name."); return(false); } if (!StarryboundServer.config.allowSpaces) { if (this.client.playerData.name.Contains(" ")) { this.client.rejectPreConnected("You may not have spaces in your name on this server."); return(false); } } if (!StarryboundServer.config.allowSymbols) { Regex r = new Regex("^[a-zA-Z0-9_\\- ]*$"); if (!r.IsMatch(this.client.playerData.name)) { this.client.rejectPreConnected("You may not have special characters in your name on this server."); return(false); } } if (!userPData.getGroup().hasPermission("admin.bypassban")) { foreach (string bannedUnamePhrase in StarryboundServer.config.bannedUsernames) { if (this.client.playerData.name.ToLower().Contains(bannedUnamePhrase.ToLower())) { this.client.rejectPreConnected("Your name contains a phrase that is banned on this server. (" + bannedUnamePhrase + ")"); return(false); } } } if (!String.IsNullOrEmpty(account)) { this.client.rejectPreConnected("You need clear the server account field of all text."); return(false); } try { PlayerData pData = this.client.playerData; pData.isMuted = userPData.isMuted; pData.canBuild = userPData.canBuild; pData.lastOnline = userPData.lastOnline; pData.group = userPData.getGroup(); pData.freeFuel = userPData.freeFuel; pData.receivedStarterKit = userPData.receivedStarterKit; pData.privateShip = userPData.privateShip; pData.shipBlacklist = userPData.shipBlacklist; pData.shipWhitelist = userPData.shipWhitelist; if (userPData.uuid != pData.uuid && userPData.groupName != StarryboundServer.defaultGroup) { this.client.rejectPreConnected("Connection Failed: You cannot use \"" + pData.name + "\" on this server."); return(false); } } catch (Exception) { this.client.rejectPreConnected("Connection Failed: A internal server error occurred (2)"); return(false); } foreach (Client checkClient in StarryboundServer.getClients()) { if (checkClient.playerData.name.ToLower() == name.ToLower()) { if (userPData.groupName != StarryboundServer.defaultGroup) { checkClient.delayDisconnect("Someone else is attempting to connect with your name. Disconnecting."); this.client.rejectPreConnected("We have disconnected the old player on the server. Please try again in 15 seconds."); } else { this.client.rejectPreConnected("Someone is already logged in with this name."); } } } return(null); }
public virtual bool IsBanned() { // TODO Implement IP & Machine ID Bans return(Bans.Any(x => x.ExpiresAt > DateTime.Now)); }
private int DaysSinceBan(Bans b) => b.Players[0].DaysSinceLastBan;
public void Create(Bans ban) { _databaseContext.Bans.Add(ban); _databaseContext.SaveChanges(); Logger.Write($"[Create - Bans] {ban.Userid} {ban.ByUserid}"); }
public override Task DivideLine(string line) { if (line.Contains(" CITC ")) { CitC.Add(line); } else if (line.Contains(" LOGIN: "******" LOGIN MISC: ")) { LoginMisc.Add(line); } else if (line.Contains(" QUIT MISC: ")) { QuitMisc.Add(line); } else if (line.Contains(" (AA)(BAN) ")) { Bans.Add(line); } else if (line.Contains(" (AA)(MUTE) ")) { Mutes.Add(line); } else if (line.Contains(" (AA)(JAIL) ")) { Jails.Add(line); } else if (line.Contains(" (AA)(CONTACTADMIN) ")) { Cad.Add(line); } else if (line.Contains(" (AA)(SUPPORT) ")) { Support.Add(line); } else if (line.Contains(" opened '") && line.Contains(" ms")) { LogsFetched.Add(line); } else if (line.Contains(" [CM] ") && line.Contains(" set ")) { Reports.Add(line); } else if (line.Contains("[Complaint ID") && line.Contains(" replied with ")) { Reports.Add(line); } else if (line.Contains(" warped to ") || line.Contains(" WL: ")) { if (line.Contains("WL: 0") || line.Contains("with 0 stars Dim: 0")) { PossibleAbuse.Add(line); } else { RegisteredAbuse.Add(line); } } /*else if (line.Contains(" warped to ") && !line.Contains(" WL: 0") && !line.Contains(" (EM) ")) * RegisteredAbuse.Add(line); * else if (line.Contains(" warped to ") && line.Contains(" WL: 0") && !line.Contains(" (EM) ")) * PossibleAbuse.Add(line); * else if (line.Contains(" ST ") && (!line.Contains("from 0") && line.Contains("wanted points."))) * RegisteredAbuse.Add(line);*/ else if (line.Contains(" ST ") && line.Contains("from 0 wanted points.")) { PossibleAbuse.Add(line); } else if (line.Contains("abuse") || line.Contains("recommendation") || line.Contains("leak") || line.Contains("bias") || line.Contains("accept") || line.Contains("jcm") || line.Contains("rcm") || line.Contains("scm") ) { PossibleAbuse.Add(line); } else if (line.Contains("object. ID:")) { DutyRelated.Add(line); } else if (line.Contains("changed account:")) { DutyRelated.Add(line); } else if (line.Contains("changed the password of account")) { DutyRelated.Add(line); } else if (line.Contains("checked the PIN code of account")) { DutyRelated.Add(line); } else if (line.Contains("zone 0 p")) { DutyRelated.Add(line); } else if (line.Contains(" (PP) ")) { PendingPunishments.Add(line); } else { Other.Add(line); } return(Task.CompletedTask); }
public void AddBan(Ban ban) { Bans.Add(ban); }
private int GameBanCount(Bans b) => b.Players[0].NumberOfGameBans;
public IQueryable <ChessBan> GetBansAgainst(int id) => Bans.AsQueryable().Where(x => x.TargetId == id);
private void reloadBans() { Bans.allBans = new Dictionary <int, Ban>(); Bans.ProcessBans(); this.client.sendChatMessage(Bans.allBans.Count + " ban(s) have been loaded."); }
public void RemoveBan(string mask) { Bans.Remove(mask); }
private bool IsTradeBanned(Bans b) => b.Players[0].EconomyBan == "banned";
public void Add(Ban item) => Bans.Add(item);
private int VacBanCount(Bans b) => b.Players[0].NumberOfVacBans;