Do the same thing for /tempban.

This commit is contained in:
UnknownShadow200 2016-09-05 09:29:14 +10:00
parent 6fe6b7a067
commit f2a7aafbc2
22 changed files with 39 additions and 34 deletions

View File

@ -36,7 +36,7 @@ namespace MCGalaxy.Commands
if (args.Length < 2) { Help(p); return; }
string ai = args[1].ToLower();
if (!ValidName(p, ai, "bot AI")) return;
if (!Formatter.ValidName(p, ai, "bot AI")) return;
if (ai == "hunt" || ai == "kill") { Player.Message(p, "Reserved for special AI."); return; }
switch (args[0].ToLower()) {

View File

@ -28,7 +28,7 @@ namespace MCGalaxy.Commands {
if (message == "") { Help(p); return; }
if (p == null) { MessageInGameOnly(p); return; }
if (!ValidName(p, message, "bot")) return;
if (!Formatter.ValidName(p, message, "bot")) return;
PlayerBot bot = new PlayerBot(message, p.level, p.pos[0], p.pos[1], p.pos[2], p.rot[0], 0);
PlayerBot.Add(bot);
}

View File

@ -57,7 +57,7 @@ namespace MCGalaxy.Commands.CPE {
skin = message;
}
if (!ValidName(p, skin, "skin")) return;
if (!Formatter.ValidName(p, skin, "skin")) return;
if (p != null && who != null && who.Rank > p.Rank) {
MessageTooHighRank(p, "change the skin of", true); return;
}

View File

@ -81,12 +81,6 @@ namespace MCGalaxy {
Player.Message(p, "Can only {0} players ranked below {1}", action, grp.ColoredName);
}
protected static bool ValidName(Player p, string name, string type) {
if (Player.ValidName(name)) return true;
Player.Message(p, "\"{0}\" is not a valid {1} name.", name, type);
return false;
}
internal void MessageCannotUse(Player p) {
var perms = GrpCommands.allowedCommands.Find(C => C.commandName == name);
StringBuilder builder = new StringBuilder("Only ");

View File

@ -44,7 +44,7 @@ namespace MCGalaxy.Commands {
if (matches == 1) {
info = FromOnline(pl);
} else {
if (!ValidName(p, message, "player")) return;
if (!Formatter.ValidName(p, message, "player")) return;
Player.Message(p, "Searching database for the player..");
PlayerData target = PlayerInfo.FindOfflineMatches(p, message);
if (target == null) return;

View File

@ -43,7 +43,7 @@ namespace MCGalaxy.Commands.Moderation {
Player who = PlayerInfo.Find(args[0]);
string target = who == null ? args[0] : who.name;
if (!ValidName(p, target, "player")) return;
if (!Formatter.ValidName(p, target, "player")) return;
Group group = who == null ? Group.findPlayerGroup(args[0]) : who.group;
if (!CheckPerms(target, group, p)) return;

View File

@ -31,8 +31,8 @@ namespace MCGalaxy.Commands {
public override void Use(Player p, string text) {
string[] args = text.Split(' ');
if (args.Length != 2) { Help(p); return; }
if (!ValidName(p, args[0], "player")) return;
if (!ValidName(p, args[1], "player")) return;
if (!Formatter.ValidName(p, args[0], "player")) return;
if (!Formatter.ValidName(p, args[1], "player")) return;
if (PlayerInfo.FindExact(args[0]) != null) {
Player.Message(p, "\"{0}\" must be offline to use /infoswap.", args[0]); return;

View File

@ -62,6 +62,7 @@ namespace MCGalaxy.Commands.Moderation {
who.SendMessage("You are now ranked " + newRank.ColoredName + "%S, type /help for your new set of commands.");
}
if (p == null) Player.Message(p, rankMsg);
RankCmd.ChangeRank(name, curRank, newRank, who);
WriteRankInfo(p, name, newRank, curRank, reason);
Server.IRC.Say(rankMsg);

View File

@ -26,10 +26,13 @@ namespace MCGalaxy.Commands.Moderation {
public override void Use(Player p, string message) {
if (message == "") { Help(p); return; }
string[] args = message.SplitSpaces(3);
Player who = PlayerInfo.Find(args[0]);
string reason = args.Length > 2 ? args[2] : "";
string target = RankCmd.FindName(p, "tempban", args.Length == 1 ? "" : " " + args[1],
args[0], ref reason);
if (target == null) return;
Player who = PlayerInfo.FindExact(target);
string target = who == null ? args[0] : who.name;
if (!ValidName(p, target, "player")) return;
Group grp = who == null ? PlayerInfo.GetGroup(target) : who.group;
if (p != null && grp.Permission >= p.Rank) {
MessageTooHighRank(p, "temp ban", false); return;
@ -42,15 +45,14 @@ namespace MCGalaxy.Commands.Moderation {
Server.TempBan tBan;
tBan.name = target;
tBan.reason = args.Length > 2 ? args[2] : "";
tBan.reason = GetReason(p, tBan.reason);
tBan.reason = GetReason(p, reason);
if (tBan.reason == null) return;
tBan.expiryTime = DateTime.UtcNow.Add(time);
AddTempban(tBan);
if (who != null) {
string reason = tBan.reason == "" ? "" : " - (" + tBan.reason + ")";
who.Kick("Banned for " + time.Shorten(true) + "." + reason);
string kickReason = tBan.reason == "" ? "" : " - (" + tBan.reason + ")";
who.Kick("Banned for " + time.Shorten(true) + "." + kickReason);
}
Player.Message(p, "Temp banned " + target + " for " + time.Shorten(true) + ".");

View File

@ -95,7 +95,7 @@ namespace MCGalaxy.Commands {
bool CheckAdd(Player p, string[] args) {
if (!CheckExtraPerm(p, 3)) { MessageNeedExtra(p, "create zones.", 3); return false; }
if (args.Length == 1) { Help(p); return false; }
if (!ValidName(p, args[1], "player or rank")) return false;
if (!Formatter.ValidName(p, args[1], "player or rank")) return false;
args[1] = FindZoneOwner(p, args[1]);
return args[1] != null;

View File

@ -46,14 +46,16 @@ namespace MCGalaxy.Commands.Moderation {
internal static string FindName(Player p, string action, string cmdArgs,
string name, ref string reason) {
string match = MatchName(p, ref name);
string confirmed = IsConfirmed(reason);
if (confirmed != null) reason = confirmed;
if (match != null) {
if (match.CaselessEq(name)) return match;
// Not an exact match, may be wanting to ban an offline account
Player.Message(p, "1 player matches \"{0}\": {1}", name, match);
}
string confirmed = IsConfirmed(reason);
if (confirmed != null) { reason = confirmed; return name; }
if (confirmed != null) return name;
string msgReason = String.IsNullOrEmpty(reason) ? "" : " " + reason;
Player.Message(p, "If you still want to {0} {1}, use %T/{0} {1}{2} confirm {3}",
action, name, cmdArgs, msgReason);

View File

@ -41,7 +41,7 @@ namespace MCGalaxy.Commands.World {
}
src = LevelInfo.FindMapMatches(p, src);
if (src == null) return;
if (!ValidName(p, dst, "level")) return;
if (!Formatter.ValidName(p, dst, "level")) return;
if (LevelInfo.ExistsOffline(dst)) { Player.Message(p, "The level \"" + dst + "\" already exists."); return; }
try {

View File

@ -29,7 +29,7 @@ namespace MCGalaxy.Commands.World {
public override void Use(Player p, string message) {
if (message == "" || message.Split(' ').Length > 1) { Help(p); return; }
if (!ValidName(p, message, "level")) return;
if (!Formatter.ValidName(p, message, "level")) return;
string map = LevelInfo.FindMapMatches(p, message);
if (map == null) return;

View File

@ -29,7 +29,7 @@ namespace MCGalaxy.Commands.World {
public override void Use(Player p, string message) {
if (message == "") { Help(p); return; }
if (!ValidName(p, message, "level")) return;
if (!Formatter.ValidName(p, message, "level")) return;
string file = "extra/import/" + message;
if (!Directory.Exists("extra/import"))

View File

@ -39,7 +39,7 @@ namespace MCGalaxy.Commands {
if (args[0].CaselessEq("map")) {
args[1] = args[1].ToLower();
if (!ValidName(p, args[1], "level")) return;
if (!Formatter.ValidName(p, args[1], "level")) return;
string path = "text/lockdown/map/" + args[1];
if (!File.Exists(path)) {

View File

@ -36,7 +36,7 @@ namespace MCGalaxy.Commands.World {
PlayerActions.ChangeMap(p, Server.mainLevel.name);
} else {
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, "change the main level"); return; }
if (!ValidName(p, message, "level")) return;
if (!Formatter.ValidName(p, message, "level")) return;
string map = LevelInfo.FindMapMatches(p, message);
if (map == null) return;

View File

@ -48,7 +48,7 @@ namespace MCGalaxy.Commands.World {
if (!MapGen.OkayAxis(z)) { Player.Message(p, "length must be divisible by 16, and >= 16."); return; }
if (!CheckMapSize(p, x, y, z)) return;
if (!ValidName(p, name, "level")) return;
if (!Formatter.ValidName(p, name, "level")) return;
if (LevelInfo.ExistsOffline(name)) {
Player.Message(p, "Level \"{0}\" already exists", name); return;
}

View File

@ -34,7 +34,7 @@ namespace MCGalaxy.Commands.World {
Level lvl = LevelInfo.FindMatches(p, args[0]);
if (lvl == null) return;
string newName = args[1].ToLower();
if (!ValidName(p, newName, "level")) return;
if (!Formatter.ValidName(p, newName, "level")) return;
if (LevelInfo.ExistsOffline(newName)) { Player.Message(p, "Level already exists."); return; }
if (lvl == Server.mainLevel) { Player.Message(p, "Cannot rename the main level."); return; }

View File

@ -153,7 +153,7 @@ namespace MCGalaxy.Commands.Building {
}
void SaveCopy(Player p, string file) {
if (!ValidName(p, file, "saved copy")) return;
if (!Formatter.ValidName(p, file, "saved copy")) return;
if (!Directory.Exists("extra/savecopy"))
Directory.CreateDirectory("extra/savecopy");

View File

@ -81,7 +81,7 @@ namespace MCGalaxy.Commands {
Player.Message(p, "You need to provide a player's name."); return;
}
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, "view the details of a report."); return; }
if (!ValidName(p, args[1], "player")) return;
if (!Formatter.ValidName(p, args[1], "player")) return;
if (!File.Exists("extra/reported/" + args[1] + ".txt")) {
Player.Message(p, "The player you specified has not been reported."); return;
@ -95,7 +95,7 @@ namespace MCGalaxy.Commands {
Player.Message(p, "You need to provide a player's name."); return;
}
if (!CheckExtraPerm(p)) { MessageNeedExtra(p, "delete reports."); return; }
if (!ValidName(p, args[1], "player")) return;
if (!Formatter.ValidName(p, args[1], "player")) return;
if (!File.Exists("extra/reported/" + args[1] + ".txt")) {
Player.Message(p, "The player you specified has not been reported."); return;

View File

@ -105,7 +105,7 @@ namespace MCGalaxy.Commands {
Save(true, true, p, true);
} else if (type == "table") {
if (args.Length == 2) { Player.Message(p, "You need to provide the table name to backup."); return; }
if (!ValidName(p, args[2], "table")) return;
if (!Formatter.ValidName(p, args[2], "table")) return;
if (!Database.TableExists(args[2])) { Player.Message(p, "Table \"{0}\" does not exist.", args[2]); return; }
Player.Message(p, "Backing up table {0} started. Please wait while backup finishes.", args[2]);

View File

@ -113,5 +113,11 @@ namespace MCGalaxy {
else
Player.Message(p, "Only {0}%S+ can {1}", grp.ColoredName, action);
}
public static bool ValidName(Player p, string name, string type) {
if (Player.ValidName(name)) return true;
Player.Message(p, "\"{0}\" is not a valid {1} name.", name, type);
return false;
}
}
}