GuildArmory-0.1.10
What's new
Changelog
0.1.10
Three reports from the same evening, and by the end of it one cause behind all of them.
The root: that second value is not a realm
The addon's own dashboard gave it away:
Total — Level 20 Windshaper Skyborne Shaman — <Is Not Alone> Guild Master · Tumult
That last field is the realm. The realm is called "Classic Beta PvE 2".
"Tumult" is the second half of the name "Total Tumult": UnitName splits the
name at the space and hands the second half back in the realm slot, where
every caller reasonably takes it for a realm.
That is where the half names came from, why the published record carried only "Total" while the server wrote "Total Tumult", and why a realm nobody has ever heard of stood under the portrait.
A player is always on their own realm, so anything else in that slot belongs to the name. It is put back now, and the entries below are the symptoms — all three fixed separately, because a wrong name must not depend on a single guess being right.
(If Forever ever connects realms, this needs measuring again: a genuine foreign realm would be indistinguishable from a second name part. That is the same ground on which cross-realm whispering was already given up.)
A name change locked the player out of his own guild
Rejected: Total Tumult-ClassicBetaPvE2 wanted to publish the character Total.
That was the player himself. The rule behind the message is a good one — the sender's name comes from the server and cannot be forged, so a character record is only accepted from the character it describes. It is the one thing standing between the guild database and anybody who feels like writing into it.
It was comparing the wrong things. Character names on this realm may contain
a space ("Horst Hodenhagen"), and the two sources do not agree on how much of
the name they give: the sender comes from the server and carries both
parts, while UnitName("player") comes from the client and may stop after
the first. Two names of the same person, compared as text, are not equal — so
his equipment stopped reaching anyone in the guild.
The comparison now allows the shorter name to be the beginning of the longer one, at a word boundary. Same realm, and "Total" matches "Total Tumult" while "Tot" does not. The same faulty comparison sat a second time in the message layer, where it was less visible because the guild check catches the case afterwards.
This tolerance stays even though the cause above is now known and fixed. Two
sources disagreeing about a name is not a thing to be sure about once; it is
a thing to survive. /ga probe also gained an entry for it ("names") which
puts every name source side by side, including the spelling the server uses —
so the next disagreement is read off a report rather than pieced together
from a screenshot.
Only half a name on screen
The same cause, one layer up: equipment, characters and the dashboard showed "Total" where the guild knows a "Total Tumult". The record is built from what the client hands out, and that is the source that shortens.
The guild roster is the better source — it spells names the way the server does, the same spelling that appears in the sender field of an addon message. Full names are now carried over from there into the character records whenever the roster is read, and the dashboard prefers the fuller of the two spellings it has.
If two guild members share a first name, nothing is carried over for that name: the right short name beats a wrong long one, which is the same rule the name search already follows. It is one pass through each list rather than name against name — with 200 members and a roster update arriving several times per login, the pairwise version is how you end up with the memory figure that 0.1.9 had to fix.
An inspected stranger stood among the guild
Pressing "inspect target" on somebody outside the guild creates a character record, and the lists showed every record there was. He turned up under equipment and among the characters waiting to be assigned to a player.
Now he does not — but on a narrow rule, because the wide one would have been far worse. Almost nothing the addon knows has a measured guild: anything arriving over the sync carries no guild name at all. Treating that empty value as "not in the guild" would have emptied half the roster off the screen.
So what decides is whether the guild was ever actually looked up, which happens during an inspect, where even an empty answer is an answer. Anything never measured stays visible. The guild roster overrules an older measurement, so somebody who joins later reappears, and typing a name into the search finds him regardless — a search field that hides the record you searched for is broken.
This mod has no additional files

