Skip to content

Commit 7e34825

Browse files
committed
maint: A lot of added StringComparer.Ordinal and some test ConfigureAwait(false). Also change httpclient for abstract compiled loader from static to instanced so there's no lock checking on updates while loaders are being done multithreaded.
1 parent c4b6c27 commit 7e34825

31 files changed

+168
-160
lines changed

.editorconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ dotnet_diagnostic.CS8618.severity = none
2828
dotnet_diagnostic.SA1306.severity = None
2929
dotnet_diagnostic.CS0169.severity = None
3030
dotnet_diagnostic.CS0618.severity = suggestion
31+
dotnet_diagnostic.MA0026.severity = None
32+
dotnet_diagnostic.MA0048.severity = None
33+
dotnet_diagnostic.MA0016.severity = None
34+
dotnet_diagnostic.MA0069.severity = None
35+
dotnet_diagnostic.MA0017.severity = None
36+
dotnet_diagnostic.MA0004.severity = None
37+
3138
# Using directive should appear within a namespace declaration
3239
dotnet_diagnostic.SA1200.severity = None
3340

AssemblyProxy.cs

Lines changed: 70 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -10,95 +10,94 @@
1010
using LlamaLibrary.Memory;
1111
using Newtonsoft.Json.Serialization;
1212

13-
namespace LlamaLibrary
13+
namespace LlamaLibrary;
14+
15+
public static class AssemblyProxy
1416
{
15-
public static class AssemblyProxy
16-
{
17-
private static readonly ConcurrentDictionary<string, Assembly> Assemblies = new ConcurrentDictionary<string, Assembly>();
18-
private static readonly LLogger Log = new LLogger("AssemblyProxy", Colors.Bisque);
19-
private static bool _initialized;
20-
private static object _lock = new object();
17+
private static readonly ConcurrentDictionary<string, Assembly> Assemblies = new ConcurrentDictionary<string, Assembly>(StringComparer.Ordinal);
18+
private static readonly LLogger Log = new LLogger("AssemblyProxy", Colors.Bisque);
19+
private static bool _initialized;
20+
private static object _lock = new object();
2121

22-
public static void Init()
22+
public static void Init()
23+
{
24+
lock (_lock)
2325
{
24-
lock (_lock)
25-
{
26-
if (_initialized)
27-
{
28-
return;
29-
}
30-
31-
_initialized = true;
32-
}
33-
34-
try
35-
{
36-
AddAssembly("Newtonsoft", typeof(JsonContract).Assembly);
37-
AddAssembly("GreyMagic", typeof(ExternalProcessMemory).Assembly);
38-
AddAssembly("ff14bot", typeof(Core).Assembly);
39-
AddAssembly("LlamaLibrary", typeof(OffsetManager).Assembly);
40-
}
41-
catch (Exception e)
42-
{
43-
Log.Error(e.ToString());
44-
}
45-
46-
try
47-
{
48-
AddAssembly(Assembly.GetEntryAssembly()?.GetName().Name!, Assembly.GetEntryAssembly()!);
49-
}
50-
catch (Exception e)
26+
if (_initialized)
5127
{
52-
Log.Error(e.ToString());
28+
return;
5329
}
5430

55-
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
31+
_initialized = true;
5632
}
5733

58-
public static void AddAssembly(string name, Assembly assembly)
34+
try
5935
{
60-
//Add to dictionary, make sure it's not already there
61-
if (Assemblies.ContainsKey(name))
62-
{
63-
return;
64-
}
36+
AddAssembly("Newtonsoft", typeof(JsonContract).Assembly);
37+
AddAssembly("GreyMagic", typeof(ExternalProcessMemory).Assembly);
38+
AddAssembly("ff14bot", typeof(Core).Assembly);
39+
AddAssembly("LlamaLibrary", typeof(OffsetManager).Assembly);
40+
}
41+
catch (Exception e)
42+
{
43+
Log.Error(e.ToString());
44+
}
6545

66-
Assemblies.TryAdd(name, assembly);
46+
try
47+
{
48+
AddAssembly(Assembly.GetEntryAssembly()?.GetName().Name!, Assembly.GetEntryAssembly()!);
6749
}
50+
catch (Exception e)
51+
{
52+
Log.Error(e.ToString());
53+
}
54+
55+
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
56+
}
6857

69-
private static Assembly? OnAssemblyResolve(object? sender, ResolveEventArgs args)
58+
public static void AddAssembly(string name, Assembly assembly)
59+
{
60+
//Add to dictionary, make sure it's not already there
61+
if (Assemblies.ContainsKey(name))
7062
{
71-
if (Assemblies.TryGetValue(new AssemblyName(args.Name).Name ?? string.Empty, out var resolve))
72-
{
73-
return resolve;
74-
}
63+
return;
64+
}
7565

76-
if (!args.Name.Contains("resources"))
77-
{
78-
Log.Debug("Assembly not found: " + args.Name + "");
79-
}
66+
Assemblies.TryAdd(name, assembly);
67+
}
8068

81-
return null;
69+
private static Assembly? OnAssemblyResolve(object? sender, ResolveEventArgs args)
70+
{
71+
if (Assemblies.TryGetValue(new AssemblyName(args.Name).Name ?? string.Empty, out var resolve))
72+
{
73+
return resolve;
8274
}
8375

84-
public static Assembly OnCurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args)
76+
if (!args.Name.Contains("resources"))
8577
{
86-
var assemblyName = new AssemblyName(args.Name);
87-
switch (assemblyName.Name)
88-
{
89-
case "Newtonsoft":
90-
return typeof(JsonContract).Assembly;
91-
case "GreyMagic":
92-
return Core.Memory.GetType().Assembly;
93-
case "ff14bot":
94-
return Core.Me.GetType().Assembly;
95-
case "LlamaLibrary":
96-
return typeof(OffsetManager).Assembly;
97-
/*case "Clio.Localization":
98-
return typeof(Infralution.Localization.Wpf.CultureManager).Assembly;*/
99-
default:
100-
return null!;
101-
}
78+
Log.Debug("Assembly not found: " + args.Name + "");
79+
}
80+
81+
return null;
82+
}
83+
84+
public static Assembly OnCurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args)
85+
{
86+
var assemblyName = new AssemblyName(args.Name);
87+
switch (assemblyName.Name)
88+
{
89+
case "Newtonsoft":
90+
return typeof(JsonContract).Assembly;
91+
case "GreyMagic":
92+
return Core.Memory.GetType().Assembly;
93+
case "ff14bot":
94+
return Core.Me.GetType().Assembly;
95+
case "LlamaLibrary":
96+
return typeof(OffsetManager).Assembly;
97+
/*case "Clio.Localization":
98+
return typeof(Infralution.Localization.Wpf.CultureManager).Assembly;*/
99+
default:
100+
return null!;
102101
}
103102
}
104103
}

Chores/ChoreManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace LlamaLibrary.Chores;
1515
public static class ChoreManager
1616
{
1717
private static LLogger Log { get; } = new("ChoreManager");
18-
private static ConcurrentDictionary<string, Chore> Chores { get; } = new();
18+
private static ConcurrentDictionary<string, Chore> Chores { get; } = new(StringComparer.Ordinal);
1919
public static List<Chore> ChoreList => Chores.Values.ToList();
2020

2121
public static void AddChore(Chore chore)

ClientDataHelpers/UiManagerProxy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public static class UiManagerProxy
1010
{
1111
//private static readonly PropertyInfo[] Properties = typeof(DataManager).Assembly.GetType("ff14bot.Managers.UiManager").GetProperties(BindingFlags.Static | BindingFlags.Public);
1212

13-
private static readonly Dictionary<string, int> VFunctionIds = new()
13+
private static readonly Dictionary<string, int> VFunctionIds = new(StringComparer.Ordinal)
1414
{
1515
{ "GetRaptureTextModule", 6 },
1616
{ "GetRaptureAtkModule", 7 },

Data/Minions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static class Minions
1616

1717
public static MinionStore? GetMinionByName(string name)
1818
{
19-
return Cards.Find(x => x.Name == name);
19+
return Cards.Find(x => string.Equals(x.Name, name, System.StringComparison.Ordinal));
2020
}
2121

2222
public static MinionStore? GetMinionByItemID(uint id)

Data/TripleTriadCards.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static class TripleTriadCards
1616

1717
public static TripleTriadCardStore? GetCardByName(string name)
1818
{
19-
return Cards.Find(x => x.Name == name);
19+
return Cards.Find(x => string.Equals(x.Name, name, System.StringComparison.Ordinal));
2020
}
2121

2222
public static TripleTriadCardStore? GetCardByItemID(uint id)

Helpers/Cache/BaseClasses/FileCache.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class FileCache<T> where T : class
77
{
88
private readonly IFileStorable<T> _store;
99
private readonly ICacheable<T> _cacheable;
10-
private readonly Dictionary<string, T> _cache = new();
10+
private readonly Dictionary<string, T> _cache = new(System.StringComparer.Ordinal);
1111

1212
public FileCache(IFileStorable<T> store, ICacheable<T> cache)
1313
{

Helpers/ChocoboHelper.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static async Task<bool> Main(bool CleanBefore, uint ChocoboFoodId, bool F
7171
{
7272
foreach (var unit in GameObjectManager.GameObjects.OrderBy(r => r.Distance()))
7373
{
74-
if (unit.EnglishName == "Chocobo Stable")
74+
if (string.Equals(unit.EnglishName, "Chocobo Stable", StringComparison.Ordinal))
7575
{
7676
unit.Interact();
7777
break;
@@ -102,7 +102,7 @@ public static async Task<bool> Main(bool CleanBefore, uint ChocoboFoodId, bool F
102102
{
103103
foreach (var unit in GameObjectManager.GameObjects.OrderBy(r => r.Distance()))
104104
{
105-
if (unit.EnglishName == "Chocobo Stable")
105+
if (string.Equals(unit.EnglishName, "Chocobo Stable", StringComparison.Ordinal))
106106
{
107107
unit.Interact();
108108
break;
@@ -126,7 +126,7 @@ public static async Task<bool> Main(bool CleanBefore, uint ChocoboFoodId, bool F
126126
await Coroutine.Sleep(3000);
127127
foreach (var unit in GameObjectManager.GameObjects.OrderBy(r => r.Distance()))
128128
{
129-
if (unit.EnglishName == "Chocobo Stable")
129+
if (string.Equals(unit.EnglishName, "Chocobo Stable", StringComparison.Ordinal))
130130
{
131131
unit.Interact();
132132
break;
@@ -406,7 +406,7 @@ public static async Task<bool> Main(bool CleanBefore, uint ChocoboFoodId, bool F
406406
{
407407
foreach (var unit in GameObjectManager.GameObjects.OrderBy(r => r.Distance()))
408408
{
409-
if (unit.EnglishName == "Chocobo Stable")
409+
if (string.Equals(unit.EnglishName, "Chocobo Stable", StringComparison.Ordinal))
410410
{
411411
unit.Interact();
412412
break;

Helpers/GeneralFunctions.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -268,19 +268,19 @@ public static async Task SmallTalk(int waitTime = 500)
268268
{
269269
if (!await WindowEscapeSpam("SelectString"))
270270
{
271-
if (SelectString.Lines().Contains("Cancel"))
271+
if (SelectString.Lines().Contains("Cancel", StringComparer.Ordinal))
272272
{
273273
SelectString.ClickLineContains("Cancel");
274274
}
275-
else if (SelectString.Lines().Contains("Quit"))
275+
else if (SelectString.Lines().Contains("Quit", StringComparer.Ordinal))
276276
{
277277
SelectString.ClickLineContains("Quit");
278278
}
279-
else if (SelectString.Lines().Contains("Exit"))
279+
else if (SelectString.Lines().Contains("Exit", StringComparer.Ordinal))
280280
{
281281
SelectString.ClickLineContains("Exit");
282282
}
283-
else if (SelectString.Lines().Contains("Nothing"))
283+
else if (SelectString.Lines().Contains("Nothing", StringComparer.Ordinal))
284284
{
285285
SelectString.ClickLineContains("Nothing");
286286
}
@@ -295,21 +295,21 @@ public static async Task SmallTalk(int waitTime = 500)
295295
{
296296
if (!await WindowEscapeSpam("SelectIconString"))
297297
{
298-
if (SelectIconString.Lines().Contains("Cancel"))
298+
if (SelectIconString.Lines().Contains("Cancel", StringComparer.Ordinal))
299299
{
300-
SelectString.ClickLineContains("Cancel");
300+
SelectIconString.ClickLineContains("Cancel");
301301
}
302-
else if (SelectIconString.Lines().Contains("Quit"))
302+
else if (SelectIconString.Lines().Contains("Quit", StringComparer.Ordinal))
303303
{
304-
SelectString.ClickLineContains("Quit");
304+
SelectIconString.ClickLineContains("Quit");
305305
}
306-
else if (SelectIconString.Lines().Contains("Exit"))
306+
else if (SelectIconString.Lines().Contains("Exit", StringComparer.Ordinal))
307307
{
308-
SelectString.ClickLineContains("Exit");
308+
SelectIconString.ClickLineContains("Exit");
309309
}
310-
else if (SelectIconString.Lines().Contains("Nothing"))
310+
else if (SelectIconString.Lines().Contains("Nothing", StringComparer.Ordinal))
311311
{
312-
SelectString.ClickLineContains("Nothing");
312+
SelectIconString.ClickLineContains("Nothing");
313313
}
314314
else
315315
{
@@ -1771,7 +1771,7 @@ public static bool IsInstanceContentCompleted(uint instantContentId)
17711771

17721772
public static bool DalamudDetected()
17731773
{
1774-
return Core.Memory.Process.Modules.Cast<ProcessModule>().Any(processModule => processModule.ModuleName == "Dalamud.dll");
1774+
return Core.Memory.Process.Modules.Cast<ProcessModule>().Any(processModule => string.Equals(processModule.ModuleName, "Dalamud.dll", StringComparison.OrdinalIgnoreCase));
17751775
}
17761776

17771777
[MethodImpl(MethodImplOptions.NoInlining)]

Helpers/Lisbeth.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ static Lisbeth()
6767
internal static void FindLisbeth()
6868
{
6969
var loader = BotManager.Bots
70-
.FirstOrDefault(c => c.Name == "Lisbeth");
70+
.FirstOrDefault(c => string.Equals(c.Name, "Lisbeth", StringComparison.Ordinal));
7171

7272
if (loader == null)
7373
{

0 commit comments

Comments
 (0)