The reason that $msgtags(user-name).key returns your name, is because that is what the key is for. It returns YOUR name, not the name of the person sending the message.
So I had my first viewer today with a localized display name. I am using SReject's amazing mTwitch scripts as well. My bot returned the users name as being blank as well.
After spending some time trying to understand how mTwitch.DisplayName.mrc worked, I have come up with a fix/work-around that seems to work 100% for now until SReject releases an official fix.
On line 24 on mTwitch.DisplayName.mrc I simply changed:
if ($len(%dnick) && %dnick !=== %nick) {
to:
if ((%dnick == %nick) && (%dnick !=== %nick)) {
From what I understand, mIRC was trying to change the $nick of the user as long as their display name had a length (existed) and was a non-case sensitive match to their standard twitch user name. I believe the problem was that %dnick was using the foreign language display name which was completely different from the users english user name. I think mIRC didn't know how to handle a display name like "素晴らしいテスト" so it just returned nothing. I changed the script so that mIRC will only try to change the users name if the display name
is a non-case sensitive match to the user name
and the display name
is not a case sensitive match to the user name. This way, the script doesn't even try to change the user name to a "localized display name" and will just display the lower case english name.
Come to think of it, just "
if (%dnick == %nick)" would probably have worked as well. Anyways, I'm sure SReject will come up with a much "cleaner" way of fixing this, but this appears to be working for me for now.