mirror of
https://github.com/Lacustat/Freewood-OctoWoW-Codex.git
synced 2026-10-30 22:16:59 +00:00
0.1.140: Eigentuemer je Server, Namensschluessel ohne Nachnamen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016onJCSHLwhs9udhC9ZLzk9
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
ef7d631fe7
commit
55c0415450
+10
-19
@@ -46,7 +46,7 @@ end
|
||||
local function RealmPart(name)
|
||||
local r = type(name) == "string" and name:match("%-(.+)$")
|
||||
if r then
|
||||
r = r:gsub("[%s%-]", ""):lower()
|
||||
r = r:gsub("[%s%-']", ""):lower()
|
||||
if r ~= "" then return r end
|
||||
end
|
||||
return nil
|
||||
@@ -54,7 +54,7 @@ end
|
||||
|
||||
local function OwnRealm()
|
||||
local r = (GetNormalizedRealmName and GetNormalizedRealmName()) or (GetRealmName and GetRealmName()) or ""
|
||||
return (tostring(r):gsub("[%s%-]", ""):lower())
|
||||
return (tostring(r):gsub("[%s%-']", ""):lower())
|
||||
end
|
||||
|
||||
-- Der eigene Realm hat im Spiel mehrere Schreibweisen (z.B. GetNormalizedRealmName = "ClassicBetaPvP2",
|
||||
@@ -68,7 +68,7 @@ local function IsOwnRealmVariant(r)
|
||||
if ok then variants[#variants + 1] = ur end
|
||||
end
|
||||
for _, v in ipairs(variants) do
|
||||
if type(v) == "string" and v:gsub("[%s%-]", ""):lower() == r then return true end
|
||||
if type(v) == "string" and v:gsub("[%s%-']", ""):lower() == r then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
@@ -82,32 +82,23 @@ function Trust.Key(name)
|
||||
return core .. "-" .. realm
|
||||
end
|
||||
|
||||
-- Eintrag aus einer Liste oder von Hand getippt ("Speedtest-Timerun", "Aroki Steel", "Yuto-ClassicBetaPvP2").
|
||||
-- In Forever haben Charaktere Vor- und Nachnamen ("Aroki Steel"); ein Bindestrich gilt nur dann als Realm-Trenner,
|
||||
-- wenn dahinter der eigene Realm steht. Sonst ist es der Nachname (Bindestrich = Leerzeichen).
|
||||
-- Eintrag aus einer Liste oder von Hand getippt: "Name" (gilt fuer den eigenen Realm) oder "Name-Realm"
|
||||
-- (z.B. "Fwaroki-NZoth"). Auf OctoWoW gibt es nur einen Namen, keinen Nachnamen: ein Bindestrich trennt den Realm ab.
|
||||
function Trust.EntryKey(name)
|
||||
if type(name) ~= "string" then return nil end
|
||||
local clean = name:gsub("\194\160", " "):gsub("^%s+", ""):gsub("%s+$", "")
|
||||
local base, realm = clean:match("^(.*)%-([^%-]+)$")
|
||||
if base and realm:gsub("[%s%-]", ""):lower() == OwnRealm() then
|
||||
return Trust.Key(clean)
|
||||
end
|
||||
return Trust.Key((clean:gsub("%-", " ")))
|
||||
return Trust.Key(clean)
|
||||
end
|
||||
|
||||
-- Eigener voller Name. UnitFullName liefert in Forever Vorname und Nachname ("Aroki", "Steel"); die anderen
|
||||
-- sehen uns als "Aroki Steel-ClassicBetaPvP2". Weicht der zweite Teil vom eigenen Realm ab, ist es der Nachname.
|
||||
-- Eigener voller Name (OctoWoW: nur ein Name; der zweite Rueckgabewert von UnitFullName ist der Realm, kein Nachname)
|
||||
function Trust.SelfKey()
|
||||
local name, second
|
||||
local name
|
||||
if UnitFullName then
|
||||
local ok, n, r = pcall(UnitFullName, "player")
|
||||
if ok then name, second = n, r end
|
||||
local ok, n = pcall(UnitFullName, "player")
|
||||
if ok then name = n end
|
||||
end
|
||||
if not name and UnitName then name = (UnitName("player")) end
|
||||
if not name then return nil end
|
||||
if second and second ~= "" and second:gsub("[%s%-]", ""):lower() ~= OwnRealm() then
|
||||
name = name .. " " .. second
|
||||
end
|
||||
return Trust.Key(name)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user