RandomRankedGuildMember = {} RandomRankedGuildMember.name = "RandomRankedGuildMember" RandomRankedGuildMember.last_chosen = nil local function parseOptions (option) -- Taken from http://wiki.esoui.com/How_to_add_a_slash_command local options = {} local searchResult = { string.match(option,"^(%S*)%s*(.-)$") } for i,v in pairs(searchResult) do if (v ~= nil and v ~= "") then options[i] = string.lower(v) end end return options end function RandomRankedGuildMember.Choose(options) local options = parseOptions(options) if #options == 1 and options[1] == "last" then if RandomRankedGuildMember.last_chosen ~= nil then CHAT_SYSTEM:AddMessage("Previously chose " .. RandomRankedGuildMember.last_chosen .. ".") else CHAT_SYSTEM:AddMessage("No guild member chosen this session.") end return end if #options ~= 2 or options[1] == "help" then CHAT_SYSTEM:AddMessage("To use RandomRankGuildMember:") CHAT_SYSTEM:AddMessage("/rrm -- return random, online member from guild of specified rank") CHAT_SYSTEM:AddMessage("/rrm last -- return the last chosen person (including guild and rank)") CHAT_SYSTEM:AddMessage("/rrm help -- this message") return end local guild_id = tonumber(options[1]) local rank_id = tonumber(options[2]) local guild_name = GetGuildName(guild_id) local rank_name = GetFinalGuildRankName(guild_id, rank_id) if not guild_name then CHAT_SYSTEM:AddMessage("Invalid guild number: " .. guild_id .. ".") return end if not rank_name then CHAT_SYSTEM:AddMessage("Invalid rank_id for " .. guild_name .. ", " .. rank_id .. ".") return end local num_members = GetNumGuildMembers(guild_id) local pool = {} for i=1, num_members do local m_name, m_note, m_rank_ind, m_status, m_secs = GetGuildMemberInfo(guild_id, i) if m_secs == 0 and m_rank_ind == rank_id then table.insert(pool, m_name) end end if #pool == 0 then CHAT_SYSTEM:AddMessage("No eligible members found for " .. guild_name .. " ranked " .. rank_name .. ".") return else CHAT_SYSTEM:AddMessage(#pool .. " eligible member(s) found for " .. guild_name .. " ranked " .. rank_name .. "!") end local ind = math.random(1, #pool) RandomRankedGuildMember.last_chosen = pool[ind] .. " in " .. guild_name .. " (" .. rank_name .. ")" CHAT_SYSTEM:AddMessage("Randomly chose " .. RandomRankedGuildMember.last_chosen .. ".") end SLASH_COMMANDS["/rrm"] = RandomRankedGuildMember.Choose