Okay. First, thanks for the find, Spirit.
Galileo registers some commands in
plugin_cfg() based on if the commands are enabled, which isn't known until that point. The problem is that all plugins'
plugin_init() get called before any plugins'
plugin_cfg() gets called. This essentially means that iChat has already deadended the chain of chat handlers before any plugins register, in their
plugin_cfg(), that they want to handle chat.
I'd argue that this is a design flaw of iChat. Further, I believe it can be resolved by simply moving iChat's "say" handler register from
plugin_init() to
plugin_cfg().
To do that, in iChat.sma...
Delete the following two lines from
plugin_init():
Code:
register_clcmd( "say", "iChatHookSay", 0 );
register_clcmd( "say_team", "iChatHookSay", 1 );
Add the following code between
plugin_init() and
plugin_unpause():
Code:
public plugin_cfg()
{
register_clcmd( "say", "iChatHookSay", 0 );
register_clcmd( "say_team", "iChatHookSay", 1 );
}
Please let me know if it works.