public GUIban(RCon rcon, int id, string name, string guid, string ip, bool online) { InitializeComponent(); _rcon = rcon; _rcon.Pending = name; _ban = new Ban(id, name, guid, ip, online); if (_ban.Online) this.Text = "Ban " + _ban.Name; else this.Text = "Ban " + _ban.Name + " (Offline)"; try { span.SelectedIndex = Settings.Default.span; } catch { Settings.Default.span = 0; } if (_ban.Online) { if (Settings.Default.banGUID && Settings.Default.banIP) mode.SelectedIndex = 2; if (Settings.Default.banGUID) mode.SelectedIndex = 0; else if (Settings.Default.banIP) mode.SelectedIndex = 1; } else { mode.SelectedIndex = 0; mode.Enabled = false; } }
private void checkMessage(string message, bool ban) { string[] check; if (ban) { check = new string[Settings.Default.autoBan.Count]; Settings.Default.autoBan.CopyTo(check, 0); } else { check = new string[Settings.Default.autoKick.Count]; Settings.Default.autoKick.CopyTo(check, 0); } foreach (string item in check) { bool found = false; string msg = ""; try { System.Text.RegularExpressions.Match r = new System.Text.RegularExpressions.Regex(item.ToLower()).Match(message.ToLower()); found = item.Length > 3 && r.Success; if (found && r.Groups.Count > 1) { msg = r.Groups[1].Value; } else { msg = r.Value; } } catch { found = false; } if (found) { string name = message.Split(' ')[1].Replace(":", ""); Player player = null; foreach (Player p in _players) { if (!name.Equals("") && p.name.Equals(name)) { player = p; break; } } if (player != null) { if (ban) { _form.Log(String.Format(Resources.Strings.Autoban_for, player.name, item), LogType.Console, true); Ban _ban = new Ban(player.number, player.name, player.guid, "", 0, String.Format(Resources.Strings.Autoban_for, "", msg), true); this.Ban(_ban); } else { _form.Log(String.Format(Resources.Strings.Autokick_for, player.name, item), LogType.Console, true); Kick _kick = new Kick(player.number, player.name, String.Format(Resources.Strings.Autokick_for, "", msg)); this.kick(_kick); } } break; } } }
public void Ban(Ban ban) { string name = ""; if (!string.IsNullOrEmpty(Settings.Default.name)) name = "[" + Settings.Default.name + "] "; if (ban.Online) { if (!string.IsNullOrEmpty(ban.GUID) && !string.IsNullOrEmpty(ban.IP)) { _client.SendCommand(string.Format("banIP {0} {1} {2}", ban.ID, ban.Duration, name + ban.Reason)); _client.SendCommand(string.Format("addBan {0} {1} {2}", ban.GUID, ban.Duration, name + ban.Reason)); } else if (!string.IsNullOrEmpty(ban.GUID)) _client.SendCommand(string.Format("ban {0} {1} {2}", ban.ID, ban.Duration, name + ban.Reason)); else if (!string.IsNullOrEmpty(ban.IP)) _client.SendCommand(string.Format("banIP {0} {1} {2}", ban.ID, ban.Duration, name + ban.Reason)); if (_form != null) _form.Log("Banned " + ban.Name + " from the server!", LogType.Console, false); } else { _client.SendCommand(string.Format("addBan {0} {1} {2}", ban.GUID, ban.Duration, name + ban.Reason)); if (_form != null) _form.Log("Banned " + ban.Name + " from the server! (Offline)", LogType.Console, false); } }
private void quickBan_click(object sender, EventArgs args) { try { ListViewItem item = playerList.SelectedItems[0]; int id = Int32.Parse(item.SubItems[1].Text); String ip = item.SubItems[2].Text; String guid = item.SubItems[4].Text; String name = item.SubItems[5].Text; rcon.Pending = name; Ban ban = new Ban(id, name, guid, "", Settings.Default.quickBan, "Banned for " + Settings.Default.quickBan + " minute(s).", true); rcon.Ban(ban); } catch(Exception e) { this.Log("An error occurred, please try again.", LogType.Console, false); this.Log(e.Message, LogType.Debug, false); this.Log(e.StackTrace, LogType.Debug, false); } }