SEModAPIExtensions.API.PluginManager.HookChatMessage C# (CSharp) Method

HookChatMessage() public static method

public static HookChatMessage ( Object plugin, IPlugin>.Dictionary plugins, bool>.Dictionary pluginState, ChatManager chatEvent, bool &discard ) : void
plugin Object
plugins IPlugin>.Dictionary
pluginState bool>.Dictionary
chatEvent ChatManager
discard bool
return void
        public static void HookChatMessage( Object plugin, Dictionary<Guid, IPlugin> plugins, Dictionary<Guid, bool> pluginState, ChatManager.ChatEvent chatEvent, out bool discard )
        {
            discard = false;

            foreach ( Guid key in plugins.Keys )
            {
                object hookPlugin = plugins[ key ];
                if ( !pluginState.ContainsKey( key ) )
                    continue;

                MethodInfo hookMethod = hookPlugin.GetType( ).GetMethod( "OnChatHook" );
                if ( hookMethod != null )
                {
                    const bool hookDiscard = false;
                    object[ ] args = { chatEvent, plugin, hookDiscard };
                    hookMethod.Invoke( hookPlugin, args );
                    discard = (bool)args[ 2 ];
                }
            }
        }