Skip to content

Commit

Permalink
Add more encoding options
Browse files Browse the repository at this point in the history
  • Loading branch information
sgkoishi committed Nov 27, 2023
1 parent 9a4c2d7 commit 58f7601
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
3 changes: 2 additions & 1 deletion Core/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -627,9 +627,10 @@ public record class MitigationSettings
/// </para>
/// <para>
/// This will try to reset the encoding.
/// Default: -1, use Encoding.Default when Win32NT && Version <= 10
/// </para>
/// </summary>
public Optional<bool> UseDefaultEncoding = Optional.Default(Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major < 10);
public Optional<int> UseDefaultEncoding = Optional.Default(Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major < 10 ? -1 : 65001);

public enum DisabledDamageAction
{
Expand Down
17 changes: 13 additions & 4 deletions Core/Plugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,28 @@ public partial class Plugin : TerrariaPlugin
public string ConfigPath = Path.Combine(TShockAPI.TShock.SavePath, DefinedConsts.Misc.ConfigFile);
private const BindingFlags _bfany = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;

public Config config;
public Config config = new Config();

public Plugin(Main game) : base(game)
{
AppDomain.CurrentDomain.FirstChanceException += this.FirstChanceExceptionHandler;
this.Order = int.MinValue;
this.config = new Config();
this.LoadConfig(Utils.ConsolePlayer.Instance);
{
var mitigation = this.config.Mitigation.Value;
if (!mitigation.DisableAllMitigation && mitigation.UseDefaultEncoding)
if (!mitigation.DisableAllMitigation)
{
Console.OutputEncoding = System.Text.Encoding.Default;
var encoding = mitigation.UseDefaultEncoding.Value;
if (encoding == -1)
{
Console.OutputEncoding = System.Text.Encoding.Default;
Console.WriteLine($"Console encoding set to default ({Console.OutputEncoding})");
}
else if (encoding != 0)
{
Console.OutputEncoding = System.Text.Encoding.GetEncoding(encoding);
Console.WriteLine($"Console encoding set to {Console.OutputEncoding}");
}
}
}
this.Detour(
Expand Down

0 comments on commit 58f7601

Please sign in to comment.