void Awake() { if (DisableLists.Value) { DisableCharaList.Patch(); } var gameobject = new GameObject(nameof(CardOrganizerKK)); gameobject.transform.SetParent(gameObject.transform); var dispatcher = gameobject.AddComponent <UnityMainThreadDispatcher>(); var scenes = new Dictionary <string, CardHandler> { { "Maker", gameobject.AddComponent <Methods_Maker>() }, { "Studio", gameobject.AddComponent <Methods_CharaStudio>() }, { "FreeH", gameobject.AddComponent <Methods_HScene>() }, { "FreeHSelect", gameobject.AddComponent <Methods_FreeHSelect>() } }; RPCClient_Plugin.Init("CardOrganizerServer", 9125, "KK", (message, id) => { if (!dispatcher) { Console.WriteLine("[CardOrganizer] Dispatcher dead"); } dispatcher.Enqueue(() => scenes[id].UseCard(message)); }); SceneLoaded(); SceneManager.sceneLoaded += SceneLoaded; }
void OnDestroy() { RPCClient_Plugin.StopServer(); DisableCharaList.RemovePatches(); SceneManager.sceneLoaded -= SceneLoaded; }