Lol. Way over complex. It messes with crap everyone else knows is the cheap way. :3 I'd port my Blockland ignore script here if I didn't feel it would be a waste since people could rejoin to change their client and then make a new account to bypass it easily.
And yours only goes after specific names. Sure, you can block their main, but if you call the ones you want to ignore "annoying" and not just bothersome, you'd have to assume they'd make other accounts to bypass this.
Edit: This is what I use for any commands involving incoming chat:
package CommandsPacket {
function clientCmdChatMessage(%client,%blank1,%blank2,%amsg,%name,%msg) {
Parent::clientCmdChatMessage(%client,%blank1,%blank2,%amsg,%name,%msg);
}
};
activatepackage(CommandsPacket);
I removed my stuff, but that has all the parts of messages separated. When I want to ignore anyone, I can tell it not to go to parent for the %client using the %name I don't want..