So we have two contacts with same email but different networks (as this is possible according to the plus! scripting docs):
What will happen when you do createchat() or getcontact() with just the email in that case? Open a chat and get the contact from the MSN network?
And since both emails exist, we also can't check for the .Network, because, what contact is meant with getcontact("e@mail.com")? Or, to put it in another way, to get the correct network for the contact, we _need_ to prefix the email with "yahoo". But then again, since we prefix it with yahoo, we already know it is a yahoo contact...
And let's say we have a bunch of email addresses (given by the user or whatever), and we want to know which emails are in our list and what the network is for them.
To get _all_ contact objects from those emails we actually need to call getcontact() twice for each email (once with and once without the prefix)? Because:
1) for a yahoo email, and no same msn email exist, calling getcontact("e@mail.com") will not return null, so we have a contact object to get the network
2) for a yahoo email, and same msn email exists, calling getcontact("e@mail.com") will also not return null, but it will return the wrong contact....
So we _need_ to call getcontact() twice, with and without the prefix....
-----
Another question: How is it actually possible to have 2 of the same emails in Messenger.MyContacts but each with a different network? Does that mean when one signs in with his account in Messenger, he can also sign in with that same email address in yahoo messenger?
-----
And thus since Contact.Email will always give only the email without the possible prefix, every script which uses for example
if (Contact.Email !== Messenger.MyEmail) to make sure something isn't done with our own account (and that is used a lot in many scripts!), is no good and will fail since there is a possebility that someone made a yahoo account with that email...
Aka Messenger.MyEmail isn't always our own email address, but might be the email of someone else too!
So, the only correct way to check if a contact object _is_ our own is something like:
if (Contact.Email === Messenger.MyEmail && Contact.Network === 1) { // Contact = us }
?
....
major confussions here
PS: though any help is majorly appriciated, those who want to try and answer these questions or clarify and explain something, make absolutely sure you 100% know what you're talking about and that it is 100% correct what you're saying as it is already confussing enough as it is