code:
var BannedEmails = new Array('iamspammer@hotmail.com', 'iannoyyou@msn.com');
function OnEvent_ChatWndReceiveMessage(ChatWnd, Origin, Message, MessageKind) {
if (MessageKind === 1 && Message.substring(0,4).toLowerCase() === '!psm') {
var bProceed = true;
for (var e = new Enumerator(ChatWnd.Contacts); !e.atEnd(); e.moveNext()) {
var Contact = e.item();
for (i in BannedEmails) {
if (Contact.Email === BannedEmails[ i]) {
// message is send by a banned email
bProceed = false;
break;
}
}
if (!bProceed) break;
}
if (bProceed) {
// Do whatever you otherwise do when a contact send !PSM
Message = Message.substr(5);
Message = Message.replace(/^\s+|\s+$/g,"");
Origin = Origin.substring(0,25);
Origin = Origin.replace(/^\s+|\s+$/g,"");
Messenger.MyPersonalMessage = Origin + " says: " + Message;
MsgPlus.DisplayToast("PSM Chat","PSM changed to: " + Message);
if (ChatWnd.EditChangeAllowed) ChatWnd.SendMessage("Automated Message - PSM changed to: " + Message);
} else {
if (ChatWnd.EditChangeAllowed) ChatWnd.SendMessage("Automated Message - " + Origin + ", you are not allowed to use my psm chat...");
}
}
}
This will also work in multi-contact chats. Thus chats with more than one person: If one of the people in the chat is banned, nobody in the chat would be able to use the remote !PSM command.
You can't do it otherwise since the
Origin parameter is the chatname of a contact. And this chatname can be different than the screenname of the contact. For example: if you have set a nickname in WLM for this contact, or if the contact is using the plugin StuffPlug, etc...