Back to Home

ESO Lua File v101043

publicallingames/globals/autocomplete.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
local g_currentPlayerName
local g_currentPlayerUserId
function ZO_AutoComplete.IncludeOrExcludeResult(results, result, include)
    if result ~= g_currentPlayerName and result ~= g_currentPlayerUserId then
        local lowerResult = zo_strlower(result)
        if include then
            results[lowerResult] = result
        else
            results[lowerResult] = nil
        end
    end
end
AUTO_COMPLETE_FLAG_FRIEND = ZO_AutoComplete.AddFlag(function(results, input, onlineOnly, include)
    for i = 1, GetNumFriends() do
        local displayName, _, playerStatus = GetFriendInfo(i)
        if not onlineOnly or playerStatus ~= PLAYER_STATUS_OFFLINE then
            --No @ symbols and no character names on console
            ZO_AutoComplete.IncludeOrExcludeResult(results, ZO_FormatUserFacingDisplayName(displayName), include)
            if not IsConsoleUI() then
                local hasCharacter, characterName = GetFriendCharacterInfo(i)
                if hasCharacter then
                    ZO_AutoComplete.IncludeOrExcludeResult(results, zo_strformat("<<1>>", characterName), include)
                end
            end
        end
    end
end)
AUTO_COMPLETE_FLAG_GUILD = ZO_AutoComplete.AddFlag(function(results, input, onlineOnly, include)
    for i = 1, GetNumGuilds() do
        local guildId = GetGuildId(i)
        local numMembers = GetNumGuildMembers(guildId)
        for memberIndex = 1, numMembers do
            local displayName, _, _, playerStatus = GetGuildMemberInfo(guildId, memberIndex)
            if not onlineOnly or playerStatus ~= PLAYER_STATUS_OFFLINE then
                --No @ symbols and no character names on console
                ZO_AutoComplete.IncludeOrExcludeResult(results, ZO_FormatUserFacingDisplayName(displayName), include)
                if not IsConsoleUI() then
                    local hasCharacter, characterName = GetGuildMemberCharacterInfo()
                    if hasCharacter then
                        ZO_AutoComplete.IncludeOrExcludeResult(results, zo_strformat("<<1>>", characterName), include)
                    end
                end
            end
        end
    end
end)
AUTO_COMPLETE_FLAG_HOME_TOURS = ZO_AutoComplete.AddFlag(function(results, input, onlineOnly, include)
    --Home Tours auto-completion includes both friends and guildmates but only by account name; no character names
    for i = 1, GetNumFriends() do
        local displayName, _, playerStatus = GetFriendInfo(i)
        if not onlineOnly or playerStatus ~= PLAYER_STATUS_OFFLINE then
            ZO_AutoComplete.IncludeOrExcludeResult(results, ZO_FormatUserFacingDisplayName(displayName), include)
        end
    end
    for i = 1, GetNumGuilds() do
        local guildId = GetGuildId(i)
        local numMembers = GetNumGuildMembers(guildId)
        for memberIndex = 1, numMembers do
            local displayName, _, _, playerStatus = GetGuildMemberInfo(guildId, memberIndex)
            if not onlineOnly or playerStatus ~= PLAYER_STATUS_OFFLINE then
                ZO_AutoComplete.IncludeOrExcludeResult(results, ZO_FormatUserFacingDisplayName(displayName), include)
            end
        end
    end
end)
local function OnPlayerActivated()
    g_currentPlayerName = GetUnitName("player")
    g_currentPlayerUserId = GetDisplayName()
    EVENT_MANAGER:UnregisterForEvent("AutoCompleteAllIngames", EVENT_PLAYER_ACTIVATED)
end
EVENT_MANAGER:RegisterForEvent("AutoCompleteAllIngames", EVENT_PLAYER_ACTIVATED, OnPlayerActivated)