Merge upstream
This commit is contained in:
commit
fb96d8b0c8
30 changed files with 9232 additions and 1697 deletions
|
|
@ -255,7 +255,7 @@ namespace TShockAPI
|
|||
|
||||
#region PlayerAddBuff Whitelist
|
||||
|
||||
PlayerAddBuffWhitelist = new BuffLimit[Main.maxBuffTypes];
|
||||
PlayerAddBuffWhitelist = new BuffLimit[Terraria.ID.BuffID.Count];
|
||||
PlayerAddBuffWhitelist[BuffID.Poisoned] = new BuffLimit
|
||||
{
|
||||
MaxTicks = 60 * 60
|
||||
|
|
@ -600,8 +600,8 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
if (editData < 0 ||
|
||||
((action == EditAction.PlaceTile || action == EditAction.ReplaceTile) && editData >= Main.maxTileSets) ||
|
||||
((action == EditAction.PlaceWall || action == EditAction.ReplaceWall) && editData >= Main.maxWallTypes))
|
||||
((action == EditAction.PlaceTile || action == EditAction.ReplaceTile) && editData >= Terraria.ID.TileID.Count) ||
|
||||
((action == EditAction.PlaceWall || action == EditAction.ReplaceWall) && editData >= Terraria.ID.WallID.Count))
|
||||
{
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnTileEdit rejected from editData out of bounds {0} {1} {2}", args.Player.Name, action, editData));
|
||||
args.Player.SendTileSquareCentered(tileX, tileY, 4);
|
||||
|
|
@ -1050,7 +1050,7 @@ namespace TShockAPI
|
|||
short type = args.Type;
|
||||
|
||||
// player is attempting to crash clients
|
||||
if (type < -48 || type >= Main.maxItemTypes)
|
||||
if (type < -48 || type >= Terraria.ID.ItemID.Count)
|
||||
{
|
||||
// Causes item duplications. Will be re added later if necessary
|
||||
//args.Player.SendData(PacketTypes.ItemDrop, "", id);
|
||||
|
|
@ -1266,16 +1266,16 @@ namespace TShockAPI
|
|||
{
|
||||
if (TShock.Config.Settings.KickOnProjectileThresholdBroken)
|
||||
{
|
||||
args.Player.Kick(GetString("Projectile update threshold exceeded {0}.", TShock.Config.Settings.ProjectileThreshold));
|
||||
args.Player.Kick(GetString("Projectile create threshold exceeded {0}.", TShock.Config.Settings.ProjectileThreshold));
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.Disable(GetString("Reached projectile update threshold."), DisableFlags.WriteToLogAndConsole);
|
||||
args.Player.Disable(GetString("Reached projectile create threshold."), DisableFlags.WriteToLogAndConsole);
|
||||
args.Player.RemoveProjectile(ident, owner);
|
||||
}
|
||||
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnNewProjectile rejected from projectile update threshold from {0} {1}/{2}", args.Player.Name, args.Player.ProjectileThreshold, TShock.Config.Settings.ProjectileThreshold));
|
||||
TShock.Log.ConsoleDebug(GetString("If this player wasn't hacking, please report the projectile update threshold they were disabled for to TShock so we can improve this!"));
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnNewProjectile rejected from projectile create threshold from {0} {1}/{2}", args.Player.Name, args.Player.ProjectileThreshold, TShock.Config.Settings.ProjectileThreshold));
|
||||
TShock.Log.ConsoleDebug(GetString("If this player wasn't hacking, please report the projectile create threshold they were disabled for to TShock so we can improve this!"));
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -1881,7 +1881,7 @@ namespace TShockAPI
|
|||
return;
|
||||
}
|
||||
|
||||
if (type >= Main.maxBuffTypes)
|
||||
if (type >= Terraria.ID.BuffID.Count)
|
||||
{
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlayerBuff rejected invalid buff type {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.PlayerBuff, "", id);
|
||||
|
|
@ -1995,21 +1995,21 @@ namespace TShockAPI
|
|||
if (npc.townNPC)
|
||||
{
|
||||
if (type != BuffID.Poisoned
|
||||
&& type != BuffID.OnFire
|
||||
&& type != BuffID.Confused
|
||||
&& type != BuffID.CursedInferno
|
||||
&& type != BuffID.Ichor
|
||||
&& type != BuffID.Venom
|
||||
&& type != BuffID.Midas
|
||||
&& type != BuffID.Wet
|
||||
&& type != BuffID.Lovestruck
|
||||
&& type != BuffID.Stinky
|
||||
&& type != BuffID.Slimed
|
||||
&& type != BuffID.DryadsWard
|
||||
&& type != BuffID.GelBalloonBuff
|
||||
&& type != BuffID.OnFire3
|
||||
&& type != BuffID.Frostburn2
|
||||
&& type != BuffID.Shimmer)
|
||||
&& type != BuffID.OnFire
|
||||
&& type != BuffID.Confused
|
||||
&& type != BuffID.CursedInferno
|
||||
&& type != BuffID.Ichor
|
||||
&& type != BuffID.Venom
|
||||
&& type != BuffID.Midas
|
||||
&& type != BuffID.Wet
|
||||
&& type != BuffID.Lovestruck
|
||||
&& type != BuffID.Stinky
|
||||
&& type != BuffID.Slimed
|
||||
&& type != BuffID.DryadsWard
|
||||
&& type != BuffID.GelBalloonBuff
|
||||
&& type != BuffID.OnFire3
|
||||
&& type != BuffID.Frostburn2
|
||||
&& type != BuffID.Shimmer)
|
||||
{
|
||||
detectedNPCBuffTimeCheat = true;
|
||||
}
|
||||
|
|
@ -2209,7 +2209,7 @@ namespace TShockAPI
|
|||
return;
|
||||
}
|
||||
|
||||
if (type < 0 || type >= Main.maxTileSets)
|
||||
if (type < 0 || type >= Terraria.ID.TileID.Count)
|
||||
{
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlaceObject rejected out of bounds tile from {0}", args.Player.Name));
|
||||
args.Handled = true;
|
||||
|
|
@ -2303,10 +2303,15 @@ namespace TShockAPI
|
|||
|
||||
if (args.Player.SelectedItem.placeStyle != style)
|
||||
{
|
||||
TShock.Log.ConsoleError(GetString("Bouncer / OnPlaceObject rejected object placement with invalid style from {0}", args.Player.Name));
|
||||
args.Player.SendTileSquareCentered(x, y, 4);
|
||||
args.Handled = true;
|
||||
return;
|
||||
var validTorch = args.Player.SelectedItem.createTile == TileID.Torches && args.Player.TPlayer.BiomeTorchPlaceStyle(args.Player.SelectedItem.placeStyle) == style;
|
||||
var validCampfire = args.Player.SelectedItem.createTile == TileID.Campfire && args.Player.TPlayer.BiomeCampfirePlaceStyle(args.Player.SelectedItem.placeStyle) == style;
|
||||
if (!args.Player.TPlayer.unlockedBiomeTorches || (!validTorch && !validCampfire))
|
||||
{
|
||||
TShock.Log.ConsoleError(GetString("Bouncer / OnPlaceObject rejected object placement with invalid style {1} (expected {2}) from {0}", args.Player.Name, style, args.Player.SelectedItem.placeStyle));
|
||||
args.Player.SendTileSquareCentered(x, y, 4);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2587,7 +2592,7 @@ namespace TShockAPI
|
|||
}
|
||||
else
|
||||
{
|
||||
TShock.Log.ConsoleDebug("Bouncer / OnPlayerDamage rejected damage threshold2 from {0} {1}/{2}", args.Player.Name, damage, TShock.Config.Settings.MaxDamage);
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlayerDamage rejected damage threshold2 from {0} {1}/{2}", args.Player.Name, damage, TShock.Config.Settings.MaxDamage));
|
||||
args.Player.Disable(GetString("Player damage exceeded {0}.", TShock.Config.Settings.MaxDamage), DisableFlags.WriteToLogAndConsole);
|
||||
}
|
||||
args.Player.SendData(PacketTypes.PlayerHp, "", id);
|
||||
|
|
|
|||
|
|
@ -649,7 +649,7 @@ namespace TShockAPI
|
|||
string cmdName;
|
||||
if (index == 0) // Space after the command specifier should not be supported
|
||||
{
|
||||
player.SendErrorMessage(GetString("Invalid command entered. Type {0}help for a list of valid commands.", Specifier));
|
||||
player.SendErrorMessage(GetString("You entered a space after {0} instead of a command. Type {0}help for a list of valid commands.", Specifier));
|
||||
return true;
|
||||
}
|
||||
else if (index < 0)
|
||||
|
|
@ -787,6 +787,10 @@ namespace TShockAPI
|
|||
// We need to emulate the checks done in Player.TrySwitchingLoadout, because otherwise the server is not allowed to sync the
|
||||
// loadout index to the player, causing catastrophic desync.
|
||||
// The player must not be dead, using an item, or CC'd to switch loadouts.
|
||||
|
||||
// Note that we only check for CC'd players when SSC is enabled, as that is only where it can cause issues,
|
||||
// and the RequireLogin config option (without SSC) will disable player's until they login, creating a vicious cycle.
|
||||
|
||||
// FIXME: There is always the chance that in-between the time we check these requirements on the server, and the loadout sync
|
||||
// packet reaches the client, that the client state has changed, causing the loadout sync to be rejected, even though
|
||||
// we expected it to succeed.
|
||||
|
|
@ -805,7 +809,7 @@ namespace TShockAPI
|
|||
return;
|
||||
}
|
||||
|
||||
if (args.TPlayer.CCed)
|
||||
if (args.TPlayer.CCed && Main.ServerSideCharacter)
|
||||
{
|
||||
args.Player.SendErrorMessage(GetString("You cannot login whilst crowd controlled."));
|
||||
return;
|
||||
|
|
@ -2862,7 +2866,7 @@ namespace TShockAPI
|
|||
else
|
||||
{
|
||||
var npc = npcs[0];
|
||||
if (npc.type >= 1 && npc.type < Main.maxNPCTypes && npc.type != 113)
|
||||
if (npc.type >= 1 && npc.type < Terraria.ID.NPCID.Count && npc.type != 113)
|
||||
{
|
||||
TSPlayer.Server.SpawnNPC(npc.netID, npc.FullName, amount, args.Player.TileX, args.Player.TileY, 50, 20);
|
||||
if (args.Silent)
|
||||
|
|
@ -4027,7 +4031,7 @@ namespace TShockAPI
|
|||
return;
|
||||
}
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Terraria.ID.ProjectileID.Count)
|
||||
{
|
||||
TShock.ProjectileBans.AddNewBan(id);
|
||||
args.Player.SendSuccessMessage(GetString("Banned projectile {0}.", id));
|
||||
|
|
@ -4047,7 +4051,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Terraria.ID.ProjectileID.Count)
|
||||
{
|
||||
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
||||
{
|
||||
|
|
@ -4084,7 +4088,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Terraria.ID.ProjectileID.Count)
|
||||
{
|
||||
TShock.ProjectileBans.RemoveBan(id);
|
||||
args.Player.SendSuccessMessage(GetString("Unbanned projectile {0}.", id));
|
||||
|
|
@ -4105,7 +4109,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Main.maxProjectileTypes)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id > 0 && id < Terraria.ID.ProjectileID.Count)
|
||||
{
|
||||
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
||||
{
|
||||
|
|
@ -4203,7 +4207,7 @@ namespace TShockAPI
|
|||
return;
|
||||
}
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Main.maxTileSets)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Terraria.ID.TileID.Count)
|
||||
{
|
||||
TShock.TileBans.AddNewBan(id);
|
||||
args.Player.SendSuccessMessage(GetString("Banned tile {0}.", id));
|
||||
|
|
@ -4223,7 +4227,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Main.maxTileSets)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Terraria.ID.TileID.Count)
|
||||
{
|
||||
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
||||
{
|
||||
|
|
@ -4260,7 +4264,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Main.maxTileSets)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Terraria.ID.TileID.Count)
|
||||
{
|
||||
TShock.TileBans.RemoveBan(id);
|
||||
args.Player.SendSuccessMessage(GetString("Unbanned tile {0}.", id));
|
||||
|
|
@ -4281,7 +4285,7 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
short id;
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Main.maxTileSets)
|
||||
if (Int16.TryParse(args.Parameters[1], out id) && id >= 0 && id < Terraria.ID.TileID.Count)
|
||||
{
|
||||
if (!TShock.Groups.GroupExists(args.Parameters[2]))
|
||||
{
|
||||
|
|
@ -6088,7 +6092,7 @@ namespace TShockAPI
|
|||
{
|
||||
item = matchedItems[0];
|
||||
}
|
||||
if (item.type < 1 && item.type >= Main.maxItemTypes)
|
||||
if (item.type < 1 && item.type >= Terraria.ID.ItemID.Count)
|
||||
{
|
||||
args.Player.SendErrorMessage(GetString("The item type {0} is invalid.", itemNameOrId));
|
||||
return;
|
||||
|
|
@ -6251,7 +6255,7 @@ namespace TShockAPI
|
|||
prefix = prefixIds[0];
|
||||
}
|
||||
|
||||
if (item.type >= 1 && item.type < Main.maxItemTypes)
|
||||
if (item.type >= 1 && item.type < Terraria.ID.ItemID.Count)
|
||||
{
|
||||
var players = TSPlayer.FindByNameOrID(plStr);
|
||||
if (players.Count == 0)
|
||||
|
|
@ -6393,7 +6397,7 @@ namespace TShockAPI
|
|||
if (args.Parameters.Count == 2)
|
||||
int.TryParse(args.Parameters[1], out time);
|
||||
|
||||
if (id > 0 && id < Main.maxBuffTypes)
|
||||
if (id > 0 && id < Terraria.ID.BuffID.Count)
|
||||
{
|
||||
// Max possible buff duration as of Terraria 1.4.2.3 is 35791393 seconds (415 days).
|
||||
if (time < 0 || time > timeLimit)
|
||||
|
|
@ -6449,13 +6453,16 @@ namespace TShockAPI
|
|||
}
|
||||
if (args.Parameters.Count == 3)
|
||||
int.TryParse(args.Parameters[2], out time);
|
||||
if (id > 0 && id < Main.maxBuffTypes)
|
||||
if (id > 0 && id < Terraria.ID.BuffID.Count)
|
||||
{
|
||||
var target = foundplr[0];
|
||||
if (time < 0 || time > timeLimit)
|
||||
time = timeLimit;
|
||||
target.SetBuff(id, time * 60);
|
||||
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 (target == user)
|
||||
user.SendSuccessMessage(GetString($"You buffed yourself with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds."));
|
||||
else
|
||||
target.SendSuccessMessage(GetString($"You have buffed {user.Name} with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds!"));
|
||||
if (!args.Silent && target != user)
|
||||
target.SendSuccessMessage(GetString($"{user.Name} has buffed you with {TShock.Utils.GetBuffName(id)} ({TShock.Utils.GetBuffDescription(id)}) for {time} seconds!"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
|
|
@ -117,10 +117,10 @@ namespace TShockAPI.Configuration
|
|||
|
||||
var def = field.GetValue(defaults);
|
||||
|
||||
sb.AppendLine("## {0} ".SFormat(name));
|
||||
sb.AppendLine("{0}".SFormat(desc));
|
||||
sb.AppendLine("* **Field type**: `{0}`".SFormat(type));
|
||||
sb.AppendLine("* **Default**: `{0}`".SFormat(def));
|
||||
sb.AppendLine($"## {name} ");
|
||||
sb.AppendLine($"{desc}");
|
||||
sb.AppendLine(GetString("* **Field type**: `{0}`", type));
|
||||
sb.AppendLine(GetString("* **Default**: `{0}`", def));
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ namespace TShockAPI.Configuration
|
|||
|
||||
/// <summary>The reason given if banning a mediumcore player on death.</summary>
|
||||
[Description("The reason given if banning a mediumcore player on death.")]
|
||||
public string MediumcoreBanReason = "Death results in a ban";
|
||||
public string MediumcoreBanReason = GetString("Death results in a ban");
|
||||
|
||||
/// <summary>Disbales IP bans by default, if no arguments are passed to the ban command.</summary>
|
||||
[Description("Disbales IP bans by default, if no arguments are passed to the ban command.")]
|
||||
|
|
@ -326,15 +326,15 @@ namespace TShockAPI.Configuration
|
|||
|
||||
/// <summary>The reason given when kicking players for not being on the whitelist.</summary>
|
||||
[Description("The reason given when kicking players for not being on the whitelist.")]
|
||||
public string WhitelistKickReason = "You are not on the whitelist.";
|
||||
public string WhitelistKickReason = GetString("You are not on the whitelist.");
|
||||
|
||||
/// <summary>The reason given when kicking players that attempt to join while the server is full.</summary>
|
||||
[Description("The reason given when kicking players that attempt to join while the server is full.")]
|
||||
public string ServerFullReason = "Server is full";
|
||||
public string ServerFullReason = GetString("Server is full");
|
||||
|
||||
/// <summary>The reason given when kicking players that attempt to join while the server is full with no reserved slots available.</summary>
|
||||
[Description("The reason given when kicking players that attempt to join while the server is full with no reserved slots available.")]
|
||||
public string ServerFullNoReservedReason = "Server is full. No reserved slots open.";
|
||||
public string ServerFullNoReservedReason = GetString("Server is full. No reserved slots open.");
|
||||
|
||||
/// <summary>Whether or not to kick hardcore players on death.</summary>
|
||||
[Description("Whether or not to kick hardcore players on death.")]
|
||||
|
|
@ -342,7 +342,7 @@ namespace TShockAPI.Configuration
|
|||
|
||||
/// <summary>The reason given when kicking hardcore players on death.</summary>
|
||||
[Description("The reason given when kicking hardcore players on death.")]
|
||||
public string HardcoreKickReason = "Death results in a kick";
|
||||
public string HardcoreKickReason = GetString("Death results in a kick");
|
||||
|
||||
/// <summary>Whether or not to ban hardcore players on death.</summary>
|
||||
[Description("Whether or not to ban hardcore players on death.")]
|
||||
|
|
@ -350,7 +350,7 @@ namespace TShockAPI.Configuration
|
|||
|
||||
/// <summary>The reason given when banning hardcore players on death.</summary>
|
||||
[Description("The reason given when banning hardcore players on death.")]
|
||||
public string HardcoreBanReason = "Death results in a ban";
|
||||
public string HardcoreBanReason = GetString("Death results in a ban");
|
||||
|
||||
/// <summary>If GeoIP is enabled, this will kick users identified as being under a proxy.</summary>
|
||||
[Description("If GeoIP is enabled, this will kick users identified as being under a proxy.")]
|
||||
|
|
@ -489,7 +489,7 @@ namespace TShockAPI.Configuration
|
|||
|
||||
/// <summary>The superadmin chat prefix.</summary>
|
||||
[Description("The superadmin chat prefix.")]
|
||||
public string SuperAdminChatPrefix = "(Super Admin) ";
|
||||
public string SuperAdminChatPrefix = GetString("(Super Admin) ");
|
||||
|
||||
/// <summary>The superadmin chat suffix.</summary>
|
||||
[Description("The superadmin chat suffix.")]
|
||||
|
|
@ -635,10 +635,10 @@ namespace TShockAPI.Configuration
|
|||
|
||||
var def = field.GetValue(defaults);
|
||||
|
||||
sb.AppendLine("## {0} ".SFormat(name));
|
||||
sb.AppendLine("{0}".SFormat(desc));
|
||||
sb.AppendLine("* **Field type**: `{0}`".SFormat(type));
|
||||
sb.AppendLine("* **Default**: `{0}`".SFormat(def));
|
||||
sb.AppendLine($"## {name} ");
|
||||
sb.AppendLine($"{desc}");
|
||||
sb.AppendLine(GetString("* **Field type**: `{0}`", type));
|
||||
sb.AppendLine(GetString("* **Default**: `{0}`", def));
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2447,22 +2447,22 @@ namespace TShockAPI
|
|||
|
||||
if (OnPlayerInfo(args.Player, args.Data, playerid, hair, skinVariant, difficulty, name))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerInfo rejected plugin phase {0}", name);
|
||||
args.Player.Kick("A plugin on this server stopped your login.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerInfo rejected plugin phase {0}", name));
|
||||
args.Player.Kick(GetString("A plugin on this server stopped your login."), true, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name.Trim().Length == 0)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerInfo rejected name length 0");
|
||||
args.Player.Kick("You have been Bounced.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerInfo rejected name length 0"));
|
||||
args.Player.Kick(GetString("You have been Bounced."), true, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (name.Trim().StartsWith("tsi:") || name.Trim().StartsWith("tsn:"))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / rejecting player for name prefix starting with tsi: or tsn:.");
|
||||
args.Player.Kick("Illegal name: prefixes tsi: and tsn: are forbidden.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / rejecting player for name prefix starting with tsi: or tsn:."));
|
||||
args.Player.Kick(GetString("Illegal name: prefixes tsi: and tsn: are forbidden."), true, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2507,20 +2507,20 @@ namespace TShockAPI
|
|||
}
|
||||
if (TShock.Config.Settings.SoftcoreOnly && difficulty != 0)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerInfo rejected softcore required");
|
||||
args.Player.Kick("You need to join with a softcore player.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerInfo rejected softcore required"));
|
||||
args.Player.Kick(GetString("You need to join with a softcore player."), true, true);
|
||||
return true;
|
||||
}
|
||||
if (TShock.Config.Settings.MediumcoreOnly && difficulty < 1)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerInfo rejected mediumcore required");
|
||||
args.Player.Kick("You need to join with a mediumcore player or higher.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerInfo rejected mediumcore required"));
|
||||
args.Player.Kick(GetString("You need to join with a mediumcore player or higher."), true, true);
|
||||
return true;
|
||||
}
|
||||
if (TShock.Config.Settings.HardcoreOnly && difficulty < 2)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerInfo rejected hardcore required");
|
||||
args.Player.Kick("You need to join with a hardcore player.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerInfo rejected hardcore required"));
|
||||
args.Player.Kick(GetString("You need to join with a hardcore player."), true, true);
|
||||
return true;
|
||||
}
|
||||
args.Player.Difficulty = difficulty;
|
||||
|
|
@ -2551,7 +2551,7 @@ namespace TShockAPI
|
|||
return true;
|
||||
if (args.Player.IgnoreSSCPackets)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerSlot rejected ignore ssc packets");
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerSlot rejected ignore ssc packets"));
|
||||
args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, slot, prefix);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2617,8 +2617,8 @@ namespace TShockAPI
|
|||
if (args.Player.PlayerData.exists && TShock.ServerSideCharacterConfig.Settings.WarnPlayersAboutBypassPermission)
|
||||
{
|
||||
args.Player.SendWarningMessage(GetString("Bypass SSC is enabled for your account. SSC data will not be loaded or saved."));
|
||||
TShock.Log.ConsoleInfo(args.Player.Name + " has SSC data in the database, but has the tshock.ignore.ssc permission. This means their SSC data is being ignored.");
|
||||
TShock.Log.ConsoleInfo("You may wish to consider removing the tshock.ignore.ssc permission or negating it for this player.");
|
||||
TShock.Log.ConsoleInfo(GetString($"{args.Player.Name} has SSC data in the database, but has the tshock.ignore.ssc permission. This means their SSC data is being ignored."));
|
||||
TShock.Log.ConsoleInfo(GetString("You may wish to consider removing the tshock.ignore.ssc permission or negating it for this player."));
|
||||
}
|
||||
args.Player.PlayerData.CopyCharacter(args.Player);
|
||||
TShock.CharacterDB.InsertPlayerData(args.Player);
|
||||
|
|
@ -2634,7 +2634,7 @@ namespace TShockAPI
|
|||
args.Player.IsDisabledForBannedWearable = false;
|
||||
|
||||
args.Player.SendSuccessMessage(GetString($"Authenticated as {account.Name} successfully."));
|
||||
TShock.Log.ConsoleInfo($"{args.Player.Name} authenticated successfully as user {args.Player.Name}.");
|
||||
TShock.Log.ConsoleInfo(GetString($"{args.Player.Name} authenticated successfully as user {args.Player.Name}."));
|
||||
Hooks.PlayerHooks.OnPlayerPostLogin(args.Player);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2666,7 +2666,7 @@ namespace TShockAPI
|
|||
if (TShock.Utils.GetActivePlayerCount() + 1 > TShock.Config.Settings.MaxSlots &&
|
||||
!args.Player.HasPermission(Permissions.reservedslot))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleGetSection rejected reserve slot");
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleGetSection rejected reserve slot"));
|
||||
args.Player.Kick(TShock.Config.Settings.ServerFullReason, true, true);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2679,7 +2679,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (args.Player.Dead && args.Player.RespawnTimer > 0)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawn rejected dead player spawn request {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawn rejected dead player spawn request {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2697,7 +2697,7 @@ namespace TShockAPI
|
|||
args.Player.sX = Main.spawnTileX;
|
||||
args.Player.sY = Main.spawnTileY;
|
||||
args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) - 48);
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawn force teleport 'vanilla spawn' {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawn force teleport 'vanilla spawn' {0}", args.Player.Name));
|
||||
}
|
||||
|
||||
else if ((Main.ServerSideCharacter) && (args.Player.sX > 0) && (args.Player.sY > 0) && (args.TPlayer.SpawnX > 0) && ((args.TPlayer.SpawnX != args.Player.sX) && (args.TPlayer.SpawnY != args.Player.sY)))
|
||||
|
|
@ -2708,7 +2708,7 @@ namespace TShockAPI
|
|||
if (((Main.tile[args.Player.sX, args.Player.sY - 1].active() && Main.tile[args.Player.sX, args.Player.sY - 1].type == TileID.Beds)) && (WorldGen.StartRoomCheck(args.Player.sX, args.Player.sY - 1)))
|
||||
{
|
||||
args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) - 48);
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawn force teleport phase 1 {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawn force teleport phase 1 {0}", args.Player.Name));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2717,7 +2717,7 @@ namespace TShockAPI
|
|||
if (((Main.tile[args.Player.sX, args.Player.sY - 1].active() && Main.tile[args.Player.sX, args.Player.sY - 1].type == TileID.Beds)) && (WorldGen.StartRoomCheck(args.Player.sX, args.Player.sY - 1)))
|
||||
{
|
||||
args.Player.Teleport(args.Player.sX * 16, (args.Player.sY * 16) - 48);
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawn force teleport phase 2 {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawn force teleport phase 2 {0}", args.Player.Name));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2732,7 +2732,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (args.Player == null || args.TPlayer == null || args.Data == null)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / OnPlayerUpdate rejected from null player.");
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / OnPlayerUpdate rejected from null player."));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2754,7 +2754,7 @@ namespace TShockAPI
|
|||
{
|
||||
originalPosition = new Vector2?(args.Data.ReadVector2());
|
||||
homePosition = new Vector2?(args.Data.ReadVector2());
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerUpdate home position delta {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerUpdate home position delta {0}", args.Player.Name));
|
||||
}
|
||||
|
||||
if (OnPlayerUpdate(args.Player, args.Data, playerID, controls, miscData1, miscData2, miscData3, selectedItem, position, velocity, originalPosition, homePosition))
|
||||
|
|
@ -2774,7 +2774,7 @@ namespace TShockAPI
|
|||
|
||||
if (max > TShock.Config.Settings.MaxHP && !args.Player.HasPermission(Permissions.ignorehp))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerHp rejected over max hp {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerHp rejected over max hp {0}", args.Player.Name));
|
||||
args.Player.Disable("Maximum HP beyond limit", DisableFlags.WriteToLogAndConsole);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2826,13 +2826,13 @@ namespace TShockAPI
|
|||
|
||||
if (x >= Main.maxTilesX || y >= Main.maxTilesY || x < 0 || y < 0) // Check for out of range
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleDoorUse rejected out of range door {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleDoorUse rejected out of range door {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (action < 0 || action > 5)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleDoorUse rejected type 0 5 check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleDoorUse rejected type 0 5 check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2841,7 +2841,7 @@ namespace TShockAPI
|
|||
&& tileType != TileID.TallGateClosed && tileType != TileID.TallGateOpen
|
||||
&& tileType != TileID.TrapdoorClosed && tileType != TileID.TrapdoorOpen)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleDoorUse rejected door gap check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleDoorUse rejected door gap check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2959,7 +2959,7 @@ namespace TShockAPI
|
|||
{
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to hurt Town NPCs."));
|
||||
args.Player.SendData(PacketTypes.NpcUpdate, "", id);
|
||||
TShock.Log.ConsoleDebug($"GetDataHandlers / HandleNpcStrike rejected npc strike {args.Player.Name}");
|
||||
TShock.Log.ConsoleDebug(GetString($"GetDataHandlers / HandleNpcStrike rejected npc strike {args.Player.Name}"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -2969,7 +2969,7 @@ namespace TShockAPI
|
|||
{
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to summon the Empress of Light."));
|
||||
args.Player.SendData(PacketTypes.NpcUpdate, "", id);
|
||||
TShock.Log.ConsoleDebug($"GetDataHandlers / HandleNpcStrike rejected EoL summon from {args.Player.Name}");
|
||||
TShock.Log.ConsoleDebug(GetString($"GetDataHandlers / HandleNpcStrike rejected EoL summon from {args.Player.Name}"));
|
||||
return true;
|
||||
}
|
||||
else if (!TShock.Config.Settings.AnonymousBossInvasions)
|
||||
|
|
@ -2986,7 +2986,7 @@ namespace TShockAPI
|
|||
{
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to summon the Lunatic Cultist!"));
|
||||
args.Player.SendData(PacketTypes.NpcUpdate, "", id);
|
||||
TShock.Log.ConsoleDebug($"GetDataHandlers / HandleNpcStrike rejected Cultist summon from {args.Player.Name}");
|
||||
TShock.Log.ConsoleDebug(GetString($"GetDataHandlers / HandleNpcStrike rejected Cultist summon from {args.Player.Name}"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -3011,7 +3011,7 @@ namespace TShockAPI
|
|||
|
||||
if (type == ProjectileID.Tombstone)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleProjectileKill rejected tombstone {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleProjectileKill rejected tombstone {0}", args.Player.Name));
|
||||
args.Player.RemoveProjectile(ident, owner);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3022,11 +3022,11 @@ namespace TShockAPI
|
|||
// https://github.com/Pryaxis/TShock/commit/a5aa9231239926f361b7246651e32144bbf28dda
|
||||
if (type == ProjectileID.Bomb || type == ProjectileID.DeathLaser)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleProjectileKill permitted skeletron prime exemption {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug("If this was not skeletron prime related, please report to TShock what happened.");
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleProjectileKill permitted skeletron prime exemption {0}", args.Player.Name));
|
||||
TShock.Log.ConsoleDebug(GetString("If this was not skeletron prime related, please report to TShock what happened."));
|
||||
return false;
|
||||
}
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleProjectileKill rejected banned projectile {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleProjectileKill rejected banned projectile {0}", args.Player.Name));
|
||||
args.Player.RemoveProjectile(ident, owner);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3049,14 +3049,14 @@ namespace TShockAPI
|
|||
|
||||
if (id != args.Player.Index)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTogglePvp rejected index mismatch {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTogglePvp rejected index mismatch {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
string pvpMode = TShock.Config.Settings.PvPMode.ToLowerInvariant();
|
||||
if (pvpMode == "disabled" || pvpMode == "always" || (DateTime.UtcNow - args.Player.LastPvPTeamChange).TotalSeconds < 5)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTogglePvp rejected fastswitch {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTogglePvp rejected fastswitch {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.TogglePvp, "", id);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3091,7 +3091,7 @@ namespace TShockAPI
|
|||
item.netDefaults(type);
|
||||
if (stacks > item.maxStack)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleChestItem rejected max stacks {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleChestItem rejected max stacks {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3116,7 +3116,7 @@ namespace TShockAPI
|
|||
|
||||
if (!args.Player.HasBuildPermission(x, y) && TShock.Config.Settings.RegionProtectChests)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleChestActive rejected build permission and region check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleChestActive rejected build permission and region check {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.ChestOpen, "", -1);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3141,7 +3141,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (args.Player == null || args.TPlayer == null || args.Data == null)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerZone rejected null check");
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerZone rejected null check"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3209,7 +3209,7 @@ namespace TShockAPI
|
|||
|
||||
|
||||
args.Player.SendMessage(GetString($"Authenticated as {args.Player.Name} successfully."), Color.LimeGreen);
|
||||
TShock.Log.ConsoleInfo($"{args.Player.Name} authenticated successfully as user {args.Player.Name}.");
|
||||
TShock.Log.ConsoleInfo(GetString($"{args.Player.Name} authenticated successfully as user {args.Player.Name}."));
|
||||
TShock.UserAccounts.SetUserAccountUUID(account, args.Player.UUID);
|
||||
Hooks.PlayerHooks.OnPlayerPostLogin(args.Player);
|
||||
return true;
|
||||
|
|
@ -3228,11 +3228,11 @@ namespace TShockAPI
|
|||
NetMessage.SendData((int)PacketTypes.WorldInfo, args.Player.Index);
|
||||
return true;
|
||||
}
|
||||
args.Player.Kick("Invalid server password.", true, true);
|
||||
args.Player.Kick(GetString("Invalid server password."), true, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
args.Player.Kick("You have been Bounced.", true, true);
|
||||
args.Player.Kick(GetParticularString("Likely non-vanilla client send zero-length password", "You have been Bounced for invalid password."), true, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3247,21 +3247,21 @@ namespace TShockAPI
|
|||
//Rejecting player who trying to talk to a npc if player were disabled, mainly for unregistered and logged out players. Preventing smuggling or duplicating their items if player put it in a npc's item slot
|
||||
if (args.Player.IsBeingDisabled())
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleNpcTalk rejected npc talk {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleNpcTalk rejected npc talk {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.NpcTalk, "", plr, -1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.Player.IsBouncerThrottled())
|
||||
{
|
||||
TShock.Log.ConsoleDebug("Bouncer / HandleNpcTalk rejected from bouncer throttle from {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / HandleNpcTalk rejected from bouncer throttle from {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
// -1 is a magic value, represents not talking to an NPC
|
||||
if (npc < -1 || npc >= Main.maxNPCs)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("Bouncer / HandleNpcTalk rejected from bouncer out of bounds from {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("Bouncer / HandleNpcTalk rejected from bouncer out of bounds from {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -3286,7 +3286,7 @@ namespace TShockAPI
|
|||
|
||||
if (max > TShock.Config.Settings.MaxMP && !args.Player.HasPermission(Permissions.ignoremp))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerMana rejected max mana {0} {1}/{2}", args.Player.Name, max, TShock.Config.Settings.MaxMP);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerMana rejected max mana {0} {1}/{2}", args.Player.Name, max, TShock.Config.Settings.MaxMP));
|
||||
args.Player.Disable("Maximum MP beyond limit", DisableFlags.WriteToLogAndConsole);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3313,7 +3313,7 @@ namespace TShockAPI
|
|||
if ((DateTime.UtcNow - args.Player.LastPvPTeamChange).TotalSeconds < 5)
|
||||
{
|
||||
args.Player.SendData(PacketTypes.PlayerTeam, "", id);
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerTeam rejected team fastswitch {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerTeam rejected team fastswitch {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3331,7 +3331,7 @@ namespace TShockAPI
|
|||
|
||||
if (x < 0 || y < 0 || x >= Main.maxTilesX || y >= Main.maxTilesY)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSignRead rejected out of bounds {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSignRead rejected out of bounds {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3351,14 +3351,14 @@ namespace TShockAPI
|
|||
if (!args.Player.HasBuildPermission(x, y))
|
||||
{
|
||||
args.Player.SendData(PacketTypes.SignNew, "", id);
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSign rejected sign on build permission {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSign rejected sign on build permission {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!args.Player.IsInRange(x, y))
|
||||
{
|
||||
args.Player.SendData(PacketTypes.SignNew, "", id);
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSign rejected sign range check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSign rejected sign range check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -3393,7 +3393,7 @@ namespace TShockAPI
|
|||
|
||||
if (Netplay.Clients[args.TPlayer.whoAmI].State < 2 && (buff == 156 || buff == 47 || buff == 149))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerBuffList zeroed player buff due to below state 2 {0} {1}", args.Player.Name, buff);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerBuffList zeroed player buff due to below state 2 {0} {1}", args.Player.Name, buff));
|
||||
buff = 0;
|
||||
}
|
||||
|
||||
|
|
@ -3408,7 +3408,7 @@ namespace TShockAPI
|
|||
}
|
||||
}
|
||||
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerBuffList handled event and sent data {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerBuffList handled event and sent data {0}", args.Player.Name));
|
||||
NetMessage.SendData((int)PacketTypes.PlayerBuff, -1, args.Player.Index, NetworkText.Empty, args.Player.Index);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3423,7 +3423,7 @@ namespace TShockAPI
|
|||
|
||||
if (type == 1 && TShock.Config.Settings.DisableDungeonGuardian)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpecial rejected type 1 for {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpecial rejected type 1 for {0}", args.Player.Name));
|
||||
args.Player.SendMessage(GetString("The Dungeon Guardian returned you to your spawn point."), Color.Purple);
|
||||
args.Player.Spawn(PlayerSpawnContext.RecallFromItem);
|
||||
return true;
|
||||
|
|
@ -3433,13 +3433,13 @@ namespace TShockAPI
|
|||
{
|
||||
if (!args.Player.HasPermission(Permissions.usesundial))
|
||||
{
|
||||
TShock.Log.ConsoleDebug($"GetDataHandlers / HandleSpecial rejected enchanted sundial permission {args.Player.Name}");
|
||||
TShock.Log.ConsoleDebug(GetString($"GetDataHandlers / HandleSpecial rejected enchanted sundial permission {args.Player.Name}"));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to use the Enchanted Sundial."));
|
||||
return true;
|
||||
}
|
||||
else if (TShock.Config.Settings.ForceTime != "normal")
|
||||
{
|
||||
TShock.Log.ConsoleDebug($"GetDataHandlers / HandleSpecial rejected enchanted sundial permission (ForceTime) {args.Player.Name}");
|
||||
TShock.Log.ConsoleDebug(GetString($"GetDataHandlers / HandleSpecial rejected enchanted sundial permission (ForceTime) {args.Player.Name}"));
|
||||
if (!args.Player.HasPermission(Permissions.cfgreload))
|
||||
{
|
||||
args.Player.SendErrorMessage(GetString("You cannot use the Enchanted Sundial because time is stopped."));
|
||||
|
|
@ -3489,7 +3489,7 @@ namespace TShockAPI
|
|||
|
||||
if (!args.Player.HasPermission(Permissions.movenpc))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / UpdateNPCHome rejected no permission {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / UpdateNPCHome rejected no permission {0}", args.Player.Name));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to relocate Town NPCs."));
|
||||
args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY,
|
||||
Convert.ToByte(Main.npc[id].homeless));
|
||||
|
|
@ -3499,38 +3499,36 @@ namespace TShockAPI
|
|||
}
|
||||
|
||||
private static readonly int[] invasions = { -1, -2, -3, -4, -5, -6, -7, -8, -10, -11 };
|
||||
private static readonly int[] pets = { -12, -13, -14 };
|
||||
private static readonly int[] bosses = { 4, 13, 50, 125, 126, 134, 127, 128, 131, 129, 130, 222, 245, 266, 370, 657 };
|
||||
private static readonly int[] pets = { -12, -13, -14, -15 };
|
||||
private static bool HandleSpawnBoss(GetDataHandlerArgs args)
|
||||
{
|
||||
if (args.Player.IsBouncerThrottled())
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected bouner throttled {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawnBoss rejected bouner throttled {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
var plr = args.Data.ReadInt16();
|
||||
var thingType = args.Data.ReadInt16();
|
||||
NPC npc = new NPC();
|
||||
npc.SetDefaults(thingType);
|
||||
|
||||
if (bosses.Contains(thingType) && !args.Player.HasPermission(Permissions.summonboss))
|
||||
var isKnownBoss = thingType > 0 && thingType < Terraria.ID.NPCID.Count && NPCID.Sets.MPAllowedEnemies[thingType];
|
||||
if ((isKnownBoss || thingType == -16) && !args.Player.HasPermission(Permissions.summonboss))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected boss {0} {1}", args.Player.Name, thingType);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawnBoss rejected boss {0} {1}", args.Player.Name, thingType));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to summon bosses."));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (invasions.Contains(thingType) && !args.Player.HasPermission(Permissions.startinvasion))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected invasion {0} {1}", args.Player.Name, thingType);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawnBoss rejected invasion {0} {1}", args.Player.Name, thingType));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to start invasions."));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pets.Contains(thingType) && !args.Player.HasPermission(Permissions.spawnpets))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected pet {0} {1}", args.Player.Name, thingType);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSpawnBoss rejected pet {0} {1}", args.Player.Name, thingType));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to spawn pets."));
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3541,6 +3539,18 @@ namespace TShockAPI
|
|||
string thing;
|
||||
switch (thingType)
|
||||
{
|
||||
case -18:
|
||||
thing = GetString("{0} applied traveling merchant's satchel!", args.Player.Name);
|
||||
break;
|
||||
case -17:
|
||||
thing = GetString("{0} applied advanced combat techniques volume 2!", args.Player.Name);
|
||||
break;
|
||||
case -16:
|
||||
thing = GetString("{0} summoned a Mechdusa!", args.Player.Name);
|
||||
break;
|
||||
case -15:
|
||||
thing = GetString("{0} has sent a request to the slime delivery service!", args.Player.Name);
|
||||
break;
|
||||
case -14:
|
||||
thing = GetString("{0} has sent a request to the bunny delivery service!", args.Player.Name);
|
||||
break;
|
||||
|
|
@ -3581,6 +3591,10 @@ namespace TShockAPI
|
|||
thing = GetString("{0} summoned a Goblin Invasion!", args.Player.Name);
|
||||
break;
|
||||
default:
|
||||
if (!isKnownBoss)
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss unknown boss {0} summoned by {1}", thingType, args.Player.Name);
|
||||
NPC npc = new NPC();
|
||||
npc.SetDefaults(thingType);
|
||||
thing = GetString("{0} summoned the {1}!", args.Player.Name, npc.FullName);
|
||||
break;
|
||||
}
|
||||
|
|
@ -3605,7 +3619,7 @@ namespace TShockAPI
|
|||
|
||||
if (x < 0 || y < 0 || x >= Main.maxTilesX || y >= Main.maxTilesY || t > Main.numTileColors)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintTile rejected range check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePaintTile rejected range check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
if (OnPaintTile(args.Player, args.Data, x, y, t))
|
||||
|
|
@ -3623,7 +3637,7 @@ namespace TShockAPI
|
|||
!args.Player.Accessories.Any(HasPaintSprayerAbilities) &&
|
||||
!args.Player.Inventory.Any(HasPaintSprayerAbilities))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintTile rejected select consistency {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePaintTile rejected select consistency {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.PaintTile, "", x, y, Main.tile[x, y].color());
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3632,7 +3646,7 @@ namespace TShockAPI
|
|||
!args.Player.HasPaintPermission(x, y) ||
|
||||
!args.Player.IsInRange(x, y))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintTile rejected throttle/permission/range check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePaintTile rejected throttle/permission/range check {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.PaintTile, "", x, y, Main.tile[x, y].color());
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3652,7 +3666,7 @@ namespace TShockAPI
|
|||
|
||||
if (x < 0 || y < 0 || x >= Main.maxTilesX || y >= Main.maxTilesY || t > Main.numTileColors)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintWall rejected range check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePaintWall rejected range check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
if (OnPaintWall(args.Player, args.Data, x, y, t))
|
||||
|
|
@ -3670,7 +3684,7 @@ namespace TShockAPI
|
|||
!args.Player.Accessories.Any(HasPaintSprayerAbilities) &&
|
||||
!args.Player.Inventory.Any(HasPaintSprayerAbilities))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintWall rejected selector consistency {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePaintWall rejected selector consistency {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.PaintWall, "", x, y, Main.tile[x, y].wallColor());
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3679,7 +3693,7 @@ namespace TShockAPI
|
|||
!args.Player.HasPaintPermission(x, y) ||
|
||||
!args.Player.IsInRange(x, y))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePaintWall rejected throttle/permission/range {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePaintWall rejected throttle/permission/range {0}", args.Player.Name));
|
||||
args.Player.SendData(PacketTypes.PaintWall, "", x, y, Main.tile[x, y].wallColor());
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3727,7 +3741,7 @@ namespace TShockAPI
|
|||
//Rod of Discord teleport (usually (may be used by modded clients to teleport))
|
||||
if (type == 0 && !args.Player.HasPermission(Permissions.rod))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected rod type {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleport rejected rod type {0} {1}", args.Player.Name, type));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to teleport using items.")); // Was going to write using RoD but Hook of Disonnance and Potion of Return both use the same teleport packet as RoD.
|
||||
args.Player.Teleport(args.TPlayer.position.X, args.TPlayer.position.Y); // Suggest renaming rod permission unless someone plans to add separate perms for the other 2 tp items.
|
||||
return true;
|
||||
|
|
@ -3736,7 +3750,7 @@ namespace TShockAPI
|
|||
//NPC teleport
|
||||
if (type == 1 && id >= Main.maxNPCs)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected npc teleport {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleport rejected npc teleport {0} {1}", args.Player.Name, type));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3745,13 +3759,13 @@ namespace TShockAPI
|
|||
{
|
||||
if (id >= Main.maxPlayers || Main.player[id] == null || TShock.Players[id] == null)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected p2p extents {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleport rejected p2p extents {0} {1}", args.Player.Name, type));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!args.Player.HasPermission(Permissions.wormhole))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected p2p wormhole permission {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleport rejected p2p wormhole permission {0} {1}", args.Player.Name, type));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to teleport using Wormhole Potions."));
|
||||
args.Player.Teleport(args.TPlayer.position.X, args.TPlayer.position.Y);
|
||||
return true;
|
||||
|
|
@ -3779,7 +3793,7 @@ namespace TShockAPI
|
|||
|
||||
if (Main.npc[npcID]?.catchItem == 0)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleCatchNpc catch zero {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleCatchNpc catch zero {0}", args.Player.Name));
|
||||
Main.npc[npcID].active = true;
|
||||
NetMessage.SendData((int)PacketTypes.NpcUpdate, -1, -1, NetworkText.Empty, npcID);
|
||||
return true;
|
||||
|
|
@ -3787,7 +3801,7 @@ namespace TShockAPI
|
|||
|
||||
if (args.Player.IsBeingDisabled())
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleCatchNpc rejected catch npc {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleCatchNpc rejected catch npc {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3815,7 +3829,7 @@ namespace TShockAPI
|
|||
|
||||
void Fail(string tpItem)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected permissions {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleportationPotion rejected permissions {0} {1}", args.Player.Name, type));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to teleport using {0}.", tpItem));
|
||||
}
|
||||
|
||||
|
|
@ -3825,7 +3839,7 @@ namespace TShockAPI
|
|||
if (args.Player.ItemInHand.type != ItemID.TeleportationPotion &&
|
||||
args.Player.SelectedItem.type != ItemID.TeleportationPotion)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3841,7 +3855,7 @@ namespace TShockAPI
|
|||
args.Player.ItemInHand.type != ItemID.ShellphoneOcean &&
|
||||
args.Player.SelectedItem.type != ItemID.ShellphoneOcean)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3864,7 +3878,7 @@ namespace TShockAPI
|
|||
args.Player.ItemInHand.type != ItemID.ShellphoneHell &&
|
||||
args.Player.SelectedItem.type != ItemID.ShellphoneHell)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3884,7 +3898,7 @@ namespace TShockAPI
|
|||
case 3: // Shellphone (Spawn)
|
||||
if (args.Player.ItemInHand.type != ItemID.ShellphoneSpawn && args.Player.SelectedItem.type != ItemID.ShellphoneSpawn)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type));
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
|
@ -3903,7 +3917,7 @@ namespace TShockAPI
|
|||
private static bool HandleNumberOfAnglerQuestsCompleted(GetDataHandlerArgs args)
|
||||
{
|
||||
// Never sent by vanilla client, ignore this
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleNumberOfAnglerQuestsCompleted surprise packet! Someone tell the TShock team! {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleNumberOfAnglerQuestsCompleted surprise packet! Someone tell the TShock team! {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3982,33 +3996,33 @@ namespace TShockAPI
|
|||
|
||||
if (position.X < 0 || position.X >= (Main.maxTilesX * 16.0f) || position.Y < 0 || position.Y >= (Main.maxTilesY * 16.0f))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSyncExtraValue rejected extents check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSyncExtraValue rejected extents check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!Main.expertMode && !Main.masterMode)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSyncExtraValue rejected expert/master mode check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSyncExtraValue rejected expert/master mode check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (npcIndex < 0 || npcIndex >= Main.npc.Length)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSyncExtraValue rejected npc id out of bounds check - NPC ID: {0}", npcIndex);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSyncExtraValue rejected npc id out of bounds check - NPC ID: {0}", npcIndex));
|
||||
return true;
|
||||
}
|
||||
|
||||
var npc = Main.npc[npcIndex];
|
||||
if (npc == null)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSyncExtraValue rejected npc is null - NPC ID: {0}", npcIndex);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSyncExtraValue rejected npc is null - NPC ID: {0}", npcIndex));
|
||||
return true;
|
||||
}
|
||||
|
||||
var distanceFromCoinPacketToNpc = Utils.Distance(position, npc.position);
|
||||
if (distanceFromCoinPacketToNpc >= (5 * 16f)) //5 tile range
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSyncExtraValue rejected range check {0},{1} vs {2},{3} which is {4}", npc.position.X, npc.position.Y, position.X, position.Y, distanceFromCoinPacketToNpc);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleSyncExtraValue rejected range check {0},{1} vs {2},{3} which is {4}", npc.position.X, npc.position.Y, position.X, position.Y, distanceFromCoinPacketToNpc));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -4025,7 +4039,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (projectile.owner != args.TPlayer.whoAmI)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleKillPortal rejected owner mismatch check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleKillPortal rejected owner mismatch check {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -4062,14 +4076,14 @@ namespace TShockAPI
|
|||
|
||||
if (projectile == null || !projectile.active)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleNpcTeleportPortal rejected null check {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleNpcTeleportPortal rejected null check {0}", args.Player.Name));
|
||||
NetMessage.SendData((int)PacketTypes.NpcUpdate, -1, -1, NetworkText.Empty, npcIndex);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (projectile.type != ProjectileID.PortalGunGate)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleNpcTeleportPortal rejected not thinking with portals {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleNpcTeleportPortal rejected not thinking with portals {0}", args.Player.Name));
|
||||
NetMessage.SendData((int)PacketTypes.NpcUpdate, -1, -1, NetworkText.Empty, npcIndex);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -4109,7 +4123,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (args.Player != null && !args.Player.HasPermission(Permissions.toggleparty))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleToggleParty rejected no party {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleToggleParty rejected no party {0}", args.Player.Name));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to start a party."));
|
||||
return true;
|
||||
}
|
||||
|
|
@ -4121,13 +4135,13 @@ namespace TShockAPI
|
|||
{
|
||||
if (args.Player.IsBouncerThrottled())
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleOldOnesArmy rejected throttled {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleOldOnesArmy rejected throttled {0}", args.Player.Name));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!args.Player.HasPermission(Permissions.startdd2))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandleOldOnesArmy rejected permissions {0}", args.Player.Name);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandleOldOnesArmy rejected permissions {0}", args.Player.Name));
|
||||
args.Player.SendErrorMessage(GetString("You do not have permission to start the Old One's Army."));
|
||||
return true;
|
||||
}
|
||||
|
|
@ -4193,13 +4207,13 @@ namespace TShockAPI
|
|||
{
|
||||
if (!args.Player.Ban(banReason, "TShock"))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerKillMeV2 kicked with difficulty {0} {1}", args.Player.Name, args.TPlayer.difficulty);
|
||||
args.Player.Kick("You died! Normally, you'd be banned.", true, true);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerKillMeV2 kicked with difficulty {0} {1}", args.Player.Name, args.TPlayer.difficulty));
|
||||
args.Player.Kick(GetString("You died! Normally, you'd be banned."), true, true);
|
||||
}
|
||||
}
|
||||
else if (shouldKick)
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerKillMeV2 kicked with difficulty {0} {1}", args.Player.Name, args.TPlayer.difficulty);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerKillMeV2 kicked with difficulty {0} {1}", args.Player.Name, args.TPlayer.difficulty));
|
||||
args.Player.Kick(kickReason, true, true, null, false);
|
||||
}
|
||||
}
|
||||
|
|
@ -4208,7 +4222,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (TShock.CharacterDB.RemovePlayer(args.Player.Account.ID))
|
||||
{
|
||||
TShock.Log.ConsoleDebug("GetDataHandlers / HandlePlayerKillMeV2 ssc delete {0} {1}", args.Player.Name, args.TPlayer.difficulty);
|
||||
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerKillMeV2 ssc delete {0} {1}", args.Player.Name, args.TPlayer.difficulty));
|
||||
args.Player.SendErrorMessage(GetString("You have fallen in hardcore mode, and your items have been lost forever."));
|
||||
TShock.CharacterDB.SeedInitialData(args.Player.Account);
|
||||
}
|
||||
|
|
@ -4354,8 +4368,8 @@ namespace TShockAPI
|
|||
|
||||
private static bool HandleSyncCavernMonsterType(GetDataHandlerArgs args)
|
||||
{
|
||||
args.Player.Kick("Exploit attempt detected!");
|
||||
TShock.Log.ConsoleDebug($"HandleSyncCavernMonsterType: Player is trying to modify NPC cavernMonsterType; this is a crafted packet! - From {args.Player.Name}");
|
||||
args.Player.Kick(GetString("Exploit attempt detected!"));
|
||||
TShock.Log.ConsoleDebug(GetString($"HandleSyncCavernMonsterType: Player is trying to modify NPC cavernMonsterType; this is a crafted packet! - From {args.Player.Name}"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -4541,7 +4555,8 @@ namespace TShockAPI
|
|||
NPCID.BloodEelBody,
|
||||
NPCID.BloodEelTail,
|
||||
NPCID.BloodNautilus,
|
||||
NPCID.DukeFishron
|
||||
NPCID.DukeFishron,
|
||||
NPCID.TownSlimeRed
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@ namespace TShockAPI.Handlers
|
|||
case TileID.Plants:
|
||||
case TileID.MinecartTrack:
|
||||
case TileID.ChristmasTree:
|
||||
case TileID.ShimmerMonolith:
|
||||
{
|
||||
// Allowed changes
|
||||
}
|
||||
|
|
@ -425,7 +426,7 @@ namespace TShockAPI.Handlers
|
|||
WallID.Sets.Conversion.NewWall4[tile.wall] && WallID.Sets.Conversion.NewWall4[newTile.Wall]
|
||||
)
|
||||
{
|
||||
TShock.Log.ConsoleDebug($"Bouncer / SendTileRect processing a wall conversion update - [{tile.wall}] -> [{newTile.Wall}]");
|
||||
TShock.Log.ConsoleDebug(GetString($"Bouncer / SendTileRect processing a wall conversion update - [{tile.wall}] -> [{newTile.Wall}]"));
|
||||
UpdateServerTileState(tile, newTile, TileDataType.Wall);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ namespace TShockAPI
|
|||
if (DataModel.ItemIsBanned(EnglishLanguage.GetItemNameById(player.TPlayer.inventory[player.TPlayer.selectedItem].netID), player))
|
||||
{
|
||||
string itemName = player.TPlayer.inventory[player.TPlayer.selectedItem].Name;
|
||||
player.Disable($"holding banned item: {itemName}", disableFlags);
|
||||
player.Disable(GetString($"holding banned item: {itemName}"), disableFlags);
|
||||
SendCorrectiveMessage(player, itemName);
|
||||
}
|
||||
|
||||
|
|
@ -160,7 +160,7 @@ namespace TShockAPI
|
|||
if (DataModel.ItemIsBanned(EnglishLanguage.GetItemNameById(player.TPlayer.inventory[args.SelectedItem].netID), args.Player))
|
||||
{
|
||||
player.TPlayer.controlUseItem = false;
|
||||
player.Disable($"holding banned item: {itemName}", disableFlags);
|
||||
player.Disable(GetString($"holding banned item: {itemName}"), disableFlags);
|
||||
|
||||
SendCorrectiveMessage(player, itemName);
|
||||
|
||||
|
|
|
|||
|
|
@ -50,12 +50,12 @@ namespace TShockAPI.Localization
|
|||
LanguageManager.Instance.SetLanguage(GameCulture.FromCultureName(GameCulture.CultureName.English));
|
||||
}
|
||||
|
||||
for (var i = -48; i < Main.maxItemTypes; i++)
|
||||
for (var i = -48; i < Terraria.ID.ItemID.Count; i++)
|
||||
{
|
||||
ItemNames.Add(i, Lang.GetItemNameValue(i));
|
||||
}
|
||||
|
||||
for (var i = -17; i < Main.maxNPCTypes; i++)
|
||||
for (var i = -17; i < Terraria.ID.NPCID.Count; i++)
|
||||
{
|
||||
NpcNames.Add(i, Lang.GetNPCNameValue(i));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -527,7 +527,7 @@ namespace TShockAPI
|
|||
|
||||
var descattr =
|
||||
field.GetCustomAttributes(false).FirstOrDefault(o => o is DescriptionAttribute) as DescriptionAttribute;
|
||||
var desc = descattr != null && !string.IsNullOrWhiteSpace(descattr.Description) ? descattr.Description : "None";
|
||||
var desc = descattr != null && !string.IsNullOrWhiteSpace(descattr.Description) ? descattr.Description : GetString("No description available.");
|
||||
|
||||
var commands = GetCommands(name);
|
||||
foreach (var c in commands)
|
||||
|
|
@ -542,9 +542,9 @@ namespace TShockAPI
|
|||
c =>
|
||||
c.Name + (c.Names.Count > 1 ? " ({0})".SFormat(string.Join(" ", c.Names.ToArray(), 1, c.Names.Count - 1)) : ""));
|
||||
|
||||
sb.AppendLine("## {0}".SFormat(name));
|
||||
sb.AppendLine("{0}".SFormat(desc));
|
||||
sb.AppendLine("* **Commands**: `{0}`".SFormat(strs.Count() > 0 ? string.Join(", ", strs) : "None"));
|
||||
sb.AppendLine($"## {name}");
|
||||
sb.AppendLine($"{desc}");
|
||||
sb.AppendLine(GetString("* **Commands**: `{0}`", strs.Count() > 0 ? string.Join(", ", strs) : GetString("No associated commands.")));
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -673,7 +673,7 @@ namespace TShockAPI
|
|||
NetMessage.SendData(42, player.Index, -1, NetworkText.Empty, player.Index, 0f, 0f, 0f, 0);
|
||||
NetMessage.SendData(16, player.Index, -1, NetworkText.Empty, player.Index, 0f, 0f, 0f, 0);
|
||||
|
||||
for (int k = 0; k < 22; k++)
|
||||
for (int k = 0; k < Player.maxBuffs; k++)
|
||||
{
|
||||
player.TPlayer.buffType[k] = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1217,34 +1217,40 @@ namespace TShockAPI
|
|||
var permission = method.GetCustomAttributes(false).Where(o => o is Permission);
|
||||
if (permission.Count() > 0)
|
||||
{
|
||||
sb.AppendLine("* **Permissions**: `{0}`".SFormat(String.Join(", ", permission.Select(p => ((Permission)p).Name))));
|
||||
sb.AppendLine(GetString("* **Permissions**: `{0}`", String.Join(", ", permission.Select(p => ((Permission)p).Name))));
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendLine("No special permissions are required for this route.");
|
||||
sb.AppendLine(GetString("No special permissions are required for this route."));
|
||||
}
|
||||
sb.AppendLine();
|
||||
var verbs = method.GetCustomAttributes(false).Where(o => o is Verb);
|
||||
if (verbs.Count() > 0)
|
||||
{
|
||||
sb.AppendLine("**Verbs**:");
|
||||
sb.AppendLine(GetString("**Verbs**:"));
|
||||
foreach (Verb verb in verbs)
|
||||
{
|
||||
sb.AppendLine("* `{0}` ({1}) `[{2}]` - {3}".SFormat(verb.Name, verb.Required ? "Required" : "Optional", verb.ArgumentType.Name, verb.Description));
|
||||
if (verb.Required)
|
||||
sb.AppendLine(GetString("* `{0}` (Required) `{1}` - {2}".SFormat(verb.Name, verb.ArgumentType.Name, verb.Description)));
|
||||
else
|
||||
sb.AppendLine(GetString("* `{0}` (Optional) `{1}` - {2}".SFormat(verb.Name, verb.ArgumentType.Name, verb.Description)));
|
||||
}
|
||||
}
|
||||
sb.AppendLine();
|
||||
var nouns = method.GetCustomAttributes(false).Where(o => o is Noun);
|
||||
if (nouns.Count() > 0)
|
||||
{
|
||||
sb.AppendLine("**Nouns**:");
|
||||
sb.AppendLine(GetString("**Nouns**:"));
|
||||
foreach (Noun noun in nouns)
|
||||
{
|
||||
sb.AppendLine("* `{0}` ({1}) `[{2}]` - {3}".SFormat(noun.Name, noun.Required ? "Required" : "Optional", noun.ArgumentType.Name, noun.Description));
|
||||
if (noun.Required)
|
||||
sb.AppendLine(GetString("* `{0}` (Required) `{1}` - {2}".SFormat(noun.Name, noun.ArgumentType.Name, noun.Description)));
|
||||
else
|
||||
sb.AppendLine(GetString("* `{0}` (Optional) `{1}` - {2}".SFormat(noun.Name, noun.ArgumentType.Name, noun.Description)));
|
||||
}
|
||||
}
|
||||
sb.AppendLine();
|
||||
sb.AppendLine("**Example Usage**: `{0}?{1}`".SFormat(routeattr.Route,
|
||||
sb.AppendLine(GetString("**Example Usage**: `{0}?{1}`", routeattr.Route,
|
||||
string.Join("&", nouns.Select(n => String.Format("{0}={0}", ((Noun)n).Name)))));
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1921,9 +1921,9 @@ namespace TShockAPI
|
|||
if (!silent)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(adminUserName))
|
||||
TShock.Utils.Broadcast(GetString("{0} was kicked for '{1}'", Name, reason.ToLower()), Color.Green);
|
||||
TShock.Utils.Broadcast(GetString("{0} was kicked for '{1}'", Name, reason), Color.Green);
|
||||
else
|
||||
TShock.Utils.Broadcast(GetString("{0} kicked {1} for '{2}'", adminUserName, Name, reason.ToLower()), Color.Green);
|
||||
TShock.Utils.Broadcast(GetString("{0} kicked {1} for '{2}'", adminUserName, Name, reason), Color.Green);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace TShockAPI
|
|||
{
|
||||
public class TSServerPlayer : TSPlayer
|
||||
{
|
||||
public static string AccountName = "ServerConsole";
|
||||
public static string AccountName = GetParticularString("The account name of server console.", "ServerConsole");
|
||||
|
||||
public TSServerPlayer()
|
||||
: base("Server")
|
||||
|
|
@ -197,17 +197,17 @@ namespace TShockAPI
|
|||
|
||||
private readonly Dictionary<Color, ConsoleColor> _consoleColorMap = new Dictionary<Color, ConsoleColor>
|
||||
{
|
||||
{ Color.Red, ConsoleColor.Red },
|
||||
{ Color.Green, ConsoleColor.Green },
|
||||
{ Color.Blue, ConsoleColor.Cyan },
|
||||
{ new Color(255, 250, 170), ConsoleColor.Yellow },
|
||||
{ Color.Red, ConsoleColor.Red },
|
||||
{ Color.Green, ConsoleColor.Green },
|
||||
{ Color.Blue, ConsoleColor.Cyan },
|
||||
{ new Color(255, 250, 170), ConsoleColor.Yellow },
|
||||
{ new Color(170, 170, 255), ConsoleColor.Cyan },
|
||||
{ new Color(255, 170, 255), ConsoleColor.Magenta },
|
||||
{ new Color(170, 255, 170), ConsoleColor.Green },
|
||||
{ new Color(255, 170, 255), ConsoleColor.Magenta },
|
||||
{ new Color(170, 255, 170), ConsoleColor.Green },
|
||||
{ new Color(255, 170, 170), ConsoleColor.Red },
|
||||
{ new Color(139, 0, 0), ConsoleColor.DarkRed }, // This is the console warning color
|
||||
{ new Color(139, 0, 0), ConsoleColor.DarkRed }, // This is the console warning color
|
||||
{ Color.PaleVioletRed, ConsoleColor.Magenta }, // This is the command logging color
|
||||
{ Color.White, ConsoleColor.White }
|
||||
{ Color.White, ConsoleColor.White }
|
||||
};
|
||||
|
||||
private ConsoleColor PickNearbyConsoleColor(Color color)
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ namespace TShockAPI
|
|||
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||
{
|
||||
var osx = Path.Combine(Environment.CurrentDirectory, "runtimes", "osx-x64");
|
||||
if(Directory.Exists(osx))
|
||||
if (Directory.Exists(osx))
|
||||
matches = Directory.GetFiles(osx, "*" + libraryName + "*", SearchOption.AllDirectories);
|
||||
}
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
||||
|
|
@ -247,7 +247,6 @@ namespace TShockAPI
|
|||
public override void Initialize()
|
||||
{
|
||||
string logFilename;
|
||||
string logPathSetupWarning;
|
||||
|
||||
OTAPI.Hooks.Netplay.CreateTcpListener += (sender, args) =>
|
||||
{
|
||||
|
|
@ -294,10 +293,7 @@ namespace TShockAPI
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logPathSetupWarning =
|
||||
"Could not apply the given log path / log format, defaults will be used. Exception details:\n" + ex;
|
||||
|
||||
ServerApi.LogWriter.PluginWriteLine(this, logPathSetupWarning, TraceLevel.Error);
|
||||
ServerApi.LogWriter.PluginWriteLine(this, GetString("Could not apply the given log path / log format, defaults will be used. Exception details:\n{0}", ex), TraceLevel.Error);
|
||||
|
||||
// Problem with the log path or format use the default
|
||||
logFilename = Path.Combine(LogPathDefault, now.ToString(LogFormatDefault) + ".log");
|
||||
|
|
@ -353,8 +349,8 @@ namespace TShockAPI
|
|||
|
||||
if (File.Exists(Path.Combine(SavePath, "tshock.pid")))
|
||||
{
|
||||
Log.ConsoleInfo(
|
||||
"TShock was improperly shut down. Please use the exit command in the future to prevent this.");
|
||||
Log.ConsoleInfo(GetString(
|
||||
"TShock was improperly shut down. Please use the exit command in the future to prevent this."));
|
||||
File.Delete(Path.Combine(SavePath, "tshock.pid"));
|
||||
}
|
||||
File.WriteAllText(Path.Combine(SavePath, "tshock.pid"),
|
||||
|
|
@ -387,7 +383,7 @@ namespace TShockAPI
|
|||
if (Config.Settings.EnableGeoIP && File.Exists(geoippath))
|
||||
Geo = new GeoIPCountry(geoippath);
|
||||
|
||||
Log.ConsoleInfo("TShock {0} ({1}) now running.", Version, VersionCodename);
|
||||
Log.ConsoleInfo(GetString("TShock {0} ({1}) now running.", Version, VersionCodename));
|
||||
|
||||
ServerApi.Hooks.GamePostInitialize.Register(this, OnPostInit);
|
||||
ServerApi.Hooks.GameUpdate.Register(this, OnUpdate);
|
||||
|
|
@ -425,14 +421,20 @@ namespace TShockAPI
|
|||
if (Config.Settings.RestApiEnabled)
|
||||
RestApi.Start();
|
||||
|
||||
Log.ConsoleInfo("AutoSave " + (Config.Settings.AutoSave ? "Enabled" : "Disabled"));
|
||||
Log.ConsoleInfo("Backups " + (Backups.Interval > 0 ? "Enabled" : "Disabled"));
|
||||
if (Config.Settings.AutoSave)
|
||||
Log.ConsoleInfo(GetString("AutoSave Enabled"));
|
||||
else
|
||||
Log.ConsoleInfo(GetString("AutoSave Disabled"));
|
||||
if (Backups.Interval > 0)
|
||||
Log.ConsoleInfo(GetString("Backups Enabled"));
|
||||
else
|
||||
Log.ConsoleInfo(GetString("Backups Disabled"));
|
||||
|
||||
Initialized?.Invoke();
|
||||
|
||||
Log.ConsoleInfo("Welcome to TShock for Terraria!");
|
||||
Log.ConsoleInfo("TShock comes with no warranty & is free software.");
|
||||
Log.ConsoleInfo("You can modify & distribute it under the terms of the GNU GPLv3.");
|
||||
Log.ConsoleInfo(GetString("Welcome to TShock for Terraria!"));
|
||||
Log.ConsoleInfo(GetString("TShock comes with no warranty & is free software."));
|
||||
Log.ConsoleInfo(GetString("You can modify & distribute it under the terms of the GNU GPLv3."));
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -440,7 +442,7 @@ namespace TShockAPI
|
|||
// handle if Log was not initialised
|
||||
void SafeError(string message)
|
||||
{
|
||||
if(Log is not null) Log.ConsoleError(message);
|
||||
if (Log is not null) Log.ConsoleError(message);
|
||||
else Console.WriteLine(message);
|
||||
};
|
||||
SafeError(GetString("TShock encountered a problem from which it cannot recover. The following message may help diagnose the problem."));
|
||||
|
|
@ -581,7 +583,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (player.IP == ip)
|
||||
{
|
||||
player.Kick("You logged in from the same IP.", true, true, null, true);
|
||||
player.Kick(GetString("You logged in from the same IP."), true, true, null, true);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -590,7 +592,7 @@ namespace TShockAPI
|
|||
var ips = JsonConvert.DeserializeObject<List<string>>(player.Account.KnownIps);
|
||||
if (ips.Contains(ip))
|
||||
{
|
||||
player.Kick("You logged in from another location.", true, true, null, true);
|
||||
player.Kick(GetString("You logged in from another location."), true, true, null, true);
|
||||
args.Handled = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -717,10 +719,10 @@ namespace TShockAPI
|
|||
|
||||
tryingToShutdown = true;
|
||||
|
||||
Log.ConsoleInfo("Shutting down safely. To force shutdown, send SIGINT (CTRL + C) again.");
|
||||
Log.ConsoleInfo(GetString("Shutting down safely. To force shutdown, send SIGINT (CTRL + C) again."));
|
||||
|
||||
// Perform a safe shutdown
|
||||
TShock.Utils.StopServer(true, "Server console interrupted!");
|
||||
TShock.Utils.StopServer(true, GetString("Server console interrupted!"));
|
||||
}
|
||||
|
||||
/// <summary>HandleCommandLine - Handles the command line parameters passed to the server.</summary>
|
||||
|
|
@ -747,7 +749,7 @@ namespace TShockAPI
|
|||
SavePath = path ?? "tshock";
|
||||
if (path != null)
|
||||
{
|
||||
ServerApi.LogWriter.PluginWriteLine(this, "Config path has been set to " + path, TraceLevel.Info);
|
||||
ServerApi.LogWriter.PluginWriteLine(this, GetString("Config path has been set to {0}", path), TraceLevel.Info);
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -757,7 +759,7 @@ namespace TShockAPI
|
|||
if (path != null)
|
||||
{
|
||||
Main.WorldPath = path;
|
||||
ServerApi.LogWriter.PluginWriteLine(this, "World path has been set to " + path, TraceLevel.Info);
|
||||
ServerApi.LogWriter.PluginWriteLine(this, GetString("World path has been set to {0}", path), TraceLevel.Info);
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -767,7 +769,7 @@ namespace TShockAPI
|
|||
if (path != null)
|
||||
{
|
||||
LogPath = path;
|
||||
ServerApi.LogWriter.PluginWriteLine(this, "Log path has been set to " + path, TraceLevel.Info);
|
||||
ServerApi.LogWriter.PluginWriteLine(this, GetString("Log path has been set to {0}", path), TraceLevel.Info);
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -877,13 +879,13 @@ namespace TShockAPI
|
|||
Netplay.ListenPort = port;
|
||||
Config.Settings.ServerPort = port;
|
||||
OverridePort = true;
|
||||
Log.ConsoleInfo("Port overridden by startup argument. Set to " + port);
|
||||
Log.ConsoleInfo(GetString("Port overridden by startup argument. Set to {0}", port));
|
||||
}
|
||||
})
|
||||
.AddFlags(restTokenSet, (token) =>
|
||||
{
|
||||
RESTStartupTokens.Add(token, new SecureRest.TokenData { Username = "null", UserGroupName = "superadmin" });
|
||||
Console.WriteLine("Startup parameter overrode REST token.");
|
||||
Console.WriteLine(GetString("Startup parameter overrode REST token."));
|
||||
})
|
||||
.AddFlags(restEnableSet, (e) =>
|
||||
{
|
||||
|
|
@ -891,7 +893,7 @@ namespace TShockAPI
|
|||
if (bool.TryParse(e, out enabled))
|
||||
{
|
||||
Config.Settings.RestApiEnabled = enabled;
|
||||
Console.WriteLine("Startup parameter overrode REST enable.");
|
||||
Console.WriteLine(GetString("Startup parameter overrode REST enable."));
|
||||
}
|
||||
})
|
||||
.AddFlags(restPortSet, (p) =>
|
||||
|
|
@ -900,7 +902,7 @@ namespace TShockAPI
|
|||
if (int.TryParse(p, out restPort))
|
||||
{
|
||||
Config.Settings.RestApiPort = restPort;
|
||||
Console.WriteLine("Startup parameter overrode REST port.");
|
||||
Console.WriteLine(GetString("Startup parameter overrode REST port."));
|
||||
}
|
||||
})
|
||||
.AddFlags(playerSet, (p) =>
|
||||
|
|
@ -909,7 +911,7 @@ namespace TShockAPI
|
|||
if (int.TryParse(p, out slots))
|
||||
{
|
||||
Config.Settings.MaxSlots = slots;
|
||||
Console.WriteLine("Startup parameter overrode maximum player slot configuration value.");
|
||||
Console.WriteLine(GetString("Startup parameter overrode maximum player slot configuration value."));
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -933,19 +935,19 @@ namespace TShockAPI
|
|||
//CLI defined password overrides a config password
|
||||
if (!string.IsNullOrEmpty(Config.Settings.ServerPassword))
|
||||
{
|
||||
Log.ConsoleError("!!! The server password in config.json was overridden by the interactive prompt and will be ignored.");
|
||||
Log.ConsoleError(GetString("!!! The server password in config.json was overridden by the interactive prompt and will be ignored."));
|
||||
}
|
||||
|
||||
if (!Config.Settings.DisableUUIDLogin)
|
||||
{
|
||||
Log.ConsoleError("!!! UUID login is enabled. If a user's UUID matches an account, the server password will be bypassed.");
|
||||
Log.ConsoleError("!!! > Set DisableUUIDLogin to true in the config file and /reload if this is a problem.");
|
||||
Log.ConsoleError(GetString("!!! UUID login is enabled. If a user's UUID matches an account, the server password will be bypassed."));
|
||||
Log.ConsoleError(GetString("!!! > Set DisableUUIDLogin to true in the config file and /reload if this is a problem."));
|
||||
}
|
||||
|
||||
if (!Config.Settings.DisableLoginBeforeJoin)
|
||||
{
|
||||
Log.ConsoleError("!!! Login before join is enabled. Existing accounts can login & the server password will be bypassed.");
|
||||
Log.ConsoleError("!!! > Set DisableLoginBeforeJoin to true in the config file and /reload if this is a problem.");
|
||||
Log.ConsoleError(GetString("!!! Login before join is enabled. Existing accounts can login & the server password will be bypassed."));
|
||||
Log.ConsoleError(GetString("!!! > Set DisableLoginBeforeJoin to true in the config file and /reload if this is a problem."));
|
||||
}
|
||||
|
||||
_cliPassword = Netplay.ServerPassword;
|
||||
|
|
@ -956,19 +958,19 @@ namespace TShockAPI
|
|||
{
|
||||
if (!string.IsNullOrEmpty(Config.Settings.ServerPassword))
|
||||
{
|
||||
Log.ConsoleInfo("A password for this server was set in config.json and is being used.");
|
||||
Log.ConsoleInfo(GetString("A password for this server was set in config.json and is being used."));
|
||||
}
|
||||
}
|
||||
|
||||
if (!Config.Settings.DisableLoginBeforeJoin)
|
||||
{
|
||||
Log.ConsoleInfo("Login before join enabled. Users may be prompted for an account specific password instead of a server password on connect.");
|
||||
Log.ConsoleInfo(GetString("Login before join enabled. Users may be prompted for an account specific password instead of a server password on connect."));
|
||||
}
|
||||
|
||||
if (!Config.Settings.DisableUUIDLogin)
|
||||
{
|
||||
Log.ConsoleInfo("Login using UUID enabled. Users automatically login via UUID.");
|
||||
Log.ConsoleInfo("A malicious server can easily steal a user's UUID. You may consider turning this option off if you run a public server.");
|
||||
Log.ConsoleInfo(GetString("Login using UUID enabled. Users automatically login via UUID."));
|
||||
Log.ConsoleInfo(GetString("A malicious server can easily steal a user's UUID. You may consider turning this option off if you run a public server."));
|
||||
}
|
||||
|
||||
// Disable the auth system if "setup.lock" is present or a user account already exists
|
||||
|
|
@ -1090,7 +1092,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (player.TileKillThreshold >= Config.Settings.TileKillThreshold)
|
||||
{
|
||||
player.Disable("Reached TileKill threshold.", flags);
|
||||
player.Disable(GetString("Reached TileKill threshold."), flags);
|
||||
TSPlayer.Server.RevertTiles(player.TilesDestroyed);
|
||||
player.TilesDestroyed.Clear();
|
||||
}
|
||||
|
|
@ -1107,7 +1109,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (player.TilePlaceThreshold >= Config.Settings.TilePlaceThreshold)
|
||||
{
|
||||
player.Disable("Reached TilePlace threshold", flags);
|
||||
player.Disable(GetString("Reached TilePlace threshold"), flags);
|
||||
lock (player.TilesCreated)
|
||||
{
|
||||
TSPlayer.Server.RevertTiles(player.TilesCreated);
|
||||
|
|
@ -1151,7 +1153,7 @@ namespace TShockAPI
|
|||
|
||||
if (player.TileLiquidThreshold >= Config.Settings.TileLiquidThreshold)
|
||||
{
|
||||
player.Disable("Reached TileLiquid threshold", flags);
|
||||
player.Disable(GetString("Reached TileLiquid threshold"), flags);
|
||||
}
|
||||
if (player.TileLiquidThreshold > 0)
|
||||
{
|
||||
|
|
@ -1160,7 +1162,7 @@ namespace TShockAPI
|
|||
|
||||
if (player.ProjectileThreshold >= Config.Settings.ProjectileThreshold)
|
||||
{
|
||||
player.Disable("Reached projectile threshold", flags);
|
||||
player.Disable(GetString("Reached projectile threshold"), flags);
|
||||
}
|
||||
if (player.ProjectileThreshold > 0)
|
||||
{
|
||||
|
|
@ -1169,7 +1171,7 @@ namespace TShockAPI
|
|||
|
||||
if (player.PaintThreshold >= Config.Settings.TilePaintThreshold)
|
||||
{
|
||||
player.Disable("Reached paint threshold", flags);
|
||||
player.Disable(GetString("Reached paint threshold"), flags);
|
||||
}
|
||||
if (player.PaintThreshold > 0)
|
||||
{
|
||||
|
|
@ -1178,7 +1180,7 @@ namespace TShockAPI
|
|||
|
||||
if (player.HealOtherThreshold >= TShock.Config.Settings.HealOtherThreshold)
|
||||
{
|
||||
player.Disable("Reached HealOtherPlayer threshold", flags);
|
||||
player.Disable(GetString("Reached HealOtherPlayer threshold"), flags);
|
||||
}
|
||||
if (player.HealOtherThreshold > 0)
|
||||
{
|
||||
|
|
@ -1282,7 +1284,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (ShuttingDown)
|
||||
{
|
||||
NetMessage.SendData((int)PacketTypes.Disconnect, args.Who, -1, NetworkText.FromLiteral("Server is shutting down..."));
|
||||
NetMessage.SendData((int)PacketTypes.Disconnect, args.Who, -1, NetworkText.FromLiteral(GetString("Server is shutting down...")));
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -1311,7 +1313,7 @@ namespace TShockAPI
|
|||
{
|
||||
if (Config.Settings.KickProxyUsers)
|
||||
{
|
||||
player.Kick("Connecting via a proxy is not allowed.", true, true, null, false);
|
||||
player.Kick(GetString("Connecting via a proxy is not allowed."), true, true, null, false);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -1333,7 +1335,7 @@ namespace TShockAPI
|
|||
|
||||
if (Config.Settings.KickEmptyUUID && String.IsNullOrWhiteSpace(player.UUID))
|
||||
{
|
||||
player.Kick("Your client sent a blank UUID. Configure it to send one or use a different client.", true, true, null, false);
|
||||
player.Kick(GetString("Your client sent a blank UUID. Configure it to send one or use a different client."), true, true, null, false);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -1379,8 +1381,8 @@ namespace TShockAPI
|
|||
if (tsplr.ReceivedInfo)
|
||||
{
|
||||
if (!tsplr.SilentKickInProgress && tsplr.State >= 3)
|
||||
Utils.Broadcast(tsplr.Name + " has left.", Color.Yellow);
|
||||
Log.Info("{0} disconnected.", tsplr.Name);
|
||||
Utils.Broadcast(GetString("{0} has left.", tsplr.Name), Color.Yellow);
|
||||
Log.Info(GetString("{0} disconnected."), tsplr.Name);
|
||||
|
||||
if (tsplr.IsLoggedIn && !tsplr.IsDisabledPendingTrashRemoval && Main.ServerSideCharacter && (!tsplr.Dead || tsplr.TPlayer.difficulty != 2))
|
||||
{
|
||||
|
|
@ -1430,7 +1432,7 @@ namespace TShockAPI
|
|||
|
||||
if (args.Text.Length > 500)
|
||||
{
|
||||
tsplr.Kick("Crash attempt via long chat packet.", true);
|
||||
tsplr.Kick(GetString("Crash attempt via long chat packet."), true);
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
|
@ -1466,12 +1468,12 @@ namespace TShockAPI
|
|||
{
|
||||
// This is required in case anyone makes HandleCommand return false again
|
||||
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);
|
||||
Log.ConsoleError(GetString("Unable to parse command '{0}' from player {1}."), text, tsplr.Name);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.ConsoleError("An exception occurred executing a command.");
|
||||
Log.ConsoleError(GetString("An exception occurred executing a command."));
|
||||
Log.Error(ex.ToString());
|
||||
}
|
||||
}
|
||||
|
|
@ -1569,7 +1571,10 @@ namespace TShockAPI
|
|||
if (args.Command == "autosave")
|
||||
{
|
||||
Main.autoSave = Config.Settings.AutoSave = !Config.Settings.AutoSave;
|
||||
Log.ConsoleInfo("AutoSave " + (Config.Settings.AutoSave ? "Enabled" : "Disabled"));
|
||||
if (Config.Settings.AutoSave)
|
||||
Log.ConsoleInfo(GetString("AutoSave Enabled"));
|
||||
else
|
||||
Log.ConsoleInfo(GetString("AutoSave Disabled"));
|
||||
}
|
||||
else if (args.Command.StartsWith(Commands.Specifier) || args.Command.StartsWith(Commands.SilentSpecifier))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
|
||||
<PackageReference Include="GetText.NET" Version="1.7.14" />
|
||||
<PackageReference Include="MySql.Data" Version="8.0.31" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.10" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.11" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -80,11 +80,11 @@ namespace TShockAPI
|
|||
string msg = ex.BuildExceptionString();
|
||||
//Give the console a brief
|
||||
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||
Console.WriteLine($"UpdateManager warning: {msg}");
|
||||
Console.WriteLine(GetString($"UpdateManager warning: {msg}"));
|
||||
Console.ForegroundColor = ConsoleColor.Gray;
|
||||
//And log the full exception
|
||||
TShock.Log.Warn($"UpdateManager warning: {ex.ToString()}");
|
||||
TShock.Log.ConsoleError("Retrying in 5 minutes.");
|
||||
TShock.Log.Warn(GetString($"UpdateManager warning: {ex.ToString()}"));
|
||||
TShock.Log.ConsoleError(GetString("Retrying in 5 minutes."));
|
||||
CheckXMinutes = 5;
|
||||
}
|
||||
}
|
||||
|
|
@ -117,8 +117,7 @@ namespace TShockAPI
|
|||
{
|
||||
reason = "none";
|
||||
}
|
||||
throw new WebException("Update server did not respond with an OK. "
|
||||
+ $"Server message: [error {resp.StatusCode}] {reason}");
|
||||
throw new WebException(GetString($"Update server did not respond with an OK. Server message: [error {resp.StatusCode}] {reason}"));
|
||||
}
|
||||
|
||||
string json = await resp.Content.ReadAsStringAsync();
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ namespace TShockAPI
|
|||
int type = -1;
|
||||
if (Int32.TryParse(text, out type))
|
||||
{
|
||||
if (type >= Main.maxItemTypes)
|
||||
if (type >= Terraria.ID.ItemID.Count)
|
||||
return new List<Item>();
|
||||
return new List<Item> { GetItemById(type) };
|
||||
}
|
||||
|
|
@ -282,7 +282,7 @@ namespace TShockAPI
|
|||
{
|
||||
var startswith = new List<int>();
|
||||
var contains = new List<int>();
|
||||
for (int i = 1; i < Main.maxItemTypes; i++)
|
||||
for (int i = 1; i < ItemID.Count; i++)
|
||||
{
|
||||
var currentName = Lang.GetItemNameValue(i);
|
||||
if (!string.IsNullOrEmpty(currentName))
|
||||
|
|
@ -341,7 +341,7 @@ namespace TShockAPI
|
|||
int type = -1;
|
||||
if (int.TryParse(idOrName, out type))
|
||||
{
|
||||
if (type >= Main.maxNPCTypes)
|
||||
if (type >= Terraria.ID.NPCID.Count)
|
||||
return new List<NPC>();
|
||||
return new List<NPC> { GetNPCById(type) };
|
||||
}
|
||||
|
|
@ -369,7 +369,7 @@ namespace TShockAPI
|
|||
{
|
||||
var startswith = new List<int>();
|
||||
var contains = new List<int>();
|
||||
for (int i = -17; i < Main.maxNPCTypes; i++)
|
||||
for (int i = -17; i < NPCID.Count; i++)
|
||||
{
|
||||
var currentName = Lang.GetNPCNameValue(i);
|
||||
if (!string.IsNullOrEmpty(currentName))
|
||||
|
|
@ -405,7 +405,7 @@ namespace TShockAPI
|
|||
/// <returns>name</returns>
|
||||
public string GetBuffName(int id)
|
||||
{
|
||||
return (id > 0 && id < Main.maxBuffTypes) ? Lang.GetBuffName(id) : null;
|
||||
return (id > 0 && id < Terraria.ID.BuffID.Count) ? Lang.GetBuffName(id) : null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -415,7 +415,7 @@ namespace TShockAPI
|
|||
/// <returns>description</returns>
|
||||
public string GetBuffDescription(int id)
|
||||
{
|
||||
return (id > 0 && id < Main.maxBuffTypes) ? Lang.GetBuffDescription(id) : null;
|
||||
return (id > 0 && id < Terraria.ID.BuffID.Count) ? Lang.GetBuffDescription(id) : null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -427,7 +427,7 @@ namespace TShockAPI
|
|||
{
|
||||
var startswith = new List<int>();
|
||||
var contains = new List<int>();
|
||||
for (int i = 1; i < Main.maxBuffTypes; i++)
|
||||
for (int i = 1; i < BuffID.Count; i++)
|
||||
{
|
||||
var currentName = Lang.GetBuffName(i);
|
||||
if (!string.IsNullOrWhiteSpace(currentName))
|
||||
|
|
@ -1134,7 +1134,7 @@ namespace TShockAPI
|
|||
internal void ComputeMaxStyles()
|
||||
{
|
||||
var item = new Item();
|
||||
for (int i = 0; i < Main.maxItemTypes; i++)
|
||||
for (int i = 0; i < Terraria.ID.ItemID.Count; i++)
|
||||
{
|
||||
item.netDefaults(i);
|
||||
if (item.placeStyle >= 0)
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
|
||||
<PackageReference Include="MySql.Data" Version="8.0.31" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.10" />
|
||||
<PackageReference Include="ModFramework" Version="1.1.6" GeneratePathProperty="true" /> <!-- only used to extract out to ./bin. -->
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.11" />
|
||||
<PackageReference Include="ModFramework" Version="1.1.7" GeneratePathProperty="true" /> <!-- only used to extract out to ./bin. -->
|
||||
<PackageReference Include="GetText.NET" Version="1.7.14" /> <!-- only used to extract out to ./bin. -->
|
||||
|
||||
<!-- the launcher doesnt need the direct OTAPI reference, but since PackageReference[ExcludeFromSingleFile] doesnt work, exclude the assets and copy manually -->
|
||||
<PackageReference Include="OTAPI.Upcoming" Version="3.1.16" ExcludeAssets="all" GeneratePathProperty="true" />
|
||||
<PackageReference Include="OTAPI.Upcoming" Version="3.1.18" ExcludeAssets="all" GeneratePathProperty="true" />
|
||||
<None Include="$(PkgOTAPI_Upcoming)\lib\net6.0\OTAPI.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit b2ed9e4a7c6b35db30871963f12fe650c303d536
|
||||
Subproject commit c9ca021a09f6dbbcddf3edb7f40806675683959f
|
||||
|
|
@ -3,6 +3,69 @@
|
|||
This is the rolling changelog for TShock for Terraria. Changes listed under "upcoming changes" are only available in experimental builds.
|
||||
|
||||
<!-- ## How to add a changelog entry
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
ATTENTION MORTALS
|
||||
PLEASE READ ALL OF THE INSTRUCTIONS HERE
|
||||
IT IS SUPER ANNOYING TO HAVE TO FIX THE CHANGELOG EVERY SINGLE TIME BECAUSE NOBODY READS THESE
|
||||
Use past tense when adding new entries; sign your name off when you add or change something. This should primarily be things like user changes, not necessarily codebase changes unless it's really relevant or large.
|
||||
|
||||
* Put your entry in terms of what you changed in the past mood. For example: "Changed the world by adding new grommets."
|
||||
|
|
@ -18,6 +81,19 @@ Use past tense when adding new entries; sign your name off when you add or chang
|
|||
* Fixed item giving potentially dropping too many items (@PotatoCider, @punchready)
|
||||
* Excluded GeoIP.dat from release bundle (@SignatureBeef)
|
||||
* Updated the Utils.FindByIdOrName to follow same logic. Now fuzzy match fallback to `StartsWith` and then `Contains`. (@sgkoishi)
|
||||
* Fixed item giving potentially dropping too many items. (@PotatoCider, @punchready)
|
||||
* Excluded GeoIP.dat from release bundle. (@SignatureBeef)
|
||||
* Added `TownSlimeRed` to `FishableNpcIDs` list, allowing it to be fished up. (@drunderscore)
|
||||
* Bump to Terraria 1.4.4.8 via OTAPI 3.1.18. (@hakusaro, @SignatureBeef)
|
||||
* In this version of Terraria, `Main.maxBuffTypes` and other `maxWhateverTypes` fields have been removed. Their replacements are in `Terraria.ID.whateverID.Count`. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.
|
||||
* In OTAPI 3.1.17, allowed Crystal Shard to grow. (@sgkoishi, @cc004, SignatureBeef/Open-Terraria-API#96)
|
||||
* Added permission for summoning Mechdusa, Deerclops and slime pet. (@sgkoishi, #2808)
|
||||
* Changed login to only restrict CC'd players during login whilst SSC is enabled. (@drunderscore)
|
||||
* This change allows the config option `RequireLogin` to function usefully again when SSC is not enabled.
|
||||
* Changed `PlayerData.RestoreCharacter` to remove all buffs. (@drunderscore)
|
||||
* Before this change, it was theoretically possible to smuggle buffs onto servers with SSC enabled, by using buff indexes past `22`.
|
||||
* Allowed Torch God's Favor to place different types of torches and campfires. (@sgkoishi, #2811)
|
||||
|
||||
|
||||
## TShock 5.0.0
|
||||
* Reduced load/save console spam. (@SignatureBeef, @YehnBeep)
|
||||
|
|
|
|||
|
|
@ -15,14 +15,14 @@ Open ports can also be passed through using `-p <host_port>:<container_port>`.
|
|||
For Example:
|
||||
```bash
|
||||
# Building the image
|
||||
docker build -t tshock:linux-x64 --build-arg TARGETPLATFORM=linux-x64 .
|
||||
docker build -t tshock:linux-amd64 --build-arg TARGETPLATFORM=linux/amd64 .
|
||||
|
||||
# Running the image
|
||||
docker run -p 7777:7777 -p 7878:7878 \
|
||||
-v /home/cider/tshock/:/tshock \
|
||||
-v /home/cider/.local/share/Terraria/Worlds:/worlds \
|
||||
-v /home/cider/tshock/plugins:/plugins \
|
||||
--rm -it tshock:linux-x64 \
|
||||
--rm -it tshock:linux-amd64 \
|
||||
-world /worlds/backflip.wld -motd "OMFG DOCKER"
|
||||
```
|
||||
|
||||
|
|
@ -42,4 +42,4 @@ docker run -p 7777:7777 -p 7878:7878 \
|
|||
-v /home/cider/tshock/plugins:/plugins \
|
||||
--rm -it tshock:linux-arm64 \
|
||||
-world /worlds/backflip.wld -motd "ARM64 ftw"
|
||||
```
|
||||
```
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: tshock\n"
|
||||
"POT-Creation-Date: 2022-10-31 22:50:21+0000\n"
|
||||
"PO-Revision-Date: 2022-10-31 23:36\n"
|
||||
"PO-Revision-Date: 2022-11-07 08:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Pirate English\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -156,7 +156,7 @@ msgstr "- Palm trees :"
|
|||
#: ../../TShockAPI/Commands.cs:6405
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid buff ID!"
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" is not a valid buff ID."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5902
|
||||
#, csharp-format
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: tshock\n"
|
||||
"POT-Creation-Date: 2022-10-31 22:50:21+0000\n"
|
||||
"PO-Revision-Date: 2022-10-31 23:36\n"
|
||||
"PO-Revision-Date: 2022-11-03 16:58\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -38,63 +38,63 @@ msgstr "#{0} - Estás baneado: {1}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6492
|
||||
msgid " 'basic', 'sakura', 'willow', 'boreal', 'mahogany', 'ebonwood', 'shadewood', 'pearlwood'."
|
||||
msgstr ""
|
||||
msgstr " 'básico', 'cerezo', 'sauce', 'boreal', 'caoba', 'madera de ébano', 'madera oscura', 'madera de perla'."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6498
|
||||
msgid " 'cactus', 'herb', 'mushroom'."
|
||||
msgstr ""
|
||||
msgstr " 'cactus', 'hierba', 'hongo'."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6494
|
||||
msgid " 'palm', 'corruptpalm', 'crimsonpalm', 'hallowpalm'."
|
||||
msgstr ""
|
||||
msgstr " 'palma', 'palma corrupta, 'palma carmesí', 'palma santa'."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6496
|
||||
msgid " 'topaz', 'amethyst', 'sapphire', 'emerald', 'ruby', 'diamond', 'amber'."
|
||||
msgstr ""
|
||||
msgstr " 'topacio', 'amatista', 'zafiro', 'esmeralda', 'rubí', 'diamante', 'ámbar'."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1442
|
||||
#, csharp-format
|
||||
msgid " {0}{1} \"{2}\" (Find the IP associated with the offline target's account)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} \"{2}\" (Encuentre la IP asociada con la cuenta del objetivo desconectado)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1440
|
||||
#, csharp-format
|
||||
msgid " {0}{1} \"{2}{3}\" {4} {5} (Permanently bans this account name)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} \"{2}{3}\" {4} {5} (Prohíbe permanentemente este nombre de cuenta)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1445
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2} (Find the player index for the target)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} {2} (Buscar el índice del jugador para el objetivo)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1446
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2}{3} {4} {5} (Permanently bans the online player by Account, UUID, and IP)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} {2}{3} {4} {5} (Prohíbe permanentemente al jugador conectado por cuenta, UUID o IP)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1443
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2}{3} {4} {5} (Permanently bans this IP address)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} {2}{3} {4} {5} (Prohíbe de forma permanente esta dirección IP)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1382
|
||||
#, csharp-format
|
||||
msgid " Eg a value of {0} would represent 10 days, 30 minutes, 0 seconds."
|
||||
msgstr ""
|
||||
msgstr " Por ejemplo, un valor de {0} representaría 10 días, 30 minutos, 0 segundos."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1386
|
||||
#, csharp-format
|
||||
msgid " If no {0} are specified, the command uses {1} by default."
|
||||
msgstr ""
|
||||
msgstr " Si no se especifican {0}, el comando utiliza {1} por defecto."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1383
|
||||
msgid " If no duration is provided, the ban will be permanent."
|
||||
msgstr ""
|
||||
msgstr " Si no se indica la duración, la prohibición será permanente."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1385
|
||||
#, csharp-format
|
||||
msgid " Unless {0} is passed to the command, {1} is assumed to be a player or player index"
|
||||
msgstr ""
|
||||
msgstr " A menos que se pase {0} al comando, se asume que {1} es un jugador o índice de jugador"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1258
|
||||
#, csharp-format
|
||||
|
|
@ -104,69 +104,69 @@ msgstr "-> Sesión iniciada como: {0}; en grupo {1}."
|
|||
#: ../../TShockAPI/Commands.cs:1394
|
||||
#, csharp-format
|
||||
msgid "- {0} are provided when you add a ban, and can also be viewed with the {1} command."
|
||||
msgstr ""
|
||||
msgstr "- {0} se proporcionan cuando se añade una prohibición, y también se pueden ver con el comando {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1410
|
||||
#, csharp-format
|
||||
msgid "- {0} are provided when you add a ban, and can be found with the {1} command."
|
||||
msgstr ""
|
||||
msgstr "- {0} se proporcionan cuando se añade una prohibición, y se pueden encontrar con el comando {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1384
|
||||
#, csharp-format
|
||||
msgid "- {0}: -a (account name), -u (UUID), -n (character name), -ip (IP address), -e (exact, {1} will be treated as identifier)"
|
||||
msgstr ""
|
||||
msgstr "- {0}: -a (nombre de la cuenta), -u (UUID), -n (nombre del jugador), -ip (dirección IP), -e (exacto, {1} será tratado como identificador)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1381
|
||||
#, csharp-format
|
||||
msgid "- {0}: uses the format {1} to determine the length of the ban."
|
||||
msgstr ""
|
||||
msgstr "- {0}: utiliza el formato {1} para determinar la longitud de la prohibición."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1439
|
||||
msgid "- Ban an offline player by account name"
|
||||
msgstr ""
|
||||
msgstr "- Prohibir a un jugador desconectado por su nombre de cuenta"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1441
|
||||
msgid "- Ban an offline player by IP address"
|
||||
msgstr ""
|
||||
msgstr "- Prohibir a un jugador desconectado por su dirección IP"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1444
|
||||
msgid "- Ban an online player by index (Useful for hard to type names)"
|
||||
msgstr ""
|
||||
msgstr "- Prohibir un jugador conectado por índice (útil para nombres difíciles de escribir)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6491
|
||||
msgid "- Default trees :"
|
||||
msgstr ""
|
||||
msgstr "- Árboles por defecto :"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6495
|
||||
msgid "- Gem trees :"
|
||||
msgstr ""
|
||||
msgstr "- Árboles de gemas :"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1402
|
||||
msgid "- Lists active bans. Color trends towards green as the ban approaches expiration"
|
||||
msgstr ""
|
||||
msgstr "- Enumera las prohibiciones activas. El color tiende al verde a medida que la prohibición se aproxima a su vencimiento"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6497
|
||||
msgid "- Misc :"
|
||||
msgstr ""
|
||||
msgstr "- Varios :"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6493
|
||||
msgid "- Palm trees :"
|
||||
msgstr ""
|
||||
msgstr "- Palmeras :"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6405
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid buff ID!"
|
||||
msgstr ""
|
||||
msgstr "¡\"{0}\" no es un ID de buff válido!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5902
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid clear option."
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" no es una opción clara válida."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6022
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid NPC."
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" no es un PNJ válido."
|
||||
|
||||
#: ../../TShockAPI/PaginationTools.cs:283
|
||||
#, csharp-format
|
||||
|
|
@ -176,7 +176,7 @@ msgstr "\"{0}\" no es un número de página válido."
|
|||
#: ../../TShockAPI/Commands.cs:5822
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid radius."
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" no es un valor válido."
|
||||
|
||||
#: ../../TShockAPI/Rest/SecureRest.cs:213
|
||||
#, csharp-format
|
||||
|
|
@ -190,7 +190,7 @@ msgstr "(Mensaje del Servidor) "
|
|||
#: ../../TShockAPI/Commands.cs:1457
|
||||
#, csharp-format
|
||||
msgid "{0} - Ticket Number: {1}"
|
||||
msgstr ""
|
||||
msgstr "{0} - Número de Boleto: {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2084
|
||||
#, csharp-format
|
||||
|
|
@ -210,12 +210,12 @@ msgstr "{0} ({1}) falló al cambiar la contraseña para la cuenta {2}."
|
|||
#: ../../TShockAPI/TShock.cs:1641
|
||||
#, csharp-format
|
||||
msgid "{0} ({1}) from '{2}' group from '{3}' joined. ({4}/{5})"
|
||||
msgstr ""
|
||||
msgstr "{0} ({1}) de '{2}' grupo de '{3}' unidos. ({4}/{5})"
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:1649
|
||||
#, csharp-format
|
||||
msgid "{0} ({1}) from '{2}' group joined. ({3}/{4})"
|
||||
msgstr ""
|
||||
msgstr "{0} ({1}) de '{2}' se unió al grupo ahora son: ({3}/{4})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:775
|
||||
#, csharp-format
|
||||
|
|
@ -225,58 +225,58 @@ msgstr "{0} ({1}) tuvo {2} o más intentos de inicio de sesión no válidos y fu
|
|||
#: ../../TShockAPI/TShock.cs:1645
|
||||
#, csharp-format
|
||||
msgid "{0} ({1}) has joined."
|
||||
msgstr ""
|
||||
msgstr "{0} ({1}) se ha unido."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5350
|
||||
#, csharp-format
|
||||
msgid "{0} (Index: {1}, Account ID: {2})"
|
||||
msgstr ""
|
||||
msgstr "{0} (Índice: {1}, ID de cuenta: {2})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5352
|
||||
#, csharp-format
|
||||
msgid "{0} (Index: {1})"
|
||||
msgstr ""
|
||||
msgstr "{0} (Índice: {1})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1401
|
||||
#, csharp-format
|
||||
msgid "{0} [{1}]"
|
||||
msgstr ""
|
||||
msgstr "{0} [{1}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6007
|
||||
#, csharp-format
|
||||
msgid "{0} [{1}|{2}]"
|
||||
msgstr ""
|
||||
msgstr "{0} [{1}|{2}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1458
|
||||
#: ../../TShockAPI/Commands.cs:1459
|
||||
#, csharp-format
|
||||
msgid "{0} {1}"
|
||||
msgstr ""
|
||||
msgstr "{0} {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1463
|
||||
#, csharp-format
|
||||
msgid "{0} {1} ({2} ago)"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} (hace {2})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1477
|
||||
#, csharp-format
|
||||
msgid "{0} {1} ({2})"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} ({2})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5324
|
||||
#, csharp-format
|
||||
msgid "{0} {1} {2}"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} {2}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1460
|
||||
#, csharp-format
|
||||
msgid "{0} {1} on {2} ({3} ago)"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} en {2} (hace {3})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6364
|
||||
#, csharp-format
|
||||
msgid "{0} <\"{1}|{2}\"> [{3}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <\"{1}|{2}\"> [{3}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1393
|
||||
#: ../../TShockAPI/Commands.cs:1409
|
||||
|
|
@ -284,39 +284,39 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:5914
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}>"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}>"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5458
|
||||
#: ../../TShockAPI/Commands.cs:6304
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> [{2}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> [{2}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1380
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> [{2}] [{3}] [{4}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> [{2}] [{3}] [{4}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5680
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> [{2}|{3}|{4}|{5}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> [{2}|{3}|{4}|{5}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5515
|
||||
#: ../../TShockAPI/Commands.cs:5596
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> <{2}>"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> <{2}>"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6414
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> <{2}|{3}> [{4}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> <{2}|{3}> [{4}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5811
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}|{2}|{3}> [{4}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}|{2}|{3}> [{4}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1102
|
||||
#, csharp-format
|
||||
|
|
@ -917,7 +917,7 @@ msgstr "{0} te teletransportó hacia {1}."
|
|||
#: ../../TShockAPI/Commands.cs:690
|
||||
#, csharp-format
|
||||
msgid "{0} tried to execute (args omitted) {1}{2}."
|
||||
msgstr ""
|
||||
msgstr "{0} intentó ejecutar (argumentos omitidos) {1}{2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:688
|
||||
#, csharp-format
|
||||
|
|
@ -937,7 +937,7 @@ msgstr "{0} te transportó hacia {1}."
|
|||
#: ../../TShockAPI/TSPlayer.cs:1953
|
||||
#, csharp-format
|
||||
msgid "{0} was banned for '{1}'."
|
||||
msgstr ""
|
||||
msgstr "{0} fue prohibido por '{1}'."
|
||||
|
||||
#: ../../TShockAPI/TSPlayer.cs:1924
|
||||
#, csharp-format
|
||||
|
|
@ -973,17 +973,17 @@ msgstr "La fecha de registro de {0} es el {1} {2} UTC{3}."
|
|||
#: ../../TShockAPI/Commands.cs:5774
|
||||
#, csharp-format
|
||||
msgid "{0}{1} defines no aliases."
|
||||
msgstr ""
|
||||
msgstr "{0}{1} no define ningún alias."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5280
|
||||
#, csharp-format
|
||||
msgid "{0}{1} help: "
|
||||
msgstr ""
|
||||
msgstr "Ayuda de {0}{1} : "
|
||||
|
||||
#: ../../TShockAPI/Utils.cs:1066
|
||||
#, csharp-format
|
||||
msgid "{0}{1}/{2} on {3} @ {4}:{5} (TShock for Terraria v{6})"
|
||||
msgstr ""
|
||||
msgstr "{0}{1}/{2} en {3} @ {4}:{5} (TShock para Terraria v{6})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:846
|
||||
#, csharp-format
|
||||
|
|
@ -1003,7 +1003,7 @@ msgstr "{0}login <nombreUsuario> <contraseña> - Inicias sesión usando tu nombr
|
|||
#: ../../TShockAPI/Commands.cs:5409
|
||||
#, csharp-format
|
||||
msgid "{0}user add <username> <password> owner"
|
||||
msgstr ""
|
||||
msgstr "{0}user add <usuario> <contraseña> owner"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1201
|
||||
#, csharp-format
|
||||
|
|
@ -1028,7 +1028,7 @@ msgstr "{0}user password username newpassword -- Cambia la contraseña de un usu
|
|||
#: ../../TShockAPI/Commands.cs:5426
|
||||
#, csharp-format
|
||||
msgid "*{0} {1}"
|
||||
msgstr ""
|
||||
msgstr "*{0} {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1609
|
||||
#, csharp-format
|
||||
|
|
@ -1038,19 +1038,19 @@ msgstr "#{0} - Has sido baneado(a): {1}."
|
|||
#: ../../TShockAPI/Commands.cs:5442
|
||||
#, csharp-format
|
||||
msgid "<{0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<{0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5546
|
||||
#: ../../TShockAPI/Commands.cs:5577
|
||||
#, csharp-format
|
||||
msgid "<From {0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<De {0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5547
|
||||
#: ../../TShockAPI/Commands.cs:5578
|
||||
#, csharp-format
|
||||
msgid "<To {0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<A {0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2814
|
||||
msgid "a Deerclops"
|
||||
|
|
@ -1127,7 +1127,7 @@ msgstr "Cuenta eliminada con éxito."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:2090
|
||||
msgid "Active REST Users ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Usuarios REST activos ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3967
|
||||
msgid "add <item> - Adds an item ban."
|
||||
|
|
@ -1177,11 +1177,11 @@ msgstr "SQL AddUser devolvió un error ({0})"
|
|||
#: ../../TShockAPI/Commands.cs:5772
|
||||
#, csharp-format
|
||||
msgid "Aliases of {0}{1}: {0}{2}"
|
||||
msgstr ""
|
||||
msgstr "Alias de {0}{1}: {0}{2}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6009
|
||||
msgid "All alive NPCs (excluding town NPCs) on the server will be killed if you do not input a name or ID."
|
||||
msgstr ""
|
||||
msgstr "Todos los PNJs vivos (excluyendo los PNJs de la ciudad) en el servidor serán asesinados si no introduces un nombre o ID."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2622
|
||||
msgid "all bosses"
|
||||
|
|
@ -1210,23 +1210,23 @@ msgstr "allow <ID de bloque> <grupo> - Permite a un grupo colocar un bloque."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5189
|
||||
msgid "allow <user> <region> - Allows a user to a region."
|
||||
msgstr ""
|
||||
msgstr "allow <usuario> <región> - Permite a un usuario acceder a dicha región."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5191
|
||||
msgid "allowg <group> <region> - Allows a user group to a region."
|
||||
msgstr ""
|
||||
msgstr "allowg <grupo> <región> - Permite a un grupo acceder a dicha región."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6663
|
||||
msgid "Amber Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Gema de Ámbar"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6643
|
||||
msgid "Amethyst Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Gema de Amatista"
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:981
|
||||
msgid "An account has been detected in the user database, but setup-code.txt is still present."
|
||||
msgstr ""
|
||||
msgstr "Se ha detectado una cuenta en la base de datos de usuarios, pero setup-code.txt sigue presente."
|
||||
|
||||
#: ../../TShockAPI/DB/GroupManager.cs:474
|
||||
#, csharp-format
|
||||
|
|
@ -1253,7 +1253,7 @@ msgstr "Un identificador para un UUID."
|
|||
#: ../../TShockAPI/DB/BanManager.cs:636
|
||||
#, csharp-format
|
||||
msgid "An identifier for an IP Address in octet format. e.g., '{0}'."
|
||||
msgstr ""
|
||||
msgstr "Un identificador para una dirección IP en formato de octeto. Por ejemplo, '{0}'."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2048
|
||||
msgid "An update check has been queued. If an update is available, you will be notified shortly."
|
||||
|
|
@ -1261,12 +1261,12 @@ msgstr "Se pidió comprobar si hay actualizaciones. De haber una se te notificar
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5595
|
||||
msgid "Annoy Syntax"
|
||||
msgstr ""
|
||||
msgstr "Sintaxis molesta"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5612
|
||||
#, csharp-format
|
||||
msgid "Annoying {0} for {1} seconds."
|
||||
msgstr ""
|
||||
msgstr "Molesta a {0} durante {1} segundos."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:338
|
||||
msgid "Annoys a player for an amount of time."
|
||||
|
|
@ -1279,11 +1279,11 @@ msgstr "Anónimo solicitó un punto final REST: {0}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5220
|
||||
msgid "Anti-build is now off."
|
||||
msgstr ""
|
||||
msgstr "El Anti-construcción ya no está activo."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5220
|
||||
msgid "Anti-build is now on."
|
||||
msgstr ""
|
||||
msgstr "El Anti-construcción está activo."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3200
|
||||
msgid "Arguments: add [warp name], del [warp name], list [page]."
|
||||
|
|
@ -1318,15 +1318,15 @@ msgstr "El autoguardado está actualmente activo"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1364
|
||||
msgid "Available Ban commands:"
|
||||
msgstr ""
|
||||
msgstr "Comandos de prohibición disponibles:"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1428
|
||||
msgid "Available identifiers ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Identificadores disponibles ({{0}}/{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5204
|
||||
msgid "Available Region Sub-Commands ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Subcomandos de región disponibles ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2105
|
||||
msgid "Available REST Sub-Commands:"
|
||||
|
|
@ -1352,18 +1352,18 @@ msgstr "Intento de inicio de sesión inválido."
|
|||
#: ../../TShockAPI/Commands.cs:1367
|
||||
#, csharp-format
|
||||
msgid "ban {0}"
|
||||
msgstr ""
|
||||
msgstr "ban {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1366
|
||||
#: ../../TShockAPI/Commands.cs:1368
|
||||
#, csharp-format
|
||||
msgid "ban {0} <Ban ID>"
|
||||
msgstr ""
|
||||
msgstr "ban {0} <ID de prohibido>"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1365
|
||||
#, csharp-format
|
||||
msgid "ban {0} <Target> [Flags]"
|
||||
msgstr ""
|
||||
msgstr "ban {0} <Objetivo> [Flags]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1629
|
||||
#, csharp-format
|
||||
|
|
@ -1377,7 +1377,7 @@ msgstr "El ban {0} acaba de marcarse como expirado."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1379
|
||||
msgid "Ban Add Syntax"
|
||||
msgstr ""
|
||||
msgstr "Ban Add Syntax"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1486
|
||||
#, csharp-format
|
||||
|
|
@ -1391,15 +1391,15 @@ msgstr "Ban añadido. Número de ticket: {0}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1392
|
||||
msgid "Ban Del Syntax"
|
||||
msgstr ""
|
||||
msgstr "Sintaxis Ban Del"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1408
|
||||
msgid "Ban Details Syntax"
|
||||
msgstr ""
|
||||
msgstr "Detalles de la prohibición Sintaxis"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1400
|
||||
msgid "Ban List Syntax"
|
||||
msgstr ""
|
||||
msgstr "Sintaxis de la lista de prohibiciones"
|
||||
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:695
|
||||
msgid "Ban removed."
|
||||
|
|
@ -1407,12 +1407,12 @@ msgstr "Ban revocado."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1438
|
||||
msgid "Ban Usage Examples"
|
||||
msgstr ""
|
||||
msgstr "Ejemplos de uso de prohibición"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3837
|
||||
#, csharp-format
|
||||
msgid "Banned {0}."
|
||||
msgstr ""
|
||||
msgstr "Prohibido {0}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4033
|
||||
#, csharp-format
|
||||
|
|
@ -1427,7 +1427,7 @@ msgstr "Se ha prohibido el bloque {0}."
|
|||
#: ../../TShockAPI/TSPlayer.cs:1950
|
||||
#, csharp-format
|
||||
msgid "Banned: {0}"
|
||||
msgstr ""
|
||||
msgstr "Prohibido: {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1513
|
||||
msgid "Banned."
|
||||
|
|
@ -1435,11 +1435,11 @@ msgstr "Baneado."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1666
|
||||
msgid "Bans ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Prohibidos ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6585
|
||||
msgid "Basic Tree"
|
||||
msgstr ""
|
||||
msgstr "Árbol básico"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2751
|
||||
msgid "Betsy"
|
||||
|
|
@ -1453,11 +1453,11 @@ msgstr "La Luna Sangrienta fue marcada como {0}"
|
|||
#: ../../TShockAPI/Rest/RestManager.cs:904
|
||||
#, csharp-format
|
||||
msgid "Bloodmoon state: {0}"
|
||||
msgstr ""
|
||||
msgstr "Estado de la luna de sangre: {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6589
|
||||
msgid "Boreal Tree"
|
||||
msgstr ""
|
||||
msgstr "Árbol boreal"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1447
|
||||
#, csharp-format
|
||||
|
|
@ -1532,51 +1532,51 @@ msgstr "Bouncer / OnFoodPlatterTryPlacing rechazo objeto no puesto manualmente d
|
|||
#: ../../TShockAPI/Bouncer.cs:2772
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnFoodPlatterTryPlacing rejected permissions from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnFoodPlatterTryPlacing rechazó los permisos de {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2783
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnFoodPlatterTryPlacing rejected range checks from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnFoodPlatterTryPlacing rechazó las comprobaciones de rango de {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2747
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnFoodPlatterTryPlacing rejected tile placement valid from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnFoodPlatterTryPlacing rechazó la colocación de baldosas válida desde {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2488
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnGemLockToggle invalid placement/deadmod from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnGemLockToggle colocación inválida/deadmod de {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2481
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnGemLockToggle rejected boundaries check from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnGemLockToggle rechazó la comprobación de límites de {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2495
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnGemLockToggle rejected disabled from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnGemLockToggle rechazado deshabilitado desde {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2504
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnGemLockToggle rejected permissions check from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnGemLockToggle rechazó la comprobación de permisos de {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:435
|
||||
msgid "Bouncer / OnGetSection rejected empty player name."
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnGetSection rechazó un nombre de jugador vacío."
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:427
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnGetSection rejected GetSection packet from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnGetSection rechazó el paquete GetSection de {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2081
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnHealOtherPlayer 0.2 check from {0}"
|
||||
msgstr ""
|
||||
msgstr "Bouncer / OnHealOtherPlayer 0.2 comprobar desde {0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2105
|
||||
#, csharp-format
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: tshock\n"
|
||||
"POT-Creation-Date: 2022-10-31 22:50:21+0000\n"
|
||||
"PO-Revision-Date: 2022-11-02 04:50\n"
|
||||
"PO-Revision-Date: 2022-11-04 17:22\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -22,13 +22,13 @@ msgstr ""
|
|||
#, csharp-format
|
||||
msgctxt "{0} is a player name"
|
||||
msgid "Skipping SSC save (due to tshock.ignore.ssc) for {0}"
|
||||
msgstr "Mengabaikan penyimpanan SSC untuk {0} (karena menggunakan tshock.ignore.ssc)"
|
||||
msgstr "Mengabaikan penyimpanan SSC untuk {0} (karena memiliki tshock.ignore.ssc)"
|
||||
|
||||
#: ../../TShockAPI/DB/BanManager.cs:213
|
||||
#, csharp-format
|
||||
msgctxt "{0} is ban number, {1} is ban reason, {2} is a timestamp"
|
||||
msgid "#{0} - You are banned: {1} ({2} remaining)"
|
||||
msgstr "#{0} - Anda telah diblokir: {1}( dalam waktu {2})"
|
||||
msgstr "#{0} - Anda telah diblokir: {1}( tersisa {2})"
|
||||
|
||||
#: ../../TShockAPI/DB/BanManager.cs:208
|
||||
#, csharp-format
|
||||
|
|
@ -55,12 +55,12 @@ msgstr " 'topaz', 'amethyst', 'sapphire', 'emerald', 'ruby', 'diamond', 'amb
|
|||
#: ../../TShockAPI/Commands.cs:1442
|
||||
#, csharp-format
|
||||
msgid " {0}{1} \"{2}\" (Find the IP associated with the offline target's account)"
|
||||
msgstr " {0}{1} \"{2}\" (Temukan IP terkait dengan target akun luring)"
|
||||
msgstr " {0}{1} \"{2}\" (Temukan IP yang terkait dengan target akun offline)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1440
|
||||
#, csharp-format
|
||||
msgid " {0}{1} \"{2}{3}\" {4} {5} (Permanently bans this account name)"
|
||||
msgstr " {0}{1} \"{2}{3}\" {4} {5} (Blokor secara permanen untuk nama akun ini)"
|
||||
msgstr " {0}{1} \"{2}{3}\" {4} {5} (Blokir secara permanen untuk nama akun ini)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1445
|
||||
#, csharp-format
|
||||
|
|
@ -70,7 +70,7 @@ msgstr " {0}{1} {2} (target ini ditemukan berdasarkan indeks pemain)"
|
|||
#: ../../TShockAPI/Commands.cs:1446
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2}{3} {4} {5} (Permanently bans the online player by Account, UUID, and IP)"
|
||||
msgstr " {0}{1} {2}{3} {4} {5} (Blokir secara permanen si pemain daring dari Account, UUID, dan IP)"
|
||||
msgstr " {0}{1} {2}{3} {4} {5} (Blokir secara permanen pemain online dengan Account, UUID, dan IP)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1443
|
||||
#, csharp-format
|
||||
|
|
@ -85,16 +85,16 @@ msgstr " Misalnya nilai {0} akan merepresentasikan 10 hari, 30 menit, 0 detik.
|
|||
#: ../../TShockAPI/Commands.cs:1386
|
||||
#, csharp-format
|
||||
msgid " If no {0} are specified, the command uses {1} by default."
|
||||
msgstr " Jika {0} tidak spesifik,maka menggunakan {1} untuk perintah bawaan."
|
||||
msgstr " Jika {0} tidak ada ditentukan, perintah menggunakan {1} secara default."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1383
|
||||
msgid " If no duration is provided, the ban will be permanent."
|
||||
msgstr " Jika rentan waktu tidak ditentukan, maka akan diblokir permanen."
|
||||
msgstr " Jika rentang waktu tidak ditentukan, maka akan diblokir permanen."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1385
|
||||
#, csharp-format
|
||||
msgid " Unless {0} is passed to the command, {1} is assumed to be a player or player index"
|
||||
msgstr " Kecuali jika {0} diteruskan perintahnya, {1} itu dianggap sebagai pemain atau indeks pemain"
|
||||
msgstr " Kecuali jika {0} diteruskan ke perintahnya, {1} akan dianggap sebagai pemain atau indeks pemain"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1258
|
||||
#, csharp-format
|
||||
|
|
@ -119,19 +119,19 @@ msgstr "- {0}: -a (nama akun), -u (UUID), -n (nama karakter), -ip (alamat IP), -
|
|||
#: ../../TShockAPI/Commands.cs:1381
|
||||
#, csharp-format
|
||||
msgid "- {0}: uses the format {1} to determine the length of the ban."
|
||||
msgstr "- {0}: gunakan format {1} ini untuk menentukan lama pemblokiran."
|
||||
msgstr "- {0}: menggunakan format {1} ini untuk menentukan lama pemblokiran."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1439
|
||||
msgid "- Ban an offline player by account name"
|
||||
msgstr "- Blokir pemain luring dari nama akun"
|
||||
msgstr "- Blokir pemain online dari nama akun"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1441
|
||||
msgid "- Ban an offline player by IP address"
|
||||
msgstr "- Blokir pemain luring dari alamat IP"
|
||||
msgstr "- Blokir pemain online dari alamat IP"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1444
|
||||
msgid "- Ban an online player by index (Useful for hard to type names)"
|
||||
msgstr "Blokir pemain daring dari pengenal (Untuk nama yang susah diketik)"
|
||||
msgstr "Blokir pemain online dari indeks (Untuk nama yang susah diketik)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6491
|
||||
msgid "- Default trees :"
|
||||
|
|
@ -185,12 +185,12 @@ msgstr "\"{0}\" telah meminta titik akhir REST: {1}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:2016
|
||||
msgid "(Server Broadcast) "
|
||||
msgstr "(Siaran Peladen) "
|
||||
msgstr "(Siaran Server) "
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1457
|
||||
#, csharp-format
|
||||
msgid "{0} - Ticket Number: {1}"
|
||||
msgstr "{0} - Nomor karcis: {1}"
|
||||
msgstr "{0} - Nomor tiket: {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2084
|
||||
#, csharp-format
|
||||
|
|
@ -508,7 +508,7 @@ msgstr "{0} telah mengubah grup anda ke {1}."
|
|||
#: ../../TShockAPI/Commands.cs:3022
|
||||
#, csharp-format
|
||||
msgid "{0} has disabled incoming teleports."
|
||||
msgstr "{0} telah menonaktifkan teleportasi masuk."
|
||||
msgstr "{0} telah menonaktifkan teleportasi yang akan datang."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2408
|
||||
#, csharp-format
|
||||
|
|
@ -553,28 +553,28 @@ msgstr "{0} telah dibisukan {1} kurun waktu {2}."
|
|||
#: ../../TShockAPI/Commands.cs:5995
|
||||
#, csharp-format
|
||||
msgid "{0} has respawned you."
|
||||
msgstr "{0} telah memanggil anda kembali."
|
||||
msgstr "{0} telah memunculkan anda kembali."
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3545
|
||||
#, csharp-format
|
||||
msgid "{0} has sent a request to the bunny delivery service!"
|
||||
msgstr "{0} telah mengirim sebuah permintaan untuk pelayanan pengiriman kelinci!"
|
||||
msgstr "{0} telah mengirim sebuah permintaan ke pelayanan pengiriman kelinci!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3551
|
||||
#, csharp-format
|
||||
msgid "{0} has sent a request to the cat delivery service!"
|
||||
msgstr "{0} telah mengirim sebuah permintaan untuk pelayanan pengiriman kucing!"
|
||||
msgstr "{0} telah mengirim sebuah permintaan ke pelayanan pengiriman kucing!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3548
|
||||
#, csharp-format
|
||||
msgid "{0} has sent a request to the dog delivery service!"
|
||||
msgstr "{0} telah mengirim sebuah permintaan untuk pelayanan pengiriman anjing!"
|
||||
msgstr "{0} telah mengirim sebuah permintaan ke pelayanan pengiriman anjing!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2874
|
||||
#, csharp-format
|
||||
msgid "{0} has spawned {1} {2} time."
|
||||
msgid_plural "{0} has spawned {1} {2} times."
|
||||
msgstr[0] "{0} telah memanggil {1} {2} kali."
|
||||
msgstr[0] "{0} telah membangkitkan {1} {2} kali."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2891
|
||||
#, csharp-format
|
||||
|
|
@ -609,12 +609,12 @@ msgstr "{0} telah tidak dibisukan {1}."
|
|||
#: ../../TShockAPI/Commands.cs:6352
|
||||
#, csharp-format
|
||||
msgid "{0} healed {1} for {2} HP."
|
||||
msgstr "{0} telah menyembuhkan {1} untuk HP {2}."
|
||||
msgstr "{0} telah menyembuhkan {1} untuk {2} HP."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6350
|
||||
#, csharp-format
|
||||
msgid "{0} healed herself for {1} HP."
|
||||
msgstr "{0} telah menyembuhkan diri sendiri untuk HP {1}."
|
||||
msgstr "{0} telah menyembuhkan diri sendiri untuk {1} HP."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6348
|
||||
#, csharp-format
|
||||
|
|
@ -659,7 +659,7 @@ msgstr "{0} sudah dicegah dari penggunaan proyektil {1}."
|
|||
#: ../../TShockAPI/ItemBans.cs:234
|
||||
#, csharp-format
|
||||
msgid "{0} is banned! Remove it!"
|
||||
msgstr "{0} diblokir! copot itu!"
|
||||
msgstr "{0} diblokir! Buang itu!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6744
|
||||
#, csharp-format
|
||||
|
|
@ -691,13 +691,13 @@ msgstr "{0} sekarang dalam mode dewa."
|
|||
#: ../../TShockAPI/Commands.cs:5582
|
||||
#, csharp-format
|
||||
msgid "{0} is offline and cannot receive your reply."
|
||||
msgstr "{0} telah luring dan tidak dapat menerima balasan anda."
|
||||
msgstr "{0} telah offline dan tidak dapat menerima balasan anda."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5945
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:1068
|
||||
#, csharp-format
|
||||
msgid "{0} just killed you!"
|
||||
msgstr "anda baru saja dibunuh {0} !"
|
||||
msgstr "{0} telah membunuh anda!"
|
||||
|
||||
#: ../../TShockAPI/TSPlayer.cs:1926
|
||||
#, csharp-format
|
||||
|
|
@ -713,7 +713,7 @@ msgstr "{0} telah meluncurkan kembang api kepada anda."
|
|||
#, csharp-format
|
||||
msgid "{0} NPC has been killed."
|
||||
msgid_plural "{0} NPCs have been killed."
|
||||
msgstr[0] "NPC {0} telah dibunuh."
|
||||
msgstr[0] "{0} NPC telah terbunuh."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1054
|
||||
#, csharp-format
|
||||
|
|
@ -733,33 +733,33 @@ msgstr "{0} telah diberi nama kembali {1}."
|
|||
#: ../../TShockAPI/Commands.cs:4570
|
||||
#, csharp-format
|
||||
msgid "{0} set the time to {1}:{2:D2}."
|
||||
msgstr "{0} mengatur waktu pada {1}:{2:D2}."
|
||||
msgstr "{0} mengatur waktu ke {1}:{2:D2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4538
|
||||
#, csharp-format
|
||||
msgid "{0} set the time to 00:00."
|
||||
msgstr "{0} mengatur waktu pada 00:00."
|
||||
msgstr "{0} mengatur waktu ke 00:00."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4526
|
||||
#, csharp-format
|
||||
msgid "{0} set the time to 04:30."
|
||||
msgstr "{0} mengatur waktu pada 04:30."
|
||||
msgstr "{0} mengatur waktu ke 04:30."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4534
|
||||
#, csharp-format
|
||||
msgid "{0} set the time to 12:00."
|
||||
msgstr "{0} mengatur waktu pada 12:00."
|
||||
msgstr "{0} mengatur waktu ke 12:00."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4530
|
||||
#, csharp-format
|
||||
msgid "{0} set the time to 19:30."
|
||||
msgstr "{0} mengatur waktu pada 19:30."
|
||||
msgstr "{0} mengatur waktu ke 19:30."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4612
|
||||
#: ../../TShockAPI/Commands.cs:4613
|
||||
#, csharp-format
|
||||
msgid "{0} slapped {1} for {2} damage."
|
||||
msgstr "{1} ditampar {0} dalam {2} kerusakan."
|
||||
msgstr "{1} menampar {0} untuk {2} kerusakan."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2827
|
||||
#, csharp-format
|
||||
|
|
@ -965,7 +965,7 @@ msgstr "Tanggal pendaftaran {0} ialah {1} {2} UTC{3}."
|
|||
#: ../../TShockAPI/Commands.cs:5774
|
||||
#, csharp-format
|
||||
msgid "{0}{1} defines no aliases."
|
||||
msgstr "{0}{1} dianggap bukan samaran ."
|
||||
msgstr "{0}{1} dianggap bukan samaran."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5280
|
||||
#, csharp-format
|
||||
|
|
@ -980,17 +980,17 @@ msgstr "{0}{1}/{2} pada {3} @ {4}:{5} (TShock untuk Terraria v{6})"
|
|||
#: ../../TShockAPI/Commands.cs:846
|
||||
#, csharp-format
|
||||
msgid "{0}login - Authenticates you using your UUID and character name."
|
||||
msgstr "{0}login - Anda autentikasi menggunakan UUID dan nama character anda"
|
||||
msgstr "{0}login - Autentikasi diri anda menggunakan UUID dan nama karakter anda"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:851
|
||||
#, csharp-format
|
||||
msgid "{0}login <password> - Authenticates you using your password and character name."
|
||||
msgstr "{0}login <password> - Anda autentikasi menggunakan kata sandi dan nama karakter anda."
|
||||
msgstr "{0}login <password> - Autentikasi diri anda menggunakan kata sandi dan nama karakter anda."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:849
|
||||
#, csharp-format
|
||||
msgid "{0}login <username> <password> - Authenticates you using your username and password."
|
||||
msgstr "{0}login <username> <password> - Anda autentikasi menggunakan nama pengguna dan sandi anda."
|
||||
msgstr "{0}login <username> <password> - Autentikasi diri anda menggunakan nama pengguna dan sandi anda."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5409
|
||||
#, csharp-format
|
||||
|
|
@ -1145,7 +1145,7 @@ msgstr "Ditambahkan {0} kedalam whitelist."
|
|||
#: ../../TShockAPI/Bouncer.cs:2026
|
||||
#, csharp-format
|
||||
msgid "Added buff to {0} NPC abnormally."
|
||||
msgstr "Telah menambahkan buff ke {0} tidak normal NPC."
|
||||
msgstr "Telah menambahkan buff tidak normal ke NPC {0}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4851
|
||||
#, csharp-format
|
||||
|
|
@ -1164,7 +1164,7 @@ msgstr "addperm <grup> <perizinan...> - Tambahkan beberapa perizinan ke sebuah g
|
|||
#: ../../TShockAPI/DB/UserManager.cs:81
|
||||
#, csharp-format
|
||||
msgid "AddUser SQL returned an error ({0})"
|
||||
msgstr "AddUser SQL mengembalikan kekeliruan ({0})"
|
||||
msgstr "AddUser SQL mengembalikan kesalahan({0})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5772
|
||||
#, csharp-format
|
||||
|
|
@ -1173,7 +1173,7 @@ msgstr "Nama lain dari {0}{1}: {0}{2}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6009
|
||||
msgid "All alive NPCs (excluding town NPCs) on the server will be killed if you do not input a name or ID."
|
||||
msgstr "Semua NPC yang hidup (termasuk NPC Alun-alun) yang ada didalam peladen akan terbunuh jika kamu tidak memasukkan nama atau ID."
|
||||
msgstr "Semua NPC yang hidup (termasuk NPC kota) yang ada didalam server akan terbunuh jika kamu tidak memasukkan nama atau ID."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2622
|
||||
msgid "all bosses"
|
||||
|
|
@ -1374,12 +1374,12 @@ msgstr "Ban Add sintaks"
|
|||
#: ../../TShockAPI/Commands.cs:1486
|
||||
#, csharp-format
|
||||
msgid "Ban added. Ticket Number {0} was created for identifier {1}."
|
||||
msgstr "Pemblokiran telah ditambahkan. Nomor karcis {0} telah dibuat untuk pengidentifikasian {1}."
|
||||
msgstr "Pemblokiran telah ditambahkan. Nomor tiket {0} telah dibuat untuk pengidentifikasian {1}."
|
||||
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:668
|
||||
#, csharp-format
|
||||
msgid "Ban added. Ticket number: {0}"
|
||||
msgstr "Pemblokiran telah ditambahkan. Nomor karcis: {0}"
|
||||
msgstr "Pemblokiran telah ditambahkan. Nomor Tiket: {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1392
|
||||
msgid "Ban Del Syntax"
|
||||
|
|
@ -1399,12 +1399,12 @@ msgstr "Pemblokiran telah dihilangkan."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1438
|
||||
msgid "Ban Usage Examples"
|
||||
msgstr "Contoh Pemblokiran Penggunaan"
|
||||
msgstr "Contoh Penggunaan Pemblokiran"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3837
|
||||
#, csharp-format
|
||||
msgid "Banned {0}."
|
||||
msgstr "Pemblokiran {0}."
|
||||
msgstr "{0} telah diblokir."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4033
|
||||
#, csharp-format
|
||||
|
|
|
|||
6610
i18n/pl_PL/TShockAPI.po
Normal file
6610
i18n/pl_PL/TShockAPI.po
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: tshock\n"
|
||||
"POT-Creation-Date: 2022-10-31 22:50:21+0000\n"
|
||||
"PO-Revision-Date: 2022-10-31 23:36\n"
|
||||
"PO-Revision-Date: 2022-11-07 08:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -50,37 +50,37 @@ msgstr " 'palm', 'corruptpalm', 'crimsonpalm', 'hallowpalm'."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6496
|
||||
msgid " 'topaz', 'amethyst', 'sapphire', 'emerald', 'ruby', 'diamond', 'amber'."
|
||||
msgstr ""
|
||||
msgstr " 'topaz', 'amethyst', 'sapphire', 'emerald', 'ruby', 'diamond', 'amber'."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1442
|
||||
#, csharp-format
|
||||
msgid " {0}{1} \"{2}\" (Find the IP associated with the offline target's account)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} \"{2}\" (Находит IP связанный с оффлайн аккаунтом)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1440
|
||||
#, csharp-format
|
||||
msgid " {0}{1} \"{2}{3}\" {4} {5} (Permanently bans this account name)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} \"{2}{3}\" {4} {5} (Навсегда банит имя этого аккаунта)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1445
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2} (Find the player index for the target)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} {2} (Находит индекс указанного игрока)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1446
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2}{3} {4} {5} (Permanently bans the online player by Account, UUID, and IP)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} {2}{3} {4} {5} (Навсегда банит игрока, находящегося на сервере, по учетной записи, UUID и IP)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1443
|
||||
#, csharp-format
|
||||
msgid " {0}{1} {2}{3} {4} {5} (Permanently bans this IP address)"
|
||||
msgstr ""
|
||||
msgstr " {0}{1} \"{2}{3}\" {4} {5} (Навсегда банит этот IP адрес)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1382
|
||||
#, csharp-format
|
||||
msgid " Eg a value of {0} would represent 10 days, 30 minutes, 0 seconds."
|
||||
msgstr ""
|
||||
msgstr " Например, {0} будет представлять собой 10 дней, 30 минут, 0 секунд."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1386
|
||||
#, csharp-format
|
||||
|
|
@ -89,7 +89,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1383
|
||||
msgid " If no duration is provided, the ban will be permanent."
|
||||
msgstr ""
|
||||
msgstr " Если продолжительность не указана, бан будет постоянным"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1385
|
||||
#, csharp-format
|
||||
|
|
@ -123,23 +123,23 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1439
|
||||
msgid "- Ban an offline player by account name"
|
||||
msgstr ""
|
||||
msgstr "- Забанить оффлайн игрока по имени аккаунта"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1441
|
||||
msgid "- Ban an offline player by IP address"
|
||||
msgstr ""
|
||||
msgstr "- Забанить оффлайн игрока по IP-адресу"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1444
|
||||
msgid "- Ban an online player by index (Useful for hard to type names)"
|
||||
msgstr ""
|
||||
msgstr "- Забанить онлайн игрока по индексу (Полезно для сложно вводимых ников)"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6491
|
||||
msgid "- Default trees :"
|
||||
msgstr ""
|
||||
msgstr "- Деревья по умолчанию:"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6495
|
||||
msgid "- Gem trees :"
|
||||
msgstr ""
|
||||
msgstr "- Самоцветные деревья:"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1402
|
||||
msgid "- Lists active bans. Color trends towards green as the ban approaches expiration"
|
||||
|
|
@ -151,12 +151,12 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6493
|
||||
msgid "- Palm trees :"
|
||||
msgstr ""
|
||||
msgstr "- Пальмовые деревья:"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6405
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid buff ID!"
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" не является допустимым ID эффекта!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5902
|
||||
#, csharp-format
|
||||
|
|
@ -166,7 +166,7 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:6022
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid NPC."
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" не является допустимым NPC."
|
||||
|
||||
#: ../../TShockAPI/PaginationTools.cs:283
|
||||
#, csharp-format
|
||||
|
|
@ -176,7 +176,7 @@ msgstr "\"{0}\" не является правильным номером стр
|
|||
#: ../../TShockAPI/Commands.cs:5822
|
||||
#, csharp-format
|
||||
msgid "\"{0}\" is not a valid radius."
|
||||
msgstr ""
|
||||
msgstr "\"{0}\" не является корректным радиусом."
|
||||
|
||||
#: ../../TShockAPI/Rest/SecureRest.cs:213
|
||||
#, csharp-format
|
||||
|
|
@ -225,7 +225,7 @@ msgstr "{0} ({1}) сделал {2} или больше неудачных поп
|
|||
#: ../../TShockAPI/TShock.cs:1645
|
||||
#, csharp-format
|
||||
msgid "{0} ({1}) has joined."
|
||||
msgstr ""
|
||||
msgstr "{0} ({1}) присоединился."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5350
|
||||
#, csharp-format
|
||||
|
|
@ -240,18 +240,18 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:1401
|
||||
#, csharp-format
|
||||
msgid "{0} [{1}]"
|
||||
msgstr ""
|
||||
msgstr "{0} [{1}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6007
|
||||
#, csharp-format
|
||||
msgid "{0} [{1}|{2}]"
|
||||
msgstr ""
|
||||
msgstr "{0} [{1}|{2}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1458
|
||||
#: ../../TShockAPI/Commands.cs:1459
|
||||
#, csharp-format
|
||||
msgid "{0} {1}"
|
||||
msgstr ""
|
||||
msgstr "{0} {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1463
|
||||
#, csharp-format
|
||||
|
|
@ -261,7 +261,7 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:1477
|
||||
#, csharp-format
|
||||
msgid "{0} {1} ({2})"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} ({2})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5324
|
||||
#, csharp-format
|
||||
|
|
@ -427,22 +427,22 @@ msgstr[3] ""
|
|||
#: ../../TShockAPI/Commands.cs:1883
|
||||
#, csharp-format
|
||||
msgid "{0} disabled halloween mode."
|
||||
msgstr ""
|
||||
msgstr "{0} отключил режим Хэллоуин."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1903
|
||||
#, csharp-format
|
||||
msgid "{0} disabled xmas mode."
|
||||
msgstr ""
|
||||
msgstr "{0} отключил рождественский режим."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1881
|
||||
#, csharp-format
|
||||
msgid "{0} enabled halloween mode."
|
||||
msgstr ""
|
||||
msgstr "{0} включил режим Хэллоуин."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1901
|
||||
#, csharp-format
|
||||
msgid "{0} enabled xmas mode."
|
||||
msgstr ""
|
||||
msgstr "{0} включил рождественский режим."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2465
|
||||
#, csharp-format
|
||||
|
|
@ -538,37 +538,37 @@ msgstr "{0} завершил событие «Армия Древних»."
|
|||
#: ../../TShockAPI/TShock.cs:1652
|
||||
#, csharp-format
|
||||
msgid "{0} has joined."
|
||||
msgstr ""
|
||||
msgstr "{0} присоединился."
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:1656
|
||||
#, csharp-format
|
||||
msgid "{0} has joined. IP: {1}"
|
||||
msgstr ""
|
||||
msgstr "{0} присоединился. IP: {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5651
|
||||
#, csharp-format
|
||||
msgid "{0} has launched {1} into space."
|
||||
msgstr ""
|
||||
msgstr "{0} запустил {1} в космос."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5649
|
||||
#, csharp-format
|
||||
msgid "{0} has launched herself into space."
|
||||
msgstr ""
|
||||
msgstr "{0} запустила себя в космос."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5647
|
||||
#, csharp-format
|
||||
msgid "{0} has launched himself into space."
|
||||
msgstr ""
|
||||
msgstr "{0} запустил себя в космос."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5496
|
||||
#, csharp-format
|
||||
msgid "{0} has muted {1} for {2}."
|
||||
msgstr ""
|
||||
msgstr "{0} заглушил {1} за {2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5995
|
||||
#, csharp-format
|
||||
msgid "{0} has respawned you."
|
||||
msgstr ""
|
||||
msgstr "{0} возродил вас."
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3545
|
||||
#, csharp-format
|
||||
|
|
@ -657,7 +657,7 @@ msgstr "{0} уже разрешено использовать снаряд {1}.
|
|||
#: ../../TShockAPI/Commands.cs:5936
|
||||
#, csharp-format
|
||||
msgid "{0} is already dead!"
|
||||
msgstr ""
|
||||
msgstr "{0} уже мертв!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3952
|
||||
#, csharp-format
|
||||
|
|
@ -677,12 +677,12 @@ msgstr "{0} уже запрещено использовать снаряд {1}.
|
|||
#: ../../TShockAPI/ItemBans.cs:234
|
||||
#, csharp-format
|
||||
msgid "{0} is banned! Remove it!"
|
||||
msgstr ""
|
||||
msgstr "{0} заблокирован! Удалите его!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6744
|
||||
#, csharp-format
|
||||
msgid "{0} is no longer in god mode."
|
||||
msgstr ""
|
||||
msgstr "{0} больше не в режиме бога."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5542
|
||||
#: ../../TShockAPI/Commands.cs:5573
|
||||
|
|
@ -699,12 +699,12 @@ msgstr "{0} не забанен."
|
|||
#: ../../TShockAPI/Commands.cs:5986
|
||||
#, csharp-format
|
||||
msgid "{0} is not dead!"
|
||||
msgstr ""
|
||||
msgstr "{0} не мертв!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6743
|
||||
#, csharp-format
|
||||
msgid "{0} is now in god mode."
|
||||
msgstr ""
|
||||
msgstr "{0} перешел в режим бога."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5582
|
||||
#, csharp-format
|
||||
|
|
@ -725,7 +725,7 @@ msgstr "{0} кикнул {1} по причине: '{2}'"
|
|||
#: ../../TShockAPI/Commands.cs:5742
|
||||
#, csharp-format
|
||||
msgid "{0} launched fireworks on you."
|
||||
msgstr ""
|
||||
msgstr "{0} запустил в вас фейерверк."
|
||||
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:847
|
||||
#, csharp-format
|
||||
|
|
@ -749,7 +749,7 @@ msgstr "{0} осталось."
|
|||
#: ../../TShockAPI/Commands.cs:6192
|
||||
#, csharp-format
|
||||
msgid "{0} renamed the {1}."
|
||||
msgstr ""
|
||||
msgstr "{0} переименовал {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4570
|
||||
#, csharp-format
|
||||
|
|
@ -860,42 +860,42 @@ msgstr "{0} успешно удалил аккаунт: {1}."
|
|||
#: ../../TShockAPI/GetDataHandlers.cs:3557
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Blood Moon!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал Кровавую Луну!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3569
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a frost moon!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал ледяную луну!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3581
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Goblin Invasion!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал Вторжение Гоблинов!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3563
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Martian invasion!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал Вторжение Марсиан!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3560
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Moon Lord!"
|
||||
msgstr ""
|
||||
msgstr "{0} призвал Лунного Лорда!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3572
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a pumpkin moon!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал тыквенную луну!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3566
|
||||
#, csharp-format
|
||||
msgid "{0} summoned an eclipse!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал затмение!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3584
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the {1}!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал {1}!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:2977
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:2980
|
||||
|
|
@ -906,12 +906,12 @@ msgstr ""
|
|||
#: ../../TShockAPI/GetDataHandlers.cs:3575
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the Pirates!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал Пиратов!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3578
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the Snow Legion!"
|
||||
msgstr ""
|
||||
msgstr "{0} вызвал Снежный Легион!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3000
|
||||
#: ../../TShockAPI/Commands.cs:3040
|
||||
|
|
@ -933,7 +933,7 @@ msgstr "{0} телепортировал вас к {1}."
|
|||
#: ../../TShockAPI/Commands.cs:690
|
||||
#, csharp-format
|
||||
msgid "{0} tried to execute (args omitted) {1}{2}."
|
||||
msgstr ""
|
||||
msgstr "{0} пытался выполнить (аргументы опущены) {1}{2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:688
|
||||
#, csharp-format
|
||||
|
|
@ -953,7 +953,7 @@ msgstr "{0} переместил вас к {1}."
|
|||
#: ../../TShockAPI/TSPlayer.cs:1953
|
||||
#, csharp-format
|
||||
msgid "{0} was banned for '{1}'."
|
||||
msgstr ""
|
||||
msgstr "{0} был забанен за '{1}'."
|
||||
|
||||
#: ../../TShockAPI/TSPlayer.cs:1924
|
||||
#, csharp-format
|
||||
|
|
@ -1019,7 +1019,7 @@ msgstr "{0}login <username> <password> - Авторизует вас, испол
|
|||
#: ../../TShockAPI/Commands.cs:5409
|
||||
#, csharp-format
|
||||
msgid "{0}user add <username> <password> owner"
|
||||
msgstr ""
|
||||
msgstr "{0}user add <username> <password> owner"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1201
|
||||
#, csharp-format
|
||||
|
|
@ -1044,7 +1044,7 @@ msgstr "{0}user password \"никнейм игрока\" пароль -- Изм
|
|||
#: ../../TShockAPI/Commands.cs:5426
|
||||
#, csharp-format
|
||||
msgid "*{0} {1}"
|
||||
msgstr ""
|
||||
msgstr "*{0} {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1609
|
||||
#, csharp-format
|
||||
|
|
@ -1054,7 +1054,7 @@ msgstr "#{0} - Вы были забанены: {1}."
|
|||
#: ../../TShockAPI/Commands.cs:5442
|
||||
#, csharp-format
|
||||
msgid "<{0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<{0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5546
|
||||
#: ../../TShockAPI/Commands.cs:5577
|
||||
|
|
@ -1143,7 +1143,7 @@ msgstr "Аккаунт успешно удалён."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:2090
|
||||
msgid "Active REST Users ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Активные пользователи REST ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3967
|
||||
msgid "add <item> - Adds an item ban."
|
||||
|
|
@ -1197,7 +1197,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6009
|
||||
msgid "All alive NPCs (excluding town NPCs) on the server will be killed if you do not input a name or ID."
|
||||
msgstr ""
|
||||
msgstr "Все живые неигровые персонажи (за исключением городских) на сервере будут убиты, если вы не введете имя или ID."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2622
|
||||
msgid "all bosses"
|
||||
|
|
@ -1234,15 +1234,15 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6663
|
||||
msgid "Amber Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Янтарное дерево"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6643
|
||||
msgid "Amethyst Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Аметистовое дерево"
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:981
|
||||
msgid "An account has been detected in the user database, but setup-code.txt is still present."
|
||||
msgstr ""
|
||||
msgstr "В базе данных пользователя обнаружена учетная запись, но setup-code.txt до сих пор присутствует."
|
||||
|
||||
#: ../../TShockAPI/DB/GroupManager.cs:474
|
||||
#, csharp-format
|
||||
|
|
@ -1277,7 +1277,7 @@ msgstr "Проверка обновлений добавлена в очеред
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5595
|
||||
msgid "Annoy Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Annoy"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5612
|
||||
#, csharp-format
|
||||
|
|
@ -1368,7 +1368,7 @@ msgstr "Неудачная попытка входа."
|
|||
#: ../../TShockAPI/Commands.cs:1367
|
||||
#, csharp-format
|
||||
msgid "ban {0}"
|
||||
msgstr ""
|
||||
msgstr "ban {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1366
|
||||
#: ../../TShockAPI/Commands.cs:1368
|
||||
|
|
@ -1393,7 +1393,7 @@ msgstr "Бан {0} был отмечен как истекший."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1379
|
||||
msgid "Ban Add Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Ban Add"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1486
|
||||
#, csharp-format
|
||||
|
|
@ -1407,15 +1407,15 @@ msgstr "Бан добавлен. Номер тикета: {0}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1392
|
||||
msgid "Ban Del Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Ban Del"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1408
|
||||
msgid "Ban Details Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Ban Details"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1400
|
||||
msgid "Ban List Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Ban List"
|
||||
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:695
|
||||
msgid "Ban removed."
|
||||
|
|
@ -1423,7 +1423,7 @@ msgstr "Бан снят."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1438
|
||||
msgid "Ban Usage Examples"
|
||||
msgstr ""
|
||||
msgstr "Примеры использования ban"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3837
|
||||
#, csharp-format
|
||||
|
|
@ -1443,7 +1443,7 @@ msgstr "Блок {0} заблокирован."
|
|||
#: ../../TShockAPI/TSPlayer.cs:1950
|
||||
#, csharp-format
|
||||
msgid "Banned: {0}"
|
||||
msgstr ""
|
||||
msgstr "Забанен: {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1513
|
||||
msgid "Banned."
|
||||
|
|
@ -1451,7 +1451,7 @@ msgstr "Забанен."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:1666
|
||||
msgid "Bans ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Баны ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6585
|
||||
msgid "Basic Tree"
|
||||
|
|
@ -1469,11 +1469,11 @@ msgstr "Кровавая Луна была установлена на {0}"
|
|||
#: ../../TShockAPI/Rest/RestManager.cs:904
|
||||
#, csharp-format
|
||||
msgid "Bloodmoon state: {0}"
|
||||
msgstr ""
|
||||
msgstr "Состояние Кровавой Луны: {0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6589
|
||||
msgid "Boreal Tree"
|
||||
msgstr ""
|
||||
msgstr "Заснеженное дерево"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1447
|
||||
#, csharp-format
|
||||
|
|
@ -2417,11 +2417,11 @@ msgstr "Объявляет сообщение на весь сервер."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6363
|
||||
msgid "Buff Syntax and Example"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис и пример Buff"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6006
|
||||
msgid "Butcher Syntax and Example"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис и пример Butcher"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:2619
|
||||
msgid "Bypass SSC is enabled for your account. SSC data will not be loaded or saved."
|
||||
|
|
@ -2429,7 +2429,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6669
|
||||
msgid "Cactus"
|
||||
msgstr ""
|
||||
msgstr "Кактус"
|
||||
|
||||
#: ../../TShockAPI/DB/IQueryBuilder.cs:319
|
||||
msgid "Can't set to true SqlColumn.DefaultCurrentTimestamp when the MySqlDbType is not DateTime"
|
||||
|
|
@ -2494,11 +2494,11 @@ msgstr "Проверяет наличие обновлений TShock."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5182
|
||||
msgid "clear - Clears the temporary region points."
|
||||
msgstr ""
|
||||
msgstr "clear - очищает временные точки региона."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5810
|
||||
msgid "Clear Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Clear"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2527
|
||||
msgid "Cleared all users from the angler quest completion list for today."
|
||||
|
|
@ -2523,7 +2523,7 @@ msgstr "Не удалось выполнить команду, проверьт
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5256
|
||||
msgid "Commands ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Команды ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3199
|
||||
msgid "Commands: add, del, hide, list, send, [warpname]."
|
||||
|
|
@ -2540,7 +2540,7 @@ msgstr "Правильное использование: {0}overridessc|{0}ossc
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6634
|
||||
msgid "Corruption Palm"
|
||||
msgstr ""
|
||||
msgstr "Искаженная пальма"
|
||||
|
||||
#: ../../TShockAPI/DB/BanManager.cs:82
|
||||
#: ../../TShockAPI/DB/ResearchDatastore.cs:54
|
||||
|
|
@ -2559,17 +2559,17 @@ msgstr "Не удалось найти варп с названием {0} для
|
|||
#: ../../TShockAPI/Commands.cs:5968
|
||||
#, csharp-format
|
||||
msgid "Could not find any player named \"{0}\""
|
||||
msgstr ""
|
||||
msgstr "Не удалось найти игрока с именем \"{0}\""
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5924
|
||||
#, csharp-format
|
||||
msgid "Could not find any player named \"{0}\"."
|
||||
msgstr ""
|
||||
msgstr "Не удалось найти игрока с именем \"{0}\"."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5467
|
||||
#, csharp-format
|
||||
msgid "Could not find any players named \"{0}\""
|
||||
msgstr ""
|
||||
msgstr "Не удалось найти игроков по имени \"{0}\""
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1930
|
||||
#, csharp-format
|
||||
|
|
@ -2583,7 +2583,7 @@ msgstr "Не удалось найти игрока {0}."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5040
|
||||
msgid "Could not find specified region"
|
||||
msgstr ""
|
||||
msgstr "Не удалось найти указанный регион"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3287
|
||||
msgid "Could not find specified warp."
|
||||
|
|
@ -2608,7 +2608,7 @@ msgstr "Не удалось найти указанную цель. Провер
|
|||
#: ../../TShockAPI/Commands.cs:6196
|
||||
#, csharp-format
|
||||
msgid "Could not rename {0}!"
|
||||
msgstr ""
|
||||
msgstr "Не удалось переименовать {0}!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:595
|
||||
msgid "Creates a reference tables for Terraria data types and the TShock permission system in the server folder."
|
||||
|
|
@ -2629,7 +2629,7 @@ msgstr "CreativeUnlocksHandler получил нестандартный зап
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6629
|
||||
msgid "Crimson Palm"
|
||||
msgstr ""
|
||||
msgstr "Багровая пальма"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4430
|
||||
#, csharp-format
|
||||
|
|
@ -2699,7 +2699,7 @@ msgstr "Обнаружено, что DOOM был включен."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6659
|
||||
msgid "Diamond Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Алмазное дерево"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1877
|
||||
msgid "Disabled halloween mode."
|
||||
|
|
@ -2744,7 +2744,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6651
|
||||
msgid "Emerald Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Изумрудное дерево"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1875
|
||||
msgid "Enabled halloween mode."
|
||||
|
|
@ -2765,7 +2765,7 @@ msgstr "Ошибка перезагрузки групп: {0}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5115
|
||||
msgid "Error: both names are the same."
|
||||
msgstr ""
|
||||
msgstr "Ошибка: оба имени совпадают."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2773
|
||||
msgid "Everscream"
|
||||
|
|
@ -2869,7 +2869,7 @@ msgstr "Ошибка при переименовании группы {0}."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5141
|
||||
msgid "Failed to rename the region."
|
||||
msgstr ""
|
||||
msgstr "Не удалось переименовать регион"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2665
|
||||
msgid "Failed to shade polygon normals."
|
||||
|
|
@ -2899,7 +2899,7 @@ msgstr "FetchHashedPasswordAndGroup SQL выдал ошибку: {0}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5679
|
||||
msgid "Firework Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Firework"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1940
|
||||
msgid "For example, 1d and 10h-30m+2m are both valid time strings, but 2 is not."
|
||||
|
|
@ -2949,7 +2949,7 @@ msgstr "GetUser SQL выдал ошибку {0}"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6413
|
||||
msgid "Give Buff Syntax and Example"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис и пример Gbuff"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:541
|
||||
msgid "Gives another player a buff or debuff for an amount of time. Putting -1 for time will set it to 415 days."
|
||||
|
|
@ -3076,11 +3076,11 @@ msgstr "Группа {0} успешно добавлена."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:3450
|
||||
msgid "Group Sub-Commands ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Подкоманды группы ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3741
|
||||
msgid "Groups ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Группы ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:476
|
||||
msgid "Grows plants at your location."
|
||||
|
|
@ -3104,7 +3104,7 @@ msgstr "Режим Hardmode включен."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6303
|
||||
msgid "Heal Syntax and Example"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис и пример Heal"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2082
|
||||
msgid "HealOtherPlayer cheat attempt!"
|
||||
|
|
@ -3279,7 +3279,7 @@ msgstr "Недопустимый тип босса!"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6463
|
||||
msgid "Invalid buff ID!"
|
||||
msgstr ""
|
||||
msgstr "Неверный ID эффекта!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:652
|
||||
#: ../../TShockAPI/Commands.cs:680
|
||||
|
|
@ -3289,7 +3289,7 @@ msgstr "Введена неправильная команда. Введите {
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5271
|
||||
msgid "Invalid command."
|
||||
msgstr ""
|
||||
msgstr "Неверная команда"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3127
|
||||
msgid "Invalid destination NPC."
|
||||
|
|
@ -3330,7 +3330,7 @@ msgstr "Недопустимый тип нашествия. Допустимые
|
|||
#: ../../TShockAPI/Commands.cs:6228
|
||||
#: ../../TShockAPI/Commands.cs:6291
|
||||
msgid "Invalid item type!"
|
||||
msgstr ""
|
||||
msgstr "Неверный тип предмета!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3803
|
||||
#: ../../TShockAPI/Commands.cs:3854
|
||||
|
|
@ -3380,7 +3380,7 @@ msgstr "Неверный пароль."
|
|||
#: ../../TShockAPI/Commands.cs:6259
|
||||
#: ../../TShockAPI/Commands.cs:6711
|
||||
msgid "Invalid player!"
|
||||
msgstr ""
|
||||
msgstr "Неверный игрок!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1251
|
||||
msgid "Invalid player."
|
||||
|
|
@ -3403,7 +3403,7 @@ msgstr "Недопустимая волна тыквенной луны."
|
|||
#: ../../TShockAPI/Commands.cs:5123
|
||||
#, csharp-format
|
||||
msgid "Invalid region \"{0}\"."
|
||||
msgstr ""
|
||||
msgstr "Неверный регион \"{0}\"."
|
||||
|
||||
#: ../../TShockAPI/Rest/Rest.cs:247
|
||||
#, csharp-format
|
||||
|
|
@ -3860,7 +3860,7 @@ msgstr "Вы исключены по причине: {0}."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5913
|
||||
msgid "Kill syntax and example"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис и пример Kill"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:553
|
||||
msgid "Kills another player."
|
||||
|
|
@ -4058,7 +4058,7 @@ msgstr "Неадекватное поведение."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6210
|
||||
msgid "Missing item name/id."
|
||||
msgstr ""
|
||||
msgstr "Отсутствует имя/id предмета."
|
||||
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:1268
|
||||
#, csharp-format
|
||||
|
|
@ -4072,7 +4072,7 @@ msgstr "Параметр {0} недопустим или отсутствует"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6215
|
||||
msgid "Missing player name."
|
||||
msgstr ""
|
||||
msgstr "Отсутствует имя игрока."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1233
|
||||
#, csharp-format
|
||||
|
|
@ -4098,7 +4098,7 @@ msgstr "Найдено несколько учетных записей для {
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5457
|
||||
msgid "Mute Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Mute"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1289
|
||||
msgid "N/A"
|
||||
|
|
@ -4124,12 +4124,12 @@ msgstr "Никогда."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6172
|
||||
msgid "New name is too large!"
|
||||
msgstr ""
|
||||
msgstr "Новое имя слишком большое!"
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:849
|
||||
#, csharp-format
|
||||
msgid "New worlds will be generated with the {0} world evil type!"
|
||||
msgstr ""
|
||||
msgstr "Новые миры будут создаваться с {0} типом зла!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1690
|
||||
msgid "No bans found matching the provided ticket number."
|
||||
|
|
@ -4689,7 +4689,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5623
|
||||
msgid "Rocket Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Rocket"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:342
|
||||
msgid "Rockets a player upwards. Requires SSC."
|
||||
|
|
@ -4701,7 +4701,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6597
|
||||
msgid "Sakura Tree"
|
||||
msgstr ""
|
||||
msgstr "Сакура"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2779
|
||||
msgid "Santa-NK1"
|
||||
|
|
@ -4709,7 +4709,7 @@ msgstr "Санта-НК1"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6647
|
||||
msgid "Sapphire Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Сапфировое дерево"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:312
|
||||
msgid "Saves all serverside characters."
|
||||
|
|
@ -5549,7 +5549,7 @@ msgstr "Слишком много неудачных попыток входа
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6639
|
||||
msgid "Topaz Gemtree"
|
||||
msgstr ""
|
||||
msgstr "Топазовое дерево"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1220
|
||||
#, csharp-format
|
||||
|
|
@ -5588,7 +5588,7 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:5295
|
||||
#, csharp-format
|
||||
msgid "TShock: {0} {1}."
|
||||
msgstr ""
|
||||
msgstr "TShock: {0} {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1429
|
||||
#, csharp-format
|
||||
|
|
@ -5769,7 +5769,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:6687
|
||||
msgid "Unknown plant!"
|
||||
msgstr ""
|
||||
msgstr "Неизвестное растение!"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:246
|
||||
msgid "Unrecognized player direction"
|
||||
|
|
@ -5907,17 +5907,17 @@ msgstr "Доступные режимы мира: {0}"
|
|||
#: ../../TShockAPI/Commands.cs:3246
|
||||
#, csharp-format
|
||||
msgid "Warp {0} already exists."
|
||||
msgstr ""
|
||||
msgstr "Варп {0} уже существует."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3282
|
||||
#, csharp-format
|
||||
msgid "Warp {0} is now private."
|
||||
msgstr ""
|
||||
msgstr "Варп {0} теперь приватный."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3284
|
||||
#, csharp-format
|
||||
msgid "Warp {0} is now public."
|
||||
msgstr ""
|
||||
msgstr "Варп {0} теперь публичный."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3242
|
||||
#, csharp-format
|
||||
|
|
@ -5936,11 +5936,11 @@ msgstr "В были телепортированы на варп {0}."
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:3224
|
||||
msgid "Warps ({{0}}/{{1}}):"
|
||||
msgstr ""
|
||||
msgstr "Варпы ({{0}}/{{1}}):"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5514
|
||||
msgid "Whisper Syntax"
|
||||
msgstr ""
|
||||
msgstr "Синтаксис Whisper"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6601
|
||||
msgid "Willow Tree"
|
||||
|
|
@ -5963,16 +5963,16 @@ msgstr "Режим мира изменен на {0}."
|
|||
#: ../../TShockAPI/TShock.cs:803
|
||||
#, csharp-format
|
||||
msgid "World name will be overridden by: {0}"
|
||||
msgstr ""
|
||||
msgstr "Название мира будет изменено на: {0}"
|
||||
|
||||
#: ../../TShockAPI/SaveManager.cs:137
|
||||
#, csharp-format
|
||||
msgid "World saved at ({0})"
|
||||
msgstr ""
|
||||
msgstr "Мир сохранен в ({0})"
|
||||
|
||||
#: ../../TShockAPI/SaveManager.cs:135
|
||||
msgid "World saved."
|
||||
msgstr ""
|
||||
msgstr "Мир сохранен."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4944
|
||||
#, csharp-format
|
||||
|
|
|
|||
1089
i18n/template.pot
1089
i18n/template.pot
File diff suppressed because it is too large
Load diff
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: tshock\n"
|
||||
"POT-Creation-Date: 2022-10-31 22:50:21+0000\n"
|
||||
"PO-Revision-Date: 2022-11-02 04:50\n"
|
||||
"PO-Revision-Date: 2022-11-06 07:13\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: toki pona\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -261,22 +261,22 @@ msgstr "{0} {1} (tan tenpo weka {2})"
|
|||
#: ../../TShockAPI/Commands.cs:1477
|
||||
#, csharp-format
|
||||
msgid "{0} {1} ({2})"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} ({2})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5324
|
||||
#, csharp-format
|
||||
msgid "{0} {1} {2}"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} {2}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1460
|
||||
#, csharp-format
|
||||
msgid "{0} {1} on {2} ({3} ago)"
|
||||
msgstr ""
|
||||
msgstr "{0} {1} lon {2} (weka tenpo {3})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6364
|
||||
#, csharp-format
|
||||
msgid "{0} <\"{1}|{2}\"> [{3}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <\"{1}|{2}\"> [{3}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1393
|
||||
#: ../../TShockAPI/Commands.cs:1409
|
||||
|
|
@ -284,184 +284,184 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:5914
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}>"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}>"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5458
|
||||
#: ../../TShockAPI/Commands.cs:6304
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> [{2}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> [{2}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1380
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> [{2}] [{3}] [{4}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> [{2}] [{3}] [{4}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5680
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> [{2}|{3}|{4}|{5}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> [{2}|{3}|{4}|{5}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5515
|
||||
#: ../../TShockAPI/Commands.cs:5596
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> <{2}>"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> <{2}>"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6414
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}> <{2}|{3}> [{4}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}> <{2}|{3}> [{4}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5811
|
||||
#, csharp-format
|
||||
msgid "{0} <{1}|{2}|{3}> [{4}]"
|
||||
msgstr ""
|
||||
msgstr "{0} <{1}|{2}|{3}> [{4}]"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1102
|
||||
#, csharp-format
|
||||
msgid "{0} added account {1} to group {2}."
|
||||
msgstr ""
|
||||
msgstr "{0} li kama e jan {1} tawa kulupu {2}."
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3554
|
||||
#, csharp-format
|
||||
msgid "{0} applied advanced combat techniques!"
|
||||
msgstr ""
|
||||
msgstr "{0} li kepeken e sona wawa utala!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1060
|
||||
#, csharp-format
|
||||
msgid "{0} attempted to register for the account {1} but it was already taken."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li wile kama jo e nimi {1}. taso jan ante li jo e nimi {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:901
|
||||
#, csharp-format
|
||||
msgid "{0} authenticated successfully as user: {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken kama sijelo {1}."
|
||||
|
||||
#: ../../TShockAPI/TSPlayer.cs:1955
|
||||
#, csharp-format
|
||||
msgid "{0} banned {1} for '{2}'."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e {1} tan ni: {2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6047
|
||||
#, csharp-format
|
||||
msgid "{0} butchered {1} NPC."
|
||||
msgid_plural "{0} butchered {1} NPCs."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
msgstr[0] "jan {0} li moli e ijo wan."
|
||||
msgstr[1] "jan {0} li moli e ijo tu."
|
||||
msgstr[2] "jan {0} li moli e ijo pi luka {1}."
|
||||
msgstr[3] "jan {0} li moli e ijo pi mute {1}."
|
||||
msgstr[4] "jan {0} li moli e ijo {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2458
|
||||
#, csharp-format
|
||||
msgid "{0} caused it to rain slime."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li open e telo sewi ko."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2473
|
||||
#, csharp-format
|
||||
msgid "{0} caused it to rain."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li open e telo sewi."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1176
|
||||
#, csharp-format
|
||||
msgid "{0} changed account {1} to group {2}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e sijelo {1} tawa kulupu {2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4462
|
||||
#, csharp-format
|
||||
msgid "{0} changed the maximum spawns to {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e nanpa sewi monsuta tawa {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4443
|
||||
#, csharp-format
|
||||
msgid "{0} changed the maximum spawns to 5."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e nanpa sewi monsuta tawa 5."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1150
|
||||
#, csharp-format
|
||||
msgid "{0} changed the password for account {1}"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e nimi len tawa sijelo {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4501
|
||||
#, csharp-format
|
||||
msgid "{0} changed the spawn rate to {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e wawa pi kama monsuta tawa {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4483
|
||||
#, csharp-format
|
||||
msgid "{0} changed the spawn rate to 600."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e wawa pi kama monsuta tawa 600."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4635
|
||||
#, csharp-format
|
||||
msgid "{0} changed the wind speed to {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e wawa kon tawa {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5849
|
||||
#, csharp-format
|
||||
msgid "{0} deleted {1} item within a radius of {2}."
|
||||
msgid_plural "{0} deleted {1} items within a radius of {2}."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
msgstr[0] "jan {0} li weka e ijo wan lon sike pi suli {2}."
|
||||
msgstr[1] "jan {0} li weka e ijo tu lon sike pi suli {2}."
|
||||
msgstr[2] "jan {0} li weka e ijo pi luka {1} lon sike pi suli {2}."
|
||||
msgstr[3] "jan {0} li weka e ijo pi mute {1} lon sike pi suli {2}."
|
||||
msgstr[4] "jan {0} li weka e ijo pi luka {1} lon sike pi suli {2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5873
|
||||
#, csharp-format
|
||||
msgid "{0} deleted {1} NPC within a radius of {2}."
|
||||
msgid_plural "{0} deleted {1} NPCs within a radius of {2}."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
msgstr[0] "jan {0} li weka e ijo tawa wan lon sike pi suli {2}."
|
||||
msgstr[1] "jan {0} li weka e ijo tawa tu lon sike pi suli {2}."
|
||||
msgstr[2] "jan {0} li weka e ijo tawa pi luka {1} lon sike pi suli {2}."
|
||||
msgstr[3] "jan {0} li weka e ijo tawa pi mute {1} lon sike pi suli {2}."
|
||||
msgstr[4] "jan {0} li weka e ijo tawa pi mute {1} lon sike pi suli {2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5898
|
||||
#, csharp-format
|
||||
msgid "{0} deleted {1} projectile within a radius of {2}."
|
||||
msgid_plural "{0} deleted {1} projectiles within a radius of {2}."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
msgstr[0] "jan {0} li weka e ijo utala wan lon sike pi suli {2}."
|
||||
msgstr[1] "jan {0} li weka e ijo utala tu lon sike pi suli {2}."
|
||||
msgstr[2] "jan {0} li weka e ijo utala pi luka {1} lon sike pi suli {2}."
|
||||
msgstr[3] "jan {0} li weka e ijo utala pi mute {1} lon sike pi suli {2}."
|
||||
msgstr[4] "jan {0} li weka e ijo utala pi mute {1} lon sike pi suli {2}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1883
|
||||
#, csharp-format
|
||||
msgid "{0} disabled halloween mode."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e musi Alowin."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1903
|
||||
#, csharp-format
|
||||
msgid "{0} disabled xmas mode."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e musi pi suno Jesuwa."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1881
|
||||
#, csharp-format
|
||||
msgid "{0} enabled halloween mode."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e musi Alowin."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1901
|
||||
#, csharp-format
|
||||
msgid "{0} enabled xmas mode."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e musi pi suno Jesuwa."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2465
|
||||
#, csharp-format
|
||||
msgid "{0} ended the rain."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e telo sewi."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2450
|
||||
#, csharp-format
|
||||
msgid "{0} ended the slime rain."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e telo sewi ko."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:706
|
||||
#, csharp-format
|
||||
msgid "{0} executed (args omitted): {1}{2}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kepeken (toki li weka): {1}{2}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:704
|
||||
#, csharp-format
|
||||
|
|
@ -471,79 +471,79 @@ msgstr "jan {0} li kepeken {1}{2}."
|
|||
#: ../../TShockAPI/Commands.cs:926
|
||||
#, csharp-format
|
||||
msgid "{0} failed to authenticate as user: {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken ala kama tawa sijelo {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6275
|
||||
#, csharp-format
|
||||
msgid "{0} gave you {1} {2}."
|
||||
msgid_plural "{0} gave you {1} {2}s."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[3] ""
|
||||
msgstr[4] ""
|
||||
msgstr[0] "jan {0} li pana e {2} wan tawa sina."
|
||||
msgstr[1] "jan {0} li pana e {2} tu tawa sina."
|
||||
msgstr[2] "jan {0} li pana e {2} pi luka {1} tawa sina."
|
||||
msgstr[3] "jan {0} li pana e {2} pi mute {1} tawa sina."
|
||||
msgstr[4] "jan {0} li pana e {2} pi mute {1} tawa sina."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4243
|
||||
#, csharp-format
|
||||
msgid "{0} has been allowed to place tile {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken pana e leko {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3877
|
||||
#, csharp-format
|
||||
msgid "{0} has been allowed to use {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken kepeken {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4067
|
||||
#, csharp-format
|
||||
msgid "{0} has been allowed to use projectile {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken kepeken utala tawa {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4301
|
||||
#, csharp-format
|
||||
msgid "{0} has been disallowed from placing tile {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken ala pana e leko {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4125
|
||||
#, csharp-format
|
||||
msgid "{0} has been disallowed from using projectile {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken ala kepeken utala tawa {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3948
|
||||
#, csharp-format
|
||||
msgid "{0} has been disallowed to use {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ken ala kepeken {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6460
|
||||
#, csharp-format
|
||||
msgid "{0} has buffed you with {1} ({2}) for {3} seconds!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li wawa e sina kepeken {1} ({2}) tawa tenpo lili {3}!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1182
|
||||
#, csharp-format
|
||||
msgid "{0} has changed your group to {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li ante e kulupu sina tawa kulupu {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2945
|
||||
#: ../../TShockAPI/Commands.cs:3016
|
||||
#: ../../TShockAPI/Commands.cs:3022
|
||||
#, csharp-format
|
||||
msgid "{0} has disabled incoming teleports."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e tawa wawa kama."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2408
|
||||
#, csharp-format
|
||||
msgid "{0} has ended the current invasion event."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e utala suli lon."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2404
|
||||
#, csharp-format
|
||||
msgid "{0} has ended the Old One's Army event."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e utala suli pi ijo majuna."
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:1652
|
||||
#, csharp-format
|
||||
msgid "{0} has joined."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama lon."
|
||||
|
||||
#: ../../TShockAPI/TShock.cs:1656
|
||||
#, csharp-format
|
||||
|
|
@ -705,7 +705,7 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:5986
|
||||
#, csharp-format
|
||||
msgid "{0} is not dead!"
|
||||
msgstr ""
|
||||
msgstr "{0} li moli ala a!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6743
|
||||
#, csharp-format
|
||||
|
|
@ -863,85 +863,85 @@ msgstr ""
|
|||
#: ../../TShockAPI/Commands.cs:1128
|
||||
#, csharp-format
|
||||
msgid "{0} successfully deleted account: {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka e sijelo {1}."
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3557
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Blood Moon!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e mun loje!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3569
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a frost moon!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e mun lete!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3581
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Goblin Invasion!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e utala suli pi jan mani!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3563
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Martian invasion!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e utala suli pi jan tan ma ante!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3560
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a Moon Lord!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e lawa mun!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3572
|
||||
#, csharp-format
|
||||
msgid "{0} summoned a pumpkin moon!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e mun pi kasi loje!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3566
|
||||
#, csharp-format
|
||||
msgid "{0} summoned an eclipse!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e suno pake!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3584
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the {1}!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e {1}!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:2977
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:2980
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the Empress of Light!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e sewi suno!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3575
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the Pirates!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e jan jasima telo!"
|
||||
|
||||
#: ../../TShockAPI/GetDataHandlers.cs:3578
|
||||
#, csharp-format
|
||||
msgid "{0} summoned the Snow Legion!"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e utala suli lete!"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3000
|
||||
#: ../../TShockAPI/Commands.cs:3040
|
||||
#, csharp-format
|
||||
msgid "{0} teleported {1} to you."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li tawa e jan {1} tawa sina."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2952
|
||||
#, csharp-format
|
||||
msgid "{0} teleported to you."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li tawa sina."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2993
|
||||
#: ../../TShockAPI/Commands.cs:3033
|
||||
#, csharp-format
|
||||
msgid "{0} teleported you to {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li tawa e sina tawa jan {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:690
|
||||
#, csharp-format
|
||||
msgid "{0} tried to execute (args omitted) {1}{2}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li wile kepeken (toki li weka): {1}{2}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:688
|
||||
#, csharp-format
|
||||
|
|
@ -951,167 +951,167 @@ msgstr "jan {0} li wile kepeken {1}{2}. taso ona li ken ala."
|
|||
#: ../../TShockAPI/Commands.cs:2251
|
||||
#, csharp-format
|
||||
msgid "{0} triggered a meteor."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li kama e kiwen mun anpa."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3324
|
||||
#, csharp-format
|
||||
msgid "{0} warped you to {1}."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li tawa e sina tawa ma {1}."
|
||||
|
||||
#: ../../TShockAPI/TSPlayer.cs:1953
|
||||
#, csharp-format
|
||||
msgid "{0} was banned for '{1}'."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka awen tan ni: {1}."
|
||||
|
||||
#: ../../TShockAPI/TSPlayer.cs:1924
|
||||
#, csharp-format
|
||||
msgid "{0} was kicked for '{1}'"
|
||||
msgstr ""
|
||||
msgstr "jan {0} li weka tan ni: {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2998
|
||||
#: ../../TShockAPI/Commands.cs:3038
|
||||
#, csharp-format
|
||||
msgid "{0} was teleported to you."
|
||||
msgstr ""
|
||||
msgstr "jan {0} li tawa sina."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1292
|
||||
#, csharp-format
|
||||
msgid "{0}'s group is {1}."
|
||||
msgstr ""
|
||||
msgstr "kulupu pi jan {0} li {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1293
|
||||
#, csharp-format
|
||||
msgid "{0}'s last known IP is {1}."
|
||||
msgstr ""
|
||||
msgstr "nanpa IP sona pi jan {0} li {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1282
|
||||
#, csharp-format
|
||||
msgid "{0}'s last login occurred {1} {2} UTC{3}."
|
||||
msgstr ""
|
||||
msgstr "kama sijelo pi jan {0} li lon tenpo {1} {2} UTC{3}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1294
|
||||
#, csharp-format
|
||||
msgid "{0}'s register date is {1} {2} UTC{3}."
|
||||
msgstr ""
|
||||
msgstr "kama lon pi sijelo sin pi jan {0} li lon tenpo {1} {2} UTC{3}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5774
|
||||
#, csharp-format
|
||||
msgid "{0}{1} defines no aliases."
|
||||
msgstr ""
|
||||
msgstr "{0}{1} li jo ala e nimi ante."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5280
|
||||
#, csharp-format
|
||||
msgid "{0}{1} help: "
|
||||
msgstr ""
|
||||
msgstr "{0}{1} sona: "
|
||||
|
||||
#: ../../TShockAPI/Utils.cs:1066
|
||||
#, csharp-format
|
||||
msgid "{0}{1}/{2} on {3} @ {4}:{5} (TShock for Terraria v{6})"
|
||||
msgstr ""
|
||||
msgstr "ma {3} lon tomo {0} (jan {1}/{2}) @ {4}:{5} (ilo TShock pi musi Terraria nanpa {6})"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:846
|
||||
#, csharp-format
|
||||
msgid "{0}login - Authenticates you using your UUID and character name."
|
||||
msgstr ""
|
||||
msgstr "{0}login - kama e sijelo sina kepeken nanpa sina en nimi pi musi sina."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:851
|
||||
#, csharp-format
|
||||
msgid "{0}login <password> - Authenticates you using your password and character name."
|
||||
msgstr ""
|
||||
msgstr "{0}login <nimi len> - kama e sijelo sina kepeken nimi len en nimi pi musi sina."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:849
|
||||
#, csharp-format
|
||||
msgid "{0}login <username> <password> - Authenticates you using your username and password."
|
||||
msgstr ""
|
||||
msgstr "{0}login <nimi sijelo> <nimi len> - kama e sijelo sina kepeken nimi len en nimi sijelo."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5409
|
||||
#, csharp-format
|
||||
msgid "{0}user add <username> <password> owner"
|
||||
msgstr ""
|
||||
msgstr "{0}user add <nimi> <nimi len> owner"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1201
|
||||
#, csharp-format
|
||||
msgid "{0}user add username password group -- Adds a specified user"
|
||||
msgstr ""
|
||||
msgstr "{0}user add nimi nimilen kulupu -- o lon e sijelo sin"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1202
|
||||
#, csharp-format
|
||||
msgid "{0}user del username -- Removes a specified user"
|
||||
msgstr ""
|
||||
msgstr "{0}user del nimi -- weka e sijelo"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1204
|
||||
#, csharp-format
|
||||
msgid "{0}user group username newgroup -- Changes a user's group"
|
||||
msgstr ""
|
||||
msgstr "{0}user group nimi kulupu -- ante e kulupu sijelo"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1203
|
||||
#, csharp-format
|
||||
msgid "{0}user password username newpassword -- Changes a user's password"
|
||||
msgstr ""
|
||||
msgstr "{0}user password nimi nimilen -- ante e nimi len sijelo"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5426
|
||||
#, csharp-format
|
||||
msgid "*{0} {1}"
|
||||
msgstr ""
|
||||
msgstr "* jan {0} {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1609
|
||||
#, csharp-format
|
||||
msgid "#{0} - You have been banned: {1}."
|
||||
msgstr ""
|
||||
msgstr "#{0} - weka sina li pake tan ni: {1}."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5442
|
||||
#, csharp-format
|
||||
msgid "<{0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<{0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5546
|
||||
#: ../../TShockAPI/Commands.cs:5577
|
||||
#, csharp-format
|
||||
msgid "<From {0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<tan {0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5547
|
||||
#: ../../TShockAPI/Commands.cs:5578
|
||||
#, csharp-format
|
||||
msgid "<To {0}> {1}"
|
||||
msgstr ""
|
||||
msgstr "<tawa {0}> {1}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2814
|
||||
msgid "a Deerclops"
|
||||
msgstr ""
|
||||
msgstr "monsuta Deerclops"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:3380
|
||||
msgid "A group with the same name already exists."
|
||||
msgstr ""
|
||||
msgstr "kulupu pi nimi ni li awen lon."
|
||||
|
||||
#: ../../TShockAPI/DB/RegionManager.cs:108
|
||||
msgid "A lot of things will fail because of this. You must manually delete and re-create the allowed field."
|
||||
msgstr ""
|
||||
msgstr "ijo mute li pakala tan ni. sina o weka o lon sin e sona ni."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2789
|
||||
msgid "a Martian Saucer"
|
||||
msgstr ""
|
||||
msgstr "monsuta sewi pi ma ante"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2247
|
||||
msgid "A meteor has been triggered."
|
||||
msgstr ""
|
||||
msgstr "kiwen sewi li kama."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2799
|
||||
msgid "a Nebula Pillar"
|
||||
msgstr ""
|
||||
msgstr "sinpin Nepula"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1312
|
||||
msgid "A player name must be provided to kick a player. Please provide one."
|
||||
msgstr ""
|
||||
msgstr "nimi sijelo li wile tawa weka jan. o pana e nimi."
|
||||
|
||||
#: ../../TShockAPI/Rest/SecureRest.cs:120
|
||||
#, csharp-format
|
||||
msgid "A REST login from {0} was blocked as it currently has {1} rate-limit tokens and is at the RESTMaximumRequestsPerInterval threshold."
|
||||
msgstr ""
|
||||
msgstr "kama sijelo REST tan {0} li pake tan ni: ona li jo e ken {1} li lon nanpa RESTMaximumRequestsPerInterval."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2794
|
||||
msgid "a Solar Pillar"
|
||||
msgstr ""
|
||||
msgstr "sinpin Sola"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:2809
|
||||
msgid "a Stardust Pillar"
|
||||
|
|
@ -5396,7 +5396,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:2718
|
||||
msgid "the Wall of Flesh"
|
||||
msgstr ""
|
||||
msgstr "sinpin monsuta"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:788
|
||||
msgid "The world's chest limit has been reached - unable to place more."
|
||||
|
|
@ -5453,7 +5453,7 @@ msgstr ""
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:2709
|
||||
msgid "There is already a Wall of Flesh."
|
||||
msgstr ""
|
||||
msgstr "sinpin monsuta li lon."
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:932
|
||||
msgid "There was an error processing your login or authentication related request."
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: tshock\n"
|
||||
"POT-Creation-Date: 2022-10-31 22:50:21+0000\n"
|
||||
"PO-Revision-Date: 2022-11-01 11:35\n"
|
||||
"PO-Revision-Date: 2022-11-10 01:22\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
|
@ -1568,21 +1568,21 @@ msgstr "Bouncer / OnGetSection 拒绝来自 {0} 的 GetSection 数据包"
|
|||
#: ../../TShockAPI/Bouncer.cs:2081
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnHealOtherPlayer 0.2 check from {0}"
|
||||
msgstr "Bouncer / OnHealOtherPlayer 0.2 检查从{0}"
|
||||
msgstr "Bouncer / OnHealOtherPlayer(治疗友方防护)因比例数值检查而阻止了{0}治疗友方。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2105
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnHealOtherPlayer rejected disabled/throttled from {0}"
|
||||
msgstr "Bouncer / OnHealOtherPlayer 拒绝了来自 {0} 的禁用/调整"
|
||||
msgstr "Bouncer / OnHealOtherPlayer(治疗友方防护) 因被限制行动而阻止了{0}治疗友方。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2097
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnHealOtherPlayer rejected heal other threshold from {0} {1}/{2}"
|
||||
msgstr "Bouncer / OnHealOtherPlayer 因治疗量超过上限而拒绝了 {0} {1}/{2}"
|
||||
msgstr "Bouncer / OnHealOtherPlayer(治疗友方防护) 因治疗速度{1}超过上限{2}而阻止了{0}治疗友方。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2071
|
||||
msgid "Bouncer / OnHealOtherPlayer rejected null checks"
|
||||
msgstr "Bouncer / OnHealOtherPlayer 拒绝了无效检查"
|
||||
msgstr "Bouncer / OnHealOtherPlayer(治疗友方防护)因目标玩家不存在而阻止了治疗。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1057
|
||||
#, csharp-format
|
||||
|
|
@ -1782,7 +1782,7 @@ msgstr "Bouncer / OnNewProjectile(弹幕防护)因超过弹幕伤害上限
|
|||
#: ../../TShockAPI/Bouncer.cs:1277
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnNewProjectile rejected from projectile update threshold from {0} {1}/{2}"
|
||||
msgstr "Bouncer / OnNewProjectile(弹幕防护)因超过弹幕更新上限({1}/{2})阻止了{0}"
|
||||
msgstr "Bouncer / OnNewProjectile(弹幕防护)因射弹创建速度{1}超过上限{2}而阻止了{0}创建射弹。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1232
|
||||
#, csharp-format
|
||||
|
|
@ -1962,7 +1962,7 @@ msgstr "Bouncer / OnPlaceObject 拒绝使用堆石器—此位置已存在碎石
|
|||
#: ../../TShockAPI/Bouncer.cs:2355
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnPlaceObject rejected tile place threshold from {0} {1}/{2}"
|
||||
msgstr "Bouncer / OnPlaceObject 拒绝超阈值放置方块 {0} {1}/{2}"
|
||||
msgstr "Bouncer / OnPlaceObject(大型物体放置防护)因物块放置速度{1}超过上限{2}而阻止了{0}放置大型物体。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2207
|
||||
#, csharp-format
|
||||
|
|
@ -2181,7 +2181,7 @@ msgstr "Bouncer / OnReleaseNPC 因限流而拒绝了{0}"
|
|||
#: ../../TShockAPI/Bouncer.cs:2145
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnReleaseNPC released different critter from {0}"
|
||||
msgstr "Bouncer / OnReleaseNPC 从{0}生成了不同的生物"
|
||||
msgstr "Bouncer / OnReleaseNPC(小动物防护) 因物品和释放的小动物不匹配而阻止了{0}释放小动物。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:684
|
||||
#, csharp-format
|
||||
|
|
@ -2287,12 +2287,12 @@ msgstr "Bouncer / OnTileEdit(物块防护)因限流阻止了{0}的操作。{
|
|||
#: ../../TShockAPI/Bouncer.cs:909
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnTileEdit rejected from tile kill threshold from {0}, (value: {1})"
|
||||
msgstr "Bouncer / OnTileEdit(物块防护)因超过物块破坏上限阻止了{0}。(值:{1})"
|
||||
msgstr "Bouncer / OnTileEdit(物块防护)因物块破坏速度{1}超过上限而阻止了{0}破坏物块。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:927
|
||||
#, csharp-format
|
||||
msgid "Bouncer / OnTileEdit rejected from tile place threshold from {0}, (value: {1})"
|
||||
msgstr "Bouncer / OnTileEdit(物块防护)因超过物块放置上限阻止了{0}。(值:{1})"
|
||||
msgstr "Bouncer / OnTileEdit(物块防护)因物块放置速度{1}超过上限而阻止了{0}放置物块。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:769
|
||||
#, csharp-format
|
||||
|
|
@ -2671,7 +2671,7 @@ msgstr "destroytokens - 删除当前所有REST令牌"
|
|||
#: ../../TShockAPI/Bouncer.cs:470
|
||||
#: ../../TShockAPI/Bouncer.cs:478
|
||||
msgid "Detected DOOM set to ON position."
|
||||
msgstr "检测到 DOM 已设置为开启位置。"
|
||||
msgstr "毁灭战士已启动"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6659
|
||||
msgid "Diamond Gemtree"
|
||||
|
|
@ -3078,12 +3078,12 @@ msgstr "生命值和示例"
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:2082
|
||||
msgid "HealOtherPlayer cheat attempt!"
|
||||
msgstr "有人正在尝试作弊治疗其他玩家!"
|
||||
msgstr "通过作弊手段治疗友方"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:2091
|
||||
#, csharp-format
|
||||
msgid "HealOtherPlayer threshold exceeded {0}."
|
||||
msgstr "治疗其他玩家阈值超过 {0}。"
|
||||
msgstr "治疗友方速度超过{0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:549
|
||||
msgid "Heals a player in HP and MP."
|
||||
|
|
@ -3117,11 +3117,11 @@ msgstr "如果这个玩家没有作弊,请向TShock报告此处的伤害上限
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:2098
|
||||
msgid "If this player wasn't hacking, please report the HealOtherPlayer threshold they were disabled for to TShock so we can improve this!"
|
||||
msgstr "如果这个玩家没有作弊,请向TShock报告此处的治疗量上限以便更正。"
|
||||
msgstr "如果这个玩家没有作弊,请向TShock报告此处的治疗友方速度以便更正。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1278
|
||||
msgid "If this player wasn't hacking, please report the projectile update threshold they were disabled for to TShock so we can improve this!"
|
||||
msgstr "如果这个玩家没有作弊,请向TShock报告此处的射弹更新上限以便更正。"
|
||||
msgstr "如果这个玩家没有作弊,请向TShock报告此处的射弹创建速度上限以便更正。"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:910
|
||||
msgid "If this player wasn't hacking, please report the tile kill threshold they were disabled for to TShock so we can improve this!"
|
||||
|
|
@ -3523,7 +3523,7 @@ msgstr "语法错误。正确的语法是:{0}me <text>"
|
|||
#: ../../TShockAPI/Commands.cs:5433
|
||||
#, csharp-format
|
||||
msgid "Invalid syntax. Proper syntax: {0}p <team chat text>"
|
||||
msgstr "语法错误。正确的语法是:{0}p <team chat text>"
|
||||
msgstr "语法错误。正确的语法是:{0}p <聊天内容>"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:4026
|
||||
#, csharp-format
|
||||
|
|
@ -3960,7 +3960,7 @@ msgstr "机器名称:{0}"
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:2451
|
||||
msgid "Malicious portal attempt."
|
||||
msgstr "尝试放置非法的传送门。"
|
||||
msgstr "试图伪造传送其他玩家"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:280
|
||||
msgid "Manages groups."
|
||||
|
|
@ -4182,7 +4182,7 @@ msgstr "没有升级Work Factor,因为BCrypt的哈希值格式有误。"
|
|||
#: ../../TShockAPI/Bouncer.cs:1369
|
||||
#, csharp-format
|
||||
msgid "NPC damage exceeded {0}."
|
||||
msgstr "NPC 伤害超过 {0}。"
|
||||
msgstr "对NPC造成的伤害高于{0}"
|
||||
|
||||
#: ../../TShockAPI/DB/RegionManager.cs:102
|
||||
#, csharp-format
|
||||
|
|
@ -4293,7 +4293,7 @@ msgstr "玩家 {0} 已经登录。"
|
|||
#: ../../TShockAPI/TSPlayer.cs:1887
|
||||
#, csharp-format
|
||||
msgid "Player {0} has been disabled for {1}."
|
||||
msgstr "玩家{0}因为{1}而被禁用"
|
||||
msgstr "玩家{0}因为{1}而被限制行动。"
|
||||
|
||||
#: ../../TShockAPI/Rest/RestManager.cs:1388
|
||||
#, csharp-format
|
||||
|
|
@ -4336,7 +4336,7 @@ msgstr "未找到玩家{0}"
|
|||
#: ../../TShockAPI/Bouncer.cs:2591
|
||||
#, csharp-format
|
||||
msgid "Player damage exceeded {0}."
|
||||
msgstr "玩家伤害超过了{0}。"
|
||||
msgstr "对玩家造成的伤害高于{0}"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6285
|
||||
msgid "Player does not have free slots!"
|
||||
|
|
@ -4345,7 +4345,7 @@ msgstr "玩家没有空闲的背包空间!"
|
|||
#: ../../TShockAPI/Bouncer.cs:1165
|
||||
#, csharp-format
|
||||
msgid "Player does not have permission to create projectile {0}."
|
||||
msgstr "玩家没有权限创建射弹{0}。"
|
||||
msgstr "没有创建射弹{0}的权限"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1320
|
||||
msgid "Player not found. Unable to kick the player."
|
||||
|
|
@ -4422,12 +4422,12 @@ msgstr "封禁射弹 ({{0}}/{{1}}):"
|
|||
#: ../../TShockAPI/Bouncer.cs:1175
|
||||
#, csharp-format
|
||||
msgid "Projectile damage is higher than {0}."
|
||||
msgstr "射弹伤害高于{0}。"
|
||||
msgstr "射弹的伤害高于{0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1269
|
||||
#, csharp-format
|
||||
msgid "Projectile update threshold exceeded {0}."
|
||||
msgstr "射弹更新阈值超过 {0}。"
|
||||
msgstr "射弹创建速度超过每秒{0}个"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:5194
|
||||
msgid "protect <name> <true/false> - Sets whether the tiles inside the region are protected or not."
|
||||
|
|
@ -4454,29 +4454,29 @@ msgstr "{0}的范围检查失败({1},{2})(范围:{3}/{5},{4}/{5})"
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:2095
|
||||
msgid "Reached HealOtherPlayer threshold."
|
||||
msgstr "达到了治愈其他玩家的临界值。"
|
||||
msgstr "治疗友方速度过快"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1273
|
||||
msgid "Reached projectile update threshold."
|
||||
msgstr "已达到弹幕更新阈值。"
|
||||
msgstr "射弹创建速度过快"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:905
|
||||
msgid "Reached TileKill threshold."
|
||||
msgstr "已达到图格破坏阈值。"
|
||||
msgstr "物块破坏速度过快"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1668
|
||||
#, csharp-format
|
||||
msgid "Reached TileLiquid threshold {0}."
|
||||
msgstr "已到达液体阈值{0}。"
|
||||
msgstr "液体放置速度超过{0}"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1672
|
||||
msgid "Reached TileLiquid threshold."
|
||||
msgstr "已到达液体阈值。"
|
||||
msgstr "液体放置速度过快"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:923
|
||||
#: ../../TShockAPI/Bouncer.cs:2356
|
||||
msgid "Reached TilePlace threshold."
|
||||
msgstr "以达到图格防止阈值。"
|
||||
msgstr "物块破坏速度过快"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:1491
|
||||
#, csharp-format
|
||||
|
|
@ -4946,19 +4946,19 @@ msgstr "指定的API端点不存在。请参阅文档以获取有效的端点列
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:1798
|
||||
msgid "Spreading honey without holding a honey bucket"
|
||||
msgstr "在不手持蜂蜜桶的情况下撒蜂蜜"
|
||||
msgstr "凭空放置蜂蜜"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1758
|
||||
msgid "Spreading lava without holding a lava bucket"
|
||||
msgstr "在不手持岩浆桶的情况下撒岩浆"
|
||||
msgstr "凭空放置岩浆"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1818
|
||||
msgid "Spreading shimmer without holding a shimmer bucket"
|
||||
msgstr "在没有手持微光桶的情况下放置微光液体"
|
||||
msgstr "凭空放置微光液体"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1778
|
||||
msgid "Spreading water without holding a water bucket"
|
||||
msgstr "在手上没有水桶的时候放置水"
|
||||
msgstr "凭空放置水"
|
||||
|
||||
#: ../../TShockAPI/SqlLog.cs:346
|
||||
#, csharp-format
|
||||
|
|
@ -5437,12 +5437,12 @@ msgstr "封禁物块 ({{0}}/{{1}}):"
|
|||
#: ../../TShockAPI/Bouncer.cs:901
|
||||
#, csharp-format
|
||||
msgid "Tile kill threshold exceeded {0}."
|
||||
msgstr "破坏图格速度超出最大值{0}。"
|
||||
msgstr "物块破坏速度超过每秒{0}个"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:919
|
||||
#, csharp-format
|
||||
msgid "Tile place threshold exceeded {0}."
|
||||
msgstr "放置图格速度超出最大值{0}。"
|
||||
msgstr "物块放置速度超过每秒{0}个"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:6416
|
||||
#, csharp-format
|
||||
|
|
@ -5830,19 +5830,19 @@ msgstr "用户名或密码错误,也可能是该用户没有足够的权限。
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:1829
|
||||
msgid "Using banned bottomless shimmer bucket without permissions"
|
||||
msgstr "没有权限使用被禁止的无底微光桶"
|
||||
msgstr "没有使用无底微光桶的权限"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1808
|
||||
msgid "Using banned honey bucket without permissions"
|
||||
msgstr "没有权限使用被禁止的蜂蜜桶"
|
||||
msgstr "没有使用蜂蜜桶的权限"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1768
|
||||
msgid "Using banned lava bucket without permissions"
|
||||
msgstr "没有权限使用被禁止的岩浆桶"
|
||||
msgstr "没有使用岩浆桶的权限"
|
||||
|
||||
#: ../../TShockAPI/Bouncer.cs:1788
|
||||
msgid "Using banned water bucket without permissions"
|
||||
msgstr "没有权限使用被禁止的水桶"
|
||||
msgstr "没有使用水桶的权限"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:920
|
||||
msgid "UUID does not match this character."
|
||||
|
|
@ -5977,7 +5977,7 @@ msgstr "你没有死亡!"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:5450
|
||||
msgid "You are not in a party!"
|
||||
msgstr "你没有在派对中!"
|
||||
msgstr "你不在任何队伍当中,无法使用队内聊天。"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:941
|
||||
msgid "You are not logged-in. Therefore, you cannot logout."
|
||||
|
|
@ -6062,7 +6062,7 @@ msgstr "复活只能对真实的玩家使用。"
|
|||
|
||||
#: ../../TShockAPI/Commands.cs:810
|
||||
msgid "You cannot login whilst crowd controlled."
|
||||
msgstr "你无法在被控制时登录。"
|
||||
msgstr "在无法行动时不能登录。"
|
||||
|
||||
#: ../../TShockAPI/Commands.cs:796
|
||||
msgid "You cannot login whilst dead."
|
||||
|
|
@ -6498,7 +6498,7 @@ msgstr "你的用户组无法被加载,请联系服务器管理员处理此错
|
|||
|
||||
#: ../../TShockAPI/Bouncer.cs:436
|
||||
msgid "Your client sent a blank character name."
|
||||
msgstr "你的客户端发送了一个空白的角色名称。"
|
||||
msgstr "玩家名为空"
|
||||
|
||||
#: ../../TShockAPI/DB/RegionManager.cs:107
|
||||
msgid "Your database contains invalid UserIDs (they should be integers)."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue