From ccade1be0e804285c2c77ded3ff993f1421dc117 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Wed, 7 May 2025 21:16:13 -0400 Subject: [PATCH 1/8] Update http patches to account for new innersloth APIs --- Reactor.Benchmarks/packages.lock.json | 6 +++--- Reactor.Debugger/packages.lock.json | 6 +++--- Reactor.Example/packages.lock.json | 6 +++--- Reactor/Networking/Patches/HttpPatches.cs | 8 ++++++-- Reactor/packages.lock.json | 6 +++--- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Reactor.Benchmarks/packages.lock.json b/Reactor.Benchmarks/packages.lock.json index aaa087e..e0da3bb 100644 --- a/Reactor.Benchmarks/packages.lock.json +++ b/Reactor.Benchmarks/packages.lock.json @@ -425,7 +425,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -460,7 +460,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" + "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -570,7 +570,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", diff --git a/Reactor.Debugger/packages.lock.json b/Reactor.Debugger/packages.lock.json index 963d40f..18db358 100644 --- a/Reactor.Debugger/packages.lock.json +++ b/Reactor.Debugger/packages.lock.json @@ -253,7 +253,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -288,7 +288,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" + "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -388,7 +388,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", diff --git a/Reactor.Example/packages.lock.json b/Reactor.Example/packages.lock.json index 963d40f..18db358 100644 --- a/Reactor.Example/packages.lock.json +++ b/Reactor.Example/packages.lock.json @@ -253,7 +253,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -288,7 +288,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" + "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -388,7 +388,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", diff --git a/Reactor/Networking/Patches/HttpPatches.cs b/Reactor/Networking/Patches/HttpPatches.cs index 9d1355c..7e1668a 100644 --- a/Reactor/Networking/Patches/HttpPatches.cs +++ b/Reactor/Networking/Patches/HttpPatches.cs @@ -55,7 +55,9 @@ private static class SendWebRequestPatch public static void Prefix(UnityWebRequest __instance) { var path = __instance.uri.AbsolutePath; - if (path == "/api/games") + // Innersloth changed /api/games to /api/games/filtered + // We may want to keep support for /api/games though. + if (path.Contains("/api/games")) { Debug($"{__instance.method} {path}"); __instance.SetRequestHeader("Client-Mods", BuildHeader()); @@ -65,7 +67,9 @@ public static void Prefix(UnityWebRequest __instance) public static void Postfix(UnityWebRequest __instance, UnityWebRequestAsyncOperation __result) { var path = __instance.uri.AbsolutePath; - if (path == "/api/games") + // Innersloth changed /api/games to /api/games/filtered + // We may want to keep support for /api/games though. + if (path.Contains("/api/games")) { __result.add_completed((Action) (_ => { diff --git a/Reactor/packages.lock.json b/Reactor/packages.lock.json index b9c2dbd..79193de 100644 --- a/Reactor/packages.lock.json +++ b/Reactor/packages.lock.json @@ -253,7 +253,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -288,7 +288,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" + "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -388,7 +388,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", From 7b7ba31e947c1664bdaed4dd4578979c8610f2b3 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Tue, 20 May 2025 17:51:47 -0400 Subject: [PATCH 2/8] Update Empty Texture utility for new Unity Version --- AmongUs.props | 4 +- Reactor.Benchmarks/packages.lock.json | 72 +++++++++++++-------------- Reactor.Debugger/packages.lock.json | 72 +++++++++++++-------------- Reactor.Example/packages.lock.json | 72 +++++++++++++-------------- Reactor/Utilities/CanvasUtilities.cs | 3 +- Reactor/packages.lock.json | 70 +++++++++++++------------- 6 files changed, 146 insertions(+), 147 deletions(-) diff --git a/AmongUs.props b/AmongUs.props index 074a5f8..68a82db 100644 --- a/AmongUs.props +++ b/AmongUs.props @@ -1,7 +1,7 @@ - - + + diff --git a/Reactor.Benchmarks/packages.lock.json b/Reactor.Benchmarks/packages.lock.json index e0da3bb..326ed14 100644 --- a/Reactor.Benchmarks/packages.lock.json +++ b/Reactor.Benchmarks/packages.lock.json @@ -4,9 +4,9 @@ "net6.0": { "AmongUs.GameLibs.Steam": { "type": "Direct", - "requested": "[2025.3.25, )", - "resolved": "2025.3.25", - "contentHash": "2QxQXgZDcQOdAIDXrNLrQ7veEzD6EBzuaRjzSbHptWUPUsuVc3I5Ur3xMkPPwmSGsDHjLuAGE84yRjV6oJxGxw==" + "requested": "[2025.4.15, )", + "resolved": "2025.4.15", + "contentHash": "R3RxzHGZOGUJ9nMwrP0cjS6g+sh60QUU506Mo47lh17155enUjH6PtErijihSoU7t3aQpzCIyC67W3XrrHhH4g==" }, "BenchmarkDotNet": { "type": "Direct", @@ -40,19 +40,19 @@ }, "BepInEx.Unity.IL2CPP": { "type": "Direct", - "requested": "[6.0.0-be.733, )", - "resolved": "6.0.0-be.733", - "contentHash": "lnoGaPHjIdGfEiKtf89knaTdLXe4IUqVLdoYqW8NYhhNqgxa3oNwScjTmuYQpa4Leew3937+slq2WIjvX/DUwQ==", + "requested": "[6.0.0-be.735, )", + "resolved": "6.0.0-be.735", + "contentHash": "2+eFJGKMR1GFPeU9wuF+TVrMANIaWIc/6N9e8x4b7b/fNiY9B6vicYNiMDb2deYQpWZtOei+2btnar5dDE5BPg==", "dependencies": { - "BepInEx.Core": "6.0.0-be.733", - "BepInEx.Unity.Common": "6.0.0-be.733", + "BepInEx.Core": "6.0.0-be.735", + "BepInEx.Unity.Common": "6.0.0-be.735", "HarmonyX": "2.10.2", "Iced": "1.21.0", "Il2CppInterop.Generator": "1.4.6-ci.426", "Il2CppInterop.HarmonySupport": "1.4.6-ci.426", "Il2CppInterop.Runtime": "1.4.6-ci.426", "MonoMod.RuntimeDetour": "22.7.31.1", - "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.18" + "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.19" } }, "StyleCop.Analyzers": { @@ -95,8 +95,8 @@ }, "AssetRipper.CIL": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "nSz1cBjgVeKv+esfDtyQGC1mY9b4C4NFStytdoa9DMozDC8uth6930kAsuWZEivj9GqWSqENnaQUGnl23WpmnQ==", + "resolved": "1.1.2", + "contentHash": "BRPcHORadIzSFkrVOvGkSs54j19mQdXH8dmRTVM51mS8MZLSbTpi9CDPpnWN2IdDsILUrAqbPUFo3zJodYxErw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1" } @@ -118,8 +118,8 @@ }, "BepInEx.Core": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "uRzpyUdU3L8Y4ZW+ZnF73orq0E40MjGK6XcPzm24CrrWB5bUshwdrtFQfrwZB6jcZVNVV6PXE92hScEI+Jaoqw==", + "resolved": "6.0.0-be.735", + "contentHash": "FuHm9UCzjSKeiZJc3IF70Fiuqi+FynRn62PwBoOeZcHK3/qm+vl1YwbZyFlmUyf45g+UKxg2Td40iZGx88LVAQ==", "dependencies": { "HarmonyX": "2.10.2", "MonoMod.Utils": "22.7.31.1", @@ -128,8 +128,8 @@ }, "BepInEx.Unity.Common": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "KfdiHVSOPnIbDEF7zLPTSXDjKqIEq7SgffqFFKIxOBkCws7LdtSRQsamUcxdD0H8yopcgdlqobIp6t8e4M/k9Q==", + "resolved": "6.0.0-be.735", + "contentHash": "vmK//OBSr+jotqTk//HSdvHtMFTKu+NlQkiEsvr0dZApTVmQM2AgpVMhEAakQPmrSsM6LRJIHCBcLFO1ypfMPQ==", "dependencies": { "AssetRipper.Primitives": "3.1.3", "MonoMod.Utils": "22.7.31.1" @@ -142,8 +142,8 @@ }, "Disarm": { "type": "Transitive", - "resolved": "2022.1.0-master.34", - "contentHash": "sxzTci5eSdl+sFoaGsMZIp7X/eB5ZzplM3CppvD1CWoiZ8rSa43XGLC19G5e8n6mjutNBfN9yL+RER5PCspHFg==" + "resolved": "2022.1.0-master.57", + "contentHash": "/dkg7hg8iPBQN4bTV1lMQacarH6fMpgUXhJuo6iI7Wv7YpH7g5F9hJfje7dSMhqG0YlDacLuyWvcph5GzKUXog==" }, "Gee.External.Capstone": { "type": "Transitive", @@ -425,7 +425,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", + "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -460,7 +460,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" + "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -489,31 +489,31 @@ }, "Samboy063.Cpp2IL.Core": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "eX9d1IK05jWaEaeuMAE0L5WYHT7thtxz+aWLL/CAaCzZ0TzRPD+WFTjJ0KQO0YWBVO300CX3GwmPmf7TNO+wUg==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "mAYIrMo0VdOZzh1NS5bZeflg80gtYNY7kZo9q/blEYheUPyLXu5ozQOjX+Bq2yDh40pA+yiE2MXTnN2Is2hjgw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1", - "AssetRipper.CIL": "1.1.0", + "AssetRipper.CIL": "1.1.2", "AssetRipper.Gee.External.Capstone": "2.3.2", - "Disarm": "2022.1.0-master.34", + "Disarm": "2022.1.0-master.57", "Iced": "1.21.0", - "Samboy063.LibCpp2IL": "2022.1.0-pre-release.18", - "StableNameDotNet": "0.1.0-pre-release.15" + "Samboy063.LibCpp2IL": "2022.1.0-pre-release.19", + "StableNameDotNet": "0.1.0-pre-release.19" } }, "Samboy063.LibCpp2IL": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "9zJdTAeErpwJpYDHYwwI0MAC1OyBEfC1ce7dpAOYRUUYCfeaKVWxnSCcyaoY6HDzIoxPkhbfllbwOe49ZmUYuQ==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "/n8p81ltd38BeNNS2xUNPGMSzxk/UGXr9cRNqG1MaLogzANNNrvCAXqWmNMM3tZctjp7vqTxEA+e4J4ngul8Fg==", "dependencies": { - "AssetRipper.Primitives": "3.1.2", - "Samboy063.WasmDisassembler": "2022.1.0-pre-release.15" + "AssetRipper.Primitives": "3.1.3", + "Samboy063.WasmDisassembler": "2022.1.0-pre-release.19" } }, "Samboy063.WasmDisassembler": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.15", - "contentHash": "e6qw81SHS+fS7iZ3qfqZBavVarYbkPElNgDCANF6dNFTYq5+hc80am+4FqQDl+ZVNS47bZDZobxIzHhmriCXGg==" + "resolved": "2022.1.0-pre-release.19", + "contentHash": "uVQdYm/J6+jJ1xt6GJ3hNhXhciwlX+LmHTPITu9jjZ75T33YJuuTD7pLVYuMymr+4gSVisg7f1wterFSyqJBWA==" }, "SemanticVersioning": { "type": "Transitive", @@ -522,8 +522,8 @@ }, "StableNameDotNet": { "type": "Transitive", - "resolved": "0.1.0-pre-release.15", - "contentHash": "aIkEOo8V76vE+9CppHpTFLGXalBw6TAl4/tb6vadmS+gHJMshTVehzQv9cJXy4xZDdANV1uGMRaUFZERcDA2xQ==" + "resolved": "0.1.0-pre-release.19", + "contentHash": "5BPWtntv3PXeFIg9CuGW6OM3f5GnwvdQJbzRpufPsistFwFyt1xYW1wSDr+QIdDO7vLndr7iNpWD3FyYp9LL4g==" }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", @@ -570,7 +570,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", + "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", @@ -1138,9 +1138,9 @@ "reactor": { "type": "Project", "dependencies": { - "BepInEx.Unity.IL2CPP": "[6.0.0-be.733, )" + "BepInEx.Unity.IL2CPP": "[6.0.0-be.735, )" } } } } -} \ No newline at end of file +} diff --git a/Reactor.Debugger/packages.lock.json b/Reactor.Debugger/packages.lock.json index 18db358..abf00a0 100644 --- a/Reactor.Debugger/packages.lock.json +++ b/Reactor.Debugger/packages.lock.json @@ -4,9 +4,9 @@ "net6.0": { "AmongUs.GameLibs.Steam": { "type": "Direct", - "requested": "[2025.3.25, )", - "resolved": "2025.3.25", - "contentHash": "2QxQXgZDcQOdAIDXrNLrQ7veEzD6EBzuaRjzSbHptWUPUsuVc3I5Ur3xMkPPwmSGsDHjLuAGE84yRjV6oJxGxw==" + "requested": "[2025.4.15, )", + "resolved": "2025.4.15", + "contentHash": "R3RxzHGZOGUJ9nMwrP0cjS6g+sh60QUU506Mo47lh17155enUjH6PtErijihSoU7t3aQpzCIyC67W3XrrHhH4g==" }, "BepInEx.AutoPlugin": { "type": "Direct", @@ -22,19 +22,19 @@ }, "BepInEx.Unity.IL2CPP": { "type": "Direct", - "requested": "[6.0.0-be.733, )", - "resolved": "6.0.0-be.733", - "contentHash": "lnoGaPHjIdGfEiKtf89knaTdLXe4IUqVLdoYqW8NYhhNqgxa3oNwScjTmuYQpa4Leew3937+slq2WIjvX/DUwQ==", + "requested": "[6.0.0-be.735, )", + "resolved": "6.0.0-be.735", + "contentHash": "2+eFJGKMR1GFPeU9wuF+TVrMANIaWIc/6N9e8x4b7b/fNiY9B6vicYNiMDb2deYQpWZtOei+2btnar5dDE5BPg==", "dependencies": { - "BepInEx.Core": "6.0.0-be.733", - "BepInEx.Unity.Common": "6.0.0-be.733", + "BepInEx.Core": "6.0.0-be.735", + "BepInEx.Unity.Common": "6.0.0-be.735", "HarmonyX": "2.10.2", "Iced": "1.21.0", "Il2CppInterop.Generator": "1.4.6-ci.426", "Il2CppInterop.HarmonySupport": "1.4.6-ci.426", "Il2CppInterop.Runtime": "1.4.6-ci.426", "MonoMod.RuntimeDetour": "22.7.31.1", - "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.18" + "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.19" } }, "StyleCop.Analyzers": { @@ -77,8 +77,8 @@ }, "AssetRipper.CIL": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "nSz1cBjgVeKv+esfDtyQGC1mY9b4C4NFStytdoa9DMozDC8uth6930kAsuWZEivj9GqWSqENnaQUGnl23WpmnQ==", + "resolved": "1.1.2", + "contentHash": "BRPcHORadIzSFkrVOvGkSs54j19mQdXH8dmRTVM51mS8MZLSbTpi9CDPpnWN2IdDsILUrAqbPUFo3zJodYxErw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1" } @@ -95,8 +95,8 @@ }, "BepInEx.Core": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "uRzpyUdU3L8Y4ZW+ZnF73orq0E40MjGK6XcPzm24CrrWB5bUshwdrtFQfrwZB6jcZVNVV6PXE92hScEI+Jaoqw==", + "resolved": "6.0.0-be.735", + "contentHash": "FuHm9UCzjSKeiZJc3IF70Fiuqi+FynRn62PwBoOeZcHK3/qm+vl1YwbZyFlmUyf45g+UKxg2Td40iZGx88LVAQ==", "dependencies": { "HarmonyX": "2.10.2", "MonoMod.Utils": "22.7.31.1", @@ -105,8 +105,8 @@ }, "BepInEx.Unity.Common": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "KfdiHVSOPnIbDEF7zLPTSXDjKqIEq7SgffqFFKIxOBkCws7LdtSRQsamUcxdD0H8yopcgdlqobIp6t8e4M/k9Q==", + "resolved": "6.0.0-be.735", + "contentHash": "vmK//OBSr+jotqTk//HSdvHtMFTKu+NlQkiEsvr0dZApTVmQM2AgpVMhEAakQPmrSsM6LRJIHCBcLFO1ypfMPQ==", "dependencies": { "AssetRipper.Primitives": "3.1.3", "MonoMod.Utils": "22.7.31.1" @@ -114,8 +114,8 @@ }, "Disarm": { "type": "Transitive", - "resolved": "2022.1.0-master.34", - "contentHash": "sxzTci5eSdl+sFoaGsMZIp7X/eB5ZzplM3CppvD1CWoiZ8rSa43XGLC19G5e8n6mjutNBfN9yL+RER5PCspHFg==" + "resolved": "2022.1.0-master.57", + "contentHash": "/dkg7hg8iPBQN4bTV1lMQacarH6fMpgUXhJuo6iI7Wv7YpH7g5F9hJfje7dSMhqG0YlDacLuyWvcph5GzKUXog==" }, "HarmonyX": { "type": "Transitive", @@ -253,7 +253,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", + "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -288,7 +288,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" + "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -317,31 +317,31 @@ }, "Samboy063.Cpp2IL.Core": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "eX9d1IK05jWaEaeuMAE0L5WYHT7thtxz+aWLL/CAaCzZ0TzRPD+WFTjJ0KQO0YWBVO300CX3GwmPmf7TNO+wUg==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "mAYIrMo0VdOZzh1NS5bZeflg80gtYNY7kZo9q/blEYheUPyLXu5ozQOjX+Bq2yDh40pA+yiE2MXTnN2Is2hjgw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1", - "AssetRipper.CIL": "1.1.0", + "AssetRipper.CIL": "1.1.2", "AssetRipper.Gee.External.Capstone": "2.3.2", - "Disarm": "2022.1.0-master.34", + "Disarm": "2022.1.0-master.57", "Iced": "1.21.0", - "Samboy063.LibCpp2IL": "2022.1.0-pre-release.18", - "StableNameDotNet": "0.1.0-pre-release.15" + "Samboy063.LibCpp2IL": "2022.1.0-pre-release.19", + "StableNameDotNet": "0.1.0-pre-release.19" } }, "Samboy063.LibCpp2IL": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "9zJdTAeErpwJpYDHYwwI0MAC1OyBEfC1ce7dpAOYRUUYCfeaKVWxnSCcyaoY6HDzIoxPkhbfllbwOe49ZmUYuQ==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "/n8p81ltd38BeNNS2xUNPGMSzxk/UGXr9cRNqG1MaLogzANNNrvCAXqWmNMM3tZctjp7vqTxEA+e4J4ngul8Fg==", "dependencies": { - "AssetRipper.Primitives": "3.1.2", - "Samboy063.WasmDisassembler": "2022.1.0-pre-release.15" + "AssetRipper.Primitives": "3.1.3", + "Samboy063.WasmDisassembler": "2022.1.0-pre-release.19" } }, "Samboy063.WasmDisassembler": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.15", - "contentHash": "e6qw81SHS+fS7iZ3qfqZBavVarYbkPElNgDCANF6dNFTYq5+hc80am+4FqQDl+ZVNS47bZDZobxIzHhmriCXGg==" + "resolved": "2022.1.0-pre-release.19", + "contentHash": "uVQdYm/J6+jJ1xt6GJ3hNhXhciwlX+LmHTPITu9jjZ75T33YJuuTD7pLVYuMymr+4gSVisg7f1wterFSyqJBWA==" }, "SemanticVersioning": { "type": "Transitive", @@ -350,8 +350,8 @@ }, "StableNameDotNet": { "type": "Transitive", - "resolved": "0.1.0-pre-release.15", - "contentHash": "aIkEOo8V76vE+9CppHpTFLGXalBw6TAl4/tb6vadmS+gHJMshTVehzQv9cJXy4xZDdANV1uGMRaUFZERcDA2xQ==" + "resolved": "0.1.0-pre-release.19", + "contentHash": "5BPWtntv3PXeFIg9CuGW6OM3f5GnwvdQJbzRpufPsistFwFyt1xYW1wSDr+QIdDO7vLndr7iNpWD3FyYp9LL4g==" }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", @@ -388,7 +388,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", + "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", @@ -903,9 +903,9 @@ "reactor": { "type": "Project", "dependencies": { - "BepInEx.Unity.IL2CPP": "[6.0.0-be.733, )" + "BepInEx.Unity.IL2CPP": "[6.0.0-be.735, )" } } } } -} \ No newline at end of file +} diff --git a/Reactor.Example/packages.lock.json b/Reactor.Example/packages.lock.json index 18db358..abf00a0 100644 --- a/Reactor.Example/packages.lock.json +++ b/Reactor.Example/packages.lock.json @@ -4,9 +4,9 @@ "net6.0": { "AmongUs.GameLibs.Steam": { "type": "Direct", - "requested": "[2025.3.25, )", - "resolved": "2025.3.25", - "contentHash": "2QxQXgZDcQOdAIDXrNLrQ7veEzD6EBzuaRjzSbHptWUPUsuVc3I5Ur3xMkPPwmSGsDHjLuAGE84yRjV6oJxGxw==" + "requested": "[2025.4.15, )", + "resolved": "2025.4.15", + "contentHash": "R3RxzHGZOGUJ9nMwrP0cjS6g+sh60QUU506Mo47lh17155enUjH6PtErijihSoU7t3aQpzCIyC67W3XrrHhH4g==" }, "BepInEx.AutoPlugin": { "type": "Direct", @@ -22,19 +22,19 @@ }, "BepInEx.Unity.IL2CPP": { "type": "Direct", - "requested": "[6.0.0-be.733, )", - "resolved": "6.0.0-be.733", - "contentHash": "lnoGaPHjIdGfEiKtf89knaTdLXe4IUqVLdoYqW8NYhhNqgxa3oNwScjTmuYQpa4Leew3937+slq2WIjvX/DUwQ==", + "requested": "[6.0.0-be.735, )", + "resolved": "6.0.0-be.735", + "contentHash": "2+eFJGKMR1GFPeU9wuF+TVrMANIaWIc/6N9e8x4b7b/fNiY9B6vicYNiMDb2deYQpWZtOei+2btnar5dDE5BPg==", "dependencies": { - "BepInEx.Core": "6.0.0-be.733", - "BepInEx.Unity.Common": "6.0.0-be.733", + "BepInEx.Core": "6.0.0-be.735", + "BepInEx.Unity.Common": "6.0.0-be.735", "HarmonyX": "2.10.2", "Iced": "1.21.0", "Il2CppInterop.Generator": "1.4.6-ci.426", "Il2CppInterop.HarmonySupport": "1.4.6-ci.426", "Il2CppInterop.Runtime": "1.4.6-ci.426", "MonoMod.RuntimeDetour": "22.7.31.1", - "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.18" + "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.19" } }, "StyleCop.Analyzers": { @@ -77,8 +77,8 @@ }, "AssetRipper.CIL": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "nSz1cBjgVeKv+esfDtyQGC1mY9b4C4NFStytdoa9DMozDC8uth6930kAsuWZEivj9GqWSqENnaQUGnl23WpmnQ==", + "resolved": "1.1.2", + "contentHash": "BRPcHORadIzSFkrVOvGkSs54j19mQdXH8dmRTVM51mS8MZLSbTpi9CDPpnWN2IdDsILUrAqbPUFo3zJodYxErw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1" } @@ -95,8 +95,8 @@ }, "BepInEx.Core": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "uRzpyUdU3L8Y4ZW+ZnF73orq0E40MjGK6XcPzm24CrrWB5bUshwdrtFQfrwZB6jcZVNVV6PXE92hScEI+Jaoqw==", + "resolved": "6.0.0-be.735", + "contentHash": "FuHm9UCzjSKeiZJc3IF70Fiuqi+FynRn62PwBoOeZcHK3/qm+vl1YwbZyFlmUyf45g+UKxg2Td40iZGx88LVAQ==", "dependencies": { "HarmonyX": "2.10.2", "MonoMod.Utils": "22.7.31.1", @@ -105,8 +105,8 @@ }, "BepInEx.Unity.Common": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "KfdiHVSOPnIbDEF7zLPTSXDjKqIEq7SgffqFFKIxOBkCws7LdtSRQsamUcxdD0H8yopcgdlqobIp6t8e4M/k9Q==", + "resolved": "6.0.0-be.735", + "contentHash": "vmK//OBSr+jotqTk//HSdvHtMFTKu+NlQkiEsvr0dZApTVmQM2AgpVMhEAakQPmrSsM6LRJIHCBcLFO1ypfMPQ==", "dependencies": { "AssetRipper.Primitives": "3.1.3", "MonoMod.Utils": "22.7.31.1" @@ -114,8 +114,8 @@ }, "Disarm": { "type": "Transitive", - "resolved": "2022.1.0-master.34", - "contentHash": "sxzTci5eSdl+sFoaGsMZIp7X/eB5ZzplM3CppvD1CWoiZ8rSa43XGLC19G5e8n6mjutNBfN9yL+RER5PCspHFg==" + "resolved": "2022.1.0-master.57", + "contentHash": "/dkg7hg8iPBQN4bTV1lMQacarH6fMpgUXhJuo6iI7Wv7YpH7g5F9hJfje7dSMhqG0YlDacLuyWvcph5GzKUXog==" }, "HarmonyX": { "type": "Transitive", @@ -253,7 +253,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", + "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -288,7 +288,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" + "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -317,31 +317,31 @@ }, "Samboy063.Cpp2IL.Core": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "eX9d1IK05jWaEaeuMAE0L5WYHT7thtxz+aWLL/CAaCzZ0TzRPD+WFTjJ0KQO0YWBVO300CX3GwmPmf7TNO+wUg==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "mAYIrMo0VdOZzh1NS5bZeflg80gtYNY7kZo9q/blEYheUPyLXu5ozQOjX+Bq2yDh40pA+yiE2MXTnN2Is2hjgw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1", - "AssetRipper.CIL": "1.1.0", + "AssetRipper.CIL": "1.1.2", "AssetRipper.Gee.External.Capstone": "2.3.2", - "Disarm": "2022.1.0-master.34", + "Disarm": "2022.1.0-master.57", "Iced": "1.21.0", - "Samboy063.LibCpp2IL": "2022.1.0-pre-release.18", - "StableNameDotNet": "0.1.0-pre-release.15" + "Samboy063.LibCpp2IL": "2022.1.0-pre-release.19", + "StableNameDotNet": "0.1.0-pre-release.19" } }, "Samboy063.LibCpp2IL": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "9zJdTAeErpwJpYDHYwwI0MAC1OyBEfC1ce7dpAOYRUUYCfeaKVWxnSCcyaoY6HDzIoxPkhbfllbwOe49ZmUYuQ==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "/n8p81ltd38BeNNS2xUNPGMSzxk/UGXr9cRNqG1MaLogzANNNrvCAXqWmNMM3tZctjp7vqTxEA+e4J4ngul8Fg==", "dependencies": { - "AssetRipper.Primitives": "3.1.2", - "Samboy063.WasmDisassembler": "2022.1.0-pre-release.15" + "AssetRipper.Primitives": "3.1.3", + "Samboy063.WasmDisassembler": "2022.1.0-pre-release.19" } }, "Samboy063.WasmDisassembler": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.15", - "contentHash": "e6qw81SHS+fS7iZ3qfqZBavVarYbkPElNgDCANF6dNFTYq5+hc80am+4FqQDl+ZVNS47bZDZobxIzHhmriCXGg==" + "resolved": "2022.1.0-pre-release.19", + "contentHash": "uVQdYm/J6+jJ1xt6GJ3hNhXhciwlX+LmHTPITu9jjZ75T33YJuuTD7pLVYuMymr+4gSVisg7f1wterFSyqJBWA==" }, "SemanticVersioning": { "type": "Transitive", @@ -350,8 +350,8 @@ }, "StableNameDotNet": { "type": "Transitive", - "resolved": "0.1.0-pre-release.15", - "contentHash": "aIkEOo8V76vE+9CppHpTFLGXalBw6TAl4/tb6vadmS+gHJMshTVehzQv9cJXy4xZDdANV1uGMRaUFZERcDA2xQ==" + "resolved": "0.1.0-pre-release.19", + "contentHash": "5BPWtntv3PXeFIg9CuGW6OM3f5GnwvdQJbzRpufPsistFwFyt1xYW1wSDr+QIdDO7vLndr7iNpWD3FyYp9LL4g==" }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", @@ -388,7 +388,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", + "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", @@ -903,9 +903,9 @@ "reactor": { "type": "Project", "dependencies": { - "BepInEx.Unity.IL2CPP": "[6.0.0-be.733, )" + "BepInEx.Unity.IL2CPP": "[6.0.0-be.735, )" } } } } -} \ No newline at end of file +} diff --git a/Reactor/Utilities/CanvasUtilities.cs b/Reactor/Utilities/CanvasUtilities.cs index 7ceff92..b47665e 100644 --- a/Reactor/Utilities/CanvasUtilities.cs +++ b/Reactor/Utilities/CanvasUtilities.cs @@ -1,4 +1,3 @@ -using System; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; @@ -52,6 +51,6 @@ public static GameObject CreateEventSystem() /// An empty texture of specified size. public static Texture2D CreateEmptyTexture(int width = 0, int height = 0) { - return new Texture2D(width, height, TextureFormat.RGBA32, Texture.GenerateAllMips, false, IntPtr.Zero); + return new Texture2D(width, height, TextureFormat.RGBA32, Texture.GenerateAllMips, false); } } diff --git a/Reactor/packages.lock.json b/Reactor/packages.lock.json index 79193de..3aae1c6 100644 --- a/Reactor/packages.lock.json +++ b/Reactor/packages.lock.json @@ -4,9 +4,9 @@ "net6.0": { "AmongUs.GameLibs.Steam": { "type": "Direct", - "requested": "[2025.3.25, )", - "resolved": "2025.3.25", - "contentHash": "2QxQXgZDcQOdAIDXrNLrQ7veEzD6EBzuaRjzSbHptWUPUsuVc3I5Ur3xMkPPwmSGsDHjLuAGE84yRjV6oJxGxw==" + "requested": "[2025.4.15, )", + "resolved": "2025.4.15", + "contentHash": "R3RxzHGZOGUJ9nMwrP0cjS6g+sh60QUU506Mo47lh17155enUjH6PtErijihSoU7t3aQpzCIyC67W3XrrHhH4g==" }, "BepInEx.AutoPlugin": { "type": "Direct", @@ -22,19 +22,19 @@ }, "BepInEx.Unity.IL2CPP": { "type": "Direct", - "requested": "[6.0.0-be.733, )", - "resolved": "6.0.0-be.733", - "contentHash": "lnoGaPHjIdGfEiKtf89knaTdLXe4IUqVLdoYqW8NYhhNqgxa3oNwScjTmuYQpa4Leew3937+slq2WIjvX/DUwQ==", + "requested": "[6.0.0-be.735, )", + "resolved": "6.0.0-be.735", + "contentHash": "2+eFJGKMR1GFPeU9wuF+TVrMANIaWIc/6N9e8x4b7b/fNiY9B6vicYNiMDb2deYQpWZtOei+2btnar5dDE5BPg==", "dependencies": { - "BepInEx.Core": "6.0.0-be.733", - "BepInEx.Unity.Common": "6.0.0-be.733", + "BepInEx.Core": "6.0.0-be.735", + "BepInEx.Unity.Common": "6.0.0-be.735", "HarmonyX": "2.10.2", "Iced": "1.21.0", "Il2CppInterop.Generator": "1.4.6-ci.426", "Il2CppInterop.HarmonySupport": "1.4.6-ci.426", "Il2CppInterop.Runtime": "1.4.6-ci.426", "MonoMod.RuntimeDetour": "22.7.31.1", - "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.18" + "Samboy063.Cpp2IL.Core": "2022.1.0-pre-release.19" } }, "StyleCop.Analyzers": { @@ -77,8 +77,8 @@ }, "AssetRipper.CIL": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "nSz1cBjgVeKv+esfDtyQGC1mY9b4C4NFStytdoa9DMozDC8uth6930kAsuWZEivj9GqWSqENnaQUGnl23WpmnQ==", + "resolved": "1.1.2", + "contentHash": "BRPcHORadIzSFkrVOvGkSs54j19mQdXH8dmRTVM51mS8MZLSbTpi9CDPpnWN2IdDsILUrAqbPUFo3zJodYxErw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1" } @@ -95,8 +95,8 @@ }, "BepInEx.Core": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "uRzpyUdU3L8Y4ZW+ZnF73orq0E40MjGK6XcPzm24CrrWB5bUshwdrtFQfrwZB6jcZVNVV6PXE92hScEI+Jaoqw==", + "resolved": "6.0.0-be.735", + "contentHash": "FuHm9UCzjSKeiZJc3IF70Fiuqi+FynRn62PwBoOeZcHK3/qm+vl1YwbZyFlmUyf45g+UKxg2Td40iZGx88LVAQ==", "dependencies": { "HarmonyX": "2.10.2", "MonoMod.Utils": "22.7.31.1", @@ -105,8 +105,8 @@ }, "BepInEx.Unity.Common": { "type": "Transitive", - "resolved": "6.0.0-be.733", - "contentHash": "KfdiHVSOPnIbDEF7zLPTSXDjKqIEq7SgffqFFKIxOBkCws7LdtSRQsamUcxdD0H8yopcgdlqobIp6t8e4M/k9Q==", + "resolved": "6.0.0-be.735", + "contentHash": "vmK//OBSr+jotqTk//HSdvHtMFTKu+NlQkiEsvr0dZApTVmQM2AgpVMhEAakQPmrSsM6LRJIHCBcLFO1ypfMPQ==", "dependencies": { "AssetRipper.Primitives": "3.1.3", "MonoMod.Utils": "22.7.31.1" @@ -114,8 +114,8 @@ }, "Disarm": { "type": "Transitive", - "resolved": "2022.1.0-master.34", - "contentHash": "sxzTci5eSdl+sFoaGsMZIp7X/eB5ZzplM3CppvD1CWoiZ8rSa43XGLC19G5e8n6mjutNBfN9yL+RER5PCspHFg==" + "resolved": "2022.1.0-master.57", + "contentHash": "/dkg7hg8iPBQN4bTV1lMQacarH6fMpgUXhJuo6iI7Wv7YpH7g5F9hJfje7dSMhqG0YlDacLuyWvcph5GzKUXog==" }, "HarmonyX": { "type": "Transitive", @@ -253,7 +253,7 @@ "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "jwjwlEL0Elv6gwoyaokRn12nv/JE+UW/DXJEbzhjCPvGbef36StnHKc9XaZD/rGWqYicrphZ7eumR/jdmNcjRg==", + "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } @@ -288,7 +288,7 @@ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "Kh9W4agE0r/hK8AX1LvyQI2NrKHBL8pO0gRoDTdDb0LL6Ta1Z2OtFx3lOaAE0ZpCUc/dt9Wzs3rA7a3IsKdOVA==" + "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", @@ -317,31 +317,31 @@ }, "Samboy063.Cpp2IL.Core": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "eX9d1IK05jWaEaeuMAE0L5WYHT7thtxz+aWLL/CAaCzZ0TzRPD+WFTjJ0KQO0YWBVO300CX3GwmPmf7TNO+wUg==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "mAYIrMo0VdOZzh1NS5bZeflg80gtYNY7kZo9q/blEYheUPyLXu5ozQOjX+Bq2yDh40pA+yiE2MXTnN2Is2hjgw==", "dependencies": { "AsmResolver.DotNet": "6.0.0-beta.1", - "AssetRipper.CIL": "1.1.0", + "AssetRipper.CIL": "1.1.2", "AssetRipper.Gee.External.Capstone": "2.3.2", - "Disarm": "2022.1.0-master.34", + "Disarm": "2022.1.0-master.57", "Iced": "1.21.0", - "Samboy063.LibCpp2IL": "2022.1.0-pre-release.18", - "StableNameDotNet": "0.1.0-pre-release.15" + "Samboy063.LibCpp2IL": "2022.1.0-pre-release.19", + "StableNameDotNet": "0.1.0-pre-release.19" } }, "Samboy063.LibCpp2IL": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.18", - "contentHash": "9zJdTAeErpwJpYDHYwwI0MAC1OyBEfC1ce7dpAOYRUUYCfeaKVWxnSCcyaoY6HDzIoxPkhbfllbwOe49ZmUYuQ==", + "resolved": "2022.1.0-pre-release.19", + "contentHash": "/n8p81ltd38BeNNS2xUNPGMSzxk/UGXr9cRNqG1MaLogzANNNrvCAXqWmNMM3tZctjp7vqTxEA+e4J4ngul8Fg==", "dependencies": { - "AssetRipper.Primitives": "3.1.2", - "Samboy063.WasmDisassembler": "2022.1.0-pre-release.15" + "AssetRipper.Primitives": "3.1.3", + "Samboy063.WasmDisassembler": "2022.1.0-pre-release.19" } }, "Samboy063.WasmDisassembler": { "type": "Transitive", - "resolved": "2022.1.0-pre-release.15", - "contentHash": "e6qw81SHS+fS7iZ3qfqZBavVarYbkPElNgDCANF6dNFTYq5+hc80am+4FqQDl+ZVNS47bZDZobxIzHhmriCXGg==" + "resolved": "2022.1.0-pre-release.19", + "contentHash": "uVQdYm/J6+jJ1xt6GJ3hNhXhciwlX+LmHTPITu9jjZ75T33YJuuTD7pLVYuMymr+4gSVisg7f1wterFSyqJBWA==" }, "SemanticVersioning": { "type": "Transitive", @@ -350,8 +350,8 @@ }, "StableNameDotNet": { "type": "Transitive", - "resolved": "0.1.0-pre-release.15", - "contentHash": "aIkEOo8V76vE+9CppHpTFLGXalBw6TAl4/tb6vadmS+gHJMshTVehzQv9cJXy4xZDdANV1uGMRaUFZERcDA2xQ==" + "resolved": "0.1.0-pre-release.19", + "contentHash": "5BPWtntv3PXeFIg9CuGW6OM3f5GnwvdQJbzRpufPsistFwFyt1xYW1wSDr+QIdDO7vLndr7iNpWD3FyYp9LL4g==" }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", @@ -388,7 +388,7 @@ "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.3.0", - "contentHash": "LE/oChpRvkSi3U25u0KnJcI44JeDZ1QJCyN4qFDx2uusEypdqR24w7lKYw21eYe5esuCBuc862wRmpF63Yy1KQ==", + "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", @@ -902,4 +902,4 @@ } } } -} \ No newline at end of file +} From db452bf7e4e2217e0b62e0d7d4195ab8db592cea Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Tue, 20 May 2025 18:24:22 -0400 Subject: [PATCH 3/8] fix modded handshake + compile problems --- Reactor/GlobalUsings.cs | 2 +- .../Attributes/MethodRpcAttribute.cs | 7 +-- Reactor/Networking/Patches/ClientPatches.cs | 54 +++++++------------ Reactor/Networking/Patches/HttpPatches.cs | 6 ++- .../Networking/Patches/ReactorConnection.cs | 10 ++-- Reactor/Networking/Rpc/CustomRpc.cs | 14 +++-- Reactor/Networking/Rpc/MethodRpc.cs | 11 +--- Reactor/Networking/Rpc/PlayerCustomRpc.cs | 10 ++-- Reactor/Networking/Rpc/UnsafeCustomRpc.cs | 18 ++----- .../Miscellaneous/CustomServersPatch.cs | 6 +-- 10 files changed, 50 insertions(+), 88 deletions(-) diff --git a/Reactor/GlobalUsings.cs b/Reactor/GlobalUsings.cs index 8f021b9..bb00b4a 100644 --- a/Reactor/GlobalUsings.cs +++ b/Reactor/GlobalUsings.cs @@ -1 +1 @@ -global using AmongUsClient_CoFindGame = AmongUsClient._CoFindGame_d__6; +global using AmongUsClient_CoFindGame = AmongUsClient._CoFindGame_d__54; diff --git a/Reactor/Networking/Attributes/MethodRpcAttribute.cs b/Reactor/Networking/Attributes/MethodRpcAttribute.cs index 0f336dd..bd5dc8a 100644 --- a/Reactor/Networking/Attributes/MethodRpcAttribute.cs +++ b/Reactor/Networking/Attributes/MethodRpcAttribute.cs @@ -33,11 +33,6 @@ public sealed class MethodRpcAttribute : Attribute /// public RpcLocalHandling LocalHandling { get; set; } = RpcLocalHandling.Before; - /// - /// Gets or sets a value indicating whether the rpc should be sent immediately. - /// - public bool SendImmediately { get; set; } - /// /// Initializes a new instance of the class. /// @@ -71,7 +66,7 @@ public static void Register(Assembly assembly, BasePlugin plugin) try { - var customRpc = new MethodRpc(plugin, method, attribute.Id, attribute.SendOption, attribute.LocalHandling, attribute.SendImmediately); + var customRpc = new MethodRpc(plugin, method, attribute.Id, attribute.SendOption, attribute.LocalHandling); PluginSingleton.Instance.CustomRpcManager.Register(customRpc); } catch (Exception e) diff --git a/Reactor/Networking/Patches/ClientPatches.cs b/Reactor/Networking/Patches/ClientPatches.cs index 321e343..6b83e14 100644 --- a/Reactor/Networking/Patches/ClientPatches.cs +++ b/Reactor/Networking/Patches/ClientPatches.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using AmongUs.Data; +using AmongUs.InnerNet.GameDataMessages; using BepInEx.Unity.IL2CPP.Utils; using HarmonyLib; using Hazel; @@ -29,10 +30,10 @@ public static void Prefix(InnerNetClient __instance, ref DisconnectReasons reaso } } - [HarmonyPatch(typeof(InnerNetClient._HandleGameDataInner_d__41), nameof(InnerNetClient._HandleGameDataInner_d__41.MoveNext))] + [HarmonyPatch(typeof(InnerNetClient._HandleGameDataInner_d__165), nameof(InnerNetClient._HandleGameDataInner_d__165.MoveNext))] public static class HandleGameDataInnerPatch { - public static bool Prefix(InnerNetClient._HandleGameDataInner_d__41 __instance, ref bool __result) + public static bool Prefix(InnerNetClient._HandleGameDataInner_d__165 __instance, ref bool __result) { var innerNetClient = __instance.__4__this; var reader = __instance.reader; @@ -63,7 +64,7 @@ public static bool Prefix(InnerNetClient._HandleGameDataInner_d__41 __instance, return false; } - if (reader.Tag == InnerNetClient.SceneChangeFlag && ReactorConnection.Instance?.Syncer == Syncer.Host) + if (reader.Tag == (byte) GameDataTypes.SceneChangeFlag && ReactorConnection.Instance?.Syncer == Syncer.Host) { var clientId = reader.ReadPackedInt32(); var clientData = innerNetClient.FindClientById(clientId); @@ -126,7 +127,7 @@ IEnumerator CoKick() : chatText; // Write SendChat directly instead of using RpcSendChat so we can call AddChat ourselves - var messageWriter = AmongUsClient.Instance.StartRpc(PlayerControl.LocalPlayer.NetId, (byte) RpcCalls.SendChat); + var messageWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte) RpcCalls.SendChat, SendOption.Reliable); messageWriter.Write(truncatedChatText); messageWriter.EndMessage(); } @@ -161,10 +162,10 @@ IEnumerator CoKick() } } - [HarmonyPatch(typeof(InnerNetClient._CoSendSceneChange_d__32), nameof(InnerNetClient._CoSendSceneChange_d__32.MoveNext))] + [HarmonyPatch(typeof(InnerNetClient._CoSendSceneChange_d__156), nameof(InnerNetClient._CoSendSceneChange_d__156.MoveNext))] public static class CoSendSceneChangePatch { - public static bool Prefix(InnerNetClient._CoSendSceneChange_d__32 __instance, ref bool __result) + public static bool Prefix(InnerNetClient._CoSendSceneChange_d__156 __instance, ref bool __result) { if (ReactorConnection.Instance!.Syncer != Syncer.Host) return true; @@ -181,7 +182,7 @@ public static bool Prefix(InnerNetClient._CoSendSceneChange_d__32 __instance, re var writer = MessageWriter.Get(SendOption.Reliable); writer.StartMessage(Tags.GameData); writer.Write(innerNetClient.GameId); - writer.StartMessage(InnerNetClient.SceneChangeFlag); + writer.StartMessage((byte) GameDataTypes.SceneChangeFlag); writer.WritePacked(innerNetClient.ClientId); writer.Write(__instance.sceneName); @@ -209,10 +210,10 @@ public static bool Prefix(InnerNetClient._CoSendSceneChange_d__32 __instance, re } } - [HarmonyPatch(typeof(InnerNetClient._CoHandleSpawn_d__42), nameof(InnerNetClient._CoHandleSpawn_d__42.MoveNext))] + [HarmonyPatch(typeof(InnerNetClient._CoHandleSpawn_d__166), nameof(InnerNetClient._CoHandleSpawn_d__166.MoveNext))] public static class CoHandleSpawnPatch { - public static void Postfix(InnerNetClient._CoHandleSpawn_d__42 __instance, bool __result) + public static void Postfix(InnerNetClient._CoHandleSpawn_d__166 __instance, bool __result) { if (ReactorConnection.Instance!.Syncer != Syncer.Host) return; @@ -236,38 +237,18 @@ public static void Postfix(InnerNetClient._CoHandleSpawn_d__42 __instance, bool } } - [HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.WriteSpawnMessage))] + [HarmonyPatch(typeof(SpawnGameDataMessage), nameof(SpawnGameDataMessage.SerializeValues))] public static class WriteSpawnMessagePatch { - public static bool Prefix(InnerNetClient __instance, InnerNetObject netObjParent, int ownerId, SpawnFlags flags, MessageWriter msg) + public static bool Prefix(SpawnGameDataMessage __instance, MessageWriter msg) { - if (ReactorConnection.Instance!.Syncer != Syncer.Host) return true; - - msg.StartMessage(4); - msg.WritePacked(netObjParent.SpawnId); - msg.WritePacked(ownerId); - msg.Write((byte) flags); - InnerNetObject[] componentsInChildren = netObjParent.GetComponentsInChildren(); - msg.WritePacked(componentsInChildren.Length); - foreach (var innerNetObject in componentsInChildren) + if (ReactorConnection.Instance!.Syncer != Syncer.Host) { - innerNetObject.OwnerId = ownerId; - innerNetObject.SpawnFlags = flags; - if (innerNetObject.NetId == 0) - { - innerNetObject.NetId = __instance.NetIdCnt++; - __instance.allObjects.Add(innerNetObject); - __instance.allObjectsFast.Add(innerNetObject.NetId, innerNetObject); - } - - msg.WritePacked(innerNetObject.NetId); - msg.StartMessage(1); - innerNetObject.Serialize(msg, initialState: true); - msg.EndMessage(); + return true; } // PATCH - Inject ReactorHandshakeS2C - if (__instance.ClientId != ownerId && IL2CPP.il2cpp_object_get_class(netObjParent.Pointer) == Il2CppClassPointerStore.NativeClassPtr) + if (AmongUsClient.Instance.ClientId != __instance.ownerId && __instance.NetObjectType == Il2CppType.Of()) { Debug("Injecting ReactorHandshakeS2C to WriteSpawnMessage"); ReactorHeader.Write(msg); @@ -285,7 +266,10 @@ public static class HandleMessagePatch { public static bool Prefix(InnerNetClient __instance, [HarmonyArgument(0)] MessageReader reader) { - if (__instance.NetworkMode == NetworkModes.FreePlay) return true; + if (__instance.NetworkMode == NetworkModes.FreePlay) + { + return true; + } var isFirst = false; diff --git a/Reactor/Networking/Patches/HttpPatches.cs b/Reactor/Networking/Patches/HttpPatches.cs index 7e1668a..0f15d32 100644 --- a/Reactor/Networking/Patches/HttpPatches.cs +++ b/Reactor/Networking/Patches/HttpPatches.cs @@ -54,7 +54,8 @@ private static class SendWebRequestPatch public static void Prefix(UnityWebRequest __instance) { - var path = __instance.uri.AbsolutePath; + // new Uri() is necessary because uri property got stripped. + var path = new Uri(__instance.url).AbsolutePath; // Innersloth changed /api/games to /api/games/filtered // We may want to keep support for /api/games though. if (path.Contains("/api/games")) @@ -66,7 +67,8 @@ public static void Prefix(UnityWebRequest __instance) public static void Postfix(UnityWebRequest __instance, UnityWebRequestAsyncOperation __result) { - var path = __instance.uri.AbsolutePath; + // new Uri() is necessary because uri property got stripped. + var path = new Uri(__instance.url).AbsolutePath; // Innersloth changed /api/games to /api/games/filtered // We may want to keep support for /api/games though. if (path.Contains("/api/games")) diff --git a/Reactor/Networking/Patches/ReactorConnection.cs b/Reactor/Networking/Patches/ReactorConnection.cs index c5e4af0..ffbcd5e 100644 --- a/Reactor/Networking/Patches/ReactorConnection.cs +++ b/Reactor/Networking/Patches/ReactorConnection.cs @@ -23,12 +23,16 @@ public class ReactorConnection [HarmonyPatch] private static class Patches { - [HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.CoConnect), typeof(string))] + // CoConnect(string) was inlined, so we patch the MoveNext method instead. + [HarmonyPatch(typeof(InnerNetClient._CoConnect_d__65), nameof(InnerNetClient._CoConnect_d__65.MoveNext))] [HarmonyPrefix] public static void CoConnect() { - Debug("New ReactorConnection created"); - Instance = new ReactorConnection(); + if (Instance == null) + { + Debug("New ReactorConnection created"); + Instance = new ReactorConnection(); + } } [HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.DisconnectInternal))] diff --git a/Reactor/Networking/Rpc/CustomRpc.cs b/Reactor/Networking/Rpc/CustomRpc.cs index fe161eb..38aac99 100644 --- a/Reactor/Networking/Rpc/CustomRpc.cs +++ b/Reactor/Networking/Rpc/CustomRpc.cs @@ -56,11 +56,10 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// /// The to send the rpc on. /// The data to send. - /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(InnerNetObject innerNetObject, TData data, bool immediately = false, Action? ackCallback = null) + public void Send(InnerNetObject innerNetObject, TData data, Action? ackCallback = null) { - UnsafeSend(innerNetObject, data, immediately, ackCallback: ackCallback); + UnsafeSend(innerNetObject, data, ackCallback: ackCallback); } /// @@ -72,7 +71,7 @@ public void Send(InnerNetObject innerNetObject, TData data, bool immediately = f /// The callback to invoke when this packet is acknowledged. public void SendTo(InnerNetObject innerNetObject, int targetClientId, TData data, Action? ackCallback = null) { - UnsafeSend(innerNetObject, data, true, targetClientId, ackCallback); + UnsafeSend(innerNetObject, data, targetClientId, ackCallback); } } @@ -121,11 +120,10 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// Sends this custom rpc on the specified . /// /// The to send the rpc on. - /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(InnerNetObject innerNetObject, bool immediately = false, Action? ackCallback = null) + public void Send(InnerNetObject innerNetObject, Action? ackCallback = null) { - UnsafeSend(innerNetObject, immediately, ackCallback: ackCallback); + UnsafeSend(innerNetObject, ackCallback); } /// @@ -136,6 +134,6 @@ public void Send(InnerNetObject innerNetObject, bool immediately = false, Action /// The callback to invoke when this packet is acknowledged. public void SendTo(InnerNetObject innerNetObject, int targetClientId, Action? ackCallback = null) { - UnsafeSend(innerNetObject, null, true, targetClientId, ackCallback); + UnsafeSend(innerNetObject, null, targetClientId, ackCallback); } } diff --git a/Reactor/Networking/Rpc/MethodRpc.cs b/Reactor/Networking/Rpc/MethodRpc.cs index 46e2266..3f1bd61 100644 --- a/Reactor/Networking/Rpc/MethodRpc.cs +++ b/Reactor/Networking/Rpc/MethodRpc.cs @@ -32,13 +32,11 @@ public class MethodRpc : UnsafeCustomRpc /// The id of the rpc. /// The send option of the rpc. /// The local handling method of the rpc. - /// The value indicating whether the rpc should be sent immediately. - public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling, bool sendImmediately) : base(plugin, id) + public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling) : base(plugin, id) { Method = method; LocalHandling = localHandling; SendOption = option; - SendImmediately = sendImmediately; var parameters = method.GetParameters(); @@ -88,11 +86,6 @@ public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption optio /// public override SendOption SendOption { get; } - /// - /// Gets a value indicating whether the method rpc should be sent immediately. - /// - public bool SendImmediately { get; } - /// public override void UnsafeWrite(MessageWriter writer, object? data) { @@ -134,7 +127,7 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// The arguments to serialize and send. public void Send(InnerNetObject innerNetObject, object[] args) { - UnsafeSend(innerNetObject, args, SendImmediately); + UnsafeSend(innerNetObject, args); } private static readonly MethodInfo _sendMethod = AccessTools.Method(typeof(MethodRpc), nameof(Send)); diff --git a/Reactor/Networking/Rpc/PlayerCustomRpc.cs b/Reactor/Networking/Rpc/PlayerCustomRpc.cs index 47c9d8a..77b2684 100644 --- a/Reactor/Networking/Rpc/PlayerCustomRpc.cs +++ b/Reactor/Networking/Rpc/PlayerCustomRpc.cs @@ -19,11 +19,10 @@ protected PlayerCustomRpc(TPlugin plugin, uint id) : base(plugin, id) /// Sends this custom rpc on the local player with the specified . /// /// The data to send. - /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(TData data, bool immediately = false, Action? ackCallback = null) + public void Send(TData data, Action? ackCallback = null) { - Send(PlayerControl.LocalPlayer, data, immediately, ackCallback); + Send(PlayerControl.LocalPlayer, data, ackCallback); } /// @@ -52,11 +51,10 @@ protected PlayerCustomRpc(TPlugin plugin, uint id) : base(plugin, id) /// /// Sends this custom rpc on the local player. /// - /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(bool immediately = false, Action? ackCallback = null) + public void Send(Action? ackCallback = null) { - Send(PlayerControl.LocalPlayer, immediately, ackCallback); + Send(PlayerControl.LocalPlayer, ackCallback); } /// diff --git a/Reactor/Networking/Rpc/UnsafeCustomRpc.cs b/Reactor/Networking/Rpc/UnsafeCustomRpc.cs index 80e390d..3a7d65a 100644 --- a/Reactor/Networking/Rpc/UnsafeCustomRpc.cs +++ b/Reactor/Networking/Rpc/UnsafeCustomRpc.cs @@ -91,10 +91,9 @@ protected UnsafeCustomRpc(BasePlugin plugin, uint id) /// /// The to send the rpc on. /// The data to send. - /// Whether to send it immediately. /// Target client id, defaults to broadcast. /// The callback to invoke when this packet is acknowledged. - public void UnsafeSend(InnerNetObject innerNetObject, object? data, bool immediately = false, int targetClientId = -1, Action? ackCallback = null) + public void UnsafeSend(InnerNetObject innerNetObject, object? data, int targetClientId = -1, Action? ackCallback = null) { ArgumentNullException.ThrowIfNull(innerNetObject); @@ -108,11 +107,7 @@ public void UnsafeSend(InnerNetObject innerNetObject, object? data, bool immedia UnsafeHandle(innerNetObject, data); } - var writer = immediately switch - { - false => AmongUsClient.Instance.StartRpc(innerNetObject.NetId, CustomRpcManager.CallId, SendOption), - true => AmongUsClient.Instance.StartRpcImmediately(innerNetObject.NetId, CustomRpcManager.CallId, SendOption, targetClientId), - }; + var writer = AmongUsClient.Instance.StartRpcImmediately(innerNetObject.NetId, CustomRpcManager.CallId, SendOption, targetClientId); writer.Write(Mod); writer.WritePacked(Id); @@ -127,14 +122,7 @@ public void UnsafeSend(InnerNetObject innerNetObject, object? data, bool immedia AckCallbacks.TryAdd(writer, ackCallback); } - if (immediately) - { - AmongUsClient.Instance.FinishRpcImmediately(writer); - } - else - { - writer.EndMessage(); - } + AmongUsClient.Instance.FinishRpcImmediately(writer); if (LocalHandling == RpcLocalHandling.After) { diff --git a/Reactor/Patches/Miscellaneous/CustomServersPatch.cs b/Reactor/Patches/Miscellaneous/CustomServersPatch.cs index 8a37141..3e10387 100644 --- a/Reactor/Patches/Miscellaneous/CustomServersPatch.cs +++ b/Reactor/Patches/Miscellaneous/CustomServersPatch.cs @@ -30,15 +30,15 @@ public static bool DisableAuthServer(ref bool __result) return false; } - [HarmonyPatch(typeof(AmongUsClient._CoJoinOnlinePublicGame_d__1), nameof(AmongUsClient._CoJoinOnlinePublicGame_d__1.MoveNext))] + [HarmonyPatch(typeof(AmongUsClient._CoJoinOnlinePublicGame_d__49), nameof(AmongUsClient._CoJoinOnlinePublicGame_d__49.MoveNext))] [HarmonyPrefix] - public static void EnableUdpMatchmaking(AmongUsClient._CoJoinOnlinePublicGame_d__1 __instance) + public static void EnableUdpMatchmaking(AmongUsClient._CoJoinOnlinePublicGame_d__49 __instance) { // Skip to state 1 which just calls CoJoinOnlineGameDirect if (__instance.__1__state == 0 && !ServerManager.Instance.IsHttp) { __instance.__1__state = 1; - __instance.__8__1 = new AmongUsClient.__c__DisplayClass1_0 + __instance.__8__1 = new AmongUsClient.__c__DisplayClass49_0 { matchmakerToken = string.Empty, }; From 3229475361be30ad41cf7b365b8e6d8f039bc906 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Wed, 21 May 2025 15:23:14 -0400 Subject: [PATCH 4/8] Fix bug (bad code) in SpawnGameDataMessage patch --- Reactor.Benchmarks/packages.lock.json | 2 +- Reactor.Debugger/packages.lock.json | 2 +- Reactor.Example/packages.lock.json | 2 +- Reactor/Networking/Patches/ClientPatches.cs | 10 +++------- Reactor/packages.lock.json | 2 +- 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Reactor.Benchmarks/packages.lock.json b/Reactor.Benchmarks/packages.lock.json index 326ed14..7bd651f 100644 --- a/Reactor.Benchmarks/packages.lock.json +++ b/Reactor.Benchmarks/packages.lock.json @@ -1143,4 +1143,4 @@ } } } -} +} \ No newline at end of file diff --git a/Reactor.Debugger/packages.lock.json b/Reactor.Debugger/packages.lock.json index abf00a0..ecb081e 100644 --- a/Reactor.Debugger/packages.lock.json +++ b/Reactor.Debugger/packages.lock.json @@ -908,4 +908,4 @@ } } } -} +} \ No newline at end of file diff --git a/Reactor.Example/packages.lock.json b/Reactor.Example/packages.lock.json index abf00a0..ecb081e 100644 --- a/Reactor.Example/packages.lock.json +++ b/Reactor.Example/packages.lock.json @@ -908,4 +908,4 @@ } } } -} +} \ No newline at end of file diff --git a/Reactor/Networking/Patches/ClientPatches.cs b/Reactor/Networking/Patches/ClientPatches.cs index 6b83e14..333c440 100644 --- a/Reactor/Networking/Patches/ClientPatches.cs +++ b/Reactor/Networking/Patches/ClientPatches.cs @@ -238,13 +238,13 @@ public static void Postfix(InnerNetClient._CoHandleSpawn_d__166 __instance, bool } [HarmonyPatch(typeof(SpawnGameDataMessage), nameof(SpawnGameDataMessage.SerializeValues))] - public static class WriteSpawnMessagePatch + public static class SpawnGameDataMessagePatch { - public static bool Prefix(SpawnGameDataMessage __instance, MessageWriter msg) + public static void Postfix(SpawnGameDataMessage __instance, MessageWriter msg) { if (ReactorConnection.Instance!.Syncer != Syncer.Host) { - return true; + return; } // PATCH - Inject ReactorHandshakeS2C @@ -254,10 +254,6 @@ public static bool Prefix(SpawnGameDataMessage __instance, MessageWriter msg) ReactorHeader.Write(msg); ModdedHandshakeS2C.Serialize(msg, "Among Us", Application.version, 0); // TODO } - - msg.EndMessage(); - - return false; } } diff --git a/Reactor/packages.lock.json b/Reactor/packages.lock.json index 3aae1c6..9200e86 100644 --- a/Reactor/packages.lock.json +++ b/Reactor/packages.lock.json @@ -902,4 +902,4 @@ } } } -} +} \ No newline at end of file From c58ccc164394c47f0a2ce94706404a2fbdbe2790 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Wed, 21 May 2025 17:24:40 -0400 Subject: [PATCH 5/8] Revert API changes and add Obsolete attribute to SendImmediate --- .../Networking/Attributes/MethodRpcAttribute.cs | 8 +++++++- Reactor/Networking/Rpc/CustomRpc.cs | 14 ++++++++------ Reactor/Networking/Rpc/MethodRpc.cs | 12 ++++++++++-- Reactor/Networking/Rpc/PlayerCustomRpc.cs | 10 ++++++---- Reactor/Networking/Rpc/UnsafeCustomRpc.cs | 14 ++++++++++++-- 5 files changed, 43 insertions(+), 15 deletions(-) diff --git a/Reactor/Networking/Attributes/MethodRpcAttribute.cs b/Reactor/Networking/Attributes/MethodRpcAttribute.cs index bd5dc8a..5819752 100644 --- a/Reactor/Networking/Attributes/MethodRpcAttribute.cs +++ b/Reactor/Networking/Attributes/MethodRpcAttribute.cs @@ -33,6 +33,12 @@ public sealed class MethodRpcAttribute : Attribute /// public RpcLocalHandling LocalHandling { get; set; } = RpcLocalHandling.Before; + /// + /// Gets or sets a value indicating whether the rpc should be sent immediately. + /// + [Obsolete("Non-immediate RPCs were removed in 2025.5.20. All RPCs are immediate. This property will be removed in a future version.")] + public bool SendImmediately { get; set; } + /// /// Initializes a new instance of the class. /// @@ -66,7 +72,7 @@ public static void Register(Assembly assembly, BasePlugin plugin) try { - var customRpc = new MethodRpc(plugin, method, attribute.Id, attribute.SendOption, attribute.LocalHandling); + var customRpc = new MethodRpc(plugin, method, attribute.Id, attribute.SendOption, attribute.LocalHandling, attribute.SendImmediately); PluginSingleton.Instance.CustomRpcManager.Register(customRpc); } catch (Exception e) diff --git a/Reactor/Networking/Rpc/CustomRpc.cs b/Reactor/Networking/Rpc/CustomRpc.cs index 38aac99..fe161eb 100644 --- a/Reactor/Networking/Rpc/CustomRpc.cs +++ b/Reactor/Networking/Rpc/CustomRpc.cs @@ -56,10 +56,11 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// /// The to send the rpc on. /// The data to send. + /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(InnerNetObject innerNetObject, TData data, Action? ackCallback = null) + public void Send(InnerNetObject innerNetObject, TData data, bool immediately = false, Action? ackCallback = null) { - UnsafeSend(innerNetObject, data, ackCallback: ackCallback); + UnsafeSend(innerNetObject, data, immediately, ackCallback: ackCallback); } /// @@ -71,7 +72,7 @@ public void Send(InnerNetObject innerNetObject, TData data, Action? ackCallback /// The callback to invoke when this packet is acknowledged. public void SendTo(InnerNetObject innerNetObject, int targetClientId, TData data, Action? ackCallback = null) { - UnsafeSend(innerNetObject, data, targetClientId, ackCallback); + UnsafeSend(innerNetObject, data, true, targetClientId, ackCallback); } } @@ -120,10 +121,11 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// Sends this custom rpc on the specified . /// /// The to send the rpc on. + /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(InnerNetObject innerNetObject, Action? ackCallback = null) + public void Send(InnerNetObject innerNetObject, bool immediately = false, Action? ackCallback = null) { - UnsafeSend(innerNetObject, ackCallback); + UnsafeSend(innerNetObject, immediately, ackCallback: ackCallback); } /// @@ -134,6 +136,6 @@ public void Send(InnerNetObject innerNetObject, Action? ackCallback = null) /// The callback to invoke when this packet is acknowledged. public void SendTo(InnerNetObject innerNetObject, int targetClientId, Action? ackCallback = null) { - UnsafeSend(innerNetObject, null, targetClientId, ackCallback); + UnsafeSend(innerNetObject, null, true, targetClientId, ackCallback); } } diff --git a/Reactor/Networking/Rpc/MethodRpc.cs b/Reactor/Networking/Rpc/MethodRpc.cs index 3f1bd61..dbf66f7 100644 --- a/Reactor/Networking/Rpc/MethodRpc.cs +++ b/Reactor/Networking/Rpc/MethodRpc.cs @@ -32,11 +32,13 @@ public class MethodRpc : UnsafeCustomRpc /// The id of the rpc. /// The send option of the rpc. /// The local handling method of the rpc. - public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling) : base(plugin, id) + /// The value indicating whether the rpc should be sent immediately. + public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling, bool sendImmediately) : base(plugin, id) { Method = method; LocalHandling = localHandling; SendOption = option; + SendImmediately = sendImmediately; var parameters = method.GetParameters(); @@ -86,6 +88,12 @@ public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption optio /// public override SendOption SendOption { get; } + /// + /// Gets a value indicating whether the method rpc should be sent immediately. + /// + [Obsolete("Non-immediate RPCs were removed in 2025.5.20. All RPCs are immediate. This property will be removed in a future version.")] + public bool SendImmediately { get; } + /// public override void UnsafeWrite(MessageWriter writer, object? data) { @@ -127,7 +135,7 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// The arguments to serialize and send. public void Send(InnerNetObject innerNetObject, object[] args) { - UnsafeSend(innerNetObject, args); + UnsafeSend(innerNetObject, args, SendImmediately); } private static readonly MethodInfo _sendMethod = AccessTools.Method(typeof(MethodRpc), nameof(Send)); diff --git a/Reactor/Networking/Rpc/PlayerCustomRpc.cs b/Reactor/Networking/Rpc/PlayerCustomRpc.cs index 77b2684..47c9d8a 100644 --- a/Reactor/Networking/Rpc/PlayerCustomRpc.cs +++ b/Reactor/Networking/Rpc/PlayerCustomRpc.cs @@ -19,10 +19,11 @@ protected PlayerCustomRpc(TPlugin plugin, uint id) : base(plugin, id) /// Sends this custom rpc on the local player with the specified . /// /// The data to send. + /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(TData data, Action? ackCallback = null) + public void Send(TData data, bool immediately = false, Action? ackCallback = null) { - Send(PlayerControl.LocalPlayer, data, ackCallback); + Send(PlayerControl.LocalPlayer, data, immediately, ackCallback); } /// @@ -51,10 +52,11 @@ protected PlayerCustomRpc(TPlugin plugin, uint id) : base(plugin, id) /// /// Sends this custom rpc on the local player. /// + /// Whether to send it immediately. /// The callback to invoke when this packet is acknowledged. - public void Send(Action? ackCallback = null) + public void Send(bool immediately = false, Action? ackCallback = null) { - Send(PlayerControl.LocalPlayer, ackCallback); + Send(PlayerControl.LocalPlayer, immediately, ackCallback); } /// diff --git a/Reactor/Networking/Rpc/UnsafeCustomRpc.cs b/Reactor/Networking/Rpc/UnsafeCustomRpc.cs index 3a7d65a..67fefb4 100644 --- a/Reactor/Networking/Rpc/UnsafeCustomRpc.cs +++ b/Reactor/Networking/Rpc/UnsafeCustomRpc.cs @@ -91,9 +91,10 @@ protected UnsafeCustomRpc(BasePlugin plugin, uint id) /// /// The to send the rpc on. /// The data to send. + /// Whether to send it immediately. /// Target client id, defaults to broadcast. /// The callback to invoke when this packet is acknowledged. - public void UnsafeSend(InnerNetObject innerNetObject, object? data, int targetClientId = -1, Action? ackCallback = null) + public void UnsafeSend(InnerNetObject innerNetObject, object? data, bool immediately = false, int targetClientId = -1, Action? ackCallback = null) { ArgumentNullException.ThrowIfNull(innerNetObject); @@ -107,7 +108,16 @@ public void UnsafeSend(InnerNetObject innerNetObject, object? data, int targetCl UnsafeHandle(innerNetObject, data); } - var writer = AmongUsClient.Instance.StartRpcImmediately(innerNetObject.NetId, CustomRpcManager.CallId, SendOption, targetClientId); + if (immediately == false) + { + Warning("Non-immediate RPCs were removed in 2025.5.20! Reactor will now always send immediately!"); + } + + var writer = AmongUsClient.Instance.StartRpcImmediately( + innerNetObject.NetId, + CustomRpcManager.CallId, + SendOption, + targetClientId); writer.Write(Mod); writer.WritePacked(Id); From 859183a849be1fb723b96ed8f041fb13ecbd36a8 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Wed, 21 May 2025 18:34:50 -0400 Subject: [PATCH 6/8] update reasoning --- Reactor/Networking/Patches/HttpPatches.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Reactor/Networking/Patches/HttpPatches.cs b/Reactor/Networking/Patches/HttpPatches.cs index 0f15d32..4176922 100644 --- a/Reactor/Networking/Patches/HttpPatches.cs +++ b/Reactor/Networking/Patches/HttpPatches.cs @@ -56,8 +56,9 @@ public static void Prefix(UnityWebRequest __instance) { // new Uri() is necessary because uri property got stripped. var path = new Uri(__instance.url).AbsolutePath; - // Innersloth changed /api/games to /api/games/filtered - // We may want to keep support for /api/games though. + // Public lobby menu uses /api/games/filtered, code requests use /api/games/code, + // creating a game uses /api/games. + // So we need to match everything that contains /api/games if (path.Contains("/api/games")) { Debug($"{__instance.method} {path}"); @@ -69,8 +70,9 @@ public static void Postfix(UnityWebRequest __instance, UnityWebRequestAsyncOpera { // new Uri() is necessary because uri property got stripped. var path = new Uri(__instance.url).AbsolutePath; - // Innersloth changed /api/games to /api/games/filtered - // We may want to keep support for /api/games though. + // Public lobby menu uses /api/games/filtered, code requests use /api/games/code, + // creating a game uses /api/games. + // So we need to match everything that contains /api/games if (path.Contains("/api/games")) { __result.add_completed((Action) (_ => From 26bd155a4272a1409b90a22186f8c69ec0a2584a Mon Sep 17 00:00:00 2001 From: miniduikboot Date: Thu, 22 May 2025 22:09:52 +0200 Subject: [PATCH 7/8] Fix compile warnings --- .../Attributes/MethodRpcAttribute.cs | 4 ++-- Reactor/Networking/Rpc/MethodRpc.cs | 24 +++++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Reactor/Networking/Attributes/MethodRpcAttribute.cs b/Reactor/Networking/Attributes/MethodRpcAttribute.cs index 5819752..b0fa1b0 100644 --- a/Reactor/Networking/Attributes/MethodRpcAttribute.cs +++ b/Reactor/Networking/Attributes/MethodRpcAttribute.cs @@ -37,7 +37,7 @@ public sealed class MethodRpcAttribute : Attribute /// Gets or sets a value indicating whether the rpc should be sent immediately. /// [Obsolete("Non-immediate RPCs were removed in 2025.5.20. All RPCs are immediate. This property will be removed in a future version.")] - public bool SendImmediately { get; set; } + public bool SendImmediately { get; set; } = true; /// /// Initializes a new instance of the class. @@ -72,7 +72,7 @@ public static void Register(Assembly assembly, BasePlugin plugin) try { - var customRpc = new MethodRpc(plugin, method, attribute.Id, attribute.SendOption, attribute.LocalHandling, attribute.SendImmediately); + var customRpc = new MethodRpc(plugin, method, attribute.Id, attribute.SendOption, attribute.LocalHandling); PluginSingleton.Instance.CustomRpcManager.Register(customRpc); } catch (Exception e) diff --git a/Reactor/Networking/Rpc/MethodRpc.cs b/Reactor/Networking/Rpc/MethodRpc.cs index dbf66f7..4901635 100644 --- a/Reactor/Networking/Rpc/MethodRpc.cs +++ b/Reactor/Networking/Rpc/MethodRpc.cs @@ -32,13 +32,11 @@ public class MethodRpc : UnsafeCustomRpc /// The id of the rpc. /// The send option of the rpc. /// The local handling method of the rpc. - /// The value indicating whether the rpc should be sent immediately. - public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling, bool sendImmediately) : base(plugin, id) + public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling) : base(plugin, id) { Method = method; LocalHandling = localHandling; SendOption = option; - SendImmediately = sendImmediately; var parameters = method.GetParameters(); @@ -71,6 +69,22 @@ public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption optio _handle = Hook(method, parameters, method.IsStatic); } + /// + /// Initializes a new instance of the class. + /// + /// The plugin that the rpc is attached to. + /// The method of the method rpc. + /// The id of the rpc. + /// The send option of the rpc. + /// The local handling method of the rpc. + /// The value indicating whether the rpc should be sent immediately. + [Obsolete("Non-immediate RPCs were removed in 2025.5.20. All RPCs are immediate. Remove sendImmediately from the parameter list.")] + public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption option, RpcLocalHandling localHandling, bool sendImmediately) + : this(plugin, method, id, option, localHandling) + { + SendImmediately = sendImmediately; + } + /// /// Gets the method of the method rpc. /// @@ -92,7 +106,7 @@ public MethodRpc(BasePlugin plugin, MethodInfo method, uint id, SendOption optio /// Gets a value indicating whether the method rpc should be sent immediately. /// [Obsolete("Non-immediate RPCs were removed in 2025.5.20. All RPCs are immediate. This property will be removed in a future version.")] - public bool SendImmediately { get; } + public bool SendImmediately { get; } = true; /// public override void UnsafeWrite(MessageWriter writer, object? data) @@ -135,7 +149,7 @@ public override void UnsafeHandle(InnerNetObject innerNetObject, object? data) /// The arguments to serialize and send. public void Send(InnerNetObject innerNetObject, object[] args) { - UnsafeSend(innerNetObject, args, SendImmediately); + UnsafeSend(innerNetObject, args); } private static readonly MethodInfo _sendMethod = AccessTools.Method(typeof(MethodRpc), nameof(Send)); From b1fa5410c9c61608312def1e582ef04ebb5af3a3 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Sat, 24 May 2025 00:05:52 -0400 Subject: [PATCH 8/8] Update BepInEx MSBuild --- AmongUs.props | 2 +- Reactor.Benchmarks/packages.lock.json | 6 +++--- Reactor.Debugger/packages.lock.json | 6 +++--- Reactor.Example/packages.lock.json | 6 +++--- Reactor/packages.lock.json | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/AmongUs.props b/AmongUs.props index 68a82db..5c6e8c4 100644 --- a/AmongUs.props +++ b/AmongUs.props @@ -4,7 +4,7 @@ - + diff --git a/Reactor.Benchmarks/packages.lock.json b/Reactor.Benchmarks/packages.lock.json index 7bd651f..3c57104 100644 --- a/Reactor.Benchmarks/packages.lock.json +++ b/Reactor.Benchmarks/packages.lock.json @@ -34,9 +34,9 @@ }, "BepInEx.IL2CPP.MSBuild": { "type": "Direct", - "requested": "[2.0.1, )", - "resolved": "2.0.1", - "contentHash": "hUZjCV0t8dkw/Z/zq4Zl405QP7frBk/LVfMdUmUz+7XOhGd7lYPKrR48A5vbGl2QeHudMxlkXzAr9WM3Duq2SQ==" + "requested": "[2.1.0-rc.1, )", + "resolved": "2.1.0-rc.1", + "contentHash": "WI/7TbJwWl5P4B6UXGtKI1VMe6fA6h3fcbp3ZjJKqOBQ5MJfDMmeVB4fb+RW1tUQdxnlSWV3Ul62PHFyTqp4PA==" }, "BepInEx.Unity.IL2CPP": { "type": "Direct", diff --git a/Reactor.Debugger/packages.lock.json b/Reactor.Debugger/packages.lock.json index ecb081e..fe76bc6 100644 --- a/Reactor.Debugger/packages.lock.json +++ b/Reactor.Debugger/packages.lock.json @@ -16,9 +16,9 @@ }, "BepInEx.IL2CPP.MSBuild": { "type": "Direct", - "requested": "[2.0.1, )", - "resolved": "2.0.1", - "contentHash": "hUZjCV0t8dkw/Z/zq4Zl405QP7frBk/LVfMdUmUz+7XOhGd7lYPKrR48A5vbGl2QeHudMxlkXzAr9WM3Duq2SQ==" + "requested": "[2.1.0-rc.1, )", + "resolved": "2.1.0-rc.1", + "contentHash": "WI/7TbJwWl5P4B6UXGtKI1VMe6fA6h3fcbp3ZjJKqOBQ5MJfDMmeVB4fb+RW1tUQdxnlSWV3Ul62PHFyTqp4PA==" }, "BepInEx.Unity.IL2CPP": { "type": "Direct", diff --git a/Reactor.Example/packages.lock.json b/Reactor.Example/packages.lock.json index ecb081e..fe76bc6 100644 --- a/Reactor.Example/packages.lock.json +++ b/Reactor.Example/packages.lock.json @@ -16,9 +16,9 @@ }, "BepInEx.IL2CPP.MSBuild": { "type": "Direct", - "requested": "[2.0.1, )", - "resolved": "2.0.1", - "contentHash": "hUZjCV0t8dkw/Z/zq4Zl405QP7frBk/LVfMdUmUz+7XOhGd7lYPKrR48A5vbGl2QeHudMxlkXzAr9WM3Duq2SQ==" + "requested": "[2.1.0-rc.1, )", + "resolved": "2.1.0-rc.1", + "contentHash": "WI/7TbJwWl5P4B6UXGtKI1VMe6fA6h3fcbp3ZjJKqOBQ5MJfDMmeVB4fb+RW1tUQdxnlSWV3Ul62PHFyTqp4PA==" }, "BepInEx.Unity.IL2CPP": { "type": "Direct", diff --git a/Reactor/packages.lock.json b/Reactor/packages.lock.json index 9200e86..bf551dd 100644 --- a/Reactor/packages.lock.json +++ b/Reactor/packages.lock.json @@ -16,9 +16,9 @@ }, "BepInEx.IL2CPP.MSBuild": { "type": "Direct", - "requested": "[2.0.1, )", - "resolved": "2.0.1", - "contentHash": "hUZjCV0t8dkw/Z/zq4Zl405QP7frBk/LVfMdUmUz+7XOhGd7lYPKrR48A5vbGl2QeHudMxlkXzAr9WM3Duq2SQ==" + "requested": "[2.1.0-rc.1, )", + "resolved": "2.1.0-rc.1", + "contentHash": "WI/7TbJwWl5P4B6UXGtKI1VMe6fA6h3fcbp3ZjJKqOBQ5MJfDMmeVB4fb+RW1tUQdxnlSWV3Ul62PHFyTqp4PA==" }, "BepInEx.Unity.IL2CPP": { "type": "Direct",