Skip to content

Commit

Permalink
General Cleanup, Moved Resolver Related Classes to MelonLoader.Resolv…
Browse files Browse the repository at this point in the history
…er Namespace, Moved MonoLibrary class to MelonLoader.Utils Namespace
  • Loading branch information
HerpDerpinstine committed Oct 15, 2024
1 parent 77889af commit 1f8c558
Show file tree
Hide file tree
Showing 13 changed files with 40 additions and 47 deletions.
2 changes: 1 addition & 1 deletion Dependencies/CompatibilityLayers/IPA/Module.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using MelonLoader.InternalUtils;
using IllusionPlugin;
using IllusionInjector;
using MelonLoader.Modules;
using MelonLoader.Resolver;

namespace MelonLoader.CompatibilityLayers
{
Expand Down
2 changes: 1 addition & 1 deletion Dependencies/CompatibilityLayers/Muse_Dash_Mono/Module.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
using System.Linq;
using System.Reflection;
using MelonLoader.Modules;
using MelonLoader.InternalUtils;
using ModHelper;
using MelonLoader.Resolver;

namespace MelonLoader.CompatibilityLayers
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

namespace MelonLoader.MonoInternals
{
[Obsolete("MelonLoader.MonoInternals.AssemblyResolveInfo is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.AssemblyResolveInfo instead.")]
public class AssemblyResolveInfo : InternalUtils.AssemblyResolveInfo { }
[Obsolete("MelonLoader.MonoInternals.AssemblyResolveInfo is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.AssemblyResolveInfo instead.")]
public class AssemblyResolveInfo : Resolver.AssemblyResolveInfo { }
}
4 changes: 2 additions & 2 deletions MelonLoader/BackwardsCompatibility/Melon/MonoLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

namespace MelonLoader.MonoInternals
{
[Obsolete("MelonLoader.MonoInternals.MonoLibrary is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MonoLibrary instead.")]
public class MonoLibrary : InternalUtils.MonoLibrary { }
[Obsolete("MelonLoader.MonoInternals.MonoLibrary is Only Here for Compatibility Reasons. Please use MelonLoader.Utils.MonoLibrary instead.")]
public class MonoLibrary : Utils.MonoLibrary { }
}

#endif
26 changes: 13 additions & 13 deletions MelonLoader/BackwardsCompatibility/Melon/MonoResolveManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,37 @@

namespace MelonLoader.MonoInternals
{
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver instead.")]
public static class MonoResolveManager
{
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.AddSearchDirectory is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.AddSearchDirectory instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.AddSearchDirectory is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.AddSearchDirectory instead.")]
public static void AddSearchDirectory(string path, int priority = 0)
=> InternalUtils.Resolver.SearchDirectoryManager.Add(path, priority);
=> Resolver.SearchDirectoryManager.Add(path, priority);

[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.RemoveSearchDirectory is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.RemoveSearchDirectory instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.RemoveSearchDirectory is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.RemoveSearchDirectory instead.")]
public static void RemoveSearchDirectory(string path)
=> InternalUtils.Resolver.SearchDirectoryManager.Remove(path);
=> Resolver.SearchDirectoryManager.Remove(path);

[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyLoadHandler is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.dOnAssemblyLoad instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyLoadHandler is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.dOnAssemblyLoad instead.")]
public delegate void OnAssemblyLoadHandler(Assembly assembly);
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyLoad is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.OnAssemblyLoad instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyLoad is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.OnAssemblyLoad instead.")]
public static event OnAssemblyLoadHandler OnAssemblyLoad;
internal static void SafeInvoke_OnAssemblyLoad(Assembly assembly)
=> OnAssemblyLoad?.Invoke(assembly);

[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyResolveHandler is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.dOnAssemblyResolve instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyResolveHandler is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.dOnAssemblyResolve instead.")]
public delegate Assembly OnAssemblyResolveHandler(string name, Version version);
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyLoad is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.OnAssemblyLoad instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.OnAssemblyLoad is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.OnAssemblyLoad instead.")]
public static event OnAssemblyResolveHandler OnAssemblyResolve;
internal static Assembly SafeInvoke_OnAssemblyResolve(string name, Version version)
=> OnAssemblyResolve?.Invoke(name, version);

[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.GetAssemblyResolveInfo is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.GetAssemblyResolveInfo instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.GetAssemblyResolveInfo is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.GetAssemblyResolveInfo instead.")]
public static AssemblyResolveInfo GetAssemblyResolveInfo(string name)
=> (AssemblyResolveInfo)InternalUtils.Resolver.AssemblyManager.GetInfo(name);
=> (AssemblyResolveInfo)Resolver.AssemblyManager.GetInfo(name);

[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.LoadInfoFromAssembly is Only Here for Compatibility Reasons. Please use MelonLoader.InternalUtils.MelonAssemblyResolver.LoadInfoFromAssembly instead.")]
[Obsolete("MelonLoader.MonoInternals.MonoResolveManager.LoadInfoFromAssembly is Only Here for Compatibility Reasons. Please use MelonLoader.Resolver.MelonAssemblyResolver.LoadInfoFromAssembly instead.")]
public static void LoadInfoFromAssembly(Assembly assembly)
=> InternalUtils.Resolver.AssemblyManager.LoadInfo(assembly);
=> Resolver.AssemblyManager.LoadInfo(assembly);
}
}
12 changes: 5 additions & 7 deletions MelonLoader/Core.cs
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
using System;
using System.Diagnostics;
using System.Reflection;
using System.Security;
using MelonLoader.InternalUtils;
using MelonLoader.MonoInternals;
using MelonLoader.Utils;
using System.IO;
using bHapticsLib;
using System.Threading;
using System.Linq;
using MelonLoader.Resolver;
using MelonLoader.Utils;
using MelonLoader.InternalUtils;
#pragma warning disable IDE0051 // Prevent the IDE from complaining about private unreferenced methods

namespace MelonLoader
{
internal static class Core
internal static class Core
{
private static bool _success = true;

Expand Down Expand Up @@ -65,7 +63,7 @@ internal static int Initialize()

try
{
if (!InternalUtils.MonoLibrary.Setup())
if (!MonoLibrary.Setup())
{
_success = false;
return 1;
Expand Down
2 changes: 1 addition & 1 deletion MelonLoader/InternalUtils/DependencyGraph.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System.Text;
using System.Reflection;
using System.IO;
using MelonLoader.InternalUtils.Resolver;
using MelonLoader.Resolver;

#if NET6_0_OR_GREATER
using System.Runtime.Loader;
Expand Down
6 changes: 3 additions & 3 deletions MelonLoader/Melons/MelonFolderHandler.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Drawing;
using System.IO;

Expand Down Expand Up @@ -98,7 +98,7 @@ private static void ProcessFolder<T>(string path,
return;

// Add Base Path to Resolver
InternalUtils.MelonAssemblyResolver.AddSearchDirectory(path);
Resolver.MelonAssemblyResolver.AddSearchDirectory(path);

// Get Directories
var directories = Directory.GetDirectories(path, "*", SearchOption.AllDirectories);
Expand All @@ -121,7 +121,7 @@ private static void ProcessFolder<T>(string path,
// Load Assemblies
if (dirNameLower.EndsWith("userlibs"))
MelonUtils.AddNativeDLLDirectory(dir);
InternalUtils.MelonAssemblyResolver.AddSearchDirectory(dir);
Resolver.MelonAssemblyResolver.AddSearchDirectory(dir);
}

// Load UserLibs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@
using System.Reflection;

#if NET6_0_OR_GREATER
using System.IO;
using System.Runtime.Loader;
#else
using System.Runtime.CompilerServices;
#endif

#pragma warning disable CS8632

namespace MelonLoader.InternalUtils.Resolver
namespace MelonLoader.Resolver
{
internal class AssemblyManager
{
Expand Down Expand Up @@ -50,7 +49,7 @@ private static Assembly Resolve(string requested_name, Version requested_version
assembly = MelonAssemblyResolver.SafeInvoke_OnAssemblyResolve(requested_name, requested_version);

// Search Directories
if (is_preload && (assembly == null))
if (is_preload && assembly == null)
assembly = SearchDirectoryManager.Scan(requested_name);

// Load if Valid Assembly
Expand Down Expand Up @@ -78,7 +77,7 @@ internal static void LoadInfo(Assembly assembly)

#if NET6_0_OR_GREATER

private static Assembly? Resolve(AssemblyLoadContext alc, AssemblyName name)
private static Assembly Resolve(AssemblyLoadContext alc, AssemblyName name)
=> Resolve(name.Name, name.Version, true);

private static void InstallHooks()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Reflection;

namespace MelonLoader.InternalUtils
namespace MelonLoader.Resolver
{
public class AssemblyResolveInfo
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
using System;
using System.IO;
using System.Reflection;
using MelonLoader.InternalUtils.Resolver;
using MelonLoader.Utils;

#if NET6_0_OR_GREATER
Expand All @@ -10,7 +9,7 @@

#pragma warning disable CS0618 // Type or member is obsolete

namespace MelonLoader.InternalUtils
namespace MelonLoader.Resolver
{
public class MelonAssemblyResolver
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,14 @@
using System.Reflection;

#if NET6_0_OR_GREATER

using System.Runtime.Loader;

#else

using System;
using System.Runtime.InteropServices;

using MelonLoader.Utils;
#endif

namespace MelonLoader.InternalUtils.Resolver
namespace MelonLoader.Resolver
{
internal static class SearchDirectoryManager
{
Expand Down Expand Up @@ -75,10 +72,10 @@ internal static Assembly Scan(string requested_name)

string filepath = Directory.GetFiles(folderpath).Where(x =>
!string.IsNullOrEmpty(x)
&& ((Path.GetExtension(x).ToLowerInvariant().Equals(".dll")
&& Path.GetFileName(x).Equals($"{requested_name}.dll"))
|| (Path.GetExtension(x).ToLowerInvariant().Equals(".exe")
&& Path.GetFileName(x).Equals($"{requested_name}.exe")))
&& (Path.GetExtension(x).ToLowerInvariant().Equals(".dll")
&& Path.GetFileName(x).Equals($"{requested_name}.dll")
|| Path.GetExtension(x).ToLowerInvariant().Equals(".exe")
&& Path.GetFileName(x).Equals($"{requested_name}.exe"))
).FirstOrDefault();

if (string.IsNullOrEmpty(filepath))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace MelonLoader.InternalUtils
namespace MelonLoader.Utils
{
public class MonoLibrary
{
Expand Down

0 comments on commit 1f8c558

Please sign in to comment.