static void Toggle(Player p, Level lvl, ref bool target, string name, bool not = false) { target = !target; bool display = not ? !target : target; string targetStr = display ? "&aON" : "&cOFF"; lvl.Message(name + ": " + targetStr); if (p.level != lvl) { p.Message(name + ": " + targetStr); } }
protected override void ApplyChanges(Player p, Level lvl, string msg) { lvl.Save(true); msg += " &Sin " + ColoredName; Logger.Log(LogType.UserActivity, "{0} &Son {1}", msg, lvl.name); lvl.Message(msg); if (p.level != lvl) { p.Message("{0} &Son {1}", msg, lvl.ColoredName); } }
public static bool Backup(Player p, Level lvl, string backup) { string map = lvl.name; bool auto = backup.Length == 0; if (auto) { backup = LevelInfo.NextBackup(map); } TimeSpan delta = lvl.lastBackup - DateTime.UtcNow; if (delta.TotalSeconds >= 0) { p.Message("You must wait another {0} to backup {1} &Sagain", delta.Shorten(true, true), lvl.ColoredName); return(false); } lvl.lastBackup = DateTime.UtcNow.AddSeconds(10); if (!LevelActions.Backup(map, backup)) { p.Message("&WFailed to backup {0}", lvl.ColoredName); return(false); } if (auto) { Logger.Log(LogType.SystemActivity, "Backup {1} saved for {0}", map, backup); lvl.Message("Backup " + backup + " saved for " + lvl.ColoredName); } else { Logger.Log(LogType.SystemActivity, "{0} had a backup created named &b{1}", map, backup); lvl.Message(lvl.ColoredName + " &Shad a backup created named &b" + backup); } return(true); }
protected override void ApplyChanges(Player p, Level lvl, string msg) { Update(lvl); Logger.Log(LogType.UserActivity, "{0} %Son {1}", msg, lvlName); if (lvl != null) { lvl.Message(msg); } if (p != Player.Console && p.level != lvl) { p.Message("{0} %Son {1}", msg, ColoredName); } }
static void SetMotd(Player p, Level lvl, string value) { lvl.Config.MOTD = value.Length == 0 ? "ignore" : value; lvl.Message("Map's MOTD was changed to: &b" + lvl.Config.MOTD); Player[] players = PlayerInfo.Online.Items; foreach (Player pl in players) { // Some clients will freeze or crash if we send a MOTD packet, but don't follow it up by a new map. // Hnece only send MOTD for clients supporting InstantMOTD CPE extension if (pl.Supports(CpeExt.InstantMOTD)) { pl.SendMapMotd(); } else { PlayerActions.ReloadMap(pl); } } }
static void SetMotd(Player p, Level lvl, string value) { lvl.Config.MOTD = value.Length == 0 ? "ignore" : value; lvl.Message("Map's MOTD was changed to: &b" + lvl.Config.MOTD); Player[] players = PlayerInfo.Online.Items; foreach (Player pl in players) { // Some clients will freeze or crash if we send a MOTD packet, but don't follow it up by a new map. // Although checking for CPE extension support is preferred, also send to whitelisted clients for maximum compatibility bool motdOnly = pl.Supports(CpeExt.InstantMOTD) || (pl.appName != null && pl.appName.CaselessStarts("classicalsharp")); if (motdOnly) { pl.SendMapMotd(); } else { PlayerActions.ReloadMap(pl); } } }
static void SetInt(Level lvl, int raw, ref int target, string name) { target = raw; lvl.Message(name + ": &b" + target); }