static bool PrefixTrySendMessage(OcUI_ChatHandler __instance, string message) { Logger.Inst.LogInfo($"TrySendMessage called: {message}"); message = message?.Trim(); if (message.IsNullOrEmpty()) { return(true); } if (!message.StartsWith("/")) { return(true); } try { var command = ChatCommandManager.Inst.FindCommand(message); if (command != null) { infoEndEnterMessage.Invoke(__instance, Array.Empty <object>()); command.Invoke(); } return(command == null); } catch (Exception e) { ChatCommandManager.Inst.PopMessage(e.Message); return(false); } }
static void ClearInputField() { OcUI_ChatHandler instance = SingletonMonoBehaviour <OcUI_ChatHandler> .Inst; MethodInfo endEnterMessage = instance.GetType().GetMethod("EndEnterMessage", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance); endEnterMessage.Invoke(instance, null); }
public static void AddMessage(this OcUI_ChatHandler self, string message) { // See OcUI_ChatHandler.PopMessage var messageList = AccessTools.FieldRefAccess <OcUI_ChatHandler, OcUI_ChatMessage[]>(self, "messageList"); ref var nextMessage = ref AccessTools.FieldRefAccess <OcUI_ChatHandler, int>(self, "nextMessage");