protected static string Format(Player p, string action, MoneyCmdData data) { string entry = "%f" + data.Amount + "%3 " + Server.moneys + action + "%3 on %f" + DateTime.Now.ToString(CultureInfo.InvariantCulture); string reason = data.Reason; if (reason == "") { return(entry); } if (!Database.Backend.EnforcesTextLength) { return(entry + " (" + reason + ")"); } int totalLen = entry.Length + 3 + reason.Length; if (totalLen >= 256) { int truncatedLen = reason.Length - (totalLen - 255); reason = reason.Substring(0, truncatedLen); Player.Message(p, "Reason too long, truncating to: {0}", reason); } return(entry + " (" + reason + ")"); }
protected bool ParseArgs(Player p, string message, bool canAll, string action, out MoneyCmdData data) { data = default(MoneyCmdData); string[] args = message.SplitSpaces(3); if (args.Length < 2) { Help(p); return(false); } data.Name = args[0]; data.Reason = args.Length > 2 ? args[2] : ""; if (p == null) { data.SourceRaw = "(console)"; data.Source = "(console)"; } else { data.SourceRaw = p.color + p.name; data.Source = p.ColoredName; } int amount = 0; data.All = canAll && args[1].CaselessEq("all"); if (!data.All && !int.TryParse(args[1], out amount)) { Player.Message(p, "Amount to {0} must be an integer.", action); return(false); } if (amount < 0) { Player.Message(p, "You cannot {0} negative &3{1}", action, Server.moneys); return(false); } data.Amount = amount; return(true); }
protected static void MessageAll(Player p, string format, string target, MoneyCmdData data) { string targetName = PlayerInfo.GetColoredName(p, target); string msgReason = data.Reason == "" ? "" : " %S(" + data.Reason + "%S)"; Chat.MessageAll(format, data.Source, targetName, data.Amount, Server.moneys, msgReason); }
static void Take(ref int money, ref MoneyCmdData data) { if (data.All || money < data.Amount) { data.Amount = money; money = 0; } else { money -= data.Amount; } }