void HandleCheck(Player p, string[] args, CommandData data) { if (args.Length != 2) { p.Message("You need to provide a player's name."); return; } if (!CheckExtraPerm(p, data, 1)) { return; } string target = PlayerDB.MatchNames(p, args[1]); if (target == null) { return; } if (!File.Exists("extra/reported/" + target + ".txt")) { p.Message("The player you specified has not been reported."); return; } string[] reports = File.ReadAllLines("extra/reported/" + target + ".txt"); p.MessageLines(reports); }
void HandleDelete(Player p, string[] args, CommandData data) { if (args.Length != 2) { p.Message("You need to provide a player's name."); return; } if (!CheckExtraPerm(p, data, 1)) { return; } string target = PlayerDB.MatchNames(p, args[1]); if (target == null) { return; } if (!File.Exists("extra/reported/" + target + ".txt")) { p.Message("The player you specified has not been reported."); return; } if (!Directory.Exists("extra/reportedbackups")) { Directory.CreateDirectory("extra/reportedbackups"); } DeleteReport(target); string nick = p.FormatNick(target); p.Message("Reports on {0} %Swere deleted.", nick); Chat.MessageFromOps(p, "λNICK %Sdeleted reports on " + nick); Logger.Log(LogType.UserActivity, "Reports on {1} were deleted by {0}", p.name, target); }
public override void Use(Player p, string message, CommandData data) { TimeSpan delta = TimeSpan.Zero; bool area = message.CaselessStarts("area "); if (area) message = message.Substring("area ".Length); if (message.Length == 0) message = p.name; string[] parts = message.SplitSpaces(); if (parts.Length >= 2) { if (!CommandParser.GetTimespan(p, parts[1], ref delta, "highlight the past", "s")) return; } else { delta = TimeSpan.FromMinutes(30); } parts[0] = PlayerDB.MatchNames(p, parts[0]); if (parts[0] == null) return; int[] ids = NameConverter.FindIds(parts[0]); if (!area) { Vec3S32[] marks = new Vec3S32[] { Vec3U16.MinVal, Vec3U16.MaxVal }; HighlightPlayer(p, delta, parts[0], ids, marks); } else { p.Message("Place or break two blocks to determine the edges."); HighlightAreaArgs args = new HighlightAreaArgs(); args.ids = ids; args.who = parts[0]; args.delta = delta; p.MakeSelection(2, "Selecting region for %SHighlight", args, DoHighlightArea); } }
void HandleCheck(Player p, string[] args, CommandData data) { if (args.Length != 2) { p.Message("You need to provide a player's name."); return; } if (!CheckExtraPerm(p, data, 1)) { return; } string target = PlayerDB.MatchNames(p, args[1]); if (target == null) { return; } string nick = p.FormatNick(target); if (!HasReports(target)) { p.Message("{0} &Shas not been reported.", nick); return; } string[] reports = File.ReadAllLines("extra/reported/" + target + ".txt"); p.MessageLines(reports); }
void HandleAdd(Player p, string[] args) { if (args.Length != 2) { p.Message("You need to provide a reason for the report."); return; } string target = PlayerDB.MatchNames(p, args[0]); if (target == null) { return; } string nick = p.FormatNick(target); List <string> reports = new List <string>(); if (HasReports(target)) { reports = Utils.ReadAllLinesList(ReportPath(target)); } ItemPerms checkPerms = CommandExtraPerms.Find(name, 1); if (reports.Count >= 5) { p.Message("{0} &Walready has 5 reports! Please wait until an {1} &Whas reviewed these reports first!", nick, CommandExtraPerms.Find(name, 1).Describe()); return; } string reason = ModActionCmd.ExpandReason(p, args[1]); if (reason == null) { return; } reports.Add(reason + " - Reported by " + p.name + " at " + DateTime.Now); File.WriteAllLines(ReportPath(target), reports.ToArray()); p.Message("&aReport sent! It should be viewed when a {0} &ais online", checkPerms.Describe()); string opsMsg = "λNICK &Sreported " + nick + "&S. Reason: " + reason; Chat.MessageFrom(ChatScope.Perms, p, opsMsg, checkPerms, null, true); string allMsg = "Use &T/Report check " + target + " &Sto see all of their reports"; Chat.MessageFrom(ChatScope.Perms, p, allMsg, checkPerms, null, true); }
void HandleAdd(Player p, string[] args) { if (args.Length != 2) { p.Message("You need to provide a reason for the report."); return; } string target = PlayerDB.MatchNames(p, args[0]); if (target == null) { return; } List <string> reports = new List <string>(); if (File.Exists("extra/reported/" + target + ".txt")) { reports = Utils.ReadAllLinesList("extra/reported/" + target + ".txt"); } ItemPerms checkPerms = CommandExtraPerms.Find(name, 1); if (reports.Count >= 5) { p.Message("{0} %Walready has 5 reports! Please wait until an {1} %Whas reviewed these reports first!", p.FormatNick(target), checkPerms.Describe()); return; } string reason = args[1]; reason = ModActionCmd.ExpandReason(p, reason); if (reason == null) { return; } reports.Add(reason + " - Reported by " + p.name + " at " + DateTime.Now); File.WriteAllLines("extra/reported/" + target + ".txt", reports.ToArray()); p.Message("&aReport sent! It should be viewed when a {0} &ais online", checkPerms.Describe()); string opsMsg = "λNICK %Smade a report, view it with %T/Report check " + target; Chat.MessageFrom(ChatScope.Perms, p, opsMsg, checkPerms, null, true); }
static string MatchName(Player p, ref string name) { int matches; Player target = PlayerInfo.FindMatches(p, name, out matches); if (matches > 1) { return(null); } if (matches == 1) { name = target.name; return(name); } p.Message("Searching PlayerDB..."); return(PlayerDB.MatchNames(p, name)); }
public override void Use(Player p, string message, CommandData data) { string[] parts = message.SplitSpaces(2); if (parts.Length <= 1) { Help(p); return; } if (!MessageCmd.CanSpeak(p, "Send")) { return; } string name = PlayerDB.MatchNames(p, parts[0]); if (name == null) { return; } message = parts[1]; if (message.Length >= 256 && Database.Backend.EnforcesTextLength) { message = message.Substring(0, 255); p.Message("%WMessage was too long. It has been trimmed to:"); p.Message(message); } Database.CreateTable("Inbox" + name, createInbox); Database.AddRow("Inbox" + name, "PlayerFrom, TimeSent, Contents", p.name, DateTime.Now.ToString(Database.DateFormat), message); p.CheckForMessageSpam(); Player target = PlayerInfo.FindExact(name); p.Message("Message sent to {0}%S.", p.FormatNick(name)); if (target == null) { return; } if (!Chat.Ignoring(target, p)) { target.Message("Message received from {0}%S. Check %T/Inbox", target.FormatNick(p)); } }
int[] GetIds(Player p, string[] parts, CommandData data, out string[] names) { int count = Math.Max(1, parts.Length - 1); List <int> ids = new List <int>(); names = new string[count]; for (int i = 0; i < names.Length; i++) { names[i] = PlayerDB.MatchNames(p, parts[i]); if (names[i] == null) { return(null); } Group grp = PlayerInfo.GetGroup(names[i]); if (!CheckRank(p, data, names[i], grp.Permission, "undo", false)) { return(null); } ids.AddRange(NameConverter.FindIds(names[i])); } return(ids.ToArray()); }