diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 2d0184ad..daae1d20 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -7,7 +7,7 @@ {5AD344F0-01A0-4CA8-92E5-9D095737744D} Library Properties - IPA.Loader + IPA IPA.Loader v4.6 512 @@ -52,16 +52,16 @@ - - - - - - - + + + + + + + - + diff --git a/IPA.Loader/IllusionInjector/BeatSaber/CompositeBSPlugin.cs b/IPA.Loader/IllusionInjector/BeatSaber/CompositeBSPlugin.cs index 96d6ddf0..acff0c2e 100644 --- a/IPA.Loader/IllusionInjector/BeatSaber/CompositeBSPlugin.cs +++ b/IPA.Loader/IllusionInjector/BeatSaber/CompositeBSPlugin.cs @@ -1,5 +1,5 @@ using IllusionPlugin; -using IllusionPlugin.BeatSaber; +using IPA; using System; using System.Collections.Generic; using System.Linq; diff --git a/IPA.Loader/IllusionInjector/IPA/CompositeIPAPlugin.cs b/IPA.Loader/IllusionInjector/IPA/CompositeIPAPlugin.cs index 001677a6..f66b73a0 100644 --- a/IPA.Loader/IllusionInjector/IPA/CompositeIPAPlugin.cs +++ b/IPA.Loader/IllusionInjector/IPA/CompositeIPAPlugin.cs @@ -1,6 +1,8 @@ using IllusionPlugin; using System; using System.Collections.Generic; +using IPA; +using IPA.Old; using System.Linq; using System.Text; using UnityEngine; diff --git a/IPA.Loader/IllusionInjector/Logging/StandardLogger.cs b/IPA.Loader/IllusionInjector/Logging/StandardLogger.cs index c2c9a484..3224691e 100644 --- a/IPA.Loader/IllusionInjector/Logging/StandardLogger.cs +++ b/IPA.Loader/IllusionInjector/Logging/StandardLogger.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; +using IPA; using LoggerBase = IllusionPlugin.Logging.Logger; namespace IllusionInjector.Logging diff --git a/IPA.Loader/IllusionInjector/PluginComponent.cs b/IPA.Loader/IllusionInjector/PluginComponent.cs index 1f3fc9d3..86206cce 100644 --- a/IPA.Loader/IllusionInjector/PluginComponent.cs +++ b/IPA.Loader/IllusionInjector/PluginComponent.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.SceneManagement; +using IPA.Loader; namespace IllusionInjector { diff --git a/IPA.Loader/IllusionInjector/PluginManager.cs b/IPA.Loader/IllusionInjector/PluginManager.cs index c872e84c..4db9473e 100644 --- a/IPA.Loader/IllusionInjector/PluginManager.cs +++ b/IPA.Loader/IllusionInjector/PluginManager.cs @@ -2,7 +2,8 @@ using IllusionInjector.Updating; using IllusionInjector.Utilities; using IllusionPlugin; -using IllusionPlugin.BeatSaber; +using IPA; +using IPA.Old; using Mono.Cecil; using System; using System.Collections.Generic; @@ -16,7 +17,7 @@ using System.Text; using System.Threading.Tasks; using LoggerBase = IllusionPlugin.Logging.Logger; -namespace IllusionInjector +namespace IPA.Loader { public static class PluginManager { @@ -177,17 +178,36 @@ namespace IllusionInjector try { + #region Fix assemblies for refactor + var module = ModuleDefinition.ReadModule(file); bool modifiedModule = false; foreach (var @ref in module.AssemblyReferences) - { + { // fix assembly references if (@ref.Name == "IllusionPlugin" || @ref.Name == "IllusionInjector") { @ref.Name = "IPA.Loader"; modifiedModule = true; } } - if (modifiedModule) module.Write(file); + if (modifiedModule) + { // types don't need to be fixed if it's already referencing the new version + foreach (var @ref in module.GetTypeReferences()) + { // fix type references + if (@ref.FullName == "IllusionPlugin.IPlugin") @ref.Namespace = "IPA.Old"; //@ref.Name = ""; + if (@ref.FullName == "IllusionPlugin.IEnhancedPlugin") @ref.Namespace = "IPA.Old"; //@ref.Name = "" + if (@ref.FullName == "IllusionPlugin.IBeatSaberPlugin") @ref.Namespace = "IPA"; //@ref.Name = "" + if (@ref.FullName == "IllusionPlugin.IEnhancedBeatSaberPlugin") @ref.Namespace = "IPA"; //@ref.Name = "" + if (@ref.FullName == "IllusionPlugin.BeatSaber.ModsaberModInfo") @ref.Namespace = "IPA"; //@ref.Name = "" + if (@ref.FullName == "IllusionPlugin.IniFile") @ref.Namespace = "IPA"; //@ref.Name = "" + if (@ref.FullName == "IllusionPlugin.IModPrefs") @ref.Namespace = "IPA"; //@ref.Name = "" + if (@ref.FullName == "IllusionPlugin.ModPrefs") @ref.Namespace = "IPA"; //@ref.Name = "" + if (@ref.FullName == "IllusionInjector.PluginManager") @ref.Namespace = "IPA.Loader"; //@ref.Name = "" + } + module.Write(file); + } + + #endregion Assembly assembly = Assembly.LoadFrom(file); diff --git a/IPA.Loader/IllusionInjector/Updating/ModsaberML/Updater.cs b/IPA.Loader/IllusionInjector/Updating/ModsaberML/Updater.cs index 26a5c653..6555cbce 100644 --- a/IPA.Loader/IllusionInjector/Updating/ModsaberML/Updater.cs +++ b/IPA.Loader/IllusionInjector/Updating/ModsaberML/Updater.cs @@ -1,5 +1,6 @@ using IllusionInjector.Updating.Backup; using IllusionInjector.Utilities; +using IPA.Loader; using Ionic.Zip; using Newtonsoft.Json; using System; diff --git a/IPA.Loader/IllusionInjector/Updating/SelfPlugin.cs b/IPA.Loader/IllusionInjector/Updating/SelfPlugin.cs index b24f5642..809df0a3 100644 --- a/IPA.Loader/IllusionInjector/Updating/SelfPlugin.cs +++ b/IPA.Loader/IllusionInjector/Updating/SelfPlugin.cs @@ -1,5 +1,5 @@ using IllusionPlugin; -using IllusionPlugin.BeatSaber; +using IPA; using System; using System.Collections.Generic; using System.Linq; diff --git a/IPA.Loader/IllusionPlugin/IniFile.cs b/IPA.Loader/IniFile.cs similarity index 99% rename from IPA.Loader/IllusionPlugin/IniFile.cs rename to IPA.Loader/IniFile.cs index b8f47bce..94ff4f3f 100644 --- a/IPA.Loader/IllusionPlugin/IniFile.cs +++ b/IPA.Loader/IniFile.cs @@ -4,7 +4,7 @@ using System.IO; using System.Runtime.InteropServices; using System.Text; -namespace IllusionPlugin +namespace IPA { /// /// Create a New INI file to store or load data diff --git a/IPA.Loader/IllusionPlugin/ModPrefs.cs b/IPA.Loader/ModPrefs.cs similarity index 99% rename from IPA.Loader/IllusionPlugin/ModPrefs.cs rename to IPA.Loader/ModPrefs.cs index 198cc6aa..3657a81d 100644 --- a/IPA.Loader/IllusionPlugin/ModPrefs.cs +++ b/IPA.Loader/ModPrefs.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Reflection; using System.Text; -namespace IllusionPlugin +namespace IPA { /// /// Allows to get and set preferences for your mod. diff --git a/IPA.Loader/IllusionPlugin/BeatSaber/IBeatSaberPlugin.cs b/IPA.Loader/PluginInterfaces/BeatSaber/IBeatSaberPlugin.cs similarity index 96% rename from IPA.Loader/IllusionPlugin/BeatSaber/IBeatSaberPlugin.cs rename to IPA.Loader/PluginInterfaces/BeatSaber/IBeatSaberPlugin.cs index a9e2753c..48dba55a 100644 --- a/IPA.Loader/IllusionPlugin/BeatSaber/IBeatSaberPlugin.cs +++ b/IPA.Loader/PluginInterfaces/BeatSaber/IBeatSaberPlugin.cs @@ -1,10 +1,9 @@ -using IllusionPlugin.BeatSaber; -using System; +using System; using System.Collections.Generic; using System.Text; using UnityEngine.SceneManagement; -namespace IllusionPlugin +namespace IPA { /// /// Interface for Beat Saber plugins. Every class that implements this will be loaded if the DLL is placed at diff --git a/IPA.Loader/IllusionPlugin/BeatSaber/IEnhancedBeatSaberPlugin.cs b/IPA.Loader/PluginInterfaces/BeatSaber/IEnhancedBeatSaberPlugin.cs similarity index 91% rename from IPA.Loader/IllusionPlugin/BeatSaber/IEnhancedBeatSaberPlugin.cs rename to IPA.Loader/PluginInterfaces/BeatSaber/IEnhancedBeatSaberPlugin.cs index dfbd4f9f..3a31ef13 100644 --- a/IPA.Loader/IllusionPlugin/BeatSaber/IEnhancedBeatSaberPlugin.cs +++ b/IPA.Loader/PluginInterfaces/BeatSaber/IEnhancedBeatSaberPlugin.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace IllusionPlugin +namespace IPA { /// /// An enhanced version of a standard BeatSaber plugin. diff --git a/IPA.Loader/IllusionPlugin/BeatSaber/ModsaberModInfo.cs b/IPA.Loader/PluginInterfaces/BeatSaber/ModsaberModInfo.cs similarity index 94% rename from IPA.Loader/IllusionPlugin/BeatSaber/ModsaberModInfo.cs rename to IPA.Loader/PluginInterfaces/BeatSaber/ModsaberModInfo.cs index 6defe31c..ba5fb374 100644 --- a/IPA.Loader/IllusionPlugin/BeatSaber/ModsaberModInfo.cs +++ b/IPA.Loader/PluginInterfaces/BeatSaber/ModsaberModInfo.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace IllusionPlugin.BeatSaber +namespace IPA { /// /// A class to provide information about a mod on ModSaber.ML diff --git a/IPA.Loader/IllusionPlugin/IGenericEnhancedPlugin.cs b/IPA.Loader/PluginInterfaces/IGenericEnhancedPlugin.cs similarity index 96% rename from IPA.Loader/IllusionPlugin/IGenericEnhancedPlugin.cs rename to IPA.Loader/PluginInterfaces/IGenericEnhancedPlugin.cs index 80327f5c..b3c9a935 100644 --- a/IPA.Loader/IllusionPlugin/IGenericEnhancedPlugin.cs +++ b/IPA.Loader/PluginInterfaces/IGenericEnhancedPlugin.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace IllusionPlugin +namespace IPA { /// /// A generic interface for the modification for enhanced plugins. diff --git a/IPA.Loader/IllusionPlugin/IPA/IEnhancedPlugin.cs b/IPA.Loader/PluginInterfaces/IPA/IEnhancedPlugin.cs similarity index 92% rename from IPA.Loader/IllusionPlugin/IPA/IEnhancedPlugin.cs rename to IPA.Loader/PluginInterfaces/IPA/IEnhancedPlugin.cs index ac925b2e..91c0e42e 100644 --- a/IPA.Loader/IllusionPlugin/IPA/IEnhancedPlugin.cs +++ b/IPA.Loader/PluginInterfaces/IPA/IEnhancedPlugin.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace IllusionPlugin +namespace IPA.Old { /// /// An enhanced version of the standard IPA plugin. diff --git a/IPA.Loader/IllusionPlugin/IPA/IPlugin.cs b/IPA.Loader/PluginInterfaces/IPA/IPlugin.cs similarity index 98% rename from IPA.Loader/IllusionPlugin/IPA/IPlugin.cs rename to IPA.Loader/PluginInterfaces/IPA/IPlugin.cs index 0610da73..fe9adba2 100644 --- a/IPA.Loader/IllusionPlugin/IPA/IPlugin.cs +++ b/IPA.Loader/PluginInterfaces/IPA/IPlugin.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace IllusionPlugin +namespace IPA.Old { /// /// Interface for generic Illusion unity plugins. Every class that implements this will be loaded if the DLL is placed at