RegisterEventTypes(new List() { "onForceReload", "onGameExistsEvent", "onGameActiveChangedEvent", "onLogEvent", "onImportLogEvent", "onInCombatChangedEvent", "onZoneChangedEvent", "onFateEvent", "onCEEvent", "onPlayerDied", "onPartyWipe", "onPlayerChangedEvent", "onUserFileChanged", }); RegisterEventHandler("cactbotReloadOverlays", (msg) => { OnForceReload(new JSEvents.ForceReloadEvent()); return null; }); RegisterEventHandler("cactbotLoadUser", FetchUserFiles); RegisterEventHandler("cactbotRequestPlayerUpdate", (msg) => { notify_state_.player = null; return null; }); RegisterEventHandler("cactbotRequestState", (msg) => { reset_notify_state_ = true; return null; }); RegisterEventHandler("cactbotSay", (msg) => { Advanced_Combat_Tracker.ActGlobals.oFormActMain.TTS(msg["text"].ToString()); return null; }); RegisterEventHandler("cactbotSaveData", (msg) => { Config.OverlayData[msg["overlay"].ToString()] = msg["data"]; return null; }); RegisterEventHandler("cactbotLoadData", (msg) => { if (Config.OverlayData.ContainsKey(msg["overlay"].ToString())) { var ret = new JObject(); ret["data"] = Config.OverlayData[msg["overlay"].ToString()]; return ret; } else { return null; } }); RegisterEventHandler("cactbotChooseDirectory", (msg) => { var ret = new JObject(); string data = (string)ActGlobals.oFormActMain.Invoke((ChooseDirectoryDelegate)ChooseDirectory); if (data != null) ret["data"] = data; return ret; });