public static void allCustomProfiles() { PropertyInfo _profilesProperty = typeof(ProfilesCore).GetProperty("allCustomProfiles", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); MethodInfo methodToReplace = _profilesProperty.GetGetMethod(); MethodInfo methodToInject = typeof(ProfilesCoreEdits).GetMethod("allCustomProfilesReplace", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); UnsafeCode.CodeInjection(methodToReplace, methodToInject); }
public static void defaultProfiles() { Type inputtype = typeof(InputProfileCore); PropertyInfo _devicesProperty = inputtype.GetProperty("defaultProfiles", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); MethodInfo methodToReplace = _devicesProperty.GetGetMethod(); MethodInfo methodToInject = typeof(InputProfileCoreEdits).GetMethod("defaultProfilesReplace", BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); UnsafeCode.CodeInjection(methodToReplace, methodToInject); }
public static void install(int typereplace, string methodtoreplace, string methodtoinject) { Type typereplace1 = null; Type typeinject1 = null; if (typereplace == 0) { typereplace1 = typeof(Duck); typeinject1 = typeof(Injection); } else if (typereplace == 1) { typereplace1 = typeof(DuckNetworkCore); typeinject1 = typeof(DuckNetworkCoreEdits); } else if (typereplace == 2) { typereplace1 = typeof(Input); typeinject1 = typeof(InputEdits); } else if (typereplace == 3) { typereplace1 = typeof(DuckNetwork); typeinject1 = typeof(DuckNetworkEdits); } else if (typereplace == 4) { typereplace1 = typeof(TeamSelect2); typeinject1 = typeof(TeamSelect2Edits); } else if (typereplace == 5) { typereplace1 = typeof(ProfilesCore); typeinject1 = typeof(ProfilesCoreEdits); } else if (typereplace == 6) { typereplace1 = typeof(HatSelector); typeinject1 = typeof(HatSelectorEdits); } else if (typereplace == 7) { // Empty because I was going to inject into BufferedGhostState but didn't actually need to. } else if (typereplace == 8) { typereplace1 = typeof(Level); typeinject1 = typeof(LevelEdits); } MethodInfo methodToReplace = typereplace1.GetMethod(methodtoreplace, BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); MethodInfo methodToInject = typeinject1.GetMethod(methodtoinject, BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); UnsafeCode.CodeInjection(methodToReplace, methodToInject); }