Allow configuring warning/error colour

This commit is contained in:
UnknownShadow200 2018-07-08 13:32:08 +10:00
parent edc8d50c1d
commit 03c024d942
57 changed files with 182 additions and 154 deletions

View File

@ -26,6 +26,7 @@ namespace MCGalaxy.Gui {
chat_ParseColor(ServerConfig.IRCColor, chat_btnIRC);
chat_ParseColor(ServerConfig.HelpSyntaxColor, chat_btnSyntax);
chat_ParseColor(ServerConfig.HelpDescriptionColor, chat_btnDesc);
chat_ParseColor(ServerConfig.WarningErrorColor, chat_btnWarn);
chat_txtConsole.Text = ServerConfig.ConsoleName;
chat_chkFilter.Checked = ServerConfig.ProfanityFiltering;
@ -47,6 +48,7 @@ namespace MCGalaxy.Gui {
ServerConfig.IRCColor = Colors.Parse(chat_btnIRC.Text);
ServerConfig.HelpSyntaxColor = Colors.Parse(chat_btnSyntax.Text);
ServerConfig.HelpDescriptionColor = Colors.Parse(chat_btnDesc.Text);
ServerConfig.WarningErrorColor = Colors.Parse(chat_btnWarn.Text);
ServerConfig.ConsoleName = chat_txtConsole.Text;
ServerConfig.ProfanityFiltering = chat_chkFilter.Checked;
@ -82,6 +84,10 @@ namespace MCGalaxy.Gui {
void chat_btnDesc_Click(object sender, EventArgs e) {
chat_ShowColorDialog(chat_btnDesc, "Help description color");
}
void chat_btnWarn_Click(object sender, EventArgs e) {
chat_ShowColorDialog(chat_btnWarn, "Warning / error color");
}
void chat_ParseColor(string value, Button target) {

View File

@ -47,7 +47,6 @@ namespace MCGalaxy.Gui
{
this.components = new System.ComponentModel.Container();
this.pageChat = new System.Windows.Forms.TabPage();
this.chat_chkFilter = new System.Windows.Forms.CheckBox();
this.chat_grpTab = new System.Windows.Forms.GroupBox();
this.chat_cbTabRank = new System.Windows.Forms.CheckBox();
this.chat_cbTabLevel = new System.Windows.Forms.CheckBox();
@ -64,9 +63,12 @@ namespace MCGalaxy.Gui
this.chat_lblDemote = new System.Windows.Forms.Label();
this.chat_txtDemote = new System.Windows.Forms.TextBox();
this.chat_grpOther = new System.Windows.Forms.GroupBox();
this.chat_chkFilter = new System.Windows.Forms.CheckBox();
this.chat_lblConsole = new System.Windows.Forms.Label();
this.chat_txtConsole = new System.Windows.Forms.TextBox();
this.chat_grpColors = new System.Windows.Forms.GroupBox();
this.chat_lblWarn = new System.Windows.Forms.Label();
this.chat_btnWarn = new System.Windows.Forms.Button();
this.chat_lblDefault = new System.Windows.Forms.Label();
this.chat_btnDefault = new System.Windows.Forms.Button();
this.chat_lblIRC = new System.Windows.Forms.Label();
@ -547,7 +549,6 @@ namespace MCGalaxy.Gui
// pageChat
//
this.pageChat.BackColor = System.Drawing.SystemColors.Control;
this.pageChat.Controls.Add(this.chat_chkFilter);
this.pageChat.Controls.Add(this.chat_grpTab);
this.pageChat.Controls.Add(this.chat_grpMessages);
this.pageChat.Controls.Add(this.chat_grpOther);
@ -559,22 +560,12 @@ namespace MCGalaxy.Gui
this.pageChat.TabIndex = 10;
this.pageChat.Text = "Chat";
//
// chat_chkFilter
//
this.chat_chkFilter.AutoSize = true;
this.chat_chkFilter.Location = new System.Drawing.Point(80, 380);
this.chat_chkFilter.Name = "chat_chkFilter";
this.chat_chkFilter.Size = new System.Drawing.Size(96, 17);
this.chat_chkFilter.TabIndex = 31;
this.chat_chkFilter.Text = "Profanity Filter";
this.chat_chkFilter.UseVisualStyleBackColor = true;
//
// chat_grpTab
//
this.chat_grpTab.Controls.Add(this.chat_cbTabRank);
this.chat_grpTab.Controls.Add(this.chat_cbTabLevel);
this.chat_grpTab.Controls.Add(this.chat_cbTabBots);
this.chat_grpTab.Location = new System.Drawing.Point(235, 59);
this.chat_grpTab.Location = new System.Drawing.Point(235, 88);
this.chat_grpTab.Name = "chat_grpTab";
this.chat_grpTab.Size = new System.Drawing.Size(256, 92);
this.chat_grpTab.TabIndex = 3;
@ -623,7 +614,7 @@ namespace MCGalaxy.Gui
this.chat_grpMessages.Controls.Add(this.chat_txtPromote);
this.chat_grpMessages.Controls.Add(this.chat_lblDemote);
this.chat_grpMessages.Controls.Add(this.chat_txtDemote);
this.chat_grpMessages.Location = new System.Drawing.Point(8, 157);
this.chat_grpMessages.Location = new System.Drawing.Point(8, 186);
this.chat_grpMessages.Name = "chat_grpMessages";
this.chat_grpMessages.Size = new System.Drawing.Size(483, 180);
this.chat_grpMessages.TabIndex = 2;
@ -718,15 +709,26 @@ namespace MCGalaxy.Gui
//
// chat_grpOther
//
this.chat_grpOther.Controls.Add(this.chat_chkFilter);
this.chat_grpOther.Controls.Add(this.chat_lblConsole);
this.chat_grpOther.Controls.Add(this.chat_txtConsole);
this.chat_grpOther.Location = new System.Drawing.Point(235, 6);
this.chat_grpOther.Name = "chat_grpOther";
this.chat_grpOther.Size = new System.Drawing.Size(256, 47);
this.chat_grpOther.Size = new System.Drawing.Size(256, 76);
this.chat_grpOther.TabIndex = 1;
this.chat_grpOther.TabStop = false;
this.chat_grpOther.Text = "Other";
//
// chat_chkFilter
//
this.chat_chkFilter.AutoSize = true;
this.chat_chkFilter.Location = new System.Drawing.Point(6, 49);
this.chat_chkFilter.Name = "chat_chkFilter";
this.chat_chkFilter.Size = new System.Drawing.Size(96, 17);
this.chat_chkFilter.TabIndex = 31;
this.chat_chkFilter.Text = "Profanity Filter";
this.chat_chkFilter.UseVisualStyleBackColor = true;
//
// chat_lblConsole
//
this.chat_lblConsole.AutoSize = true;
@ -738,13 +740,15 @@ namespace MCGalaxy.Gui
//
// chat_txtConsole
//
this.chat_txtConsole.Location = new System.Drawing.Point(105, 17);
this.chat_txtConsole.Location = new System.Drawing.Point(89, 17);
this.chat_txtConsole.Name = "chat_txtConsole";
this.chat_txtConsole.Size = new System.Drawing.Size(145, 21);
this.chat_txtConsole.Size = new System.Drawing.Size(161, 21);
this.chat_txtConsole.TabIndex = 3;
//
// chat_grpColors
//
this.chat_grpColors.Controls.Add(this.chat_lblWarn);
this.chat_grpColors.Controls.Add(this.chat_btnWarn);
this.chat_grpColors.Controls.Add(this.chat_lblDefault);
this.chat_grpColors.Controls.Add(this.chat_btnDefault);
this.chat_grpColors.Controls.Add(this.chat_lblIRC);
@ -755,11 +759,29 @@ namespace MCGalaxy.Gui
this.chat_grpColors.Controls.Add(this.chat_btnDesc);
this.chat_grpColors.Location = new System.Drawing.Point(8, 6);
this.chat_grpColors.Name = "chat_grpColors";
this.chat_grpColors.Size = new System.Drawing.Size(221, 145);
this.chat_grpColors.Size = new System.Drawing.Size(221, 174);
this.chat_grpColors.TabIndex = 0;
this.chat_grpColors.TabStop = false;
this.chat_grpColors.Text = "Colors";
//
// chat_lblWarn
//
this.chat_lblWarn.AutoSize = true;
this.chat_lblWarn.Location = new System.Drawing.Point(20, 141);
this.chat_lblWarn.Name = "chat_lblWarn";
this.chat_lblWarn.Size = new System.Drawing.Size(88, 13);
this.chat_lblWarn.TabIndex = 35;
this.chat_lblWarn.Text = "Warnings/errors:";
//
// chat_btnWarn
//
this.chat_btnWarn.Location = new System.Drawing.Point(113, 136);
this.chat_btnWarn.Name = "chat_btnWarn";
this.chat_btnWarn.Size = new System.Drawing.Size(95, 23);
this.chat_btnWarn.TabIndex = 34;
this.toolTip.SetToolTip(this.chat_btnWarn, "The color of warning/error messages produced by commands");
this.chat_btnWarn.Click += new System.EventHandler(this.chat_btnWarn_Click);
//
// chat_lblDefault
//
this.chat_lblDefault.AutoSize = true;
@ -4893,7 +4915,6 @@ namespace MCGalaxy.Gui
this.Load += new System.EventHandler(this.PropertyWindow_Load);
this.Disposed += new System.EventHandler(this.PropertyWindow_Unload);
this.pageChat.ResumeLayout(false);
this.pageChat.PerformLayout();
this.chat_grpTab.ResumeLayout(false);
this.chat_grpTab.PerformLayout();
this.chat_grpMessages.ResumeLayout(false);
@ -5047,6 +5068,8 @@ namespace MCGalaxy.Gui
((System.ComponentModel.ISupportInitialize)(this.sec_numBlocksSecs)).EndInit();
this.ResumeLayout(false);
}
private System.Windows.Forms.Button chat_btnWarn;
private System.Windows.Forms.Label chat_lblWarn;
private System.Windows.Forms.Label tw_lblMode;
private System.Windows.Forms.ComboBox tw_cmbDiff;
private System.Windows.Forms.ComboBox tw_cmbMode;

View File

@ -185,6 +185,7 @@ namespace MCGalaxy {
if (col == 'H') { col = ServerConfig.HelpDescriptionColor[1]; return true; }
if (col == 'T') { col = ServerConfig.HelpSyntaxColor[1]; return true; }
if (col == 'I') { col = ServerConfig.IRCColor[1]; return true; }
if (col == 'W') { col = ServerConfig.WarningErrorColor[1]; return true; }
return IsDefined(col);
}

View File

@ -541,11 +541,11 @@ namespace MCGalaxy.Commands.CPE {
if (!CommandParser.GetBlock(p, value, out block)) return Block.Invalid;
if (block >= Block.Extended) {
Player.Message(p, "&cCustom blocks cannot be used as fallback blocks.");
Player.Message(p, "%WCustom blocks cannot be used as fallback blocks.");
return Block.Invalid;
}
if (Block.IsPhysicsType(block)) {
Player.Message(p, "&cPhysics block cannot be used as fallback blocks.");
Player.Message(p, "%WPhysics block cannot be used as fallback blocks.");
return Block.Invalid;
}
return (BlockRaw)block;
@ -572,13 +572,13 @@ namespace MCGalaxy.Commands.CPE {
static void MessageNoBlock(Player p, BlockID block, bool global, string cmd) {
string scope = global ? "global" : "level";
Player.Message(p, "&cThere is no {1} custom block with the id \"{0}\".", Block.ToRaw(block), scope);
Player.Message(p, "%WThere is no {1} custom block with the id \"{0}\".", Block.ToRaw(block), scope);
Player.Message(p, "Type %T{0} list %Sto see a list of {1} custom blocks.", cmd, scope);
}
static void MessageAlreadyBlock(Player p, BlockID block, bool global, string cmd) {
string scope = global ? "global" : "level";
Player.Message(p, "&cThere is already a {1} custom block with the id \"{0}\".", Block.ToRaw(block), scope);
Player.Message(p, "%WThere is already a {1} custom block with the id \"{0}\".", Block.ToRaw(block), scope);
Player.Message(p, "Type %T{0} list %Sto see a list of {1} custom blocks.", cmd, scope);
}

View File

@ -31,7 +31,7 @@ namespace MCGalaxy.Commands.Eco {
if (IsCreateCommand(args[0])) {
args = args[1].Split(awardArgs, 2);
if (args.Length == 1) {
Player.Message(p, "&cUse a : to separate the award name from its description.");
Player.Message(p, "%WUse a : to separate the award name from its description.");
Help(p); return;
}

View File

@ -32,7 +32,7 @@ namespace MCGalaxy.Commands.Eco {
if (item == null) { Help(p); return; }
if (!item.Enabled) {
Player.Message(p, "&cThe {0} item is not currently buyable.", item.Name); return;
Player.Message(p, "%WThe {0} item is not currently buyable.", item.Name); return;
}
if (p.Rank < item.PurchaseRank) {
Formatter.MessageNeedMinPerm(p, "+ can purchase a " + item.Name, item.PurchaseRank); return;

View File

@ -58,7 +58,7 @@ namespace MCGalaxy.Commands.Eco {
static bool ReachedMax(Player p, int current, int amount) {
if (current + amount > 16777215) {
Player.Message(p, "&cPlayers cannot have over &316,777,215 &3" + ServerConfig.Currency); return true;
Player.Message(p, "%WPlayers cannot have over &316,777,215 &3" + ServerConfig.Currency); return true;
}
return false;
}

View File

@ -57,10 +57,10 @@ namespace MCGalaxy.Commands.Eco {
static bool IsLegalPayment(Player p, int payer, int receiver, int amount) {
if (receiver + amount > 16777215) {
Player.Message(p, "&cPlayers cannot have over &f16777215 &3" + ServerConfig.Currency); return false;
Player.Message(p, "%WPlayers cannot have over &f16777215 &3" + ServerConfig.Currency); return false;
}
if (payer < amount) {
Player.Message(p, "&cYou don't have enough &3" + ServerConfig.Currency); return false;
Player.Message(p, "%WYou don't have enough &3" + ServerConfig.Currency); return false;
}
return true;
}

View File

@ -40,7 +40,7 @@ namespace MCGalaxy.Commands.Eco {
if (item == null) { Help(p); return; }
if (!item.Enabled) {
Player.Message(p, "&cThe " + item.ShopName + " item is not currently buyable."); return;
Player.Message(p, "%WThe " + item.ShopName + " item is not currently buyable."); return;
}
item.OnStoreCommand(p);
}

View File

@ -32,7 +32,7 @@ namespace MCGalaxy.Commands.Eco {
int matches = 1;
Player who = PlayerInfo.FindMatches(p, data.TargetName, out matches);
if (matches > 1) return;
if (p != null && p == who) { Player.Message(p, "&cYou can't take &3" + ServerConfig.Currency + "&c from yourself"); return; }
if (p != null && p == who) { Player.Message(p, "%WYou can't take &3" + ServerConfig.Currency + "%W from yourself"); return; }
int money = 0;
if (who == null) {

View File

@ -76,7 +76,7 @@ namespace MCGalaxy.Commands.Fun {
string prop = args[1], value = args[2];
if (prop.CaselessEq("spawn")) {
if (gameCfg.Mode == TWGameMode.FFA) {
Player.Message(p, "&cCannot set spawns in Free For All mode"); return;
Player.Message(p, "%WCannot set spawns in Free For All mode"); return;
}
if (value.CaselessEq("red")) {

View File

@ -57,7 +57,7 @@ namespace MCGalaxy.Commands.Info {
p.level.BlockDB.FindChangesAt(x, y, z,
entry => OutputEntry(p, ref foundAny, names, entry));
} else {
Player.Message(p, "&cUnable to accquire read lock on BlockDB after 30 seconds, aborting.");
Player.Message(p, "%WUnable to accquire read lock on BlockDB after 30 seconds, aborting.");
return false;
}
}

View File

@ -40,7 +40,7 @@ namespace MCGalaxy.Commands.Info {
TopStat stat = FindTopStat(args[1]);
if (stat == null) {
Player.Message(p, "&cUnrecognised type \"{0}\".", args[1]); return;
Player.Message(p, "%WUnrecognised type \"{0}\".", args[1]); return;
}
if (args.Length > 2) {

View File

@ -71,7 +71,7 @@ namespace MCGalaxy.Commands.Maintenance {
Player.Message(p, "%T/BlockDB enable [map]");
Player.Message(p, "%HEnables %Hrecording block changes to the BlockDB for [map]");
Player.Message(p, "%HIf no map name is given, uses your current map.");
Player.Message(p, "&cUse these commands with great caution!");
Player.Message(p, "%WUse these commands with great caution!");
}
}
}

View File

@ -41,7 +41,7 @@ namespace MCGalaxy.Commands.Maintenance {
if (args[0] == null) return;
Player who = PlayerInfo.FindExact(args[0]);
if (args.Length == 1) {
Player.Message(p, "&cYou must specify a type to modify.");
Player.Message(p, "%WYou must specify a type to modify.");
MessageValidTypes(p); return;
}
@ -103,7 +103,7 @@ namespace MCGalaxy.Commands.Maintenance {
SetColor(p, args, PlayerData.ColumnTColor, who,
v => who.titlecolor = v);
} else {
Player.Message(p, "&cInvalid type");
Player.Message(p, "%WInvalid type");
MessageValidTypes(p);
}
}

View File

@ -90,7 +90,7 @@ namespace MCGalaxy.Commands.Moderation {
if (op.found) {
Player.Message(p, "Now highlighting past &b{0} %Sfor {1}",
delta.Shorten(true), PlayerInfo.GetColoredName(p, who));
Player.Message(p, "&cUse /reload to un-highlight");
Player.Message(p, "%WUse /reload to un-highlight");
} else {
Player.Message(p, "No changes found by {1} %Sin the past &b{0}",
delta.Shorten(true), PlayerInfo.GetColoredName(p, who));
@ -111,7 +111,7 @@ namespace MCGalaxy.Commands.Moderation {
Player.Message(p, "%T/Highlight area [player] <timespan>");
Player.Message(p, "%HOnly highlights in the specified region.");
Player.Message(p, "%H If <timespan> is not given, highlights for last 30 minutes");
Player.Message(p, "&c/Highlight cannot be disabled, use /reload to un-highlight");
Player.Message(p, "%W/Highlight cannot be disabled, use /reload to un-highlight");
}
}
}

View File

@ -45,7 +45,7 @@ namespace MCGalaxy.Commands.Moderation {
}
if (HttpUtil.IsPrivateIP(ip)) {
Player.Message(p, "&cPlayer has an internal IP, cannot trace"); return;
Player.Message(p, "%WPlayer has an internal IP, cannot trace"); return;
}
string country = null;

View File

@ -49,12 +49,12 @@ namespace MCGalaxy.Commands.Moderation {
}
void VerifyPassword(Player p, string message) {
if (!p.adminpen) { Player.Message(p, "You are &calready verified."); return; }
if (!p.adminpen) { Player.Message(p, "%WYou are already verified."); return; }
if (p.passtries >= 3) { p.Kick("Did you really think you could keep on guessing?"); return; }
if (message.IndexOf(' ') >= 0) { Player.Message(p, "Your password must be &cone %Sword!"); return; }
if (message.IndexOf(' ') >= 0) { Player.Message(p, "Your password must be %Wone %Sword!"); return; }
if (!PasswordHasher.Exists(p.name)) {
Player.Message(p, "You have not &cset a password, %Suse &a/setpass [Password] &cto set one!"); return;
Player.Message(p, "You have not %Wset a password, %Suse %T/SetPass [Password] %Wto set one!"); return;
}
if (PasswordHasher.MatchesPass(p.name, message)) {
@ -62,15 +62,15 @@ namespace MCGalaxy.Commands.Moderation {
p.adminpen = false;
} else {
p.passtries++;
Player.Message(p, "&cWrong Password. %SRemember your password is &ccase sensitive.");
Player.Message(p, "%WWrong Password. %SRemember your password is %Wcase sensitive.");
Player.Message(p, "Forgot your password? %SContact the owner so they can reset it.");
}
}
void SetPassword(Player p, string message) {
if (p.adminpen && PasswordHasher.Exists(p.name)) {
Player.Message(p, "&cYou already have a password set. %SYou &ccannot change %Sit unless &cyou verify it with &a/pass [Password]. " +
"%SIf you have &cforgotten %Syour password, contact &c" + ServerConfig.OwnerName + " %Sand they can &creset it!");
Player.Message(p, "%WcYou already have a password set. %SYou %Wcannot change %Sit unless %Wyou verify it with &a/pass [Password]. " +
"%SIf you have %Wforgotten %Syour password, contact %W" + ServerConfig.OwnerName + " %Sand they can %Wreset it!");
return;
}
if (message.IndexOf(' ') >= 0) { Player.Message(p, "Your password must be one word!"); return; }
@ -85,7 +85,7 @@ namespace MCGalaxy.Commands.Moderation {
Player who = PlayerInfo.FindMatches(p, message);
if (who == null) return;
if (p != null && p.adminpen) {
Player.Message(p, "&cYou must first verify with %T/Pass [Password]"); return;
Player.Message(p, "%WYou must first verify with %T/Pass [Password]"); return;
}
string owner = ServerConfig.OwnerName;
@ -107,7 +107,7 @@ namespace MCGalaxy.Commands.Moderation {
Player.Message(p, "%T/Pass reset [Player] %H- Resets the password for that player");
Player.Message(p, "%H Note: Can only be used by console and the server owner.");
Player.Message(p, "%T/Pass set [Password] %H- Sets your password to [password]");
Player.Message(p, "%H Note: &cDo NOT set this as your Minecraft password!");
Player.Message(p, "%H Note: %WDo NOT set this as your Minecraft password!");
Player.Message(p, "%T/Pass [Password]");
Player.Message(p, "%HIf you are an admin, use this command to verify your login.");
Player.Message(p, "%H You will need to be verified to be able to use commands.");

View File

@ -36,7 +36,7 @@ namespace MCGalaxy.Commands.Moderation {
List<Player> candidates = GetPatrolCandidates(p);
if (candidates.Count == 0) {
Player.Message(p, "&cNo players to patrol.");
Player.Message(p, "%WNo players to patrol.");
} else {
Player target = candidates[new Random().Next(candidates.Count)];
target.LastPatrol = DateTime.UtcNow;

View File

@ -153,7 +153,7 @@ namespace MCGalaxy.Commands.Moderation {
ItemPerms checkPerms = CommandExtraPerms.Find(name, 1);
if (reports.Count >= 5) {
Player.Message(p, "{0} &calready has 5 reports! Please wait until an {1} &chas reviewed these reports first!",
Player.Message(p, "{0} %Walready has 5 reports! Please wait until an {1} %Whas reviewed these reports first!",
PlayerInfo.GetColoredName(p, target), checkPerms.Describe());
return;
}

View File

@ -53,11 +53,11 @@ namespace MCGalaxy.Commands.Moderation {
if (!CommandParser.GetTimespan(p, args[2], ref duration, "temp rank for", "h")) return;
if (Server.tempRanks.Contains(target)) {
Player.Message(p, "&cThe player already has a temporary rank assigned!"); return;
Player.Message(p, "%WThe player already has a temporary rank assigned!"); return;
}
if (p != null && p.name.CaselessEq(target)) {
Player.Message(p, "&cYou cannot assign yourself a temporary rank."); return;
Player.Message(p, "%WYou cannot assign yourself a temporary rank."); return;
}
Group curRank = PlayerInfo.GetGroup(target);
@ -73,7 +73,7 @@ namespace MCGalaxy.Commands.Moderation {
static void Delete(Player p, string target) {
string line = Server.tempRanks.FindData(target);
if (line == null) {
Player.Message(p, "{0}&c has not been assigned a temp rank.",
Player.Message(p, "{0} %Whas not been assigned a temp rank.",
PlayerInfo.GetColoredName(p, target));
return;
}
@ -96,7 +96,7 @@ namespace MCGalaxy.Commands.Moderation {
static void Info(Player p, string target) {
string data = Server.tempRanks.FindData(target);
if (data == null) {
Player.Message(p, "{0}&c has not been assigned a temp rank.",
Player.Message(p, "{0} %Whas not been assigned a temp rank.",
PlayerInfo.GetColoredName(p, target));
} else {
PrintTempRankInfo(p, target, data);
@ -106,7 +106,7 @@ namespace MCGalaxy.Commands.Moderation {
static void List(Player p) {
List<string> lines = Server.tempRanks.AllLines();
if (lines.Count == 0) {
Player.Message(p, "&cThere are no players with a temporary rank assigned.");
Player.Message(p, "%WThere are no players with a temporary rank assigned.");
} else {
Player.Message(p, "&ePlayers with a temporary rank assigned:");
foreach (string line in lines) {

View File

@ -37,7 +37,7 @@ namespace MCGalaxy.Commands.Scripting {
}
string error = IScripting.Load(path);
if (error != null) { Player.Message(p, error); return; }
if (error != null) { Player.Message(p, "%W" + error); return; }
Player.Message(p, "Command was successfully loaded.");
}

View File

@ -48,7 +48,7 @@ namespace MCGalaxy.Commands.Scripting {
if (engine.Compile(path, dstPath)) {
Player.Message(p, "Command compiled successfully.");
} else {
Player.Message(p, "Compilation error. See " + IScripting.ErrorPath + " for more information.");
Player.Message(p, "%WCompilation error. See " + IScripting.ErrorPath + " for more information.");
}
}

View File

@ -76,7 +76,7 @@ namespace MCGalaxy.Commands.Scripting {
if (Plugin.Load(name, false)) {
Player.Message(p, "Plugin loaded successfully.");
} else {
Player.Message(p, "Error loading plugin. See error logs for more information.");
Player.Message(p, "%WError loading plugin. See error logs for more information.");
}
} else {
Player.Message(p, "File &9{0} %Snot found.", path);
@ -98,7 +98,7 @@ namespace MCGalaxy.Commands.Scripting {
if (Plugin.Unload(plugin, false)) {
Player.Message(p, "Plugin unloaded successfully.");
} else {
Player.Message(p, "Error unloading plugin. See error logs for more information.");
Player.Message(p, "%WError unloading plugin. See error logs for more information.");
}
} else {
Player.Message(p, "Loaded plugins: " + Plugin.all.Join(pl => pl.name));

View File

@ -37,7 +37,7 @@ namespace MCGalaxy.Commands.World {
Player pScope = scope == Block.Props ? null : p;
BlockID block = Block.Parse(pScope, args[1]);
if (block == Block.Invalid) {
Player.Message(p, "&cThere is no block \"{0}\".", args[1]); return;
Player.Message(p, "%WThere is no block \"{0}\".", args[1]); return;
}
string prop = args[2].ToLower();
@ -58,7 +58,7 @@ namespace MCGalaxy.Commands.World {
return p.level.Props;
}
Player.Message(p, "&cScope must be: core/global, or level");
Player.Message(p, "%WScope must be: core/global, or level");
return null;
}
@ -240,7 +240,7 @@ namespace MCGalaxy.Commands.World {
Player.Message(p, "%HSets the block that this block is changed into, when no longer exposed to sunlight");
Player.Message(p, "%HLeave block blank to remove this behaviour.");
} else {
Player.Message(p, "&cUnrecognised property \"{0}\"", message);
Player.Message(p, "%WUnrecognised property \"{0}\"", message);
}
}
}

View File

@ -49,7 +49,7 @@ namespace MCGalaxy.Commands.World {
try {
LevelActions.CopyLevel(src, dst);
} catch (IOException) {
Player.Message(p, "Level &c" + dst + " %Salready exists!"); return;
Player.Message(p, "Level %W" + dst + " %Salready exists!"); return;
}
Level ignored;

View File

@ -41,12 +41,12 @@ namespace MCGalaxy.Commands.World {
}
string formats = IMapImporter.Formats.Join(imp => imp.Extension);
Player.Message(p, "&cNo {0} file with that name was found in /extra/import folder.", formats);
Player.Message(p, "%WNo {0} file with that name was found in /extra/import folder.", formats);
}
void Import(Player p, string path, string name, IMapImporter importer) {
if (LevelInfo.MapExists(name)) {
Player.Message(p, "&cMap {0} already exists. Try renaming the file to something else before importing.", name);
Player.Message(p, "%WMap {0} already exists. Try renaming the file to something else before importing.", name);
return;
}
try {

View File

@ -89,12 +89,12 @@ namespace MCGalaxy.Commands.World {
internal static bool CheckMapAxis(Player p, string input, string type, ref ushort len) {
if (!CommandParser.GetUShort(p, input, type, ref len)) return false;
if (len == 0) { Player.Message(p, "&c{0} cannot be 0.", type); return false; }
if (len > 16384) { Player.Message(p, "&c{0} must be 16384 or less.", type); return false; }
if (len == 0) { Player.Message(p, "%W{0} cannot be 0.", type); return false; }
if (len > 16384) { Player.Message(p, "%W{0} must be 16384 or less.", type); return false; }
if ((len % 16) != 0) {
Player.Message(p, "&cMap {0} of {1} blocks is not divisible by 16!", type, len);
Player.Message(p, "&cAs such, you may see rendering artifacts on some clients.");
Player.Message(p, "%WMap {0} of {1} blocks is not divisible by 16!", type, len);
Player.Message(p, "%WAs such, you may see rendering artifacts on some clients.");
}
return true;
}

View File

@ -138,7 +138,7 @@ namespace MCGalaxy.Commands.World {
if (opt == null) {
Player.MessageLines(p, mapHelp);
} else if (DisallowedMapOption(opt.Name)) {
Player.Message(p, "&cYou cannot change that map option via /os map."); return;
Player.Message(p, "%WYou cannot change that map option via /os map."); return;
} else {
opt.SetFunc(p, p.level, value);
Level.SaveSettings(p.level);

View File

@ -51,12 +51,12 @@ namespace MCGalaxy.Commands.World {
bool confirmed = args.Length > 4 && args[4].CaselessEq("confirm");
if (!confirmed && (x < lvl.Width || y < lvl.Height || z < lvl.Length)) {
Player.Message(p, "New level dimensions are smaller than the current dimensions, &cyou will lose blocks%S.");
Player.Message(p, "New level dimensions are smaller than the current dimensions, %Wyou will lose blocks%S.");
return false;
}
Level newLvl = ResizeLevel(lvl, x, y, z);
if (newLvl == null) { Player.Message(p, "&cError resizing map."); return false; }
if (newLvl == null) { Player.Message(p, "%WError resizing map."); return false; }
LevelActions.Replace(lvl, newLvl);
return true;
}

View File

@ -54,7 +54,7 @@ namespace MCGalaxy.Commands.Building {
} else if (op == "cubed") {
Player.Message(p, "&aResult&f: Cube of {0} = {1}", n1, n1 * n1 * n1);
} else {
Player.Message(p, "&cOnly supported operators are: +, -, *, /, sqrt, square, or cubed");
Player.Message(p, "%WOnly supported operators are: +, -, *, /, sqrt, square, or cubed");
}
}

View File

@ -140,7 +140,7 @@ namespace MCGalaxy.Commands.Building {
float ratio = Math.Min(resizedWidth / (float)width, resizedHeight / (float)height);
resizedWidth = (int)(width * ratio); resizedHeight = (int)(height * ratio);
Player.Message(p, "&cImage is too large ({0}x{1}), resizing to ({2}x{3})",
Player.Message(p, "%WImage is too large ({0}x{1}), resizing to ({2}x{3})",
width, height, resizedWidth, resizedHeight);
width = resizedWidth; height = resizedHeight;
}

View File

@ -48,13 +48,13 @@ namespace MCGalaxy.Commands.Building {
Player.Message(p, "Redo performed.");
return;
}
Player.Message(p, "No %T/Undo %Sor %T/Undo [seconds] %Scalls were " +
Player.Message(p, "No %T/Undo %Sor %T/Undo [timespan] %Scalls were " +
"found in the last 200 draw operations.");
}
public override void Help(Player p) {
Player.Message(p, "%T/Redo");
Player.Message(p, "%HRedoes the last %T/Undo %Hor %T/Undo [seconds] %Hyou performed.");
Player.Message(p, "%HRedoes last %T/Undo %Hor %T/Undo [timespan] %Hyou performed");
}
}
}

View File

@ -50,7 +50,7 @@ namespace MCGalaxy.Commands.Building {
UndoDrawOpEntry[] entries = p.DrawOps.Items;
if (entries.Length == 0) {
Player.Message(p, "You have no draw operations to undo.");
Player.Message(p, "Try using %T/Undo [seconds] %Sinstead.");
Player.Message(p, "Try using %T/Undo [timespan] %Sinstead.");
return;
}
@ -69,14 +69,14 @@ namespace MCGalaxy.Commands.Building {
}
Player.Message(p, "Unable to undo any draw operations, as all of the " +
"past 50 draw operations are %T/Undo %Sor %T/Undo [seconds].");
Player.Message(p, "Try using %T/Undo [seconds] %Sinstead.");
"past 50 draw operations are %T/Undo %Sor %T/Undo [timespan]");
Player.Message(p, "Try using %T/Undo [timespan] %Sinstead");
}
void UndoPhysics(Player p, TimeSpan delta) {
if (!CheckExtraPerm(p, 1)) return;
if (p != null && !p.group.CanExecute("Physics")) {
Player.Message(p, "You can only undo physics if you can use %T/Physics."); return;
Player.Message(p, "%WYou can only undo physics if you can use %T/Physics"); return;
}
CmdPhysics.SetPhysics(p.level, 0);
@ -133,7 +133,7 @@ namespace MCGalaxy.Commands.Building {
Player.Message(p, "%HUndoes your blockchanges in the past [timespan]");
if (p == null || p.group.MaxUndo == -1 || p.group.MaxUndo == int.MaxValue)
Player.Message(p, "%H if <timespan> is all, &cundoes for 68 years");
Player.Message(p, "%T/Undo physics [seconds] %H- Undoes physics on current map");
Player.Message(p, "%T/Undo physics [timespan] %H- Undoes physics on current map");
}
}
}

View File

@ -32,7 +32,7 @@ namespace MCGalaxy.Commands.Misc {
if (message.Length == 0) { Help(p); return; }
if (p.hackrank) {
Player.Message(p, "&cYou have already hacked a rank!"); return;
Player.Message(p, "%WYou have already hacked a rank!"); return;
}
Group grp = Matcher.FindRanks(p, message);

View File

@ -79,7 +79,7 @@ namespace MCGalaxy.Commands.Misc {
public override void Use(Player p, string message) {
if (message.Length > 0) {
Player.Message(p, "&cIncorrect syntax. Abuse detected.");
Player.Message(p, "%WIncorrect syntax. Abuse detected.");
Thread.Sleep(3000);
}

View File

@ -68,7 +68,7 @@ namespace MCGalaxy.Core {
p.ClearBlockchange();
}
if (!level.Config.UseBlockDB) {
Player.Message(p, "BlockDB is disabled here, &cyou will not be able to /undo or /redo");
Player.Message(p, "BlockDB is disabled here, %Wyou will not be able to /undo or /redo");
}
}

View File

@ -84,7 +84,7 @@ namespace MCGalaxy.DB {
try {
dumper.DumpTable(table);
} catch (Exception ex) {
Logger.LogError(ex);
Logger.LogError("Error dumping BlockDB table " + table, ex);
}
}
}

View File

@ -115,7 +115,7 @@ namespace MCGalaxy.Eco {
// Must always provide an argument.
if (args.Length < 2) { OnStoreCommand(p); return; }
if (p.money < Price) {
Player.Message(p, "&cYou don't have enough &3{1} &cto buy a {0}.", Name, ServerConfig.Currency); return;
Player.Message(p, "%WYou don't have enough &3{1} %Wto buy a {0}.", Name, ServerConfig.Currency); return;
}
DoPurchase(p, message, args);
}

View File

@ -76,27 +76,23 @@ namespace MCGalaxy.Eco {
protected internal override void OnBuyCommand(Player p, string message, string[] args) {
if (args.Length < 3) { OnStoreCommand(p); return; }
LevelPreset preset = FindPreset(args[1]);
if (preset == null) { Player.Message(p, "&cThat isn't a level preset"); return; }
if (preset == null) { Player.Message(p, "%WThat isn't a level preset"); return; }
if (p.money < preset.price) {
Player.Message(p, "&cYou don't have enough &3" + ServerConfig.Currency + "&c to buy that map"); return;
Player.Message(p, "%Wdon't have enough &3" + ServerConfig.Currency + "%W to buy that map"); return;
}
string name = p.name + "_" + args[2];
try {
Command.Find("NewLvl").Use(null, name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);
Player.Message(p, "&aCreating level: '&f" + name + "&a' . . .");
Command.Find("NewLvl").Use(null, name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);
Player.Message(p, "&aCreating level: '&f" + name + "&a' . . .");
CmdLoad.LoadLevel(null, name);
Level level = LevelInfo.FindExact(name);
CmdOverseer.SetPerms(p, level);
Level.SaveSettings(level);
PlayerActions.ChangeMap(p, name);
CmdLoad.LoadLevel(null, name);
Level level = LevelInfo.FindExact(name);
CmdOverseer.SetPerms(p, level);
Level.SaveSettings(level);
PlayerActions.ChangeMap(p, name);
Player.Message(p, "&aSuccessfully created your map: '&f" + name + "&a'");
} catch {
Player.Message(p, "&cSomething went wrong, Money untouched"); return;
}
Player.Message(p, "&aSuccessfully created your map: '&f" + name + "&a'");
Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
}
@ -116,14 +112,14 @@ namespace MCGalaxy.Eco {
}
void AddPreset(Player p, string[] args, LevelPreset preset) {
if (preset != null) { Player.Message(p, "&cThat preset level already exists"); return; }
if (preset != null) { Player.Message(p, "%WThat preset level already exists"); return; }
preset = new LevelPreset();
preset.name = args[2];
if (OkayAxis(args[3]) && OkayAxis(args[4]) && OkayAxis(args[5])) {
preset.x = args[3]; preset.y = args[4]; preset.z = args[5];
} else {
Player.Message(p, "&cDimension must be a power of 2"); return;
Player.Message(p, "%WDimension must be a power of 2"); return;
}
if (!MapGen.IsRecognisedTheme(args[6])) {
@ -141,19 +137,19 @@ namespace MCGalaxy.Eco {
}
void RemovePreset(Player p, string[] args, LevelPreset preset) {
if (preset == null) { Player.Message(p, "&cThat preset level doesn't exist"); return; }
if (preset == null) { Player.Message(p, "%WThat preset level doesn't exist"); return; }
Presets.Remove(preset);
Player.Message(p, "&aSuccessfully removed preset: &f" + preset.name);
}
void EditPreset(Player p, string[] args, LevelPreset preset) {
if (preset == null) { Player.Message(p, "&cThat preset level doesn't exist"); return; }
if (preset == null) { Player.Message(p, "%WThat preset level doesn't exist"); return; }
if (args[3] == "name" || args[3] == "title") {
preset.name = args[4];
Player.Message(p, "&aSuccessfully changed preset name to &f" + preset.name);
} else if (args[3] == "x" || args[3] == "y" || args[3] == "z") {
if (!OkayAxis(args[4])) { Player.Message(p, "&cDimension was wrong, it must be a power of 2"); return; }
if (!OkayAxis(args[4])) { Player.Message(p, "%WDimension was wrong, it must be a power of 2"); return; }
if (args[3] == "x") preset.x = args[4];
if (args[3] == "y") preset.y = args[4];

View File

@ -38,10 +38,10 @@ namespace MCGalaxy.Eco {
string msg = message.SplitSpaces(2)[1]; // keep spaces this way
if (msg == PlayerDB.GetLoginMessage(p)) {
Player.Message(p, "&cYou already have that login message."); return;
Player.Message(p, "%WYou already have that login message."); return;
}
if (msg.Length > NetUtils.StringSize) {
Player.Message(p, "&cLogin message must be 64 characters or less."); return;
Player.Message(p, "%WLogin message must be 64 characters or less."); return;
}
Command.Find("LoginMessage").Use(p, "-own " + msg);
Economy.MakePurchase(p, Price, "%3LoginMessage: %f" + msg);
@ -66,10 +66,10 @@ namespace MCGalaxy.Eco {
string msg = message.SplitSpaces(2)[1]; // keep spaces this way
if (msg == PlayerDB.GetLogoutMessage(p)) {
Player.Message(p, "&cYou already have that logout message."); return;
Player.Message(p, "%WYou already have that logout message."); return;
}
if (msg.Length > NetUtils.StringSize) {
Player.Message(p, "&cLogin message must be 64 characters or less."); return;
Player.Message(p, "%WLogin message must be 64 characters or less."); return;
}
Command.Find("LogoutMessage").Use(p, "-own " + msg);
Economy.MakePurchase(p, Price, "%3LogoutMessage: %f" + msg);

View File

@ -36,10 +36,10 @@ namespace MCGalaxy.Eco {
string title = message.SplitSpaces(2)[1]; // keep spaces this way
if (title == p.title) {
Player.Message(p, "&cYou already have that title."); return;
Player.Message(p, "%WYou already have that title."); return;
}
if (title.Length >= 20) {
Player.Message(p, "&cTitles must be under 20 characters."); return;
Player.Message(p, "%WTitles must be under 20 characters."); return;
}
Command.Find("Title").Use(p, "-own " + title);
@ -64,10 +64,10 @@ namespace MCGalaxy.Eco {
string nick = message.SplitSpaces(2)[1]; // keep spaces this way
if (nick == p.DisplayName) {
Player.Message(p, "&cYou already have that nickname."); return;
Player.Message(p, "%WYou already have that nickname."); return;
}
if (nick.Length >= 30) {
Player.Message(p, "&cNicknames must be under 30 characters."); return;
Player.Message(p, "%WNicknames must be under 30 characters."); return;
}
Command.Find("Nick").Use(p, "-own " + nick);
@ -89,7 +89,7 @@ namespace MCGalaxy.Eco {
string colName = Colors.Name(color);
if (color == p.titlecolor) {
Player.Message(p, "&cYou already have a " + color + colName + "&c titlecolor"); return;
Player.Message(p, "%WYour title color is already " + color + colName); return;
}
Command.Find("TColor").Use(p, "-own " + colName);
@ -111,7 +111,7 @@ namespace MCGalaxy.Eco {
string colName = Colors.Name(color);
if (color == p.color) {
Player.Message(p, "&cYou already have a " + color + colName + "&c color"); return;
Player.Message(p, "%WYour color is already " + color + colName); return;
}
Command.Find("Color").Use(p, "-own " + colName);

View File

@ -81,15 +81,15 @@ namespace MCGalaxy.Eco {
protected internal override void OnBuyCommand(Player p, string message, string[] args) {
if (args.Length >= 2) {
Player.Message(p, "&cYou cannot provide a rank name, use &a/buy rank &cto buy the NEXT rank."); return;
Player.Message(p, "%WYou cannot provide a rank name, use %T/Buy rank %Wto buy the NEXT rank."); return;
}
RankEntry nextRank = NextRank(p);
if (nextRank == null) {
Player.Message(p, "&cYou are already at or past the max buyable rank"); return;
Player.Message(p, "%WYou are already at or past the max buyable rank"); return;
}
if (p.money < nextRank.Price) {
Player.Message(p, "&cYou don't have enough &3" + ServerConfig.Currency + "&c to buy the next rank"); return;
Player.Message(p, "%WYou don't have enough &3" + ServerConfig.Currency + " %Wto buy the next rank"); return;
}
string rankName = Group.Find(nextRank.Perm).Name; // TODO: What if null reference happens here
@ -102,7 +102,7 @@ namespace MCGalaxy.Eco {
if (args[1].CaselessEq("price")) {
Group grp = Matcher.FindRanks(p, args[2]);
if (grp == null) return;
if (p != null && p.Rank < grp.Permission) { Player.Message(p, "&cCannot set price of a rank higher than yours."); return; }
if (p != null && p.Rank < grp.Permission) { Player.Message(p, "%WCannot set price of a rank higher than yours."); return; }
int cost = 0;
if (!CommandParser.GetInt(p, args[3], "Price", ref cost, 0)) return;
@ -111,12 +111,12 @@ namespace MCGalaxy.Eco {
} else if (Command.IsDeleteCommand(args[1])) {
Group grp = Matcher.FindRanks(p, args[2]);
if (grp == null) return;
if (p != null && p.Rank < grp.Permission) { Player.Message(p, "&cCannot remove a rank higher than yours."); return; }
if (p != null && p.Rank < grp.Permission) { Player.Message(p, "%WCannot remove a rank higher than yours."); return; }
if (Remove(grp.Permission)) {
Player.Message(p, "&aMade rank {0} &ano longer buyable", grp.ColoredName);
} else {
Player.Message(p, "&cThat rank was not buyable to begin with.");
Player.Message(p, "%WThat rank was not buyable to begin with.");
}
} else {
OnSetupCommandHelp(p);
@ -134,7 +134,7 @@ namespace MCGalaxy.Eco {
protected internal override void OnStoreOverview(Player p) {
RankEntry next = NextRank(p);
if (next == null) {
Player.Message(p, "&6Rankup %S- &cno further ranks to buy.");
Player.Message(p, "&6Rankup %S- %Wno further ranks to buy.");
} else {
Player.Message(p, "&6Rankup to {0} %S- &a{1} %S{2}",
Group.GetColoredName(next.Perm), next.Price, ServerConfig.Currency);
@ -144,12 +144,12 @@ namespace MCGalaxy.Eco {
protected internal override void OnStoreCommand(Player p) {
Player.Message(p, "%T/Buy rankup");
if (Ranks.Count == 0) {
Player.Message(p, "&cNo ranks have been setup be buyable. See %T/eco help rank"); return;
Player.Message(p, "%WNo ranks have been setup be buyable. See %T/eco help rank"); return;
}
LevelPermission maxRank = Ranks[Ranks.Count - 1].Perm;
Player.Message(p, "&fThe highest buyable rank is: {0}", Group.GetColoredName(maxRank));
Player.Message(p, "&cYou can only buy ranks one at a time, in sequential order.");
Player.Message(p, "%WYou can only buy ranks one at a time, in sequential order.");
foreach (RankEntry rank in Ranks) {
Player.Message(p, "&6{0} %S- &a{1} %S{2}",

View File

@ -32,7 +32,7 @@ namespace MCGalaxy.Eco {
protected internal override void OnBuyCommand(Player p, string message, string[] args) {
if (p.money < Price) {
Player.Message(p, "&cYou don't have enough &3" + ServerConfig.Currency + "&c to buy a " + Name + "."); return;
Player.Message(p, "%WYou don't have enough &3" + ServerConfig.Currency + "%W to buy a " + Name + "."); return;
}
if (!ZSGame.Instance.Running || !ZSGame.Instance.RoundInProgress) {
Player.Message(p, "You can only buy an revive potion " +
@ -56,7 +56,7 @@ namespace MCGalaxy.Eco {
Player.Message(p, "You cannot buy any more revive potions."); return;
}
if (data.TimeInfected.AddSeconds(ZSGame.Config.ReviveTooSlow) < DateTime.UtcNow) {
Player.Message(p, "&cYou can only revive within the first {0} seconds after you were infected.",
Player.Message(p, "%WYou can only revive within the first {0} seconds after you were infected.",
ZSGame.Config.ReviveTooSlow); return;
}
@ -79,7 +79,7 @@ namespace MCGalaxy.Eco {
Player.Message(p, "%T/Buy " + Name);
OutputItemInfo(p);
Player.Message(p, "Lets you rejoin the humans - &cnot guaranteed to always work");
Player.Message(p, "Lets you rejoin the humans - %Wnot guaranteed to always work");
Player.Message(p, " Cannot be used in the last &a" + time + " %Sseconds of a round.");
Player.Message(p, " Can only be used within &a" + expiry + " %Sseconds after being infected.");
Player.Message(p, " Can only buy &a" + potions + " %Srevive potions per round.");

View File

@ -39,7 +39,7 @@ namespace MCGalaxy.Eco {
if (args.Length >= 2 && !CommandParser.GetInt(p, args[1], group, ref count, 0, 10)) return;
if (p.money < Price * count) {
Player.Message(p, "&cYou don't have enough &3{2} &cto buy {1} {0}.",
Player.Message(p, "%WYou don't have enough &3{2} %Wto buy {1} {0}.",
Name, count * 10, ServerConfig.Currency); return;
}
@ -131,7 +131,7 @@ namespace MCGalaxy.Eco {
protected internal override void OnBuyCommand(Player p, string message, string[] args) {
if (p.money < Price) {
Player.Message(p, "&cYou don't have enough &3{1} &cto buy a {0}.", Name, ServerConfig.Currency); return;
Player.Message(p, "%WYou don't have enough &3{1} %Wto buy a {0}.", Name, ServerConfig.Currency); return;
}
if (!ZSGame.Instance.Running || !ZSGame.Instance.RoundInProgress) {
Player.Message(p, "You can only buy an invisiblity potion " +
@ -174,7 +174,7 @@ namespace MCGalaxy.Eco {
Player.Message(p, "%T/Buy " + Name);
OutputItemInfo(p);
Player.Message(p, "Makes you invisibile to {0} - &cyou can still {1}",
Player.Message(p, "Makes you invisible to {0} - %Wyou can still {1}",
ForHumans ? "zombies" : "humans",
ForHumans ? "be infected" : "infect humans");
Player.Message(p, "Lasts for " + Duration + " seconds before you reappear.");

View File

@ -53,7 +53,7 @@ namespace MCGalaxy.Games {
DateTime now = DateTime.UtcNow;
if (now < last) return;
Player.Message(p, "&4Do not {0} &c- ops have been warned.", action);
Player.Message(p, "&4Do not {0} %W- ops have been warned.", action);
Chat.MessageFromOps(p, "λNICK &4appears to be " + action + "ing");
Logger.Log(LogType.SuspiciousActivity, "{0} appears to be {1}ing", p.name, action);
last = now.AddSeconds(5);

View File

@ -80,7 +80,7 @@ namespace MCGalaxy.Games {
End();
} catch (Exception ex) {
Logger.LogError("Error in game " + GameName, ex);
Chat.MessageGlobal("&c" + GameName + " disabled due to an error.");
Chat.MessageGlobal("%W" + GameName + " disabled due to an error.");
try { End(); }
catch (Exception ex2) { Logger.LogError(ex2); }
@ -133,7 +133,7 @@ namespace MCGalaxy.Games {
List<Player> players = GetPlayers();
if (players.Count >= 2) return players;
Map.Message("&cNeed 2 or more non-ref players to start a round.");
Map.Message("%WNeed 2 or more non-ref players to start a round.");
}
}
@ -148,7 +148,7 @@ namespace MCGalaxy.Games {
LastMap = Map.MapName;
if (!SetMap(map)) {
Map.Message("&cFailed to change map to " + map);
Map.Message("%WFailed to change map to " + map);
Map.Message("Continuing " + GameName + " on the same map");
} else {
TransferPlayers(LastMap);

View File

@ -39,7 +39,7 @@ namespace MCGalaxy.Games {
protected override void DoRound() {
backupNum = Map.Backup(true);
if (backupNum <= 0) {
Map.Message("&cBacking up Level for TNT Wars failed, stopping game");
Map.Message("%WBacking up Level for TNT Wars failed, stopping game");
EndGame();
return;
}

View File

@ -232,12 +232,12 @@ namespace MCGalaxy.Games {
}
string action = data.PillarFined ? "kicked" : "fined 10 " + ServerConfig.Currency;
Player.Message(p, "You are pillaring! &cStop before you are " + action + "!");
Player.Message(p, "You are pillaring! %WStop before you are " + action + "!");
} else if (data.BlocksStacked == 4) {
if (!data.PillarFined) {
Chat.MessageFromOps(p, " &cWarning: λNICK %Sis pillaring!");
Command.Find("Take").Use(null, p.name + " 10 Auto fine for pillaring");
Player.Message(p, " &cThe next time you pillar, you will be &4kicked&c.");
Player.Message(p, " %WThe next time you pillar, you will be &4kicked!");
} else {
ModAction action = new ModAction(p.name, null, ModActionType.Kicked, "Auto kick for pillaring");
OnModActionEvent.Call(action);

View File

@ -46,8 +46,8 @@ namespace MCGalaxy.Generator {
return true;
} catch (Exception ex) {
Logger.LogError("Error downloading image", ex);
Player.Message(p, "&cFailed to download the image from the given url.");
Player.Message(p, "&cThe url may need to end with its extension (such as .jpg).");
Player.Message(p, "%WFailed to download the image from the given url.");
Player.Message(p, "%WThe url may need to end with its extension (such as .jpg).");
return false;
}
}
@ -64,8 +64,8 @@ namespace MCGalaxy.Generator {
Logger.LogError("Error reading bitmap", ex);
if (bmp != null) bmp.Dispose();
Player.Message(p, "&cThere was an error reading the downloaded image.");
Player.Message(p, "&cThe url may need to end with its extension (such as .jpg).");
Player.Message(p, "%WThere was an error reading the downloaded image.");
Player.Message(p, "%WThe url may need to end with its extension (such as .jpg).");
return null;
}
}

View File

@ -277,7 +277,7 @@ namespace MCGalaxy {
if (!IsVisit) {
p.AllowBuild = allowed;
} else if (!allowed) {
Player.Message(p, "&cNo longer allowed to visit %S{0}", ColoredName);
Player.Message(p, "%WNo longer allowed to visit %S{0}", ColoredName);
PlayerActions.ChangeMap(p, Server.mainLevel);
}
}

View File

@ -235,7 +235,7 @@ namespace MCGalaxy {
} catch (Exception ex) {
success = false;
PlayerActions.ChangeMap(this, Server.mainLevel);
SendMessage("There was an error sending the map data, you have been sent to the main level.");
SendMessage("%WThere was an error sending the map, you have been sent to the main level.");
Logger.LogError(ex);
} finally {
Server.DoGC();

View File

@ -58,7 +58,7 @@ namespace MCGalaxy {
bool deletingBlock = !painting && !placing;
if (ServerConfig.verifyadmins && adminpen) {
SendMessage("&cYou must first verify with %T/Pass [Password]");
SendMessage("%WYou must first verify with %T/Pass [Password]");
RevertBlock(x, y, z); return;
}
@ -524,7 +524,7 @@ namespace MCGalaxy {
}
if (text.CaselessContains("^detail.user=")) {
SendMessage("&cYou cannot use WoM detail strings in a chat message.");
SendMessage("%WYou cannot use WoM detail strings in a chat message.");
return true;
}
@ -631,7 +631,7 @@ namespace MCGalaxy {
thread.IsBackground = true;
thread.Start();
} catch (Exception e) {
Logger.LogError(e); SendMessage("Command failed.");
Logger.LogError(e); SendMessage("%WCommand failed.");
}
}
@ -644,7 +644,7 @@ namespace MCGalaxy {
SendMessage("You cannot use any commands while jailed."); return false;
}
if (ServerConfig.verifyadmins && adminpen && !(cmd == "pass" || cmd == "setpass")) {
SendMessage("&cYou must verify first with %T/Pass [Password]"); return false;
SendMessage("%WYou must verify first with %T/Pass [Password]"); return false;
}
TimeSpan delta = cmdUnblocked - DateTime.UtcNow;
@ -722,7 +722,7 @@ namespace MCGalaxy {
command.Use(this, message);
} catch (Exception e) {
Logger.LogError(e);
Player.Message(this, "An error occured when using the command!");
Player.Message(this, "%WAn error occured when using the command!");
Player.Message(this, e.GetType() + ": " + e.Message);
return false;
}

View File

@ -128,15 +128,15 @@ namespace MCGalaxy {
}
if (ServerConfig.AgreeToRulesOnEntry && Rank == LevelPermission.Guest && !Server.agreed.Contains(name)) {
SendMessage("&9You must read the &c/Rules&9 and &c/Agree&9 to them before you can build and use commands!");
SendMessage("&9You must read the &c/Rules &9and &c/Agree &9to them before you can build and use commands!");
agreed = false;
}
if (ServerConfig.verifyadmins && Rank >= ServerConfig.VerifyAdminsRank) {
if (!Directory.Exists("extra/passwords") || !File.Exists("extra/passwords/" + name + ".dat"))
SendMessage("&cPlease set your admin verification password with %T/SetPass [Password]!");
SendMessage("%WPlease set your admin verification password with %T/SetPass [Password]!");
else
SendMessage("&cPlease complete admin verification with %T/Pass [Password]!");
SendMessage("%Wcomplete admin verification with %T/Pass [Password]!");
}
if (group.CanExecute("Inbox") && Database.TableExists("Inbox" + name)) {
@ -231,12 +231,12 @@ namespace MCGalaxy {
void CheckState() {
if (Server.muted.Contains(name)) {
muted = true;
Chat.MessageFrom(this, "λNICK &cis still muted from previously.");
Chat.MessageFrom(this, "λNICK %Wis still muted from previously.");
}
if (Server.frozen.Contains(name)) {
frozen = true;
Chat.MessageFrom(this, "λNICK &cis still frozen from previously.");
Chat.MessageFrom(this, "λNICK %Wis still frozen from previously.");
}
}

View File

@ -45,7 +45,7 @@ namespace MCGalaxy {
return false;
TimeSpan oldestDelta = DateTime.UtcNow - blockLog[0];
Chat.MessageFromOps(p, "λNICK &cwas kicked for suspected griefing.");
Chat.MessageFromOps(p, "λNICK %Wwas kicked for suspected griefing.");
Logger.Log(LogType.SuspiciousActivity,
"{0} was kicked for block spam ({1} blocks in {2} seconds)",

View File

@ -142,7 +142,7 @@ namespace MCGalaxy {
// To make life easier, we reload settings now, to maker it less likely to need restart
Command.Find("Server").Use(null, "reload"); // Reload, as console
Player.Message(p, "Server restored" + (errors > 0 ? " with errors. May be a partial restore" : "") + ". Restart is reccommended, though not required.");
Player.Message(p, "Server restored" + (errors > 0 ? " with errors. May be a partial restore" : "") + ". Restart is recommended, though not required.");
}
static void ExtractItem(ZipPackagePart item, ref int errors) {

View File

@ -213,6 +213,8 @@ namespace MCGalaxy {
public static string HelpSyntaxColor = "&a";
[ConfigColor("help-desc-color", "Colors", "&e")]
public static string HelpDescriptionColor = "&e";
[ConfigColor("warning-error-color", "Colors", "&c")]
public static string WarningErrorColor = "&c";
[ConfigBool("cheapmessage", "Other", true)]
public static bool ShowInvincibleMessage = true;