Better translation

This commit is contained in:
BruceChen 2022-10-17 20:00:33 +08:00
parent bce2bc8b7f
commit 117a38b5f9
21 changed files with 95 additions and 156 deletions

View file

@ -247,7 +247,7 @@ namespace MinecraftClient.ChatBots
{
currentDig = blockLoc;
if (Config.Log_Block_Dig)
LogToConsole(Translations.Get("cmd.dig.dig", blockLoc.X, blockLoc.Y, blockLoc.Z, block.Type));
LogToConsole(Translations.Get("cmd.dig.dig", blockLoc.X, blockLoc.Y, blockLoc.Z, block.GetTypeString()));
return true;
}
else
@ -308,7 +308,7 @@ namespace MinecraftClient.ChatBots
{
currentDig = target;
if (Config.Log_Block_Dig)
LogToConsole(Translations.Get("cmd.dig.dig", target.X, target.Y, target.Z, targetBlock.Type));
LogToConsole(Translations.Get("cmd.dig.dig", target.X, target.Y, target.Z, targetBlock.GetTypeString()));
return true;
}
else
@ -342,7 +342,7 @@ namespace MinecraftClient.ChatBots
{
currentDig = blockLoc;
if (Config.Log_Block_Dig)
LogToConsole(Translations.Get("cmd.dig.dig", blockLoc.X, blockLoc.Y, blockLoc.Z, block.Type));
LogToConsole(Translations.Get("cmd.dig.dig", blockLoc.X, blockLoc.Y, blockLoc.Z, block.GetTypeString()));
return true;
}
else

View file

@ -144,7 +144,7 @@ namespace MinecraftClient.ChatBots
private Location LastPos = Location.Zero;
private DateTime CaughtTime = DateTime.Now;
private int fishItemCounter = 10;
private Entity fish = new(-1, EntityType.Item, Location.Zero);
private Entity fishItem = new(-1, EntityType.Item, Location.Zero);
private int counter = 0;
private readonly object stateLock = new();
@ -221,7 +221,7 @@ namespace MinecraftClient.ChatBots
if (Config.Auto_Start)
{
double delay = Config.Fishing_Delay;
LogToConsole(Translations.Get("bot.autoFish.start", delay));
LogToConsole(Translations.Get("bot.autoFish.start_at", delay));
lock (stateLock)
{
isFishing = false;
@ -352,7 +352,7 @@ namespace MinecraftClient.ChatBots
{
if (Config.Log_Fish_Bobber)
LogToConsole(string.Format("Item ({0}) spawn at {1}, distance = {2:0.00}", entity.ID, entity.Location, entity.Location.Distance(LastPos)));
fish = entity;
fishItem = entity;
}
else if (entity.Type == EntityType.FishingBobber && entity.ObjectData == GetPlayerEntityID())
{
@ -431,7 +431,7 @@ namespace MinecraftClient.ChatBots
public override void OnEntityMetadata(Entity entity, Dictionary<int, object?> metadata)
{
if (fishItemCounter < 10 && entity.ID == fish.ID && metadata.TryGetValue(8, out object? item))
if (fishItemCounter < 10 && entity.ID == fishItem.ID && metadata.TryGetValue(8, out object? item))
{
LogToConsole(Translations.Get("bot.autoFish.got", ((Item)item!).ToFullString()));
fishItemCounter = 10;

View file

@ -1,5 +1,4 @@
using System;
using System.Xml.Linq;
using Tomlet.Attributes;
using static MinecraftClient.ChatBots.ScriptScheduler.Configs;

View file

@ -10,7 +10,7 @@ namespace MinecraftClient.Commands
public override string CmdUsage { get { return "blockinfo <x> <y> <z> [-s]"; } }
public override string CmdDesc { get { return "cmd.blockinfo.desc"; } }
public override string Run(McClient handler, string command, Dictionary<string, object> localVars)
public override string Run(McClient handler, string command, Dictionary<string, object>? localVars)
{
string[] args = GetArgs(command);
@ -24,7 +24,7 @@ namespace MinecraftClient.Commands
Block block = handler.GetWorld().GetBlock(targetBlockLocation);
handler.Log.Info(Translations.TryGet("cmd.blockinfo.BlockType") + ": " + block.Type);
handler.Log.Info(Translations.TryGet("cmd.blockinfo.BlockType") + ": " + block.GetTypeString());
if (reportSurrounding)
{
@ -38,14 +38,14 @@ namespace MinecraftClient.Commands
Block blockZPositive = handler.GetWorld().GetBlock(new Location(targetBlockLocation.X, targetBlockLocation.Y, targetBlockLocation.Z + 1));
Block blockZNegative = handler.GetWorld().GetBlock(new Location(targetBlockLocation.X, targetBlockLocation.Y, targetBlockLocation.Z - 1));
sb.AppendLine("[X " + Translations.TryGet("cmd.blockinfo.Positive") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockXPositive.Type);
sb.AppendLine("[X " + Translations.TryGet("cmd.blockinfo.Negative") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockXNegative.Type);
sb.AppendLine("[X " + Translations.TryGet("cmd.blockinfo.Positive") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockXPositive.GetTypeString());
sb.AppendLine("[X " + Translations.TryGet("cmd.blockinfo.Negative") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockXNegative.GetTypeString());
sb.AppendLine(" ");
sb.AppendLine("[Y " + Translations.TryGet("cmd.blockinfo.Positive") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockYPositive.Type);
sb.AppendLine("[Y " + Translations.TryGet("cmd.blockinfo.Negative") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockYNegative.Type);
sb.AppendLine("[Y " + Translations.TryGet("cmd.blockinfo.Positive") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockYPositive.GetTypeString());
sb.AppendLine("[Y " + Translations.TryGet("cmd.blockinfo.Negative") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockYNegative.GetTypeString());
sb.AppendLine(" ");
sb.AppendLine("[Z " + Translations.TryGet("cmd.blockinfo.Positive") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockZPositive.Type);
sb.AppendLine("[Z " + Translations.TryGet("cmd.blockinfo.Negative") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockZNegative.Type);
sb.AppendLine("[Z " + Translations.TryGet("cmd.blockinfo.Positive") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockZPositive.GetTypeString());
sb.AppendLine("[Z " + Translations.TryGet("cmd.blockinfo.Negative") + "] " + Translations.TryGet("cmd.blockinfo.BlockType") + ": " + blockZNegative.GetTypeString());
handler.Log.Info(sb.ToString());
}

View file

@ -24,7 +24,7 @@ namespace MinecraftClient.Commands
else if (block.Type == Material.Air)
return Translations.Get("cmd.dig.no_block");
else if (handler.DigBlock(blockLoc, lookAtBlock: false))
return Translations.Get("cmd.dig.dig", blockLoc.X, blockLoc.Y, blockLoc.Z, block.Type);
return Translations.Get("cmd.dig.dig", blockLoc.X, blockLoc.Y, blockLoc.Z, block.GetTypeString());
else
return Translations.Get("cmd.dig.fail");
}
@ -42,7 +42,7 @@ namespace MinecraftClient.Commands
else if (handler.DigBlock(blockToBreak))
{
blockToBreak = blockToBreak.ToCenter();
return Translations.Get("cmd.dig.dig", blockToBreak.X, blockToBreak.Y, blockToBreak.Z, block.Type);
return Translations.Get("cmd.dig.dig", blockToBreak.X, blockToBreak.Y, blockToBreak.Z, block.GetTypeString());
}
else
return Translations.Get("cmd.dig.fail");

View file

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using MinecraftClient.Inventory;
using MinecraftClient.Mapping;
@ -56,43 +57,44 @@ namespace MinecraftClient.Commands
color = "§e"; // Yellow
string location = String.Format("X:{0}, Y:{1}, Z:{2}", Math.Round(entity.Location.X, 2), Math.Round(entity.Location.Y, 2), Math.Round(entity.Location.Z, 2));
string done = Translations.Replace("([cmd.entityCmd.entity]): {0}\n [MCC] Type: {1}", id, type);
StringBuilder done = new();
done.Append(Translations.Replace("([cmd.entityCmd.entity]): {0}\n [MCC] Type: {1}", id, entity.GetTypeString()));
if (!String.IsNullOrEmpty(nickname))
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.nickname]): {0}", nickname);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.nickname]): {0}", nickname));
else if (!String.IsNullOrEmpty(customname))
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.customname]): {0}§8", customname.Replace("&", "§"));
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.customname]): {0}§8", customname.Replace("&", "§")));
if (type == EntityType.Player)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.latency]): {0}", latency);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.latency]): {0}", latency));
else if (type == EntityType.Item || type == EntityType.ItemFrame || type == Mapping.EntityType.EyeOfEnder || type == Mapping.EntityType.Egg || type == Mapping.EntityType.EnderPearl || type == Mapping.EntityType.Potion || type == Mapping.EntityType.Fireball || type == Mapping.EntityType.FireworkRocket)
{
string? displayName = item.DisplayName;
if (String.IsNullOrEmpty(displayName))
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.item]): {0} x{1}", item.Type, item.Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.item]): {0} x{1}", item.GetTypeString(), item.Count));
else
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.item]): {0} x{1} - {2}§8", item.Type, item.Count, displayName);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.item]): {0} x{1} - {2}§8", item.GetTypeString(), item.Count, displayName));
}
if (entity.Equipment.Count >= 1 && entity.Equipment != null)
{
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.equipment]):");
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.equipment]):"));
if (entity.Equipment.ContainsKey(0) && entity.Equipment[0] != null)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.mainhand]): {0} x{1}", entity.Equipment[0].Type, entity.Equipment[0].Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.mainhand]): {0} x{1}", entity.Equipment[0].GetTypeString(), entity.Equipment[0].Count));
if (entity.Equipment.ContainsKey(1) && entity.Equipment[1] != null)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.offhand]): {0} x{1}", entity.Equipment[1].Type, entity.Equipment[1].Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.offhand]): {0} x{1}", entity.Equipment[1].GetTypeString(), entity.Equipment[1].Count));
if (entity.Equipment.ContainsKey(5) && entity.Equipment[5] != null)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.helmet]): {0} x{1}", entity.Equipment[5].Type, entity.Equipment[5].Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.helmet]): {0} x{1}", entity.Equipment[5].GetTypeString(), entity.Equipment[5].Count));
if (entity.Equipment.ContainsKey(4) && entity.Equipment[4] != null)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.chestplate]): {0} x{1}", entity.Equipment[4].Type, entity.Equipment[4].Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.chestplate]): {0} x{1}", entity.Equipment[4].GetTypeString(), entity.Equipment[4].Count));
if (entity.Equipment.ContainsKey(3) && entity.Equipment[3] != null)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.leggings]): {0} x{1}", entity.Equipment[3].Type, entity.Equipment[3].Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.leggings]): {0} x{1}", entity.Equipment[3].GetTypeString(), entity.Equipment[3].Count));
if (entity.Equipment.ContainsKey(2) && entity.Equipment[2] != null)
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.boots]): {0} x{1}", entity.Equipment[2].Type, entity.Equipment[2].Count);
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.boots]): {0} x{1}", entity.Equipment[2].GetTypeString(), entity.Equipment[2].Count));
}
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.pose]): {0}", pose);
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.health]): {0}", color + health + "§8");
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.distance]): {0}", distance);
done += Translations.Replace("\n [MCC] ([cmd.entityCmd.location]): {0}", location);
return done;
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.pose]): {0}", pose));
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.health]): {0}", color + health + "§8"));
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.distance]): {0}", distance));
done.Append(Translations.Replace("\n [MCC] ([cmd.entityCmd.location]): {0}", location));
return done.ToString();
}
}
else return Translations.Get("cmd.entityCmd.not_found");
@ -132,10 +134,8 @@ namespace MinecraftClient.Commands
else
{
Dictionary<int, Entity> entities = handler.GetEntities();
List<string> response = new()
{
Translations.Get("cmd.entityCmd.entities")
};
StringBuilder response = new();
response.AppendLine(Translations.Get("cmd.entityCmd.entities"));
foreach (var entity2 in entities)
{
int id = entity2.Key;
@ -149,16 +149,16 @@ namespace MinecraftClient.Commands
string location = String.Format("X:{0}, Y:{1}, Z:{2}", Math.Round(entity2.Value.Location.X, 2), Math.Round(entity2.Value.Location.Y, 2), Math.Round(entity2.Value.Location.Z, 2));
if (type == EntityType.Item || type == EntityType.ItemFrame || type == EntityType.EyeOfEnder || type == EntityType.Egg || type == EntityType.EnderPearl || type == EntityType.Potion || type == EntityType.Fireball || type == EntityType.FireworkRocket)
response.Add(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.item]): {2}, ([cmd.entityCmd.location]): {3}", id, type, item.Type, location));
response.AppendLine(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.item]): {2}, ([cmd.entityCmd.location]): {3}", id, entity2.Value.GetTypeString(), item.GetTypeString(), location));
else if (type == EntityType.Player && !String.IsNullOrEmpty(nickname))
response.Add(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.nickname]): §8{2}§8, ([cmd.entityCmd.latency]): {3}, ([cmd.entityCmd.health]): {4}, ([cmd.entityCmd.pose]): {5}, ([cmd.entityCmd.location]): {6}", id, type, nickname, latency, health, pose, location));
response.AppendLine(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.nickname]): §8{2}§8, ([cmd.entityCmd.latency]): {3}, ([cmd.entityCmd.health]): {4}, ([cmd.entityCmd.pose]): {5}, ([cmd.entityCmd.location]): {6}", id, entity2.Value.GetTypeString(), nickname, latency, health, pose, location));
else if (type == EntityType.Player && !String.IsNullOrEmpty(customname))
response.Add(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.customname]): §8{2}§8, ([cmd.entityCmd.latency]): {3}, ([cmd.entityCmd.health]): {4}, ([cmd.entityCmd.pose]): {5}, ([cmd.entityCmd.location]): {6}", id, type, customname.Replace("&", "§"), latency, health, pose, location));
response.AppendLine(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.customname]): §8{2}§8, ([cmd.entityCmd.latency]): {3}, ([cmd.entityCmd.health]): {4}, ([cmd.entityCmd.pose]): {5}, ([cmd.entityCmd.location]): {6}", id, entity2.Value.GetTypeString(), customname.Replace("&", "§"), latency, health, pose, location));
else
response.Add(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.health]): {2}, ([cmd.entityCmd.location]): {3}", id, type, health, location));
response.AppendLine(Translations.Replace(" #{0}: ([cmd.entityCmd.type]): {1}, ([cmd.entityCmd.health]): {2}, ([cmd.entityCmd.location]): {3}", id, entity2.Value.GetTypeString(), health, location));
}
response.Add(GetCmdDescTranslated());
return String.Join("\n", response);
response.Append(GetCmdDescTranslated());
return response.ToString();
}
}
else return Translations.Get("extra.entity_required");

View file

@ -148,7 +148,7 @@ namespace MinecraftClient.Commands
response.AppendLine(String.Format("{0} (#{1}):", inventories[invId].Title, invId));
foreach (Item item in itemsList)
response.AppendLine(String.Format("\t- {0}", item.ToString()));
response.AppendLine(String.Format("\t- {0}", item.ToFullString()));
response.AppendLine(" ");
}
@ -195,7 +195,7 @@ namespace MinecraftClient.Commands
string hotbarString = isHotbar ? (hotbar + 1).ToString() : " ";
if ((hotbar + 1) == selectedHotbar)
hotbarString = ">" + hotbarString;
response.AppendLine(String.Format("{0,2} | #{1,-2}: {2}", hotbarString, itemId, item.ToString()));
response.AppendLine(String.Format("{0,2} | #{1,-2}: {2}", hotbarString, itemId, item.ToFullString()));
}
if (inventoryId == 0)

View file

@ -0,0 +1,12 @@
using System.Linq;
namespace MinecraftClient
{
public static class ExtensionMethods
{
public static string ToUnderscoreCase(this string str)
{
return string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())).ToLower();
}
}
}

View file

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MinecraftClient.Protocol;
using MinecraftClient.Protocol.Handlers;
namespace MinecraftClient.Inventory
@ -136,50 +137,6 @@ namespace MinecraftClient.Inventory
{ 37, Enchantment.Mending },
{ 38, Enchantment.VanishingCurse }
};
private static Dictionary<Enchantment, string> enchantmentNames = new Dictionary<Enchantment, string>()
{
//type
{ Enchantment.Protection, "Enchantment.Protection" },
{ Enchantment.FireProtection, "Enchantment.FireProtection" },
{ Enchantment.FeatherFalling, "Enchantment.FeatherFalling" },
{ Enchantment.BlastProtection, "Enchantment.BlastProtection" },
{ Enchantment.ProjectileProtection, "Enchantment.ProjectileProtection" },
{ Enchantment.Respiration, "Enchantment.Respiration" },
{ Enchantment.AquaAffinity, "Enchantment.AquaAffinity" },
{ Enchantment.Thorns, "Enchantment.Thorns" },
{ Enchantment.DepthStrieder, "Enchantment.DepthStrieder" },
{ Enchantment.FrostWalker, "Enchantment.FrostWalker" },
{ Enchantment.BindingCurse, "Enchantment.BindingCurse" },
{ Enchantment.SoulSpeed, "Enchantment.SoulSpeed" },
{ Enchantment.SwiftSneak, "Enchantment.SwiftSneak" },
{ Enchantment.Sharpness, "Enchantment.Sharpness" },
{ Enchantment.Smite, "Enchantment.Smite" },
{ Enchantment.BaneOfArthropods, "Enchantment.BaneOfArthropods" },
{ Enchantment.Knockback, "Enchantment.Knockback" },
{ Enchantment.FireAspect, "Enchantment.FireAspect" },
{ Enchantment.Looting, "Enchantment.Looting" },
{ Enchantment.Sweeping, "Enchantment.Sweeping" },
{ Enchantment.Efficency, "Enchantment.Efficency" },
{ Enchantment.SilkTouch, "Enchantment.SilkTouch" },
{ Enchantment.Unbreaking, "Enchantment.Unbreaking" },
{ Enchantment.Fortune, "Enchantment.Fortune" },
{ Enchantment.Power, "Enchantment.Power" },
{ Enchantment.Punch, "Enchantment.Punch" },
{ Enchantment.Flame, "Enchantment.Flame" },
{ Enchantment.Infinity, "Enchantment.Infinity" },
{ Enchantment.LuckOfTheSea, "Enchantment.LuckOfTheSea" },
{ Enchantment.Lure, "Enchantment.Lure" },
{ Enchantment.Loyality, "Enchantment.Loyality" },
{ Enchantment.Impaling, "Enchantment.Impaling" },
{ Enchantment.Riptide, "Enchantment.Riptide" },
{ Enchantment.Channeling, "Enchantment.Channeling" },
{ Enchantment.Multishot, "Enchantment.Multishot" },
{ Enchantment.QuickCharge, "Enchantment.QuickCharge" },
{ Enchantment.Piercing, "Enchantment.Piercing" },
{ Enchantment.Mending, "Enchantment.Mending" },
{ Enchantment.VanishingCurse, "Enchantment.VanishingCurse" }
};
#pragma warning restore format // @formatter:on
public static Enchantment GetEnchantmentById(int protocolVersion, short id)
@ -202,10 +159,11 @@ namespace MinecraftClient.Inventory
public static string GetEnchantmentName(Enchantment enchantment)
{
if (!enchantmentNames.ContainsKey(enchantment))
string? trans = ChatParser.TranslateString("enchantment.minecraft." + enchantment.ToString().ToUnderscoreCase());
if (string.IsNullOrEmpty(trans))
return "Unknown Enchantment with ID: " + ((short)enchantment) + " (Probably not named in the code yet)";
return Translations.TryGet(enchantmentNames[enchantment]);
else
return trans;
}
public static string ConvertLevelToRomanNumbers(int num)

View file

@ -3,10 +3,6 @@ using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using Microsoft.VisualBasic;
using MinecraftClient.Protocol;
namespace MinecraftClient.Inventory
{
@ -117,14 +113,14 @@ namespace MinecraftClient.Inventory
}
}
private string GetTranslatedType(ItemType itemType)
public string GetTypeString()
{
string type = itemType.ToString();
string type_renamed = string.Concat(type.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())).ToLower();
string? res1 = ChatParser.TranslateString("item.minecraft." + type_renamed);
string type = Type.ToString();
string type_renamed = type.ToUnderscoreCase();
string? res1 = Protocol.ChatParser.TranslateString("item.minecraft." + type_renamed);
if (!string.IsNullOrEmpty(res1))
return res1;
string? res2 = ChatParser.TranslateString("block.minecraft." + type_renamed);
string? res2 = Protocol.ChatParser.TranslateString("block.minecraft." + type_renamed);
if (!string.IsNullOrEmpty(res2))
return res2;
return type;
@ -144,8 +140,8 @@ namespace MinecraftClient.Inventory
short level = (short)enchantment["lvl"];
string id = ((string)enchantment["id"]).Replace(':', '.');
sb.AppendFormat(" | {0} {1}",
ChatParser.TranslateString("enchantment." + id) ?? id,
ChatParser.TranslateString("enchantment.level." + level) ?? level.ToString());
Protocol.ChatParser.TranslateString("enchantment." + id) ?? id,
Protocol.ChatParser.TranslateString("enchantment.level." + level) ?? level.ToString());
}
}
}
@ -158,7 +154,7 @@ namespace MinecraftClient.Inventory
{
StringBuilder sb = new();
sb.AppendFormat("x{0,-2} {1}", Count, GetTranslatedType(Type));
sb.AppendFormat("x{0,-2} {1}", Count, GetTypeString());
string? displayName = DisplayName;
if (!String.IsNullOrEmpty(displayName))

View file

@ -112,6 +112,13 @@ namespace MinecraftClient.Mapping
blockIdAndMeta = typeAndMeta;
}
public string GetTypeString()
{
string typeStr = Type.ToString();
string? trans = Protocol.ChatParser.TranslateString("block.minecraft." + typeStr.ToUnderscoreCase());
return string.IsNullOrEmpty(trans) ? typeStr : trans;
}
/// <summary>
/// String representation of the block
/// </summary>

View file

@ -154,5 +154,12 @@ namespace MinecraftClient.Mapping
Yaw = yaw * (1 / 256) * 360; // to angle in 360 degree
Pitch = pitch * (1 / 256) * 360;
}
public string GetTypeString()
{
string typeStr = Type.ToString();
string? trans = Protocol.ChatParser.TranslateString("entity.minecraft." + typeStr.ToUnderscoreCase());
return string.IsNullOrEmpty(trans) ? typeStr : trans;
}
}
}

View file

@ -64,7 +64,7 @@ namespace MinecraftClient.Mapping
/// <summary>
/// Parse location from the string.
/// return NULL if the parsing fails.
/// throw FormatException if the parsing fails.
/// </summary>
/// <param name="x">The string representation of the X-axis coordinate.</param>
/// <param name="y">The string representation of the Y-axis coordinate.</param>
@ -99,7 +99,7 @@ namespace MinecraftClient.Mapping
/// <summary>
/// Parse location from the string (relative coordinate representation is supported).
/// return NULL if the parsing fails.
/// throw FormatException if the parsing fails.
/// </summary>
/// <param name="current">Relative position base point.</param>
/// <param name="x">The string representation of the X-axis coordinate.</param>

View file

@ -159,46 +159,6 @@ Enchantment.middle_slot=Middle slot
Enchantment.bottom_slot=Bottom slot
Enchantment.levels=Levels
Enchantment.Protection=Protection
Enchantment.FireProtection=Fire Protection
Enchantment.FeatherFalling=Feather Falling
Enchantment.BlastProtection=Blast Protection
Enchantment.ProjectileProtection=Projectile Protection
Enchantment.Respiration=Respiration
Enchantment.AquaAffinity=Aqua Affinity
Enchantment.Thorns=Thorns
Enchantment.DepthStrieder=Depth Strieder
Enchantment.FrostWalker=Frost Walker
Enchantment.BindingCurse=Curse of Binding
Enchantment.SoulSpeed=Soul Speed
Enchantment.SwiftSneak=Swift Sneak
Enchantment.Sharpness=Sharpness
Enchantment.Smite=Smite
Enchantment.BaneOfArthropods=Bane of Arthropods
Enchantment.Knockback=Knockback
Enchantment.FireAspect=Fire Aspect
Enchantment.Looting=Looting
Enchantment.Sweeping=Sweeping
Enchantment.Efficency=Efficency
Enchantment.SilkTouch=Silk Touch
Enchantment.Unbreaking=Unbreaking
Enchantment.Fortune=Fortune
Enchantment.Power=Power
Enchantment.Punch=Punch
Enchantment.Flame=Flame
Enchantment.Infinity=Infinity
Enchantment.LuckOfTheSea=Luck of the Sea
Enchantment.Lure=Lure
Enchantment.Loyality=Loyality
Enchantment.Impaling=Impaling
Enchantment.Riptide=Riptide
Enchantment.Channeling=Channeling
Enchantment.Multishot=Multishot
Enchantment.QuickCharge=Quick Charge
Enchantment.Piercing=Piercing
Enchantment.Mending=Mending
Enchantment.VanishingCurse=Curse of Vanishing
[forge]
# Messages from Forge handler
forge.version=§8Forge protocol version : {0}
@ -587,7 +547,7 @@ bot.autoDrop.no_inventory=Cannot find inventory {0}!
# AutoFish
bot.autoFish.no_inv_handle=Inventory handling is not enabled. Cannot check rod durability and switch rods.
bot.autoFish.start=Fishing will start in {0:0.0} second(s).
bot.autoFish.start_at=Fishing will start in {0:0.0} second(s).
bot.autoFish.throw=Casting successfully.
bot.autoFish.caught=Retract the fishing rod. (Count: {0})
bot.autoFish.caught_at=Retract the fishing rod at ({0:0.0},{1:0.0},{2:0.0})! (Count: {3})