From 44d9a9e2be8f3fc0e3e6e855d671935aa03ccb34 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 23 Oct 2022 21:19:31 +0000
Subject: [PATCH 01/17] Update dependency NUnit.Analyzers to v3.5.0
---
TShockLauncher.Tests/TShockLauncher.Tests.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TShockLauncher.Tests/TShockLauncher.Tests.csproj b/TShockLauncher.Tests/TShockLauncher.Tests.csproj
index 47f37622..6267eb1e 100644
--- a/TShockLauncher.Tests/TShockLauncher.Tests.csproj
+++ b/TShockLauncher.Tests/TShockLauncher.Tests.csproj
@@ -10,7 +10,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
From 0c8a9c3e5756989ea559831cdef46c53a8b7abc9 Mon Sep 17 00:00:00 2001
From: Lucas Nicodemus
Date: Sun, 23 Oct 2022 07:47:59 -0700
Subject: [PATCH 02/17] Add more i18n-compatible strings in commands
---
TShockAPI/Commands.cs | 245 +++++++++++++++++++++---------------------
1 file changed, 123 insertions(+), 122 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index e0949da9..08f30faa 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -4010,17 +4010,17 @@ namespace TShockAPI
{
if (args.Parameters.Count != 2)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}projban add ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}projban add ", Specifier));
return;
}
short id;
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
{
TShock.ProjectileBans.AddNewBan(id);
- args.Player.SendSuccessMessage("Banned projectile {0}.", id);
+ args.Player.SendSuccessMessage(GetString("Banned projectile {0}.", id));
}
else
- args.Player.SendErrorMessage("Invalid projectile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid projectile ID!"));
}
#endregion
return;
@@ -4029,7 +4029,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 3)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}projban allow ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}projban allow .", Specifier));
return;
}
@@ -4038,26 +4038,26 @@ namespace TShockAPI
{
if (!TShock.Groups.GroupExists(args.Parameters[2]))
{
- args.Player.SendErrorMessage("Invalid group.");
+ args.Player.SendErrorMessage(GetString("Invalid group."));
return;
}
ProjectileBan ban = TShock.ProjectileBans.GetBanById(id);
if (ban == null)
{
- args.Player.SendErrorMessage("Projectile {0} is not banned.", id);
+ args.Player.SendErrorMessage(GetString("Projectile {0} is not banned.", id));
return;
}
if (!ban.AllowedGroups.Contains(args.Parameters[2]))
{
TShock.ProjectileBans.AllowGroup(id, args.Parameters[2]);
- args.Player.SendSuccessMessage("{0} has been allowed to use projectile {1}.", args.Parameters[2], id);
+ args.Player.SendSuccessMessage(GetString("{0} has been allowed to use projectile {1}.", args.Parameters[2], id));
}
else
- args.Player.SendWarningMessage("{0} is already allowed to use projectile {1}.", args.Parameters[2], id);
+ args.Player.SendWarningMessage(GetString("{0} is already allowed to use projectile {1}.", args.Parameters[2], id));
}
else
- args.Player.SendErrorMessage("Invalid projectile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid projectile ID."));
}
#endregion
return;
@@ -4066,7 +4066,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 2)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}projban del ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}projban del .", Specifier));
return;
}
@@ -4074,11 +4074,11 @@ namespace TShockAPI
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
{
TShock.ProjectileBans.RemoveBan(id);
- args.Player.SendSuccessMessage("Unbanned projectile {0}.", id);
+ args.Player.SendSuccessMessage(GetString("Unbanned projectile {0}.", id));
return;
}
else
- args.Player.SendErrorMessage("Invalid projectile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid projectile ID."));
}
#endregion
return;
@@ -4087,7 +4087,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 3)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}projban disallow ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}projban disallow .", Specifier));
return;
}
@@ -4096,27 +4096,27 @@ namespace TShockAPI
{
if (!TShock.Groups.GroupExists(args.Parameters[2]))
{
- args.Player.SendErrorMessage("Invalid group.");
+ args.Player.SendErrorMessage(GetString("Invalid group."));
return;
}
ProjectileBan ban = TShock.ProjectileBans.GetBanById(id);
if (ban == null)
{
- args.Player.SendErrorMessage("Projectile {0} is not banned.", id);
+ args.Player.SendErrorMessage(GetString("Projectile {0} is not banned.", id));
return;
}
if (ban.AllowedGroups.Contains(args.Parameters[2]))
{
TShock.ProjectileBans.RemoveGroup(id, args.Parameters[2]);
- args.Player.SendSuccessMessage("{0} has been disallowed from using projectile {1}.", args.Parameters[2], id);
+ args.Player.SendSuccessMessage(GetString("{0} has been disallowed from using projectile {1}.", args.Parameters[2], id));
return;
}
else
- args.Player.SendWarningMessage("{0} is already prevented from using projectile {1}.", args.Parameters[2], id);
+ args.Player.SendWarningMessage(GetString("{0} is already prevented from using projectile {1}.", args.Parameters[2], id));
}
else
- args.Player.SendErrorMessage("Invalid projectile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid projectile ID."));
}
#endregion
return;
@@ -4129,11 +4129,11 @@ namespace TShockAPI
var lines = new List
{
- "add - Adds a projectile ban.",
- "allow - Allows a group to use a projectile.",
- "del - Deletes an projectile ban.",
- "disallow - Disallows a group from using a projectile.",
- "list [page] - Lists all projectile bans."
+ GetString("add - Adds a projectile ban."),
+ GetString("allow - Allows a group to use a projectile."),
+ GetString("del - Deletes an projectile ban."),
+ GetString("disallow - Disallows a group from using a projectile."),
+ GetString("list [page] - Lists all projectile bans.")
};
PaginationTools.SendPage(args.Player, pageNumber, lines,
@@ -4167,7 +4167,7 @@ namespace TShockAPI
default:
#region Default
{
- args.Player.SendErrorMessage("Invalid subcommand! Type {0}projban help for more information on valid subcommands.", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid subcommand. Type {0}projban help for more information on valid subcommands.", Specifier));
}
#endregion
return;
@@ -4186,17 +4186,17 @@ namespace TShockAPI
{
if (args.Parameters.Count != 2)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}tileban add ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}tileban add .", Specifier));
return;
}
short id;
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Main.maxTileSets)
{
TShock.TileBans.AddNewBan(id);
- args.Player.SendSuccessMessage("Banned tile {0}.", id);
+ args.Player.SendSuccessMessage(GetString("Banned tile {0}.", id));
}
else
- args.Player.SendErrorMessage("Invalid tile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid tile ID."));
}
#endregion
return;
@@ -4205,7 +4205,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 3)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}tileban allow ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}tileban allow .", Specifier));
return;
}
@@ -4214,26 +4214,26 @@ namespace TShockAPI
{
if (!TShock.Groups.GroupExists(args.Parameters[2]))
{
- args.Player.SendErrorMessage("Invalid group.");
+ args.Player.SendErrorMessage(GetString("Invalid group."));
return;
}
TileBan ban = TShock.TileBans.GetBanById(id);
if (ban == null)
{
- args.Player.SendErrorMessage("Tile {0} is not banned.", id);
+ args.Player.SendErrorMessage(GetString("Tile {0} is not banned.", id));
return;
}
if (!ban.AllowedGroups.Contains(args.Parameters[2]))
{
TShock.TileBans.AllowGroup(id, args.Parameters[2]);
- args.Player.SendSuccessMessage("{0} has been allowed to place tile {1}.", args.Parameters[2], id);
+ args.Player.SendSuccessMessage(GetString("{0} has been allowed to place tile {1}.", args.Parameters[2], id));
}
else
- args.Player.SendWarningMessage("{0} is already allowed to place tile {1}.", args.Parameters[2], id);
+ args.Player.SendWarningMessage(GetString("{0} is already allowed to place tile {1}.", args.Parameters[2], id));
}
else
- args.Player.SendErrorMessage("Invalid tile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid tile ID."));
}
#endregion
return;
@@ -4242,7 +4242,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 2)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}tileban del ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}tileban del .", Specifier));
return;
}
@@ -4250,11 +4250,11 @@ namespace TShockAPI
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Main.maxTileSets)
{
TShock.TileBans.RemoveBan(id);
- args.Player.SendSuccessMessage("Unbanned tile {0}.", id);
+ args.Player.SendSuccessMessage(GetString("Unbanned tile {0}.", id));
return;
}
else
- args.Player.SendErrorMessage("Invalid tile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid tile ID."));
}
#endregion
return;
@@ -4263,7 +4263,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 3)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}tileban disallow ", Specifier);
+ args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}tileban disallow .", Specifier);
return;
}
@@ -4272,27 +4272,27 @@ namespace TShockAPI
{
if (!TShock.Groups.GroupExists(args.Parameters[2]))
{
- args.Player.SendErrorMessage("Invalid group.");
+ args.Player.SendErrorMessage(GetString("Invalid group."));
return;
}
TileBan ban = TShock.TileBans.GetBanById(id);
if (ban == null)
{
- args.Player.SendErrorMessage("Tile {0} is not banned.", id);
+ args.Player.SendErrorMessage(GetString("Tile {0} is not banned.", id));
return;
}
if (ban.AllowedGroups.Contains(args.Parameters[2]))
{
TShock.TileBans.RemoveGroup(id, args.Parameters[2]);
- args.Player.SendSuccessMessage("{0} has been disallowed from placing tile {1}.", args.Parameters[2], id);
+ args.Player.SendSuccessMessage(GetString("{0} has been disallowed from placing tile {1}.", args.Parameters[2], id));
return;
}
else
- args.Player.SendWarningMessage("{0} is already prevented from placing tile {1}.", args.Parameters[2], id);
+ args.Player.SendWarningMessage(GetString("{0} is already prevented from placing tile {1}.", args.Parameters[2], id));
}
else
- args.Player.SendErrorMessage("Invalid tile ID!");
+ args.Player.SendErrorMessage(GetString("Invalid tile ID."));
}
#endregion
return;
@@ -4305,11 +4305,11 @@ namespace TShockAPI
var lines = new List
{
- "add - Adds a tile ban.",
- "allow - Allows a group to place a tile.",
- "del - Deletes a tile ban.",
- "disallow - Disallows a group from place a tile.",
- "list [page] - Lists all tile bans."
+ GetString("add - Adds a tile ban."),
+ GetString("allow - Allows a group to place a tile."),
+ GetString("del - Deletes a tile ban."),
+ GetString("disallow - Disallows a group from place a tile."),
+ GetString("list [page] - Lists all tile bans.")
};
PaginationTools.SendPage(args.Player, pageNumber, lines,
@@ -4335,7 +4335,7 @@ namespace TShockAPI
{
HeaderFormat = "Tile bans ({0}/{1}):",
FooterFormat = "Type {0}tileban list {{0}} for more.".SFormat(Specifier),
- NothingToDisplayString = "There are currently no banned tiles."
+ NothingToDisplayString = GetString("There are currently no banned tiles.")
});
}
#endregion
@@ -4343,7 +4343,7 @@ namespace TShockAPI
default:
#region Default
{
- args.Player.SendErrorMessage("Invalid subcommand! Type {0}tileban help for more information on valid subcommands.", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid subcommand. Type {0}tileban help for more information on valid subcommands.", Specifier));
}
#endregion
return;
@@ -4358,7 +4358,7 @@ namespace TShockAPI
Main.spawnTileX = args.Player.TileX + 1;
Main.spawnTileY = args.Player.TileY + 3;
SaveManager.Instance.SaveWorld(false);
- args.Player.SendSuccessMessage("Spawn has now been set at your location.");
+ args.Player.SendSuccessMessage(GetString("Spawn has now been set at your location."));
}
private static void SetDungeon(CommandArgs args)
@@ -4366,7 +4366,7 @@ namespace TShockAPI
Main.dungeonX = args.Player.TileX + 1;
Main.dungeonY = args.Player.TileY + 3;
SaveManager.Instance.SaveWorld(false);
- args.Player.SendSuccessMessage("The dungeon's position has now been set at your location.");
+ args.Player.SendSuccessMessage(GetString("The dungeon's position has now been set at your location."));
}
private static void Reload(CommandArgs args)
@@ -4375,19 +4375,19 @@ namespace TShockAPI
Hooks.GeneralHooks.OnReloadEvent(args.Player);
args.Player.SendSuccessMessage(
- "Configuration, permissions, and regions reload complete. Some changes may require a server restart.");
+ GetString("Configuration, permissions, and regions reload complete. Some changes may require a server restart."));
}
private static void ServerPassword(CommandArgs args)
{
if (args.Parameters.Count != 1)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}serverpassword \"\"", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}serverpassword \"\".", Specifier));
return;
}
string passwd = args.Parameters[0];
TShock.Config.Settings.ServerPassword = passwd;
- args.Player.SendSuccessMessage(string.Format("Server password has been changed to: {0}.", passwd));
+ args.Player.SendSuccessMessage(GetString("Server password has been changed to: {0}.", passwd));
}
private static void Save(CommandArgs args)
@@ -4403,18 +4403,18 @@ namespace TShockAPI
{
if (Liquid.panicMode)
{
- args.Player.SendWarningMessage("Liquids are already settling!");
+ args.Player.SendWarningMessage(GetString("Liquids are already settling."));
return;
}
Liquid.StartPanic();
- args.Player.SendInfoMessage("Settling liquids.");
+ args.Player.SendInfoMessage(GetString("Settling liquids."));
}
private static void MaxSpawns(CommandArgs args)
{
if (args.Parameters.Count == 0)
{
- args.Player.SendInfoMessage("Current maximum spawns: {0}", TShock.Config.Settings.DefaultMaximumSpawns);
+ args.Player.SendInfoMessage(GetString("Current maximum spawns: {0}.", TShock.Config.Settings.DefaultMaximumSpawns));
return;
}
@@ -4423,11 +4423,11 @@ namespace TShockAPI
TShock.Config.Settings.DefaultMaximumSpawns = NPC.defaultMaxSpawns = 5;
if (args.Silent)
{
- args.Player.SendInfoMessage("Changed the maximum spawns to 5.");
+ args.Player.SendInfoMessage(GetString("Changed the maximum spawns to 5."));
}
else
{
- TSPlayer.All.SendInfoMessage("{0} changed the maximum spawns to 5.", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} changed the maximum spawns to 5.", args.Player.Name));
}
return;
}
@@ -4435,18 +4435,18 @@ namespace TShockAPI
int maxSpawns = -1;
if (!int.TryParse(args.Parameters[0], out maxSpawns) || maxSpawns < 0 || maxSpawns > Main.maxNPCs)
{
- args.Player.SendWarningMessage("Invalid maximum spawns! Acceptable range is {0} to {1}", 0, Main.maxNPCs);
+ args.Player.SendWarningMessage(GetString("Invalid maximum spawns. Acceptable range is {0} to {1}.", 0, Main.maxNPCs));
return;
}
TShock.Config.Settings.DefaultMaximumSpawns = NPC.defaultMaxSpawns = maxSpawns;
if (args.Silent)
{
- args.Player.SendInfoMessage("Changed the maximum spawns to {0}.", maxSpawns);
+ args.Player.SendInfoMessage(GetString("Changed the maximum spawns to {0}.", maxSpawns));
}
else
{
- TSPlayer.All.SendInfoMessage("{0} changed the maximum spawns to {1}.", args.Player.Name, maxSpawns);
+ TSPlayer.All.SendInfoMessage(GetString("{0} changed the maximum spawns to {1}.", args.Player.Name, maxSpawns));
}
}
@@ -4454,7 +4454,7 @@ namespace TShockAPI
{
if (args.Parameters.Count == 0)
{
- args.Player.SendInfoMessage("Current spawn rate: {0}", TShock.Config.Settings.DefaultSpawnRate);
+ args.Player.SendInfoMessage(GetString("Current spawn rate: {0}.", TShock.Config.Settings.DefaultSpawnRate));
return;
}
@@ -4463,11 +4463,11 @@ namespace TShockAPI
TShock.Config.Settings.DefaultSpawnRate = NPC.defaultSpawnRate = 600;
if (args.Silent)
{
- args.Player.SendInfoMessage("Changed the spawn rate to 600.");
+ args.Player.SendInfoMessage(GetString("Changed the spawn rate to 600."));
}
else
{
- TSPlayer.All.SendInfoMessage("{0} changed the spawn rate to 600.", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} changed the spawn rate to 600.", args.Player.Name));
}
return;
}
@@ -4475,17 +4475,17 @@ namespace TShockAPI
int spawnRate = -1;
if (!int.TryParse(args.Parameters[0], out spawnRate) || spawnRate < 0)
{
- args.Player.SendWarningMessage("Invalid spawn rate!");
+ args.Player.SendWarningMessage(GetString("The spawn rate you provided is out-of-range or not a number."));
return;
}
TShock.Config.Settings.DefaultSpawnRate = NPC.defaultSpawnRate = spawnRate;
if (args.Silent)
{
- args.Player.SendInfoMessage("Changed the spawn rate to {0}.", spawnRate);
+ args.Player.SendInfoMessage(GetString("Changed the spawn rate to {0}.", spawnRate));
}
else
{
- TSPlayer.All.SendInfoMessage("{0} changed the spawn rate to {1}.", args.Player.Name, spawnRate);
+ TSPlayer.All.SendInfoMessage(GetString("{0} changed the spawn rate to {1}.", args.Player.Name, spawnRate));
}
}
@@ -4502,7 +4502,7 @@ namespace TShockAPI
if (!Main.dayTime)
time += 15.0;
time = time % 24.0;
- args.Player.SendInfoMessage("The current time is {0}:{1:D2}.", (int)Math.Floor(time), (int)Math.Floor((time % 1.0) * 60.0));
+ args.Player.SendInfoMessage(GetString("The current time is {0}:{1:D2}.", (int)Math.Floor(time), (int)Math.Floor((time % 1.0) * 60.0)));
return;
}
@@ -4510,25 +4510,25 @@ namespace TShockAPI
{
case "day":
TSPlayer.Server.SetTime(true, 0.0);
- TSPlayer.All.SendInfoMessage("{0} set the time to 4:30.", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} set the time to 04:30.", args.Player.Name));
break;
case "night":
TSPlayer.Server.SetTime(false, 0.0);
- TSPlayer.All.SendInfoMessage("{0} set the time to 19:30.", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} set the time to 19:30.", args.Player.Name));
break;
case "noon":
TSPlayer.Server.SetTime(true, 27000.0);
- TSPlayer.All.SendInfoMessage("{0} set the time to 12:00.", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} set the time to 12:00.", args.Player.Name));
break;
case "midnight":
TSPlayer.Server.SetTime(false, 16200.0);
- TSPlayer.All.SendInfoMessage("{0} set the time to 0:00.", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} set the time to 00:00.", args.Player.Name));
break;
default:
string[] array = args.Parameters[0].Split(':');
if (array.Length != 2)
{
- args.Player.SendErrorMessage("Invalid time string! Proper format: hh:mm, in 24-hour time.");
+ args.Player.SendErrorMessage(GetString("Invalid time string. Proper format: hh:mm, in 24-hour time."));
return;
}
@@ -4537,7 +4537,7 @@ namespace TShockAPI
if (!int.TryParse(array[0], out hours) || hours < 0 || hours > 23
|| !int.TryParse(array[1], out minutes) || minutes < 0 || minutes > 59)
{
- args.Player.SendErrorMessage("Invalid time string! Proper format: hh:mm, in 24-hour time.");
+ args.Player.SendErrorMessage(GetString("Invalid time string. Proper format: hh:mm, in 24-hour time."));
return;
}
@@ -4554,7 +4554,7 @@ namespace TShockAPI
{
TSPlayer.Server.SetTime(true, (double)(time * 3600.0m));
}
- TSPlayer.All.SendInfoMessage("{0} set the time to {1}:{2:D2}.", args.Player.Name, hours, minutes);
+ TSPlayer.All.SendInfoMessage(GetString("{0} set the time to {1}:{2:D2}.", args.Player.Name, hours, minutes));
break;
}
}
@@ -4563,12 +4563,13 @@ namespace TShockAPI
{
if (args.Parameters.Count < 1 || args.Parameters.Count > 2)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}slap [damage]", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}slap [damage].", Specifier));
return;
}
+
if (args.Parameters[0].Length == 0)
{
- args.Player.SendErrorMessage("Invalid player!");
+ args.Player.SendErrorMessage(GetString("Invalid target player."));
return;
}
@@ -4576,7 +4577,7 @@ namespace TShockAPI
var players = TSPlayer.FindByNameOrID(plStr);
if (players.Count == 0)
{
- args.Player.SendErrorMessage("Invalid player!");
+ args.Player.SendErrorMessage(GetString("Invalid target player."));
}
else if (players.Count > 1)
{
@@ -4595,8 +4596,8 @@ namespace TShockAPI
damage = TShock.Utils.Clamp(damage, 15, 0);
}
plr.DamagePlayer(damage);
- TSPlayer.All.SendInfoMessage("{0} slapped {1} for {2} damage.", args.Player.Name, plr.Name, damage);
- TShock.Log.Info("{0} slapped {1} for {2} damage.", args.Player.Name, plr.Name, damage);
+ TSPlayer.All.SendInfoMessage(GetString("{0} slapped {1} for {2} damage.", args.Player.Name, plr.Name, damage));
+ TShock.Log.Info(GetString("{0} slapped {1} for {2} damage.", args.Player.Name, plr.Name, damage));
}
}
@@ -4604,21 +4605,21 @@ namespace TShockAPI
{
if (args.Parameters.Count != 1)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}wind ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}wind .", Specifier));
return;
}
int speed;
if (!int.TryParse(args.Parameters[0], out speed) || speed * 100 < 0)
{
- args.Player.SendErrorMessage("Invalid wind speed!");
+ args.Player.SendErrorMessage(GetString("Invalid wind speed."));
return;
}
Main.windSpeedCurrent = speed;
Main.windSpeedTarget = speed;
TSPlayer.All.SendData(PacketTypes.WorldInfo);
- TSPlayer.All.SendInfoMessage("{0} changed the wind speed to {1}.", args.Player.Name, speed);
+ TSPlayer.All.SendInfoMessage(GetString("{0} changed the wind speed to {1}.", args.Player.Name, speed));
}
#endregion Time/PvpFun Commands
@@ -4637,7 +4638,7 @@ namespace TShockAPI
case "name":
{
{
- args.Player.SendInfoMessage("Hit a block to get the name of the region");
+ args.Player.SendInfoMessage(GetString("Hit a block to get the name of the region."));
args.Player.AwaitingName = true;
args.Player.AwaitingNameParameters = args.Parameters.Skip(1).ToArray();
}
@@ -4650,12 +4651,12 @@ namespace TShockAPI
int.TryParse(args.Parameters[1], out choice) &&
choice >= 1 && choice <= 2)
{
- args.Player.SendInfoMessage("Hit a block to Set Point " + choice);
+ args.Player.SendInfoMessage(GetString("Hit a block to set point {0}.", choice));
args.Player.AwaitingTempPoint = choice;
}
else
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: /region set <1/2>");
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: /region set <1/2>."));
}
break;
}
@@ -4676,20 +4677,20 @@ namespace TShockAPI
{
args.Player.TempPoints[0] = Point.Zero;
args.Player.TempPoints[1] = Point.Zero;
- args.Player.SendInfoMessage("Set region " + regionName);
+ args.Player.SendInfoMessage(GetString("Set region {0}.", regionName));
}
else
{
- args.Player.SendErrorMessage("Region " + regionName + " already exists");
+ args.Player.SendErrorMessage(GetString($"Region {regionName} already exists."));
}
}
else
{
- args.Player.SendErrorMessage("Points not set up yet");
+ args.Player.SendErrorMessage(GetString("Region points need to be defined first. Use /region set 1 and /region set 2."));
}
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region define ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region define .", Specifier));
break;
}
case "protect":
@@ -4700,22 +4701,22 @@ namespace TShockAPI
if (args.Parameters[2].ToLower() == "true")
{
if (TShock.Regions.SetRegionState(regionName, true))
- args.Player.SendInfoMessage("Protected region " + regionName);
+ args.Player.SendInfoMessage(GetString("Marked region {0} as protected.", regionName));
else
- args.Player.SendErrorMessage("Could not find specified region");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else if (args.Parameters[2].ToLower() == "false")
{
if (TShock.Regions.SetRegionState(regionName, false))
- args.Player.SendInfoMessage("Unprotected region " + regionName);
+ args.Player.SendInfoMessage(GetString("Marked region {0} as unprotected.", regionName));
else
- args.Player.SendErrorMessage("Could not find specified region");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region protect ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region protect .", Specifier));
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: /region protect ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: /region protect .", Specifier));
break;
}
case "delete":
@@ -4725,20 +4726,20 @@ namespace TShockAPI
string regionName = String.Join(" ", args.Parameters.GetRange(1, args.Parameters.Count - 1));
if (TShock.Regions.DeleteRegion(regionName))
{
- args.Player.SendInfoMessage("Deleted region \"{0}\".", regionName);
+ args.Player.SendInfoMessage(GetString("Deleted region \"{0}\".", regionName));
}
else
- args.Player.SendErrorMessage("Could not find the specified region!");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region delete ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region delete .", Specifier));
break;
}
case "clear":
{
args.Player.TempPoints[0] = Point.Zero;
args.Player.TempPoints[1] = Point.Zero;
- args.Player.SendInfoMessage("Cleared temporary points.");
+ args.Player.SendInfoMessage(GetString("Temporary region set points have been removed."));
args.Player.AwaitingTempPoint = 0;
break;
}
@@ -4764,18 +4765,18 @@ namespace TShockAPI
{
if (TShock.Regions.AddNewUser(regionName, playerName))
{
- args.Player.SendInfoMessage("Added user " + playerName + " to " + regionName);
+ args.Player.SendInfoMessage(GetString($"Added user {playerName} to {regionName}."));
}
else
- args.Player.SendErrorMessage("Region " + regionName + " not found");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else
{
- args.Player.SendErrorMessage("Player " + playerName + " not found");
+ args.Player.SendErrorMessage(GetString($"Player {playerName} not found."));
}
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region allow ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region allow .", Specifier));
break;
}
case "remove":
@@ -4799,18 +4800,18 @@ namespace TShockAPI
{
if (TShock.Regions.RemoveUser(regionName, playerName))
{
- args.Player.SendInfoMessage("Removed user " + playerName + " from " + regionName);
+ args.Player.SendInfoMessage(GetString($"Removed user {playerName} from {regionName}."));
}
else
- args.Player.SendErrorMessage("Region " + regionName + " not found");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else
{
- args.Player.SendErrorMessage("Player " + playerName + " not found");
+ args.Player.SendErrorMessage(GetString($"Player {playerName} not found."));
}
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region remove ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region remove .", Specifier));
break;
case "allowg":
{
@@ -4834,18 +4835,18 @@ namespace TShockAPI
{
if (TShock.Regions.AllowGroup(regionName, group))
{
- args.Player.SendInfoMessage("Added group " + group + " to " + regionName);
+ args.Player.SendInfoMessage(GetString($"Added group {group} to {regionName}."));
}
else
- args.Player.SendErrorMessage("Region " + regionName + " not found");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else
{
- args.Player.SendErrorMessage("Group " + group + " not found");
+ args.Player.SendErrorMessage(GetString($"Group {group} not found."));
}
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region allowg ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region allowg .", Specifier));
break;
}
case "removeg":
@@ -4872,15 +4873,15 @@ namespace TShockAPI
args.Player.SendInfoMessage("Removed group " + group + " from " + regionName);
}
else
- args.Player.SendErrorMessage("Region " + regionName + " not found");
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
}
else
{
- args.Player.SendErrorMessage("Group " + group + " not found");
+ args.Player.SendErrorMessage(GetString($"Group {group} not found."));
}
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region removeg ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region removeg .", Specifier));
break;
case "list":
{
@@ -4896,7 +4897,7 @@ namespace TShockAPI
{
HeaderFormat = "Regions ({0}/{1}):",
FooterFormat = "Type {0}region list {{0}} for more.".SFormat(Specifier),
- NothingToDisplayString = "There are currently no regions defined."
+ NothingToDisplayString = GetString("There are currently no regions defined.")
});
break;
}
@@ -4904,7 +4905,7 @@ namespace TShockAPI
{
if (args.Parameters.Count == 1 || args.Parameters.Count > 4)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region info [-d] [page]", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region info [-d] [page].", Specifier));
break;
}
@@ -4916,7 +4917,7 @@ namespace TShockAPI
Region region = TShock.Regions.GetRegionByName(regionName);
if (region == null)
{
- args.Player.SendErrorMessage("Region \"{0}\" does not exist.", regionName);
+ args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
break;
}
@@ -4927,9 +4928,9 @@ namespace TShockAPI
List lines = new List
{
- string.Format("X: {0}; Y: {1}; W: {2}; H: {3}, Z: {4}", region.Area.X, region.Area.Y, region.Area.Width, region.Area.Height, region.Z),
- string.Concat("Owner: ", region.Owner),
- string.Concat("Protected: ", region.DisableBuild.ToString()),
+ GetString("X: {0}; Y: {1}; W: {2}; H: {3}, Z: {4}", region.Area.X, region.Area.Y, region.Area.Width, region.Area.Height, region.Z),
+ GetString($"Region owner: {region.Owner}."),
+ GetString($"Protected: {region.DisableBuild.ToString()}."),
};
if (region.AllowedIDs.Count > 0)
From a116b5f7bed0d53d33c17e6e6e978dc005ba81dd Mon Sep 17 00:00:00 2001
From: Cardinal System
Date: Mon, 24 Oct 2022 07:29:24 +0000
Subject: [PATCH 03/17] =?UTF-8?q?Update=20translation=20template=20?=
=?UTF-8?q?=E2=9C=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
i18n/template.pot | 492 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 490 insertions(+), 2 deletions(-)
diff --git a/i18n/template.pot b/i18n/template.pot
index 5df70503..bb9b4b04 100644
--- a/i18n/template.pot
+++ b/i18n/template.pot
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: TShock\n"
-"POT-Creation-Date: 2022-10-23 14:23:32+0000\n"
-"PO-Revision-Date: 2022-10-23 14:23:33+0000\n"
+"POT-Creation-Date: 2022-10-24 07:29:23+0000\n"
+"PO-Revision-Date: 2022-10-24 07:29:24+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -99,11 +99,36 @@ msgstr ""
msgid "{0} changed account {1} to group {2}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4449
+#, csharp-format
+msgid "{0} changed the maximum spawns to {1}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4430
+#, csharp-format
+msgid "{0} changed the maximum spawns to 5."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1145
#, csharp-format
msgid "{0} changed the password for account {1}"
msgstr ""
+#: ../../TShockAPI/Commands.cs:4488
+#, csharp-format
+msgid "{0} changed the spawn rate to {1}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4470
+#, csharp-format
+msgid "{0} changed the spawn rate to 600."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4622
+#, csharp-format
+msgid "{0} changed the wind speed to {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2452
#, csharp-format
msgid "{0} ended the rain."
@@ -124,11 +149,31 @@ msgstr ""
msgid "{0} failed to authenticate as user: {1}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4230
+#, csharp-format
+msgid "{0} has been allowed to place tile {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3864
#, csharp-format
msgid "{0} has been allowed to use {1}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4054
+#, csharp-format
+msgid "{0} has been allowed to use projectile {1}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4288
+#, csharp-format
+msgid "{0} has been disallowed from placing tile {1}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4112
+#, csharp-format
+msgid "{0} has been disallowed from using projectile {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3935
#, csharp-format
msgid "{0} has been disallowed to use {1}."
@@ -186,16 +231,36 @@ msgstr ""
msgid "{0} has started a snow legion invasion."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4233
+#, csharp-format
+msgid "{0} is already allowed to place tile {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3868
#, csharp-format
msgid "{0} is already allowed to use {1}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4057
+#, csharp-format
+msgid "{0} is already allowed to use projectile {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3939
#, csharp-format
msgid "{0} is already disallowed to use {1}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4292
+#, csharp-format
+msgid "{0} is already prevented from placing tile {1}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4116
+#, csharp-format
+msgid "{0} is already prevented from using projectile {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3858
#: ../../TShockAPI/Commands.cs:3929
#, csharp-format
@@ -229,6 +294,37 @@ msgstr ""
msgid "{0} remaining."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4557
+#, csharp-format
+msgid "{0} set the time to {1}:{2:D2}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4525
+#, csharp-format
+msgid "{0} set the time to 00:00."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4513
+#, csharp-format
+msgid "{0} set the time to 04:30."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4521
+#, csharp-format
+msgid "{0} set the time to 12:00."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4517
+#, csharp-format
+msgid "{0} set the time to 19:30."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4599
+#: ../../TShockAPI/Commands.cs:4600
+#, csharp-format
+msgid "{0} slapped {1} for {2} damage."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2814
#, csharp-format
msgid "{0} spawned {1} {2} time(s)."
@@ -486,6 +582,14 @@ msgstr ""
msgid "add - Adds a new group."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4132
+msgid "add - Adds a projectile ban."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4308
+msgid "add - Adds a tile ban."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1728
#, csharp-format
msgid "Added {0} to the whitelist."
@@ -496,6 +600,16 @@ msgstr ""
msgid "Added buff to {0} NPC abnormally."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4838
+#, csharp-format
+msgid "Added group {0} to {1}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4768
+#, csharp-format
+msgid "Added user {0} to {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3422
msgid "addperm - Adds permissions to a group."
msgstr ""
@@ -522,6 +636,14 @@ msgstr ""
msgid "allow - - Allows a group to use an item."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4133
+msgid "allow - Allows a group to use a projectile."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4309
+msgid "allow - Allows a group to place a tile."
+msgstr ""
+
#: ../../TShockAPI/DB/GroupManager.cs:474
#, csharp-format
msgid "An exception has occurred during database rollback: {0}"
@@ -644,6 +766,16 @@ msgstr ""
msgid "Banned ${0}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4020
+#, csharp-format
+msgid "Banned projectile {0}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4196
+#, csharp-format
+msgid "Banned tile {0}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1508
msgid "Banned."
msgstr ""
@@ -1660,6 +1792,24 @@ msgstr ""
msgid "Certain projectiles have been ignored for cheat detection."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4445
+#, csharp-format
+msgid "Changed the maximum spawns to {0}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4426
+msgid "Changed the maximum spawns to 5."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4484
+#, csharp-format
+msgid "Changed the spawn rate to {0}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4466
+msgid "Changed the spawn rate to 600."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:368
msgid "Changes the server password."
msgstr ""
@@ -1710,6 +1860,12 @@ msgstr ""
msgid "Commands: add, del, hide, list, send, [warpname]."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4378
+msgid ""
+"Configuration, permissions, and regions reload complete. Some changes may "
+"require a server restart."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1769
#, csharp-format
msgid "Correct usage: {0}overridessc|{0}ossc "
@@ -1739,6 +1895,18 @@ msgstr ""
msgid "Could not find specified warp."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4706
+#: ../../TShockAPI/Commands.cs:4713
+#: ../../TShockAPI/Commands.cs:4732
+#: ../../TShockAPI/Commands.cs:4771
+#: ../../TShockAPI/Commands.cs:4806
+#: ../../TShockAPI/Commands.cs:4841
+#: ../../TShockAPI/Commands.cs:4876
+#: ../../TShockAPI/Commands.cs:4920
+#, csharp-format
+msgid "Could not find the region {0}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1572
msgid ""
"Could not find the target specified. Check that you have the correct "
@@ -1764,6 +1932,16 @@ msgid ""
"value: {0} but should be 0 from {1}"
msgstr ""
+#: ../../TShockAPI/Commands.cs:4417
+#, csharp-format
+msgid "Current maximum spawns: {0}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4457
+#, csharp-format
+msgid "Current spawn rate: {0}."
+msgstr ""
+
#: ../../TShockAPI/Bouncer.cs:2650
#, csharp-format
msgid "Death Exploit Attempt: Damage {0}"
@@ -1781,6 +1959,19 @@ msgstr ""
msgid "del
- - Deletes an item ban."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4134
+msgid "del - Deletes an projectile ban."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4310
+msgid "del - Deletes a tile ban."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4729
+#, csharp-format
+msgid "Deleted region \"{0}\"."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3426
msgid "delperm - Removes permissions from a group."
msgstr ""
@@ -1812,6 +2003,15 @@ msgstr ""
msgid "disallow
- - Disallows a group from using an item."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4135
+msgid ""
+"disallow - Disallows a group from using a projectile."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4311
+msgid "disallow - Disallows a group from place a tile."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2631
msgid "Duke Fishron"
msgstr ""
@@ -2050,6 +2250,12 @@ msgid ""
"removed."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4845
+#: ../../TShockAPI/Commands.cs:4880
+#, csharp-format
+msgid "Group {0} not found."
+msgstr ""
+
#: ../../TShockAPI/Rest/RestManager.cs:1187
#, csharp-format
msgid "Group {0} updated successfully"
@@ -2089,6 +2295,15 @@ msgstr ""
msgid "Heals a player in HP and MP."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4641
+msgid "Hit a block to get the name of the region."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4654
+#, csharp-format
+msgid "Hit a block to set point {0}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1226
#, csharp-format
msgid "ID: {0}"
@@ -2220,6 +2435,10 @@ msgstr ""
#: ../../TShockAPI/Commands.cs:3748
#: ../../TShockAPI/Commands.cs:3851
#: ../../TShockAPI/Commands.cs:3922
+#: ../../TShockAPI/Commands.cs:4041
+#: ../../TShockAPI/Commands.cs:4099
+#: ../../TShockAPI/Commands.cs:4217
+#: ../../TShockAPI/Commands.cs:4275
msgid "Invalid group."
msgstr ""
@@ -2235,6 +2454,11 @@ msgstr ""
msgid "Invalid item."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4438
+#, csharp-format
+msgid "Invalid maximum spawns. Acceptable range is {0} to {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2843
msgid "Invalid mob type!"
msgstr ""
@@ -2271,6 +2495,16 @@ msgstr ""
msgid "Invalid player."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4023
+msgid "Invalid projectile ID!"
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4060
+#: ../../TShockAPI/Commands.cs:4081
+#: ../../TShockAPI/Commands.cs:4119
+msgid "Invalid projectile ID."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2347
msgid "Invalid pumpkin moon event wave."
msgstr ""
@@ -2298,6 +2532,20 @@ msgid ""
"subcommands."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4170
+#, csharp-format
+msgid ""
+"Invalid subcommand. Type {0}projban help for more information on valid "
+"subcommands."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4346
+#, csharp-format
+msgid ""
+"Invalid subcommand. Type {0}tileban help for more information on valid "
+"subcommands."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3624
msgid "Invalid syntax for color, expected \"rrr,ggg,bbb\"."
msgstr ""
@@ -2406,11 +2654,81 @@ msgstr ""
msgid "Invalid syntax. Proper syntax: {0}kick [reason]."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4013
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}projban add "
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4032
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}projban allow ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4069
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}projban del ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4090
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}projban disallow ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4779
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region allow ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4849
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region allowg ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4693
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region define ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4735
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region delete ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4908
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region info [-d] [page]."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4716
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region protect ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4814
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region remove ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4884
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}region removeg ."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1028
#, csharp-format
msgid "Invalid syntax. Proper syntax: {0}register ."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4385
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}serverpassword \"\"."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4566
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}slap [damage]."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2584
#, csharp-format
msgid "Invalid syntax. Proper syntax: {0}spawnboss [amount]."
@@ -2422,6 +2740,21 @@ msgstr ""
msgid "Invalid syntax. Proper syntax: {0}spawnmob [amount]."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4189
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}tileban add ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4208
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}tileban allow ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4245
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}tileban del ."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2914
#, csharp-format
msgid "Invalid syntax. Proper syntax: {0}tp [player 2]."
@@ -2488,6 +2821,11 @@ msgstr ""
msgid "Invalid syntax. Proper syntax: {0}warp send [player] [warpname]."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4608
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: {0}wind ."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2129
#, csharp-format
msgid "Invalid syntax. Proper syntax: {0}worldevent ."
@@ -2498,17 +2836,40 @@ msgstr ""
msgid "Invalid syntax. Proper syntax: {0}worldmode ."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4719
+#, csharp-format
+msgid "Invalid syntax. Proper syntax: /region protect ."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4659
+msgid "Invalid syntax. Proper syntax: /region set <1/2>."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3134
#: ../../TShockAPI/Commands.cs:3295
+#: ../../TShockAPI/Commands.cs:4572
+#: ../../TShockAPI/Commands.cs:4580
msgid "Invalid target player."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4199
+#: ../../TShockAPI/Commands.cs:4236
+#: ../../TShockAPI/Commands.cs:4257
+#: ../../TShockAPI/Commands.cs:4295
+msgid "Invalid tile ID."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1926
msgid ""
"Invalid time string! Proper format: _d_h_m_s, with at least one time "
"specifier."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4531
+#: ../../TShockAPI/Commands.cs:4540
+msgid "Invalid time string. Proper format: hh:mm, in 24-hour time."
+msgstr ""
+
#: ../../TShockAPI/Rest/RestManager.cs:1326
#, csharp-format
msgid "Invalid Type: '{0}'"
@@ -2526,6 +2887,10 @@ msgid ""
"commands."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4615
+msgid "Invalid wind speed."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2542
#, csharp-format
msgid "Invalid world mode. Valid world modes: {0}"
@@ -2597,10 +2962,22 @@ msgstr ""
msgid "Lanterns are now up."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4406
+msgid "Liquids are already settling."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3958
msgid "list [page] - Lists all item bans."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4136
+msgid "list [page] - Lists all projectile bans."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4312
+msgid "list [page] - Lists all tile bans."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3427
msgid "list [page] - Lists groups."
msgstr ""
@@ -2687,6 +3064,16 @@ msgstr ""
msgid "Manages user accounts."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4704
+#, csharp-format
+msgid "Marked region {0} as protected."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4711
+#, csharp-format
+msgid "Marked region {0} as unprotected."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1213
#, csharp-format
msgid "Memory usage: {0}"
@@ -2941,6 +3328,12 @@ msgid_plural "Player {0} matches {1} players"
msgstr[0] ""
msgstr[1] ""
+#: ../../TShockAPI/Commands.cs:4775
+#: ../../TShockAPI/Commands.cs:4810
+#, csharp-format
+msgid "Player {0} not found."
+msgstr ""
+
#: ../../TShockAPI/Bouncer.cs:1123
#, csharp-format
msgid "Player {0} tried to sneak {1} onto the server!"
@@ -3007,6 +3400,12 @@ msgstr ""
msgid "Proc count: {0}"
msgstr ""
+#: ../../TShockAPI/Commands.cs:4048
+#: ../../TShockAPI/Commands.cs:4106
+#, csharp-format
+msgid "Projectile {0} is not banned."
+msgstr ""
+
#: ../../TShockAPI/Bouncer.cs:1175
#, csharp-format
msgid "Projectile damage is higher than {0}."
@@ -3017,6 +3416,11 @@ msgstr ""
msgid "Projectile update threshold exceeded {0}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4933
+#, csharp-format
+msgid "Protected: {0}."
+msgstr ""
+
#: ../../TShockAPI/TSPlayer.cs:758
#, csharp-format
msgid "Rangecheck failed for {0} ({1}, {2}) (rg: {3}/{5}, {4}/{5})"
@@ -3053,6 +3457,21 @@ msgstr ""
msgid "Received type '{0}', however column '{1}' expects type '{2}'"
msgstr ""
+#: ../../TShockAPI/Commands.cs:4684
+#, csharp-format
+msgid "Region {0} already exists."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4932
+#, csharp-format
+msgid "Region owner: {0}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4689
+msgid ""
+"Region points need to be defined first. Use /region set 1 and /region set 2."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:258
msgid "Registers you an account."
msgstr ""
@@ -3090,6 +3509,11 @@ msgstr ""
msgid "Removed suffix of group \"{0}\"."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4803
+#, csharp-format
+msgid "Removed user {0} from {1}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:300
msgid "Removes a player from the server."
msgstr ""
@@ -3185,6 +3609,11 @@ msgstr ""
msgid "Server map saving..."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4390
+#, csharp-format
+msgid "Server password has been changed to: {0}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2023
#: ../../TShockAPI/Commands.cs:2029
msgid "Server shutting down: "
@@ -3213,6 +3642,11 @@ msgstr ""
msgid "Server-side characters is disabled."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4680
+#, csharp-format
+msgid "Set region {0}."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:510
msgid "Sets the dungeon's position to your location."
msgstr ""
@@ -3233,6 +3667,10 @@ msgstr ""
msgid "Sets the world's spawn point to your location."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4410
+msgid "Settling liquids."
+msgstr ""
+
#: ../../TShockAPI/DB/UserManager.cs:182
msgid "SetUserGroup SQL returned an error"
msgstr ""
@@ -3328,6 +3766,10 @@ msgstr ""
msgid "Sorry, an error occurred: {0}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4361
+msgid "Spawn has now been set at your location."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2857
#, csharp-format
msgid "Spawned {0} {1} time(s)."
@@ -3550,6 +3992,10 @@ msgstr ""
msgid "Temporarily sets another player's group."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4742
+msgid "Temporary region set points have been removed."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:1181
msgid "That group does not exist."
msgstr ""
@@ -3567,6 +4013,11 @@ msgstr ""
msgid "the Brain of Cthulhu"
msgstr ""
+#: ../../TShockAPI/Commands.cs:4505
+#, csharp-format
+msgid "The current time is {0}:{1:D2}."
+msgstr ""
+
#: ../../TShockAPI/DB/GroupManager.cs:218
msgid "The default usergroup could not be found."
msgstr ""
@@ -3591,6 +4042,10 @@ msgstr ""
msgid "the Destroyer"
msgstr ""
+#: ../../TShockAPI/Commands.cs:4369
+msgid "The dungeon's position has now been set at your location."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:2638
msgid "the Eater of Worlds"
msgstr ""
@@ -3684,6 +4139,10 @@ msgstr ""
msgid "The REST authentication token."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4478
+msgid "The spawn rate you provided is out-of-range or not a number."
+msgstr ""
+
#: ../../TShockAPI/Rest/SecureRest.cs:90
msgid "The specified token queued for destruction failed to be deleted."
msgstr ""
@@ -3731,6 +4190,14 @@ msgstr ""
msgid "There are currently no banned items."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4338
+msgid "There are currently no banned tiles."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4900
+msgid "There are currently no regions defined."
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:3213
msgid "There are currently no warps defined."
msgstr ""
@@ -3744,6 +4211,12 @@ msgid ""
"There was an error processing your login or authentication related request."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4224
+#: ../../TShockAPI/Commands.cs:4282
+#, csharp-format
+msgid "Tile {0} is not banned."
+msgstr ""
+
#: ../../TShockAPI/Bouncer.cs:901
#, csharp-format
msgid "Tile kill threshold exceeded {0}."
@@ -3830,6 +4303,16 @@ msgstr ""
msgid "Unbanned {0}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4077
+#, csharp-format
+msgid "Unbanned projectile {0}."
+msgstr ""
+
+#: ../../TShockAPI/Commands.cs:4253
+#, csharp-format
+msgid "Unbanned tile {0}."
+msgstr ""
+
#: ../../TShockAPI/Bouncer.cs:246
msgid "Unrecognized player direction"
msgstr ""
@@ -4006,6 +4489,11 @@ msgstr ""
msgid "World mode set to {0}."
msgstr ""
+#: ../../TShockAPI/Commands.cs:4931
+#, csharp-format
+msgid "X: {0}; Y: {1}; W: {2}; H: {3}, Z: {4}"
+msgstr ""
+
#: ../../TShockAPI/Commands.cs:778
msgid "You are already logged in, and cannot login again."
msgstr ""
From 045115ca7af0ad448ecc69ca14dc12191a6a48f4 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 24 Oct 2022 11:10:52 +0000
Subject: [PATCH 04/17] Update dependency GetText.NET to v1.7.14
---
TShockAPI/TShockAPI.csproj | 2 +-
TShockLauncher/TShockLauncher.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index b549a46c..57df14f0 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -33,7 +33,7 @@
-
+
diff --git a/TShockLauncher/TShockLauncher.csproj b/TShockLauncher/TShockLauncher.csproj
index 989c987d..09e25e71 100644
--- a/TShockLauncher/TShockLauncher.csproj
+++ b/TShockLauncher/TShockLauncher.csproj
@@ -31,7 +31,7 @@
-
+
From c7a39ec7e470751b66e4893bc9697bc7857b4659 Mon Sep 17 00:00:00 2001
From: Stargazing Koishi
Date: Mon, 24 Oct 2022 12:30:54 -0700
Subject: [PATCH 05/17] Update i18n dependency
https://github.com/perpetualKid/GetText.NET/issues/44
---
TShockAPI/TShockAPI.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index b549a46c..57df14f0 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -33,7 +33,7 @@
-
+
From ea9f6b73e004ee4a7aae6ae5c633d74ddd5be220 Mon Sep 17 00:00:00 2001
From: SGKoishi
Date: Mon, 24 Oct 2022 12:51:08 -0700
Subject: [PATCH 06/17] Update some i18n source text
---
TShockAPI/Commands.cs | 16 ++++++++--------
TShockAPI/Rest/RestManager.cs | 2 +-
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 08f30faa..071ab882 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -2807,11 +2807,11 @@ namespace TShockAPI
if (args.Silent)
{
- args.Player.SendSuccessMessage(GetString("You spawned {0} {1} time(s).", spawnName, amount));
+ args.Player.SendSuccessMessage(GetPluralString("You spawned {0} {1} time.", "You spawned {0} {1} times.", amount, spawnName, amount));
}
else
{
- TSPlayer.All.SendSuccessMessage(GetString("{0} spawned {1} {2} time(s).", args.Player.Name, spawnName, amount));
+ TSPlayer.All.SendSuccessMessage(GetPluralString("{0} spawned {1} {2} time.", "{0} spawned {1} {2} times.", amount, args.Player.Name, spawnName, amount));
}
}
@@ -2854,11 +2854,11 @@ namespace TShockAPI
TSPlayer.Server.SpawnNPC(npc.netID, npc.FullName, amount, args.Player.TileX, args.Player.TileY, 50, 20);
if (args.Silent)
{
- args.Player.SendSuccessMessage(GetString("Spawned {0} {1} time(s).", npc.FullName, amount));
+ args.Player.SendSuccessMessage(GetPluralString("Spawned {0} {1} time.", "Spawned {0} {1} times.", amount, npc.FullName, amount));
}
else
{
- TSPlayer.All.SendSuccessMessage(GetString("{0} has spawned {1} {2} time(s).", args.Player.Name, npc.FullName, amount));
+ TSPlayer.All.SendSuccessMessage(GetPluralString("{0} has spawned {1} {2} time.", "{0} has spawned {1} {2} times.", amount, args.Player.Name, npc.FullName, amount));
}
}
else if (npc.type == 113)
@@ -3230,7 +3230,7 @@ namespace TShockAPI
}
else
{
- args.Player.SendErrorMessage(GetString("Warp {warpName} already exists."));
+ args.Player.SendErrorMessage(GetString($"Warp {warpName} already exists."));
}
}
else
@@ -3266,9 +3266,9 @@ namespace TShockAPI
if (TShock.Warps.Hide(args.Parameters[1], state))
{
if (state)
- args.Player.SendSuccessMessage(GetString("Warp {warpName} is now private."));
+ args.Player.SendSuccessMessage(GetString("Warp {0} is now private.", warpName));
else
- args.Player.SendSuccessMessage(GetString("Warp {warpName} is now public."));
+ args.Player.SendSuccessMessage(GetString("Warp {0} is now public.", warpName));
}
else
args.Player.SendErrorMessage(GetString("Could not find specified warp."));
@@ -3821,7 +3821,7 @@ namespace TShockAPI
}
// This returns the localized name to the player, not the item as it was stored.
- args.Player.SendSuccessMessage(GetString($"Banned ${items[0].Name}."));
+ args.Player.SendSuccessMessage(GetString($"Banned {items[0].Name}."));
}
}
#endregion
diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs
index cc1f24e1..1717c1dc 100644
--- a/TShockAPI/Rest/RestManager.cs
+++ b/TShockAPI/Rest/RestManager.cs
@@ -844,7 +844,7 @@ namespace TShockAPI
}
}
- return RestResponse(GetPluralString($"{killcount} NPC has been killed.", "{killcount} NPCs have been killed.", killcount));
+ return RestResponse(GetPluralString("{0} NPC has been killed.", "{0} NPCs have been killed.", killcount, killcount));
}
[Description("Get information regarding the world.")]
From b766e045b50cb254bf9449f027b0d6d09c800347 Mon Sep 17 00:00:00 2001
From: SGKoishi
Date: Mon, 24 Oct 2022 13:28:44 -0700
Subject: [PATCH 07/17] Use i18n for most string.Format if shown in log,
console or client side
---
TShockAPI/Bouncer.cs | 2 +-
TShockAPI/Commands.cs | 118 ++++++++++++++++++-----------------
TShockAPI/GetDataHandlers.cs | 40 ++++++------
TShockAPI/SaveManager.cs | 4 +-
TShockAPI/SqlLog.cs | 6 +-
TShockAPI/TShock.cs | 54 ++++++++--------
TShockAPI/Utils.cs | 6 +-
7 files changed, 117 insertions(+), 113 deletions(-)
diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs
index 8d7a92a6..17619ba0 100644
--- a/TShockAPI/Bouncer.cs
+++ b/TShockAPI/Bouncer.cs
@@ -1665,7 +1665,7 @@ namespace TShockAPI
{
if (TShock.Config.Settings.KickOnTileLiquidThresholdBroken)
{
- args.Player.Kick(string.Format("Reached TileLiquid threshold {0}.", TShock.Config.Settings.TileLiquidThreshold));
+ args.Player.Kick(GetString("Reached TileLiquid threshold {0}.", TShock.Config.Settings.TileLiquidThreshold));
}
else
{
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 071ab882..71488e43 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -4944,30 +4944,30 @@ namespace TShockAPI
return string.Concat("{ID: ", userId, "}");
});
List extraLines = PaginationTools.BuildLinesFromTerms(sharedUsersSelector.Distinct());
- extraLines[0] = "Shared with: " + extraLines[0];
+ extraLines[0] = GetString("Shared with: ") + extraLines[0];
lines.AddRange(extraLines);
}
else
{
- lines.Add("Region is not shared with any users.");
+ lines.Add(GetString("Region is not shared with any users."));
}
if (region.AllowedGroups.Count > 0)
{
List extraLines = PaginationTools.BuildLinesFromTerms(region.AllowedGroups.Distinct());
- extraLines[0] = "Shared with groups: " + extraLines[0];
+ extraLines[0] = GetString("Shared with groups: ") + extraLines[0];
lines.AddRange(extraLines);
}
else
{
- lines.Add("Region is not shared with any groups.");
+ lines.Add(GetString("Region is not shared with any groups."));
}
PaginationTools.SendPage(
args.Player, pageNumber, lines, new PaginationTools.Settings
{
- HeaderFormat = string.Format("Information About Region \"{0}\" ({{0}}/{{1}}):", region.Name),
- FooterFormat = string.Format("Type {0}region info {1} {{0}} for more information.", Specifier, regionName)
+ HeaderFormat = GetString("Information About Region \"{0}\" ({{0}}/{{1}}):", region.Name),
+ FooterFormat = GetString("Type {0}region info {1} {{0}} for more information.", Specifier, regionName)
}
);
@@ -5204,13 +5204,13 @@ namespace TShockAPI
private static void ToggleAntiBuild(CommandArgs args)
{
TShock.Config.Settings.DisableBuild = !TShock.Config.Settings.DisableBuild;
- TSPlayer.All.SendSuccessMessage(string.Format("Anti-build is now {0}.", (TShock.Config.Settings.DisableBuild ? "on" : "off")));
+ TSPlayer.All.SendSuccessMessage(TShock.Config.Settings.DisableBuild ? GetString("Anti-build is now on.") : GetString("Anti-build is now off."));
}
private static void ProtectSpawn(CommandArgs args)
{
TShock.Config.Settings.SpawnProtection = !TShock.Config.Settings.SpawnProtection;
- TSPlayer.All.SendSuccessMessage(string.Format("Spawn is now {0}.", (TShock.Config.Settings.SpawnProtection ? "protected" : "open")));
+ TSPlayer.All.SendSuccessMessage(TShock.Config.Settings.SpawnProtection ? GetString("Spawn is now protected.") : GetString("Spawn is now open."));
}
#endregion World Protection Commands
@@ -5407,7 +5407,7 @@ namespace TShockAPI
if (args.Player.mute)
args.Player.SendErrorMessage("You are muted.");
else
- TSPlayer.All.SendMessage(string.Format("*{0} {1}", args.Player.Name, String.Join(" ", args.Parameters)), 205, 133, 63);
+ TSPlayer.All.SendMessage(GetString("*{0} {1}", args.Player.Name, String.Join(" ", args.Parameters)), 205, 133, 63);
}
private static void PartyChat(CommandArgs args)
@@ -5423,7 +5423,7 @@ namespace TShockAPI
args.Player.SendErrorMessage("You are muted.");
else if (playerTeam != 0)
{
- string msg = string.Format("<{0}> {1}", args.Player.Name, String.Join(" ", args.Parameters));
+ string msg = GetString("<{0}> {1}", args.Player.Name, String.Join(" ", args.Parameters));
foreach (TSPlayer player in TShock.Players)
{
if (player != null && player.Active && player.Team == playerTeam)
@@ -6093,7 +6093,7 @@ namespace TShockAPI
if (args.Player.GiveItemCheck(item.type, EnglishLanguage.GetItemNameById(item.type), itemAmount, prefixId))
{
item.prefix = (byte)prefixId;
- args.Player.SendSuccessMessage("Gave {0} {1}(s).", itemAmount, item.AffixName());
+ args.Player.SendSuccessMessage(GetPluralString("Gave {0} {1}.", "Gave {0} {1}s.", itemAmount, itemAmount, item.AffixName()));
}
else
{
@@ -6231,8 +6231,8 @@ namespace TShockAPI
itemAmount = item.maxStack;
if (plr.GiveItemCheck(item.type, EnglishLanguage.GetItemNameById(item.type), itemAmount, prefix))
{
- args.Player.SendSuccessMessage(string.Format("Gave {0} {1} {2}(s).", plr.Name, itemAmount, item.Name));
- plr.SendSuccessMessage(string.Format("{0} gave you {1} {2}(s).", args.Player.Name, itemAmount, item.Name));
+ args.Player.SendSuccessMessage(GetPluralString("Gave {0} {1} {2}.", "Gave {0} {1} {2}s.", itemAmount, plr.Name, itemAmount, item.Name));
+ plr.SendSuccessMessage(GetPluralString("{0} gave you {1} {2}.", "{0} gave you {1} {2}s.", itemAmount, args.Player.Name, itemAmount, item.Name));
}
else
{
@@ -6418,13 +6418,13 @@ namespace TShockAPI
bool canGrowEvil = args.Player.HasPermission(Permissions.growevil);
string subcmd = args.Parameters.Count == 0 ? "help" : args.Parameters[0].ToLower();
- var name = "Fail";
+ var name = "Fail"; // assigned value never used
var x = args.Player.TileX;
var y = args.Player.TileY + 3;
if (!TShock.Regions.CanBuild(x, y, args.Player))
{
- args.Player.SendErrorMessage("You're not allowed to change tiles here!");
+ args.Player.SendErrorMessage(GetString("You're not allowed to change tiles here!"));
return;
}
@@ -6436,22 +6436,22 @@ namespace TShockAPI
return;
var lines = new List
- {
- "- Default trees :",
- " 'basic', 'sakura', 'willow', 'boreal', 'mahogany', 'ebonwood', 'shadewood', 'pearlwood'.",
- "- Palm trees :",
- " 'palm', 'corruptpalm', 'crimsonpalm', 'hallowpalm'.",
- "- Gem trees :",
- " 'topaz', 'amethyst', 'sapphire', 'emerald', 'ruby', 'diamond', 'amber'.",
- "- Misc :",
- " 'cactus', 'herb', 'mushroom'."
- };
+ {
+ GetString("- Default trees :"),
+ GetString(" 'basic', 'sakura', 'willow', 'boreal', 'mahogany', 'ebonwood', 'shadewood', 'pearlwood'."),
+ GetString("- Palm trees :"),
+ GetString(" 'palm', 'corruptpalm', 'crimsonpalm', 'hallowpalm'."),
+ GetString("- Gem trees :"),
+ GetString(" 'topaz', 'amethyst', 'sapphire', 'emerald', 'ruby', 'diamond', 'amber'."),
+ GetString("- Misc :"),
+ GetString(" 'cactus', 'herb', 'mushroom'.")
+ };
PaginationTools.SendPage(args.Player, pageNumber, lines,
new PaginationTools.Settings
{
- HeaderFormat = "Trees types & misc available to use. ({0}/{1}):",
- FooterFormat = "Type {0}grow help {{0}} for more sub-commands.".SFormat(Commands.Specifier)
+ HeaderFormat = GetString("Trees types & misc available to use. ({0}/{1}):"),
+ FooterFormat = GetString("Type {0}grow help {{0}} for more sub-commands.", Commands.Specifier)
}
);
}
@@ -6461,7 +6461,7 @@ namespace TShockAPI
{
if(!canGrowEvil)
{
- args.Player.SendErrorMessage("You do not have permission to grow this tree type");
+ args.Player.SendErrorMessage(GetString("You do not have permission to grow this tree type"));
return false;
}
@@ -6531,91 +6531,91 @@ namespace TShockAPI
}
case "basic":
- growTree(TileID.Grass, "Basic Tree");
+ growTree(TileID.Grass, GetString("Basic Tree"));
break;
case "boreal":
- growTree(TileID.SnowBlock, "Boreal Tree");
+ growTree(TileID.SnowBlock, GetString("Boreal Tree"));
break;
case "mahogany":
- growTree(TileID.JungleGrass, "Rich Mahogany");
+ growTree(TileID.JungleGrass, GetString("Rich Mahogany"));
break;
case "sakura":
- growTreeByType(TileID.VanityTreeSakura, "Sakura Tree");
+ growTreeByType(TileID.VanityTreeSakura, GetString("Sakura Tree"));
break;
case "willow":
- growTreeByType(TileID.VanityTreeYellowWillow, "Willow Tree");
+ growTreeByType(TileID.VanityTreeYellowWillow, GetString("Willow Tree"));
break;
case "shadewood":
- if(!growTree(TileID.CrimsonGrass, "Shadewood Tree", true))
+ if(!growTree(TileID.CrimsonGrass, GetString("Shadewood Tree"), true))
return;
break;
case "ebonwood":
- if(!growTree(TileID.CorruptGrass, "Ebonwood Tree", true))
+ if(!growTree(TileID.CorruptGrass, GetString("Ebonwood Tree"), true))
return;
break;
case "pearlwood":
- if(!growTree(TileID.HallowedGrass, "Pearlwood Tree", true))
+ if(!growTree(TileID.HallowedGrass, GetString("Pearlwood Tree"), true))
return;
break;
case "palm":
- growPalmTree(TileID.Sand, TileID.HardenedSand, "Desert Palm");
+ growPalmTree(TileID.Sand, TileID.HardenedSand, GetString("Desert Palm"));
break;
case "hallowpalm":
- if(!growPalmTree(TileID.Pearlsand, TileID.HallowHardenedSand, "Hallow Palm", true))
+ if(!growPalmTree(TileID.Pearlsand, TileID.HallowHardenedSand, GetString("Hallow Palm"), true))
return;
break;
case "crimsonpalm":
- if(!growPalmTree(TileID.Crimsand, TileID.CrimsonHardenedSand, "Crimson Palm", true))
+ if(!growPalmTree(TileID.Crimsand, TileID.CrimsonHardenedSand, GetString("Crimson Palm"), true))
return;
break;
case "corruptpalm":
- if(!growPalmTree(TileID.Ebonsand, TileID.CorruptHardenedSand, "Corruption Palm", true))
+ if(!growPalmTree(TileID.Ebonsand, TileID.CorruptHardenedSand, GetString("Corruption Palm"), true))
return;
break;
case "topaz":
- growTreeByType(TileID.TreeTopaz, "Topaz Gemtree", 1);
+ growTreeByType(TileID.TreeTopaz, GetString("Topaz Gemtree"), 1);
break;
case "amethyst":
- growTreeByType(TileID.TreeAmethyst, "Amethyst Gemtree", 1);
+ growTreeByType(TileID.TreeAmethyst, GetString("Amethyst Gemtree"), 1);
break;
case "sapphire":
- growTreeByType(TileID.TreeSapphire, "Sapphire Gemtree", 1);
+ growTreeByType(TileID.TreeSapphire, GetString("Sapphire Gemtree"), 1);
break;
case "emerald":
- growTreeByType(TileID.TreeEmerald, "Emerald Gemtree", 1);
+ growTreeByType(TileID.TreeEmerald, GetString("Emerald Gemtree"), 1);
break;
case "ruby":
- growTreeByType(TileID.TreeRuby, "Ruby Gemtree", 1);
+ growTreeByType(TileID.TreeRuby, GetString("Ruby Gemtree"), 1);
break;
case "diamond":
- growTreeByType(TileID.TreeDiamond, "Diamond Gemtree", 1);
+ growTreeByType(TileID.TreeDiamond, GetString("Diamond Gemtree"), 1);
break;
case "amber":
- growTreeByType(TileID.TreeAmber, "Amber Gemtree", 1);
+ growTreeByType(TileID.TreeAmber, GetString("Amber Gemtree"), 1);
break;
case "cactus":
Main.tile[x, y].type = TileID.Sand;
WorldGen.GrowCactus(x, y);
- name = "Cactus";
+ name = GetString("Cactus");
break;
case "herb":
@@ -6623,23 +6623,23 @@ namespace TShockAPI
Main.tile[x, y].frameX = 36;
Main.tile[x, y].type = TileID.MatureHerbs;
WorldGen.GrowAlch(x, y);
- name = "Herb";
+ name = GetString("Herb");
break;
case "mushroom":
prepareAreaForGrow(TileID.MushroomGrass);
WorldGen.GrowShroom(x, y);
- name = "Glowing Mushroom Tree";
+ name = GetString("Glowing Mushroom Tree");
break;
default:
- args.Player.SendErrorMessage("Unknown plant!");
+ args.Player.SendErrorMessage(GetString("Unknown plant!"));
return;
}
if (args.Parameters.Count == 1)
{
args.Player.SendTileSquareCentered(x - 2, y - 20, 25);
- args.Player.SendSuccessMessage("Tried to grow a " + name + ".");
+ args.Player.SendSuccessMessage(GetString($"Tried to grow a {name}."));
}
}
@@ -6650,14 +6650,14 @@ namespace TShockAPI
{
if (!args.Player.HasPermission(Permissions.godmodeother))
{
- args.Player.SendErrorMessage("You do not have permission to god mode another player.");
+ args.Player.SendErrorMessage(GetString("You do not have permission to god mode another player."));
return;
}
string plStr = String.Join(" ", args.Parameters);
var players = TSPlayer.FindByNameOrID(plStr);
if (players.Count == 0)
{
- args.Player.SendErrorMessage("Invalid player!");
+ args.Player.SendErrorMessage(GetString("Invalid player!"));
return;
}
else if (players.Count > 1)
@@ -6672,7 +6672,7 @@ namespace TShockAPI
}
else if (!args.Player.RealPlayer)
{
- args.Player.SendErrorMessage("You can't god mode a non player!");
+ args.Player.SendErrorMessage(GetString("You can't god mode a non player!"));
return;
}
else
@@ -6688,12 +6688,16 @@ namespace TShockAPI
if (playerToGod != args.Player)
{
- args.Player.SendSuccessMessage(string.Format("{0} is {1} in god mode.", playerToGod.Name, playerToGod.GodMode ? "now" : "no longer"));
+ args.Player.SendSuccessMessage(playerToGod.GodMode ?
+ GetString("{0} is now in god mode.", playerToGod.Name),
+ GetString("{0} is no longer in god mode.", playerToGod.Name));
}
if (!args.Silent || (playerToGod == args.Player))
{
- playerToGod.SendSuccessMessage(string.Format("You are {0} in god mode.", playerToGod.GodMode ? "now" : "no longer"));
+ playerToGod.SendSuccessMessage(playerToGod.GodMode ?
+ GetString("You are now in god mode.", playerToGod.Name),
+ GetString("You are no longer in god mode.", playerToGod.Name));
}
}
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index 22feee47..b90124e2 100644
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -2955,10 +2955,10 @@ namespace TShockAPI
}
else if (!TShock.Config.Settings.AnonymousBossInvasions)
{
- TShock.Utils.Broadcast(string.Format($"{args.Player.Name} summoned the Empress of Light!"), 175, 75, 255);
+ TShock.Utils.Broadcast(GetString($"{args.Player.Name} summoned the Empress of Light!"), 175, 75, 255);
}
else
- TShock.Utils.SendLogs(string.Format($"{args.Player.Name} summoned the Empress of Light!"), Color.PaleVioletRed, args.Player);
+ TShock.Utils.SendLogs(GetString($"{args.Player.Name} summoned the Empress of Light!"), Color.PaleVioletRed, args.Player);
}
if (Main.npc[id].netID == NPCID.CultistDevote || Main.npc[id].netID == NPCID.CultistArcherBlue)
@@ -3523,52 +3523,52 @@ namespace TShockAPI
switch (thingType)
{
case -14:
- thing = "has sent a request to the bunny delivery service";
+ thing = GetString("has sent a request to the bunny delivery service");
break;
case -13:
- thing = "has sent a request to the dog delivery service";
+ thing = GetString("has sent a request to the dog delivery service");
break;
case -12:
- thing = "has sent a request to the cat delivery service";
+ thing = GetString("has sent a request to the cat delivery service");
break;
case -11:
- thing = "applied advanced combat techniques";
+ thing = GetString("applied advanced combat techniques");
break;
case -10:
- thing = "summoned a Blood Moon";
+ thing = GetString("summoned a Blood Moon");
break;
case -8:
- thing = "summoned a Moon Lord";
+ thing = GetString("summoned a Moon Lord");
break;
case -7:
- thing = "summoned a Martian invasion";
+ thing = GetString("summoned a Martian invasion");
break;
case -6:
- thing = "summoned an eclipse";
+ thing = GetString("summoned an eclipse");
break;
case -5:
- thing = "summoned a frost moon";
+ thing = GetString("summoned a frost moon");
break;
case -4:
- thing = "summoned a pumpkin moon";
+ thing = GetString("summoned a pumpkin moon");
break;
case -3:
- thing = "summoned the Pirates";
+ thing = GetString("summoned the Pirates");
break;
case -2:
- thing = "summoned the Snow Legion";
+ thing = GetString("summoned the Snow Legion");
break;
case -1:
- thing = "summoned a Goblin Invasion";
+ thing = GetString("summoned a Goblin Invasion");
break;
default:
- thing = String.Format("summoned the {0}", npc.FullName);
+ thing = GetString("summoned the {0}", npc.FullName);
break;
}
if (TShock.Config.Settings.AnonymousBossInvasions)
- TShock.Utils.SendLogs(string.Format("{0} {1}!", args.Player.Name, thing), Color.PaleVioletRed, args.Player);
+ TShock.Utils.SendLogs(GetString("{0} {1}!", args.Player.Name, thing), Color.PaleVioletRed, args.Player);
else
- TShock.Utils.Broadcast(String.Format("{0} {1}!", args.Player.Name, thing), 175, 75, 255);
+ TShock.Utils.Broadcast(GetString("{0} {1}!", args.Player.Name, thing), 175, 75, 255);
return false;
}
@@ -4114,9 +4114,9 @@ namespace TShockAPI
}
if (TShock.Config.Settings.AnonymousBossInvasions)
- TShock.Utils.SendLogs(string.Format("{0} started the Old One's Army event!", args.Player.Name), Color.PaleVioletRed, args.Player);
+ TShock.Utils.SendLogs(GetString("{0} started the Old One's Army event!", args.Player.Name), Color.PaleVioletRed, args.Player);
else
- TShock.Utils.Broadcast(string.Format("{0} started the Old One's Army event!", args.Player.Name), 175, 75, 255);
+ TShock.Utils.Broadcast(GetString("{0} started the Old One's Army event!", args.Player.Name), 175, 75, 255);
return false;
}
diff --git a/TShockAPI/SaveManager.cs b/TShockAPI/SaveManager.cs
index 335fe965..0386bb8f 100644
--- a/TShockAPI/SaveManager.cs
+++ b/TShockAPI/SaveManager.cs
@@ -134,7 +134,7 @@ namespace TShockAPI
if (TShock.Config.Settings.AnnounceSave)
TShock.Utils.Broadcast("World saved.", Color.Yellow);
- TShock.Log.Info(string.Format("World saved at ({0})", Main.worldPathName));
+ TShock.Log.Info(GetString("World saved at ({0})", Main.worldPathName));
}
catch (Exception e)
{
@@ -160,7 +160,7 @@ namespace TShockAPI
public override string ToString()
{
- return string.Format("resetTime {0}, direct {1}", resetTime, direct);
+ return GetString("resetTime {0}, direct {1}", resetTime, direct);
}
}
}
diff --git a/TShockAPI/SqlLog.cs b/TShockAPI/SqlLog.cs
index 3c2885d9..3e79aaab 100644
--- a/TShockAPI/SqlLog.cs
+++ b/TShockAPI/SqlLog.cs
@@ -36,7 +36,7 @@ namespace TShockAPI
public override string ToString()
{
- return string.Format("Message: {0}: {1}: {2}",
+ return GetString("Message: {0}: {1}: {2}",
caller, logLevel.ToString().ToUpper(), message);
}
}
@@ -314,7 +314,7 @@ namespace TShockAPI
{
caller = "TShock",
logLevel = TraceLevel.Error,
- message = string.Format("SQL Log insert query failed: {0}", ex),
+ message = GetString("SQL Log insert query failed: {0}", ex),
timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)
});
}
@@ -343,7 +343,7 @@ namespace TShockAPI
foreach (var logInfo in _failures)
{
- _backupLog.Write(string.Format("SQL log failed at: {0}. {1}", logInfo.timestamp, logInfo),
+ _backupLog.Write(GetString("SQL log failed at: {0}. {1}", logInfo.timestamp, logInfo),
TraceLevel.Error);
}
_failures.Clear();
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index d3fadac3..057da6ba 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -69,7 +69,7 @@ namespace TShockAPI
/// LogFormat - This is the log format, which is never set again.
private static string LogFormat = LogFormatDefault;
/// LogPathDefault - The default log path.
- private const string LogPathDefault = "tshock/logs";
+ private const string LogPathDefault = "tshock/logs"
/// This is the log path, which is initially set to the default log path, and then to the config file log path later.
private static string LogPath = LogPathDefault;
/// LogClear - Determines whether or not the log file should be cleared on initialization.
@@ -443,8 +443,8 @@ namespace TShockAPI
if(Log is not null) Log.ConsoleError(message);
else Console.WriteLine(message);
};
- SafeError("TShock encountered a problem from which it cannot recover. The following message may help diagnose the problem.");
- SafeError("Until the problem is resolved, TShock will not be able to start (and will crash on startup).");
+ SafeError(GetString("TShock encountered a problem from which it cannot recover. The following message may help diagnose the problem."));
+ SafeError(GetString("Until the problem is resolved, TShock will not be able to start (and will crash on startup)."));
SafeError(ex.ToString());
Environment.Exit(1);
}
@@ -780,7 +780,7 @@ namespace TShockAPI
{
if (!string.IsNullOrWhiteSpace(cfg))
{
- ServerApi.LogWriter.PluginWriteLine(this, string.Format("Loading dedicated config file: {0}", cfg), TraceLevel.Verbose);
+ ServerApi.LogWriter.PluginWriteLine(this, GetString("Loading dedicated config file: {0}", cfg), TraceLevel.Verbose);
Main.instance.LoadDedConfig(cfg);
}
})
@@ -791,7 +791,7 @@ namespace TShockAPI
if (int.TryParse(p, out port))
{
Netplay.ListenPort = port;
- ServerApi.LogWriter.PluginWriteLine(this, string.Format("Listening on port {0}.", port), TraceLevel.Verbose);
+ ServerApi.LogWriter.PluginWriteLine(this, GetString("Listening on port {0}.", port), TraceLevel.Verbose);
}
})
@@ -800,7 +800,7 @@ namespace TShockAPI
if (!string.IsNullOrWhiteSpace(world))
{
Main.instance.SetWorldName(world);
- ServerApi.LogWriter.PluginWriteLine(this, string.Format("World name will be overridden by: {0}", world), TraceLevel.Verbose);
+ ServerApi.LogWriter.PluginWriteLine(this, GetString("World name will be overridden by: {0}", world), TraceLevel.Verbose);
}
})
@@ -810,7 +810,7 @@ namespace TShockAPI
if (IPAddress.TryParse(ip, out addr))
{
Netplay.ServerIP = addr;
- ServerApi.LogWriter.PluginWriteLine(this, string.Format("Listening on IP {0}.", addr), TraceLevel.Verbose);
+ ServerApi.LogWriter.PluginWriteLine(this, GetString("Listening on IP {0}.", addr), TraceLevel.Verbose);
}
else
{
@@ -846,7 +846,7 @@ namespace TShockAPI
throw new InvalidOperationException("Invalid value given for command line argument \"-worldevil\".");
}
- ServerApi.LogWriter.PluginWriteLine(this, String.Format("New worlds will be generated with the {0} world evil type!", value), TraceLevel.Verbose);
+ ServerApi.LogWriter.PluginWriteLine(this, GetString("New worlds will be generated with the {0} world evil type!", value), TraceLevel.Verbose);
WorldGen.WorldGenParam_Evil = worldEvil;
})
@@ -978,8 +978,8 @@ namespace TShockAPI
if (File.Exists(Path.Combine(SavePath, "setup-code.txt")))
{
- Log.ConsoleInfo("An account has been detected in the user database, but setup-code.txt is still present.");
- Log.ConsoleInfo("TShock will now disable the initial setup system and remove setup-code.txt as it is no longer needed.");
+ Log.ConsoleInfo(GetString("An account has been detected in the user database, but setup-code.txt is still present."));
+ Log.ConsoleInfo(GetString("TShock will now disable the initial setup system and remove setup-code.txt as it is no longer needed."));
File.Delete(Path.Combine(SavePath, "setup-code.txt"));
}
@@ -994,8 +994,8 @@ namespace TShockAPI
var r = new Random((int)DateTime.Now.ToBinary());
SetupToken = r.Next(100000, 10000000);
Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("To setup the server, join the game and type {0}setup {1}", Commands.Specifier, SetupToken);
- Console.WriteLine("This token will display until disabled by verification. ({0}setup)", Commands.Specifier);
+ Console.WriteLine(GetString("To setup the server, join the game and type {0}setup {1}", Commands.Specifier, SetupToken));
+ Console.WriteLine(GetString("This token will display until disabled by verification. ({0}setup)", Commands.Specifier));
Console.ResetColor();
File.WriteAllText(Path.Combine(SavePath, "setup-code.txt"), SetupToken.ToString());
}
@@ -1003,9 +1003,9 @@ namespace TShockAPI
{
SetupToken = Convert.ToInt32(File.ReadAllText(Path.Combine(SavePath, "setup-code.txt")));
Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("TShock Notice: setup-code.txt is still present, and the code located in that file will be used.");
- Console.WriteLine("To setup the server, join the game and type {0}setup {1}", Commands.Specifier, SetupToken);
- Console.WriteLine("This token will display until disabled by verification. ({0}setup)", Commands.Specifier);
+ Console.WriteLine(GetString("TShock Notice: setup-code.txt is still present, and the code located in that file will be used."));
+ Console.WriteLine(GetString("To setup the server, join the game and type {0}setup {1}", Commands.Specifier, SetupToken));
+ Console.WriteLine(GetString("This token will display until disabled by verification. ({0}setup)", Commands.Specifier));
Console.ResetColor();
}
@@ -1465,7 +1465,7 @@ namespace TShockAPI
if (!Commands.HandleCommand(tsplr, text))
{
// This is required in case anyone makes HandleCommand return false again
- tsplr.SendErrorMessage("Unable to parse command. Please contact an administrator for assistance.");
+ tsplr.SendErrorMessage(GetString("Unable to parse command. Please contact an administrator for assistance."));
Log.ConsoleError("Unable to parse command '{0}' from player {1}.", text, tsplr.Name);
}
}
@@ -1483,7 +1483,7 @@ namespace TShockAPI
}
else if (tsplr.mute)
{
- tsplr.SendErrorMessage("You are muted!");
+ tsplr.SendErrorMessage(GetString("You are muted!"));
args.Handled = true;
}
else if (!TShock.Config.Settings.EnableChatAboveHeads)
@@ -1638,22 +1638,22 @@ namespace TShockAPI
if (Config.Settings.EnableGeoIP && TShock.Geo != null)
{
- Log.Info("{0} ({1}) from '{2}' group from '{3}' joined. ({4}/{5})", player.Name, player.IP,
+ Log.Info(GetString("{0} ({1}) from '{2}' group from '{3}' joined. ({4}/{5})", player.Name, player.IP,
player.Group.Name, player.Country, TShock.Utils.GetActivePlayerCount(),
- TShock.Config.Settings.MaxSlots);
+ TShock.Config.Settings.MaxSlots));
if (!player.SilentJoinInProgress)
- Utils.Broadcast(string.Format("{0} ({1}) has joined.", player.Name, player.Country), Color.Yellow);
+ Utils.Broadcast(GetString("{0} ({1}) has joined.", player.Name, player.Country), Color.Yellow);
}
else
{
- Log.Info("{0} ({1}) from '{2}' group joined. ({3}/{4})", player.Name, player.IP,
- player.Group.Name, TShock.Utils.GetActivePlayerCount(), TShock.Config.Settings.MaxSlots);
+ Log.Info(GetString("{0} ({1}) from '{2}' group joined. ({3}/{4})", player.Name, player.IP,
+ player.Group.Name, TShock.Utils.GetActivePlayerCount(), TShock.Config.Settings.MaxSlots));
if (!player.SilentJoinInProgress)
- Utils.Broadcast(player.Name + " has joined.", Color.Yellow);
+ Utils.Broadcast(GetString("{0} has joined.", player.Name), Color.Yellow);
}
if (Config.Settings.DisplayIPToAdmins)
- Utils.SendLogs(string.Format("{0} has joined. IP: {1}", player.Name, player.IP), Color.Blue);
+ Utils.SendLogs(GetString("{0} has joined. IP: {1}", player.Name, player.IP), Color.Blue);
player.SendFileTextAsMessage(FileTools.MotdPath);
@@ -1670,12 +1670,12 @@ namespace TShockAPI
if (Main.ServerSideCharacter)
{
player.IsDisabledForSSC = true;
- player.SendErrorMessage(String.Format("Server side characters is enabled! Please {0}register or {0}login to play!", Commands.Specifier));
+ player.SendErrorMessage(GetString("Server side characters is enabled! Please {0}register or {0}login to play!", Commands.Specifier));
player.LoginHarassed = true;
}
else if (Config.Settings.RequireLogin)
{
- player.SendErrorMessage("Please {0}register or {0}login to play!", Commands.Specifier);
+ player.SendErrorMessage(GetString("Please {0}register or {0}login to play!", Commands.Specifier));
player.LoginHarassed = true;
}
}
@@ -1685,7 +1685,7 @@ namespace TShockAPI
if (Config.Settings.RememberLeavePos && (RememberedPos.GetLeavePos(player.Name, player.IP) != Vector2.Zero) && !player.LoginHarassed)
{
player.RPPending = 3;
- player.SendInfoMessage("You will be teleported to your last known location...");
+ player.SendInfoMessage(GetString("You will be teleported to your last known location..."));
}
args.Handled = true;
diff --git a/TShockAPI/Utils.cs b/TShockAPI/Utils.cs
index e3adaa62..e486497c 100644
--- a/TShockAPI/Utils.cs
+++ b/TShockAPI/Utils.cs
@@ -133,7 +133,7 @@ namespace TShockAPI
{
TSPlayer.All.SendMessage(msg, red, green, blue);
TSPlayer.Server.SendMessage(msg, red, green, blue);
- TShock.Log.Info(string.Format("Broadcast: {0}", msg));
+ TShock.Log.Info(GetString("Broadcast: {0}", msg));
}
/// >Broadcast - Broadcasts a message to all players on the server, as well as the server console, and the logs.
@@ -156,7 +156,7 @@ namespace TShockAPI
{
TSPlayer.All.SendMessageFromPlayer(msg, red, green, blue, ply);
TSPlayer.Server.SendMessage(Main.player[ply].name + ": " + msg, red, green, blue);
- TShock.Log.Info(string.Format("Broadcast: {0}", Main.player[ply].name + ": " + msg));
+ TShock.Log.Info(GetString("Broadcast: {0}: {1}", Main.player[ply].name, msg));
}
///
@@ -1060,7 +1060,7 @@ namespace TShockAPI
/// If the server is empty; determines if we should use Utils.GetActivePlayerCount() for player count or 0.
internal void SetConsoleTitle(bool empty)
{
- Console.Title = string.Format("{0}{1}/{2} on {3} @ {4}:{5} (TShock for Terraria v{6})",
+ Console.Title = GetString("{0}{1}/{2} on {3} @ {4}:{5} (TShock for Terraria v{6})",
!string.IsNullOrWhiteSpace(TShock.Config.Settings.ServerName) ? TShock.Config.Settings.ServerName + " - " : "",
empty ? 0 : GetActivePlayerCount(),
TShock.Config.Settings.MaxSlots, Main.worldName, Netplay.ServerIP.ToString(), Netplay.ListenPort, TShock.VersionNum);
From d1a6c293f25ab51408617bc5e257ff5355976daf Mon Sep 17 00:00:00 2001
From: SGKoishi
Date: Mon, 24 Oct 2022 13:49:26 -0700
Subject: [PATCH 08/17] i18n commands
---
TShockAPI/Commands.cs | 52 +++++++++++++++++++++----------------------
TShockAPI/TShock.cs | 2 +-
2 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 71488e43..26376a5c 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -6276,7 +6276,7 @@ namespace TShockAPI
string targetName = args.Parameters[0];
var players = TSPlayer.FindByNameOrID(targetName);
if (players.Count == 0)
- user.SendErrorMessage($"Unable to find any players named \"{targetName}\"");
+ user.SendErrorMessage(GetString($"Unable to find any players named \"{targetName}\""));
else if (players.Count > 1)
user.SendMultipleMatchError(players.Select(p => p.Name));
else
@@ -6286,7 +6286,7 @@ namespace TShockAPI
if (target.Dead)
{
- user.SendErrorMessage("You can't heal a dead player!");
+ user.SendErrorMessage(GetString("You can't heal a dead player!"));
return;
}
@@ -6297,9 +6297,9 @@ namespace TShockAPI
target.Heal(amount);
if (args.Silent)
- user.SendSuccessMessage($"You healed {(target == user ? "yourself" : target.Name)} for {amount} HP.");
+ user.SendSuccessMessage(GetString($"You healed {(target == user ? "yourself" : target.Name)} for {amount} HP."));
else
- TSPlayer.All.SendInfoMessage($"{user.Name} healed {(target == user ? (target.TPlayer.Male ? "himself" : "herself") : target.Name)} for {amount} HP.");
+ TSPlayer.All.SendInfoMessage(GetString($"{user.Name} healed {(target == user ? (target.TPlayer.Male ? "himself" : "herself") : target.Name)} for {amount} HP."));
}
}
@@ -6309,11 +6309,11 @@ namespace TShockAPI
var user = args.Player;
if (args.Parameters.Count < 1 || args.Parameters.Count > 2)
{
- user.SendMessage("Buff Syntax and Example", Color.White);
- user.SendMessage($"{"buff".Color(Utils.BoldHighlight)} <\"{"buff name".Color(Utils.RedHighlight)}|{"ID".Color(Utils.RedHighlight)}\"> [{"duration".Color(Utils.GreenHighlight)}]", Color.White);
- user.SendMessage($"Example usage: {"buff".Color(Utils.BoldHighlight)} \"{"obsidian skin".Color(Utils.RedHighlight)}\" {"-1".Color(Utils.GreenHighlight)}", Color.White);
- user.SendMessage($"If you don't specify the duration, it will default to {"60".Color(Utils.GreenHighlight)} seconds.", Color.White);
- user.SendMessage($"If you put {"-1".Color(Utils.GreenHighlight)} as the duration, it will use the max possible time of 415 days.", Color.White);
+ user.SendMessage(GetString("Buff Syntax and Example"), Color.White);
+ user.SendMessage(GetString($"{"buff".Color(Utils.BoldHighlight)} <\"{"buff name".Color(Utils.RedHighlight)}|{"ID".Color(Utils.RedHighlight)}\"> [{"duration".Color(Utils.GreenHighlight)}]"), Color.White);
+ user.SendMessage(GetString($"Example usage: {"buff".Color(Utils.BoldHighlight)} \"{"obsidian skin".Color(Utils.RedHighlight)}\" {"-1".Color(Utils.GreenHighlight)}"), Color.White);
+ user.SendMessage(GetString($"If you don't specify the duration, it will default to {"60".Color(Utils.GreenHighlight)} seconds."), Color.White);
+ user.SendMessage(GetString($"If you put {"-1".Color(Utils.GreenHighlight)} as the duration, it will use the max possible time of 415 days."), Color.White);
return;
}
@@ -6327,7 +6327,7 @@ namespace TShockAPI
if (found.Count == 0)
{
- user.SendErrorMessage($"Unable to find any buffs named \"{args.Parameters[0]}\"");
+ user.SendErrorMessage(GetString($"Unable to find any buffs named \"{args.Parameters[0]}\""));
return;
}
@@ -6348,10 +6348,10 @@ namespace TShockAPI
if (time < 0 || time > timeLimit)
time = timeLimit;
user.SetBuff(id, time * 60);
- user.SendSuccessMessage($"You buffed yourself with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds.");
+ user.SendSuccessMessage(GetString($"You buffed yourself with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds."));
}
else
- user.SendErrorMessage($"\"{id}\" is not a valid buff ID!");
+ user.SendErrorMessage(GetString($"\"{id}\" is not a valid buff ID!"));
}
private static void GBuff(CommandArgs args)
@@ -6359,10 +6359,10 @@ namespace TShockAPI
var user = args.Player;
if (args.Parameters.Count < 2 || args.Parameters.Count > 3)
{
- user.SendMessage("Give Buff Syntax and Example", Color.White);
- user.SendMessage($"{"gbuff".Color(Utils.BoldHighlight)} <{"player".Color(Utils.RedHighlight)}> <{"buff name".Color(Utils.PinkHighlight)}|{"ID".Color(Utils.PinkHighlight)}> [{"seconds".Color(Utils.GreenHighlight)}]", Color.White);
- user.SendMessage($"Example usage: {"gbuff".Color(Utils.BoldHighlight)} {user.Name.Color(Utils.RedHighlight)} {"regen".Color(Utils.PinkHighlight)} {"-1".Color(Utils.GreenHighlight)}", Color.White);
- user.SendMessage($"To buff a player without them knowing, use {SilentSpecifier.Color(Utils.RedHighlight)} instead of {Specifier.Color(Utils.GreenHighlight)}", Color.White);
+ user.SendMessage(GetString("Give Buff Syntax and Example"), Color.White);
+ user.SendMessage(GetString($"{"gbuff".Color(Utils.BoldHighlight)} <{"player".Color(Utils.RedHighlight)}> <{"buff name".Color(Utils.PinkHighlight)}|{"ID".Color(Utils.PinkHighlight)}> [{"seconds".Color(Utils.GreenHighlight)}]"), Color.White);
+ user.SendMessage(GetString($"Example usage: {"gbuff".Color(Utils.BoldHighlight)} {user.Name.Color(Utils.RedHighlight)} {"regen".Color(Utils.PinkHighlight)} {"-1".Color(Utils.GreenHighlight)}"), Color.White);
+ user.SendMessage(GetString($"To buff a player without them knowing, use {SilentSpecifier.Color(Utils.RedHighlight)} instead of {Specifier.Color(Utils.GreenHighlight)}"), Color.White);
return;
}
int id = 0;
@@ -6371,7 +6371,7 @@ namespace TShockAPI
var foundplr = TSPlayer.FindByNameOrID(args.Parameters[0]);
if (foundplr.Count == 0)
{
- user.SendErrorMessage($"Unable to find any player named \"{args.Parameters[0]}\"");
+ user.SendErrorMessage(GetString($"Unable to find any player named \"{args.Parameters[0]}\""));
return;
}
else if (foundplr.Count > 1)
@@ -6386,7 +6386,7 @@ namespace TShockAPI
var found = TShock.Utils.GetBuffByName(args.Parameters[1]);
if (found.Count == 0)
{
- user.SendErrorMessage($"Unable to find any buff named \"{args.Parameters[1]}\"");
+ user.SendErrorMessage(GetString($"Unable to find any buff named \"{args.Parameters[1]}\""));
return;
}
else if (found.Count > 1)
@@ -6404,9 +6404,9 @@ namespace TShockAPI
if (time < 0 || time > timeLimit)
time = timeLimit;
target.SetBuff(id, time * 60);
- user.SendSuccessMessage($"You have buffed {(target == user ? "yourself" : target.Name)} with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds!");
+ user.SendSuccessMessage(GetString($"You have buffed {(target == user ? GetString("yourself") : target.Name)} with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds!"));
if (!args.Silent && target != user)
- target.SendSuccessMessage($"{user.Name} has buffed you with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds!");
+ target.SendSuccessMessage(GetString($"{user.Name} has buffed you with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds!"));
}
else
user.SendErrorMessage("Invalid buff ID!");
@@ -6688,16 +6688,16 @@ namespace TShockAPI
if (playerToGod != args.Player)
{
- args.Player.SendSuccessMessage(playerToGod.GodMode ?
- GetString("{0} is now in god mode.", playerToGod.Name),
- GetString("{0} is no longer in god mode.", playerToGod.Name));
+ args.Player.SendSuccessMessage(playerToGod.GodMode
+ ? GetString("{0} is now in god mode.", playerToGod.Name)
+ : GetString("{0} is no longer in god mode.", playerToGod.Name));
}
if (!args.Silent || (playerToGod == args.Player))
{
- playerToGod.SendSuccessMessage(playerToGod.GodMode ?
- GetString("You are now in god mode.", playerToGod.Name),
- GetString("You are no longer in god mode.", playerToGod.Name));
+ playerToGod.SendSuccessMessage(playerToGod.GodMode
+ ? GetString("You are now in god mode.", playerToGod.Name)
+ : GetString("You are no longer in god mode.", playerToGod.Name));
}
}
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 057da6ba..13a0bc71 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -69,7 +69,7 @@ namespace TShockAPI
/// LogFormat - This is the log format, which is never set again.
private static string LogFormat = LogFormatDefault;
/// LogPathDefault - The default log path.
- private const string LogPathDefault = "tshock/logs"
+ private const string LogPathDefault = "tshock/logs";
/// This is the log path, which is initially set to the default log path, and then to the config file log path later.
private static string LogPath = LogPathDefault;
/// LogClear - Determines whether or not the log file should be cleared on initialization.
From f8c0f0ce155632ab228a8c39ae860786b0aa3995 Mon Sep 17 00:00:00 2001
From: SGKoishi
Date: Mon, 24 Oct 2022 21:16:28 -0700
Subject: [PATCH 09/17] i18n most texts
---
TShockAPI/Commands.cs | 599 ++++++++++++++++++-----------------
TShockAPI/GetDataHandlers.cs | 106 +++----
TShockAPI/ItemBans.cs | 4 +-
TShockAPI/RegionHandler.cs | 2 +-
TShockAPI/SaveManager.cs | 4 +-
TShockAPI/TSPlayer.cs | 10 +-
TShockAPI/UpdateManager.cs | 6 +-
7 files changed, 380 insertions(+), 351 deletions(-)
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 26376a5c..ddf73f47 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -677,7 +677,7 @@ namespace TShockAPI
call(new CommandArgs(cmdText, player, args));
return true;
}
- player.SendErrorMessage(GetString($"Invalid command entered. Type {0}help for a list of valid commands.", Specifier));
+ player.SendErrorMessage(GetString("Invalid command entered. Type {0}help for a list of valid commands.", Specifier));
return true;
}
foreach (Command cmd in cmds)
@@ -1355,14 +1355,14 @@ namespace TShockAPI
}
//TODO: Translate. The string interpolation here will break the text extractor.
- args.Player.SendMessage("TShock Ban Help", Color.White);
- args.Player.SendMessage("Available Ban commands:", Color.White);
- args.Player.SendMessage($"ban {"add".Color(Utils.RedHighlight)} [Flags]", Color.White);
- args.Player.SendMessage($"ban {"del".Color(Utils.RedHighlight)} ", Color.White);
- args.Player.SendMessage($"ban {"list".Color(Utils.RedHighlight)}", Color.White);
- args.Player.SendMessage($"ban {"details".Color(Utils.RedHighlight)} ", Color.White);
- args.Player.SendMessage($"Quick usage: {"ban add".Color(Utils.BoldHighlight)} {args.Player.Name.Color(Utils.RedHighlight)} \"Griefing\"", Color.White);
- args.Player.SendMessage($"For more info, use {"ban help".Color(Utils.BoldHighlight)} {"command".Color(Utils.RedHighlight)} or {"ban help".Color(Utils.BoldHighlight)} {"examples".Color(Utils.RedHighlight)}", Color.White);
+ args.Player.SendMessage(GetString("TShock Ban Help"), Color.White);
+ args.Player.SendMessage(GetString("Available Ban commands:"), Color.White);
+ args.Player.SendMessage(GetString($"ban {"add".Color(Utils.RedHighlight)} [Flags]"), Color.White);
+ args.Player.SendMessage(GetString($"ban {"del".Color(Utils.RedHighlight)} "), Color.White);
+ args.Player.SendMessage(GetString($"ban {"list".Color(Utils.RedHighlight)}"), Color.White);
+ args.Player.SendMessage(GetString($"ban {"details".Color(Utils.RedHighlight)} "), Color.White);
+ args.Player.SendMessage(GetString($"Quick usage: {"ban add".Color(Utils.BoldHighlight)} {args.Player.Name.Color(Utils.RedHighlight)} \"Griefing\""), Color.White);
+ args.Player.SendMessage(GetString($"For more info, use {"ban help".Color(Utils.BoldHighlight)} {"command".Color(Utils.RedHighlight)} or {"ban help".Color(Utils.BoldHighlight)} {"examples".Color(Utils.RedHighlight)}"), Color.White);
}
void MoreHelp(string cmd)
@@ -1370,40 +1370,40 @@ namespace TShockAPI
switch (cmd)
{
case "add":
- args.Player.SendMessage("", Color.White);
- args.Player.SendMessage("Ban Add Syntax", Color.White);
- args.Player.SendMessage($"{"ban add".Color(Utils.BoldHighlight)} <{"Target".Color(Utils.RedHighlight)}> [{"Reason".Color(Utils.BoldHighlight)}] [{"Duration".Color(Utils.PinkHighlight)}] [{"Flags".Color(Utils.GreenHighlight)}]", Color.White);
- args.Player.SendMessage($"- {"Duration".Color(Utils.PinkHighlight)}: uses the format {"0d0m0s".Color(Utils.PinkHighlight)} to determine the length of the ban.", Color.White);
- args.Player.SendMessage($" Eg a value of {"10d30m0s".Color(Utils.PinkHighlight)} would represent 10 days, 30 minutes, 0 seconds.", Color.White);
- args.Player.SendMessage($" If no duration is provided, the ban will be permanent.", Color.White);
- args.Player.SendMessage($"- {"Flags".Color(Utils.GreenHighlight)}: -a (account name), -u (UUID), -n (character name), -ip (IP address), -e (exact, {"Target".Color(Utils.RedHighlight)} will be treated as identifier)", Color.White);
- args.Player.SendMessage($" Unless {"-e".Color(Utils.GreenHighlight)} is passed to the command, {"Target".Color(Utils.RedHighlight)} is assumed to be a player or player index", Color.White);
- args.Player.SendMessage($" If no {"Flags".Color(Utils.GreenHighlight)} are specified, the command uses {"-a -u -ip".Color(Utils.GreenHighlight)} by default.", Color.White);
- args.Player.SendMessage($"Example usage: {"ban add".Color(Utils.BoldHighlight)} {args.Player.Name.Color(Utils.RedHighlight)} {"\"Cheating\"".Color(Utils.BoldHighlight)} {"10d30m0s".Color(Utils.PinkHighlight)} {"-a -u -ip".Color(Utils.GreenHighlight)}", Color.White);
+ args.Player.SendMessage(GetString(""), Color.White);
+ args.Player.SendMessage(GetString("Ban Add Syntax"), Color.White);
+ args.Player.SendMessage(GetString($"{"ban add".Color(Utils.BoldHighlight)} <{"Target".Color(Utils.RedHighlight)}> [{"Reason".Color(Utils.BoldHighlight)}] [{"Duration".Color(Utils.PinkHighlight)}] [{"Flags".Color(Utils.GreenHighlight)}]"), Color.White);
+ args.Player.SendMessage(GetString($"- {"Duration".Color(Utils.PinkHighlight)}: uses the format {"0d0m0s".Color(Utils.PinkHighlight)} to determine the length of the ban."), Color.White);
+ args.Player.SendMessage(GetString($" Eg a value of {"10d30m0s".Color(Utils.PinkHighlight)} would represent 10 days, 30 minutes, 0 seconds."), Color.White);
+ args.Player.SendMessage(GetString($" If no duration is provided, the ban will be permanent."), Color.White);
+ args.Player.SendMessage(GetString($"- {"Flags".Color(Utils.GreenHighlight)}: -a (account name), -u (UUID), -n (character name), -ip (IP address), -e (exact, {"Target".Color(Utils.RedHighlight)} will be treated as identifier)"), Color.White);
+ args.Player.SendMessage(GetString($" Unless {"-e".Color(Utils.GreenHighlight)} is passed to the command, {"Target".Color(Utils.RedHighlight)} is assumed to be a player or player index"), Color.White);
+ args.Player.SendMessage(GetString($" If no {"Flags".Color(Utils.GreenHighlight)} are specified, the command uses {"-a -u -ip".Color(Utils.GreenHighlight)} by default."), Color.White);
+ args.Player.SendMessage(GetString($"Example usage: {"ban add".Color(Utils.BoldHighlight)} {args.Player.Name.Color(Utils.RedHighlight)} {"\"Cheating\"".Color(Utils.BoldHighlight)} {"10d30m0s".Color(Utils.PinkHighlight)} {"-a -u -ip".Color(Utils.GreenHighlight)}"), Color.White);
break;
case "del":
- args.Player.SendMessage("", Color.White);
- args.Player.SendMessage("Ban Del Syntax", Color.White);
- args.Player.SendMessage($"{"ban del".Color(Utils.BoldHighlight)} <{"Ticket Number".Color(Utils.RedHighlight)}>", Color.White);
- args.Player.SendMessage($"- {"Ticket Numbers".Color(Utils.RedHighlight)} are provided when you add a ban, and can also be viewed with the {"ban list".Color(Utils.BoldHighlight)} command.", Color.White);
- args.Player.SendMessage($"Example usage: {"ban del".Color(Utils.BoldHighlight)} {"12345".Color(Utils.RedHighlight)}", Color.White);
+ args.Player.SendMessage(GetString(""), Color.White);
+ args.Player.SendMessage(GetString("Ban Del Syntax"), Color.White);
+ args.Player.SendMessage(GetString($"{"ban del".Color(Utils.BoldHighlight)} <{"Ticket Number".Color(Utils.RedHighlight)}>"), Color.White);
+ args.Player.SendMessage(GetString($"- {"Ticket Numbers".Color(Utils.RedHighlight)} are provided when you add a ban, and can also be viewed with the {"ban list".Color(Utils.BoldHighlight)} command."), Color.White);
+ args.Player.SendMessage(GetString($"Example usage: {"ban del".Color(Utils.BoldHighlight)} {"12345".Color(Utils.RedHighlight)}"), Color.White);
break;
case "list":
- args.Player.SendMessage("", Color.White);
- args.Player.SendMessage("Ban List Syntax", Color.White);
- args.Player.SendMessage($"{"ban list".Color(Utils.BoldHighlight)} [{"Page".Color(Utils.PinkHighlight)}]", Color.White);
- args.Player.SendMessage("- Lists active bans. Color trends towards green as the ban approaches expiration", Color.White);
- args.Player.SendMessage($"Example usage: {"ban list".Color(Utils.BoldHighlight)}", Color.White);
+ args.Player.SendMessage(GetString(""), Color.White);
+ args.Player.SendMessage(GetString("Ban List Syntax"), Color.White);
+ args.Player.SendMessage(GetString($"{"ban list".Color(Utils.BoldHighlight)} [{"Page".Color(Utils.PinkHighlight)}]"), Color.White);
+ args.Player.SendMessage(GetString("- Lists active bans. Color trends towards green as the ban approaches expiration"), Color.White);
+ args.Player.SendMessage(GetString($"Example usage: {"ban list".Color(Utils.BoldHighlight)}"), Color.White);
break;
case "details":
- args.Player.SendMessage("", Color.White);
- args.Player.SendMessage("Ban Details Syntax", Color.White);
- args.Player.SendMessage($"{"ban details".Color(Utils.BoldHighlight)} <{"Ticket Number".Color(Utils.RedHighlight)}>", Color.White);
- args.Player.SendMessage($"- {"Ticket Numbers".Color(Utils.RedHighlight)} are provided when you add a ban, and can be found with the {"ban list".Color(Utils.BoldHighlight)} command.", Color.White);
- args.Player.SendMessage($"Example usage: {"ban details".Color(Utils.BoldHighlight)} {"12345".Color(Utils.RedHighlight)}", Color.White);
+ args.Player.SendMessage(GetString(""), Color.White);
+ args.Player.SendMessage(GetString("Ban Details Syntax"), Color.White);
+ args.Player.SendMessage(GetString($"{"ban details".Color(Utils.BoldHighlight)} <{"Ticket Number".Color(Utils.RedHighlight)}>"), Color.White);
+ args.Player.SendMessage(GetString($"- {"Ticket Numbers".Color(Utils.RedHighlight)} are provided when you add a ban, and can be found with the {"ban list".Color(Utils.BoldHighlight)} command."), Color.White);
+ args.Player.SendMessage(GetString($"Example usage: {"ban details".Color(Utils.BoldHighlight)} {"12345".Color(Utils.RedHighlight)}"), Color.White);
break;
case "identifiers":
@@ -1416,46 +1416,46 @@ namespace TShockAPI
var idents = from ident in Identifier.Available
select $"{ident.Color(Utils.RedHighlight)} - {ident.Description}";
- args.Player.SendMessage("", Color.White);
+ args.Player.SendMessage(GetString(""), Color.White);
PaginationTools.SendPage(args.Player, pageNumber, idents.ToList(),
new PaginationTools.Settings
{
- HeaderFormat = "Available identifiers ({0}/{1}):",
- FooterFormat = "Type {0}ban help identifiers {{0}} for more.".SFormat(Specifier),
- NothingToDisplayString = "There are currently no available identifiers.",
+ HeaderFormat = GetString("Available identifiers ({0}/{1}):"),
+ FooterFormat = GetString("Type {0}ban help identifiers {{0}} for more.", Specifier),
+ NothingToDisplayString = GetString("There are currently no available identifiers."),
HeaderTextColor = Color.White,
LineTextColor = Color.White
});
break;
case "examples":
- args.Player.SendMessage("", Color.White);
- args.Player.SendMessage("Ban Usage Examples", Color.White);
- args.Player.SendMessage("- Ban an offline player by account name", Color.White);
- args.Player.SendMessage($" {Specifier}{"ban add".Color(Utils.BoldHighlight)} \"{"acc:".Color(Utils.RedHighlight)}{args.Player.Account.Color(Utils.RedHighlight)}\" {"\"Multiple accounts are not allowed\"".Color(Utils.BoldHighlight)} {"-e".Color(Utils.GreenHighlight)} (Permanently bans this account name)", Color.White);
- args.Player.SendMessage("- Ban an offline player by IP address", Color.White);
- args.Player.SendMessage($" {Specifier}{"ai".Color(Utils.BoldHighlight)} \"{args.Player.Account.Color(Utils.RedHighlight)}\" (Find the IP associated with the offline target's account)", Color.White);
- args.Player.SendMessage($" {Specifier}{"ban add".Color(Utils.BoldHighlight)} {"ip:".Color(Utils.RedHighlight)}{args.Player.IP.Color(Utils.RedHighlight)} {"\"Griefing\"".Color(Utils.BoldHighlight)} {"-e".Color(Utils.GreenHighlight)} (Permanently bans this IP address)", Color.White);
- args.Player.SendMessage($"- Ban an online player by index (Useful for hard to type names)", Color.White);
- args.Player.SendMessage($" {Specifier}{"who".Color(Utils.BoldHighlight)} {"-i".Color(Utils.GreenHighlight)} (Find the player index for the target)", Color.White);
- args.Player.SendMessage($" {Specifier}{"ban add".Color(Utils.BoldHighlight)} {"tsi:".Color(Utils.RedHighlight)}{args.Player.Index.Color(Utils.RedHighlight)} {"\"Trolling\"".Color(Utils.BoldHighlight)} {"-a -u -ip".Color(Utils.GreenHighlight)} (Permanently bans the online player by Account, UUID, and IP)", Color.White);
+ args.Player.SendMessage(GetString(""), Color.White);
+ args.Player.SendMessage(GetString("Ban Usage Examples"), Color.White);
+ args.Player.SendMessage(GetString("- Ban an offline player by account name"), Color.White);
+ args.Player.SendMessage(GetString($" {Specifier}{"ban add".Color(Utils.BoldHighlight)} \"{"acc:".Color(Utils.RedHighlight)}{args.Player.Account.Color(Utils.RedHighlight)}\" {"\"Multiple accounts are not allowed\"".Color(Utils.BoldHighlight)} {"-e".Color(Utils.GreenHighlight)} (Permanently bans this account name)"), Color.White);
+ args.Player.SendMessage(GetString("- Ban an offline player by IP address"), Color.White);
+ args.Player.SendMessage(GetString($" {Specifier}{"ai".Color(Utils.BoldHighlight)} \"{args.Player.Account.Color(Utils.RedHighlight)}\" (Find the IP associated with the offline target's account)"), Color.White);
+ args.Player.SendMessage(GetString($" {Specifier}{"ban add".Color(Utils.BoldHighlight)} {"ip:".Color(Utils.RedHighlight)}{args.Player.IP.Color(Utils.RedHighlight)} {"\"Griefing\"".Color(Utils.BoldHighlight)} {"-e".Color(Utils.GreenHighlight)} (Permanently bans this IP address)"), Color.White);
+ args.Player.SendMessage(GetString($"- Ban an online player by index (Useful for hard to type names)"), Color.White);
+ args.Player.SendMessage(GetString($" {Specifier}{"who".Color(Utils.BoldHighlight)} {"-i".Color(Utils.GreenHighlight)} (Find the player index for the target)"), Color.White);
+ args.Player.SendMessage(GetString($" {Specifier}{"ban add".Color(Utils.BoldHighlight)} {"tsi:".Color(Utils.RedHighlight)}{args.Player.Index.Color(Utils.RedHighlight)} {"\"Trolling\"".Color(Utils.BoldHighlight)} {"-a -u -ip".Color(Utils.GreenHighlight)} (Permanently bans the online player by Account, UUID, and IP)"), Color.White);
// Ban by account ID when?
break;
default:
- args.Player.SendMessage($"Unknown ban command. Try {"ban help".Color(Utils.BoldHighlight)} {"add".Color(Utils.RedHighlight)}, {"del".Color(Utils.RedHighlight)}, {"list".Color(Utils.RedHighlight)}, {"details".Color(Utils.RedHighlight)}, {"identifiers".Color(Utils.RedHighlight)}, or {"examples".Color(Utils.RedHighlight)}.", Color.White); break;
+ args.Player.SendMessage(GetString($"Unknown ban command. Try {"ban help".Color(Utils.BoldHighlight)} {"add".Color(Utils.RedHighlight)}, {"del".Color(Utils.RedHighlight)}, {"list".Color(Utils.RedHighlight)}, {"details".Color(Utils.RedHighlight)}, {"identifiers".Color(Utils.RedHighlight)}, or {"examples".Color(Utils.RedHighlight)}."), Color.White); break;
}
}
void DisplayBanDetails(Ban ban)
{
- args.Player.SendMessage($"{"Ban Details".Color(Utils.BoldHighlight)} - Ticket Number: {ban.TicketNumber.Color(Utils.GreenHighlight)}", Color.White);
- args.Player.SendMessage($"{"Identifier:".Color(Utils.BoldHighlight)} {ban.Identifier}", Color.White);
- args.Player.SendMessage($"{"Reason:".Color(Utils.BoldHighlight)} {ban.Reason}", Color.White);
- args.Player.SendMessage($"{"Banned by:".Color(Utils.BoldHighlight)} {ban.BanningUser.Color(Utils.GreenHighlight)} on {ban.BanDateTime.ToString("yyyy/MM/dd").Color(Utils.RedHighlight)} ({ban.GetPrettyTimeSinceBanString().Color(Utils.YellowHighlight)} ago)", Color.White);
+ args.Player.SendMessage(GetString($"{"Ban Details".Color(Utils.BoldHighlight)} - Ticket Number: {ban.TicketNumber.Color(Utils.GreenHighlight)}"), Color.White);
+ args.Player.SendMessage(GetString($"{"Identifier:".Color(Utils.BoldHighlight)} {ban.Identifier}"), Color.White);
+ args.Player.SendMessage(GetString($"{"Reason:".Color(Utils.BoldHighlight)} {ban.Reason}"), Color.White);
+ args.Player.SendMessage(GetString($"{"Banned by:".Color(Utils.BoldHighlight)} {ban.BanningUser.Color(Utils.GreenHighlight)} on {ban.BanDateTime.ToString("yyyy/MM/dd").Color(Utils.RedHighlight)} ({ban.GetPrettyTimeSinceBanString().Color(Utils.YellowHighlight)} ago)"), Color.White);
if (ban.ExpirationDateTime < DateTime.UtcNow)
{
- args.Player.SendMessage($"{"Ban expired:".Color(Utils.BoldHighlight)} {ban.ExpirationDateTime.ToString("yyyy/MM/dd").Color(Utils.RedHighlight)} ({ban.GetPrettyExpirationString().Color(Utils.YellowHighlight)} ago)", Color.White);
+ args.Player.SendMessage(GetString($"{"Ban expired:".Color(Utils.BoldHighlight)} {ban.ExpirationDateTime.ToString("yyyy/MM/dd").Color(Utils.RedHighlight)} ({ban.GetPrettyExpirationString().Color(Utils.YellowHighlight)} ago)"), Color.White);
}
else
{
@@ -1469,7 +1469,7 @@ namespace TShockAPI
remaining = GetString($"{ban.GetPrettyExpirationString().Color(Utils.YellowHighlight)} remaining.");
}
- args.Player.SendMessage($"{"Ban expires:".Color(Utils.BoldHighlight)} {ban.ExpirationDateTime.ToString("yyyy/MM/dd").Color(Utils.RedHighlight)} ({remaining})", Color.White);
+ args.Player.SendMessage(GetString($"{"Ban expires:".Color(Utils.BoldHighlight)} {ban.ExpirationDateTime.ToString("yyyy/MM/dd").Color(Utils.RedHighlight)} ({remaining})"), Color.White);
}
}
@@ -1493,7 +1493,7 @@ namespace TShockAPI
{
if (!args.Parameters.TryGetValue(1, out string target))
{
- args.Player.SendMessage($"Invalid Ban Add syntax. Refer to {"ban help add".Color(Utils.BoldHighlight)} for details on how to use the {"ban add".Color(Utils.BoldHighlight)} command", Color.White);
+ args.Player.SendMessage(GetString($"Invalid Ban Add syntax. Refer to {"ban help add".Color(Utils.BoldHighlight)} for details on how to use the {"ban add".Color(Utils.BoldHighlight)} command"), Color.White);
return;
}
@@ -1609,13 +1609,13 @@ namespace TShockAPI
{
if (!args.Parameters.TryGetValue(1, out string target))
{
- args.Player.SendMessage($"Invalid Ban Del syntax. Refer to {"ban help del".Color(Utils.BoldHighlight)} for details on how to use the {"ban del".Color(Utils.BoldHighlight)} command", Color.White);
+ args.Player.SendMessage(GetString($"Invalid Ban Del syntax. Refer to {"ban help del".Color(Utils.BoldHighlight)} for details on how to use the {"ban del".Color(Utils.BoldHighlight)} command"), Color.White);
return;
}
if (!int.TryParse(target, out int banId))
{
- args.Player.SendMessage($"Invalid Ticket Number. Refer to {"ban help del".Color(Utils.BoldHighlight)} for details on how to use the {"ban del".Color(Utils.BoldHighlight)} command", Color.White);
+ args.Player.SendMessage(GetString($"Invalid Ticket Number. Refer to {"ban help del".Color(Utils.BoldHighlight)} for details on how to use the {"ban del".Color(Utils.BoldHighlight)} command"), Color.White);
return;
}
@@ -1646,14 +1646,14 @@ namespace TShockAPI
if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out int pageNumber))
{
- args.Player.SendMessage($"Invalid Ban List syntax. Refer to {"ban help list".Color(Utils.BoldHighlight)} for details on how to use the {"ban list".Color(Utils.BoldHighlight)} command", Color.White);
+ args.Player.SendMessage(GetString($"Invalid Ban List syntax. Refer to {"ban help list".Color(Utils.BoldHighlight)} for details on how to use the {"ban list".Color(Utils.BoldHighlight)} command"), Color.White);
return;
}
var bans = from ban in TShock.Bans.Bans
- where ban.Value.ExpirationDateTime > DateTime.UtcNow
- orderby ban.Value.ExpirationDateTime ascending
- select $"[{ban.Key.Color(Utils.GreenHighlight)}] {ban.Value.Identifier.Color(PickColorForBan(ban.Value))}";
+ where ban.Value.ExpirationDateTime > DateTime.UtcNow
+ orderby ban.Value.ExpirationDateTime ascending
+ select $"[{ban.Key.Color(Utils.GreenHighlight)}] {ban.Value.Identifier.Color(PickColorForBan(ban.Value))}";
PaginationTools.SendPage(args.Player, pageNumber, bans.ToList(),
new PaginationTools.Settings
@@ -1668,13 +1668,13 @@ namespace TShockAPI
{
if (!args.Parameters.TryGetValue(1, out string target))
{
- args.Player.SendMessage($"Invalid Ban Details syntax. Refer to {"ban help details".Color(Utils.BoldHighlight)} for details on how to use the {"ban details".Color(Utils.BoldHighlight)} command", Color.White);
+ args.Player.SendMessage(GetString($"Invalid Ban Details syntax. Refer to {"ban help details".Color(Utils.BoldHighlight)} for details on how to use the {"ban details".Color(Utils.BoldHighlight)} command"), Color.White);
return;
}
if (!int.TryParse(target, out int banId))
{
- args.Player.SendMessage($"Invalid Ticket Number. Refer to {"ban help details".Color(Utils.BoldHighlight)} for details on how to use the {"ban details".Color(Utils.BoldHighlight)} command", Color.White);
+ args.Player.SendMessage(GetString($"Invalid Ticket Number. Refer to {"ban help details".Color(Utils.BoldHighlight)} for details on how to use the {"ban details".Color(Utils.BoldHighlight)} command"), Color.White);
return;
}
@@ -1866,9 +1866,17 @@ namespace TShockAPI
TShock.Config.Settings.ForceHalloween = !TShock.Config.Settings.ForceHalloween;
Main.checkHalloween();
if (args.Silent)
- args.Player.SendInfoMessage("{0}abled halloween mode!", (TShock.Config.Settings.ForceHalloween ? "en" : "dis"));
+ if (TShock.Config.Settings.ForceHalloween)
+ args.Player.SendInfoMessage(GetString("Enabled halloween mode."));
+ else
+ args.Player.SendInfoMessage(GetString("Disabled halloween mode."));
else
- TSPlayer.All.SendInfoMessage("{0} {1}abled halloween mode!", args.Player.Name, (TShock.Config.Settings.ForceHalloween ? "en" : "dis"));
+ {
+ if (TShock.Config.Settings.ForceHalloween)
+ TSPlayer.All.SendInfoMessage(GetString("{0} enabled halloween mode.", args.Player.Name));
+ else
+ TSPlayer.All.SendInfoMessage(GetString("{0} disabled halloween mode.", args.Player.Name));
+ }
}
private static void ForceXmas(CommandArgs args)
@@ -1878,16 +1886,16 @@ namespace TShockAPI
if (args.Silent)
{
if (TShock.Config.Settings.ForceXmas)
- args.Player.SendInfoMessage("Enabled xmas mode!");
+ args.Player.SendInfoMessage(GetString("Enabled xmas mode."));
else
- args.Player.SendInfoMessage("Disabled xmas mode!");
+ args.Player.SendInfoMessage(GetString("Disabled xmas mode."));
}
else
{
if (TShock.Config.Settings.ForceXmas)
- TSPlayer.All.SendInfoMessage("{0} enabled xmas mode!", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} enabled xmas mode.", args.Player.Name));
else
- TSPlayer.All.SendInfoMessage("{0} disabled xmas mode!", args.Player.Name);
+ TSPlayer.All.SendInfoMessage(GetString("{0} disabled xmas mode.", args.Player.Name));
}
}
@@ -3094,13 +3102,13 @@ namespace TShockAPI
var englishName = EnglishLanguage.GetNpcNameById(npc.netID);
if (string.Equals(npc.FullName, npcStr, StringComparison.InvariantCultureIgnoreCase) ||
- string.Equals(englishName, npcStr, StringComparison.InvariantCultureIgnoreCase))
+ string.Equals(englishName, npcStr, StringComparison.InvariantCultureIgnoreCase))
{
matches = new List { npc };
break;
}
if (npc.FullName.ToLowerInvariant().StartsWith(npcStr.ToLowerInvariant()) ||
- englishName?.StartsWith(npcStr, StringComparison.InvariantCultureIgnoreCase) == true)
+ englishName?.StartsWith(npcStr, StringComparison.InvariantCultureIgnoreCase) == true)
matches.Add(npc);
}
@@ -3763,7 +3771,7 @@ namespace TShockAPI
return;
default:
args.Player.SendErrorMessage(GetString("Invalid subcommand! Type {0}group help for more information on valid commands.", Specifier));
- return;
+ return;
}
}
#endregion Group Management
@@ -4263,7 +4271,7 @@ namespace TShockAPI
{
if (args.Parameters.Count != 3)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}tileban disallow .", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}tileban disallow .", Specifier));
return;
}
@@ -4870,7 +4878,7 @@ namespace TShockAPI
{
if (TShock.Regions.RemoveGroup(regionName, group))
{
- args.Player.SendInfoMessage("Removed group " + group + " from " + regionName);
+ args.Player.SendInfoMessage(GetString("Removed group {0} from {1}", group, regionName));
}
else
args.Player.SendErrorMessage(GetString($"Could not find the region {regionName}."));
@@ -5022,15 +5030,15 @@ namespace TShockAPI
if (int.TryParse(args.Parameters[2], out z))
{
if (TShock.Regions.SetZ(regionName, z))
- args.Player.SendInfoMessage("Region's z is now " + z);
+ args.Player.SendInfoMessage(GetString("Region's z is now {0}", z));
else
- args.Player.SendErrorMessage("Could not find specified region");
+ args.Player.SendErrorMessage(GetString("Could not find specified region"));
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region z <#>", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region z <#>", Specifier));
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region z <#>", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region z <#>", Specifier));
break;
}
case "resize":
@@ -5075,21 +5083,21 @@ namespace TShockAPI
int.TryParse(args.Parameters[3], out addAmount);
if (TShock.Regions.ResizeRegion(args.Parameters[1], addAmount, direction))
{
- args.Player.SendInfoMessage("Region Resized Successfully!");
+ args.Player.SendInfoMessage(GetString("Region Resized Successfully!"));
TShock.Regions.Reload();
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region resize ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region resize ", Specifier));
}
else
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region resize ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region resize ", Specifier));
break;
}
case "rename":
{
if (args.Parameters.Count != 3)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region rename ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region rename ", Specifier));
break;
}
else
@@ -5099,7 +5107,7 @@ namespace TShockAPI
if (oldName == newName)
{
- args.Player.SendErrorMessage("Error: both names are the same.");
+ args.Player.SendErrorMessage(GetString("Error: both names are the same."));
break;
}
@@ -5107,7 +5115,7 @@ namespace TShockAPI
if (oldRegion == null)
{
- args.Player.SendErrorMessage("Invalid region \"{0}\".", oldName);
+ args.Player.SendErrorMessage(GetString("Invalid region \"{0}\".", oldName));
break;
}
@@ -5115,17 +5123,17 @@ namespace TShockAPI
if (newRegion != null)
{
- args.Player.SendErrorMessage("Region \"{0}\" already exists.", newName);
+ args.Player.SendErrorMessage(GetString("Region \"{0}\" already exists.", newName));
break;
}
- if(TShock.Regions.RenameRegion(oldName, newName))
+ if (TShock.Regions.RenameRegion(oldName, newName))
{
- args.Player.SendInfoMessage("Region renamed successfully!");
+ args.Player.SendInfoMessage(GetString("Region renamed successfully!"));
}
else
{
- args.Player.SendErrorMessage("Failed to rename the region.");
+ args.Player.SendErrorMessage(GetString("Failed to rename the region."));
}
}
break;
@@ -5134,12 +5142,12 @@ namespace TShockAPI
{
if (!args.Player.HasPermission(Permissions.tp))
{
- args.Player.SendErrorMessage("You do not have permission to teleport.");
+ args.Player.SendErrorMessage(GetString("You do not have permission to teleport."));
break;
}
if (args.Parameters.Count <= 1)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}region tp .", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}region tp .", Specifier));
break;
}
@@ -5147,7 +5155,7 @@ namespace TShockAPI
Region region = TShock.Regions.GetRegionByName(regionName);
if (region == null)
{
- args.Player.SendErrorMessage("Region \"{0}\" does not exist.", regionName);
+ args.Player.SendErrorMessage(GetString("Region \"{0}\" does not exist.", regionName));
break;
}
@@ -5165,31 +5173,31 @@ namespace TShockAPI
return;
List lines = new List {
- "set <1/2> - Sets the temporary region points.",
- "clear - Clears the temporary region points.",
- "define - Defines the region with the given name.",
- "delete - Deletes the given region.",
- "name [-u][-z][-p] - Shows the name of the region at the given point.",
- "rename - Renames the given region.",
- "list - Lists all regions.",
- "resize - Resizes a region.",
- "allow - Allows a user to a region.",
- "remove - Removes a user from a region.",
- "allowg - Allows a user group to a region.",
- "removeg - Removes a user group from a region.",
- "info [-d] - Displays several information about the given region.",
- "protect - Sets whether the tiles inside the region are protected or not.",
- "z <#> - Sets the z-order of the region.",
+ GetString("set <1/2> - Sets the temporary region points."),
+ GetString("clear - Clears the temporary region points."),
+ GetString("define - Defines the region with the given name."),
+ GetString("delete - Deletes the given region."),
+ GetString("name [-u][-z][-p] - Shows the name of the region at the given point."),
+ GetString("rename - Renames the given region."),
+ GetString("list - Lists all regions."),
+ GetString("resize - Resizes a region."),
+ GetString("allow - Allows a user to a region."),
+ GetString("remove - Removes a user from a region."),
+ GetString("allowg - Allows a user group to a region."),
+ GetString("removeg - Removes a user group from a region."),
+ GetString("info [-d] - Displays several information about the given region."),
+ GetString("protect - Sets whether the tiles inside the region are protected or not."),
+ GetString("z <#> - Sets the z-order of the region."),
};
if (args.Player.HasPermission(Permissions.tp))
- lines.Add("tp - Teleports you to the given region's center.");
+ lines.Add(GetString("tp - Teleports you to the given region's center."));
PaginationTools.SendPage(
args.Player, pageNumber, lines,
new PaginationTools.Settings
{
- HeaderFormat = "Available Region Sub-Commands ({0}/{1}):",
- FooterFormat = "Type {0}region {{0}} for more sub-commands.".SFormat(Specifier)
+ HeaderFormat = GetString("Available Region Sub-Commands ({0}/{1}):"),
+ FooterFormat = GetString("Type {0}region {{0}} for more sub-commands.", Specifier)
}
);
break;
@@ -5221,7 +5229,7 @@ namespace TShockAPI
{
if (args.Parameters.Count > 1)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}help ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}help ", Specifier));
return;
}
@@ -5255,16 +5263,16 @@ namespace TShockAPI
Command command = ChatCommands.Find(c => c.Names.Contains(commandName));
if (command == null)
{
- args.Player.SendErrorMessage("Invalid command.");
+ args.Player.SendErrorMessage(GetString("Invalid command."));
return;
}
if (!command.CanRun(args.Player))
{
- args.Player.SendErrorMessage("You do not have access to this command.");
+ args.Player.SendErrorMessage(GetString("You do not have access to this command."));
return;
}
- args.Player.SendSuccessMessage("{0}{1} help: ", Specifier, command.Name);
+ args.Player.SendSuccessMessage(GetString("{0}{1} help: ", Specifier, command.Name));
if (command.HelpDesc == null)
{
args.Player.SendInfoMessage(command.HelpText);
@@ -5279,7 +5287,7 @@ namespace TShockAPI
private static void GetVersion(CommandArgs args)
{
- args.Player.SendMessage($"TShock: {TShock.VersionNum.Color(Utils.BoldHighlight)} {TShock.VersionCodename.Color(Utils.RedHighlight)}.", Color.White);
+ args.Player.SendMessage(GetString($"TShock: {TShock.VersionNum.Color(Utils.BoldHighlight)} {TShock.VersionCodename.Color(Utils.RedHighlight)}."), Color.White);
}
private static void ListConnectedPlayers(CommandArgs args)
@@ -5307,24 +5315,24 @@ namespace TShockAPI
}
if (invalidUsage)
{
- args.Player.SendMessage($"List Online Players Syntax", Color.White);
- args.Player.SendMessage($"{"playing".Color(Utils.BoldHighlight)} {"[-i]".Color(Utils.RedHighlight)} {"[page]".Color(Utils.GreenHighlight)}", Color.White);
- args.Player.SendMessage($"Command aliases: {"playing".Color(Utils.GreenHighlight)}, {"online".Color(Utils.GreenHighlight)}, {"who".Color(Utils.GreenHighlight)}", Color.White);
- args.Player.SendMessage($"Example usage: {"who".Color(Utils.BoldHighlight)} {"-i".Color(Utils.RedHighlight)}", Color.White);
+ args.Player.SendMessage(GetString($"List Online Players Syntax"), Color.White);
+ args.Player.SendMessage(GetString($"{"playing".Color(Utils.BoldHighlight)} {"[-i]".Color(Utils.RedHighlight)} {"[page]".Color(Utils.GreenHighlight)}"), Color.White);
+ args.Player.SendMessage(GetString($"Command aliases: {"playing".Color(Utils.GreenHighlight)}, {"online".Color(Utils.GreenHighlight)}, {"who".Color(Utils.GreenHighlight)}"), Color.White);
+ args.Player.SendMessage(GetString($"Example usage: {"who".Color(Utils.BoldHighlight)} {"-i".Color(Utils.RedHighlight)}"), Color.White);
return;
}
if (displayIdsRequested && !args.Player.HasPermission(Permissions.seeids))
{
- args.Player.SendErrorMessage("You do not have permission to see player IDs.");
+ args.Player.SendErrorMessage(GetString("You do not have permission to see player IDs."));
return;
}
if (TShock.Utils.GetActivePlayerCount() == 0)
{
- args.Player.SendMessage("There are currently no players online.", Color.White);
+ args.Player.SendMessage(GetString("There are currently no players online."), Color.White);
return;
}
- args.Player.SendMessage($"Online Players ({TShock.Utils.GetActivePlayerCount().Color(Utils.GreenHighlight)}/{TShock.Config.Settings.MaxSlots})", Color.White);
+ args.Player.SendMessage(GetString($"Online Players ({TShock.Utils.GetActivePlayerCount().Color(Utils.GreenHighlight)}/{TShock.Config.Settings.MaxSlots})"), Color.White);
var players = new List();
@@ -5333,7 +5341,7 @@ namespace TShockAPI
if (ply != null && ply.Active)
{
if (displayIdsRequested)
- players.Add($"{ply.Name} (Index: {ply.Index}{(ply.Account != null ? ", Account ID: " + ply.Account.ID : "")})");
+ players.Add(GetString($"{ply.Name} (Index: {ply.Index}{(ply.Account != null ? ", Account ID: " + ply.Account.ID : "")})"));
else
players.Add(ply.Name);
}
@@ -5344,7 +5352,7 @@ namespace TShockAPI
new PaginationTools.Settings
{
IncludeHeader = false,
- FooterFormat = $"Type {Specifier}who {(displayIdsRequested ? "-i" : string.Empty)}{Specifier} for more."
+ FooterFormat = GetString($"Type {Specifier}who {(displayIdsRequested ? "-i" : string.Empty)}{Specifier} for more.")
}
);
}
@@ -5353,8 +5361,8 @@ namespace TShockAPI
{
if (TShock.SetupToken == 0)
{
- args.Player.SendWarningMessage("The initial setup system is disabled. This incident has been logged.");
- args.Player.SendWarningMessage("If you are locked out of all admin accounts, ask for help on https://tshock.co/");
+ args.Player.SendWarningMessage(GetString("The initial setup system is disabled. This incident has been logged."));
+ args.Player.SendWarningMessage(GetString("If you are locked out of all admin accounts, ask for help on https://tshock.co/"));
TShock.Log.Warn("{0} attempted to use the initial setup system even though it's disabled.", args.Player.IP);
return;
}
@@ -5362,9 +5370,9 @@ namespace TShockAPI
// If the user account is already logged in, turn off the setup system
if (args.Player.IsLoggedIn && args.Player.tempGroup == null)
{
- args.Player.SendSuccessMessage("Your new account has been verified, and the {0}setup system has been turned off.", Specifier);
- args.Player.SendSuccessMessage("Share your server, talk with admins, and chill on GitHub & Discord. -- https://tshock.co/");
- args.Player.SendSuccessMessage("Thank you for using TShock for Terraria!");
+ args.Player.SendSuccessMessage(GetString("Your new account has been verified, and the {0}setup system has been turned off.", Specifier));
+ args.Player.SendSuccessMessage(GetString("Share your server, talk with admins, and chill on GitHub & Discord. -- https://tshock.co/"));
+ args.Player.SendSuccessMessage(GetString("Thank you for using TShock for Terraria!"));
FileTools.CreateFile(Path.Combine(TShock.SavePath, "setup.lock"));
File.Delete(Path.Combine(TShock.SavePath, "setup-code.txt"));
TShock.SetupToken = 0;
@@ -5373,14 +5381,14 @@ namespace TShockAPI
if (args.Parameters.Count == 0)
{
- args.Player.SendErrorMessage("You must provide a setup code!");
+ args.Player.SendErrorMessage(GetString("You must provide a setup code!"));
return;
}
int givenCode;
if (!Int32.TryParse(args.Parameters[0], out givenCode) || givenCode != TShock.SetupToken)
{
- args.Player.SendErrorMessage("Incorrect setup code. This incident has been logged.");
+ args.Player.SendErrorMessage(GetString("Incorrect setup code. This incident has been logged."));
TShock.Log.Warn(args.Player.IP + " attempted to use an incorrect setup code.");
return;
}
@@ -5388,12 +5396,12 @@ namespace TShockAPI
if (args.Player.Group.Name != "superadmin")
args.Player.tempGroup = new SuperAdminGroup();
- args.Player.SendInfoMessage("Temporary system access has been given to you, so you can run one command.");
- args.Player.SendWarningMessage("Please use the following to create a permanent account for you.");
- args.Player.SendWarningMessage("{0}user add owner", Specifier);
- args.Player.SendInfoMessage("Creates: with the password as part of the owner group.");
- args.Player.SendInfoMessage("Please use {0}login after this process.", Specifier);
- args.Player.SendWarningMessage("If you understand, please {0}login now, and then type {0}setup.", Specifier);
+ args.Player.SendInfoMessage(GetString("Temporary system access has been given to you, so you can run one command."));
+ args.Player.SendWarningMessage(GetString("Please use the following to create a permanent account for you."));
+ args.Player.SendWarningMessage(GetString("{0}user add owner", Specifier));
+ args.Player.SendInfoMessage(GetString("Creates: with the password as part of the owner group."));
+ args.Player.SendInfoMessage(GetString("Please use {0}login after this process.", Specifier));
+ args.Player.SendWarningMessage(GetString("If you understand, please {0}login now, and then type {0}setup.", Specifier));
return;
}
@@ -5401,11 +5409,11 @@ namespace TShockAPI
{
if (args.Parameters.Count == 0)
{
- args.Player.SendErrorMessage("Invalid syntax. Proper syntax: {0}me ", Specifier);
+ args.Player.SendErrorMessage(GetString("Invalid syntax. Proper syntax: {0}me