Not that anyone cared, but I have improved the matching function by a factor of ~20.
Heck, I might not even need aliases anymore, I'm gonna see what happens when I remove them!
Nice!
...Okay, just checked, and apparently, voting for Jim made the system think it was voting for Max instead...
Oh.
Well, you did your best, and in the end that's all that matters.
Well, in a way, it was due to a bug, but I can explain how it showed a potential issue anyway.
In simple terms, trying to figure out who "Jim" refers to right now uses a simple counting algorithm. It goes, "Jim Groovester"? Why, that's correct at 3/14 ("[Jim] Groovester"). But, let's invent a fake player named "Maxim". It looks at that and goes, "Oh, obviously, that's correct at 2/5 (Max[im])! Well, 40% is a lot higher than 21.4%, so it'll assume that Jim really means Maxim. Or Maximum, since that's 2/8 (25%). Heck, something like Pip would make it think it's a 33% match, when that's not really close.
But, the algorithm is really being used for something it was never meant to do, which is to factor in small spelling errors. Trying to understand nicknames is just out of its scope. Making an entirely new algorithm is the only way to make it better identify nicknames on its own without having to manually enter them.
But, that's okay. I've just added some of the tougher ones for the bot to do so that you can do silly things that players do and it'll try its hardest to figure out what you meant. In fact, with the changes, voting things like "
I'm gonna vote Jim to the moon" now more accurately matches than just voting Jim used to (because I was implementing the algorithm in a reeeeeally bad way before).
Anyway, I'm tired and going to bed.