Advertisement
Chokobo

Untitled

Jul 28th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.69 KB | None | 0 0
  1. ChokoTools.SearchResults = {}
  2. ChokoTools.FilteredIDs = {}
  3. ChokoTools.HopFSM = "Search"
  4.  
  5. --Standard Basic Button
  6. ChokoTools.RandHop = CreateFrame("Button",nil,UIParent)
  7. ChokoTools.RandHop:SetSize(50,18)
  8. ChokoTools.RandHop:SetPoint("BOTTOMLEFT",0,0)
  9. ChokoTools.RandHop:SetText("HOP")
  10. ChokoTools.RandHop:RegisterEvent("LFG_LIST_SEARCH_RESULTS_RECEIVED")
  11. ChokoTools.RandHop:RegisterEvent("LFG_LIST_SEARCH_FAILED")
  12. ChokoTools.RandHop.bg = ChokoTools.RandHop:CreateTexture("ARTWORK")
  13. ChokoTools.RandHop.bg:SetColorTexture(0.2,0.2,0.2,1)
  14. ChokoTools.RandHop.bg:SetAllPoints(ChokoTools.RandHop)
  15. ChokoTools.RandHop.txt = ChokoTools.RandHop:CreateFontString(nil,"ARTWORK")
  16. ChokoTools.RandHop.txt:SetFont("Interface\\AddOns\\ChokoTools\\fonts\\Exo2.ttf", 12)
  17. ChokoTools.RandHop.txt:SetTextColor(0.8,0.8,0.8)
  18. ChokoTools.RandHop.txt:SetText("HOP")
  19. ChokoTools.RandHop.txt:SetPoint("CENTER")
  20.  
  21.  
  22.  
  23. ChokoTools.RandHop:SetScript("OnClick", function(self, event, ...)
  24.     if IsInGroup() or IsInRaid() then
  25.         LeaveParty()
  26.         ChokoTools.SearchResults = {}
  27.         ChokoTools.FilteredIDs = {}
  28.         ChokoTools.HopFSM = "Search"
  29.         ChokoTools.RandHop.txt:SetText("HOP")
  30.         return
  31.     end
  32.     ChokoTools:RandomGroup()
  33. end)
  34.  
  35. ChokoTools.RandHop:SetScript("OnEvent", function(self, event, ...)
  36.     if event == "LFG_LIST_SEARCH_RESULTS_RECEIVED" then
  37.         --Get Search Results
  38.         c, ChokoTools.SearchResults = C_LFGList.GetSearchResults()
  39.        
  40.         --Iterate through search results
  41.         for i=1,#ChokoTools.SearchResults do
  42.             local id, _, _, _, _, _, _, _, _, _, _, _, _, _, autoinv = C_LFGList.GetSearchResultInfo(ChokoTools.SearchResults[i])
  43.            
  44.             if autoinv == true then
  45.                 table.insert(ChokoTools.FilteredIDs,id)
  46.             end
  47.         end
  48.         ChokoTools.HopFSM = "Join"
  49.         ChokoTools.RandHop.txt:SetText("JOIN")
  50.        
  51.     elseif event == "LFG_LIST_SEARCH_FAILED" then
  52.    
  53.         ChokoTools.SearchResults = {}
  54.         ChokoTools.FilteredIDs = {}
  55.         ChokoTools.HopFSM = "Search"
  56.     end
  57. end)
  58.  
  59. --Function: Search for groups with Auto Accept on. Join if we have data.
  60. function ChokoTools:RandomGroup()
  61.    
  62.     if ChokoTools.HopFSM == "Join" then
  63.         if (ChokoTools.FilteredIDs) and (#ChokoTools.FilteredIDs >= 1) then
  64.             print("Joining...")
  65.             C_LFGList.ApplyToGroup(ChokoTools.FilteredIDs[1], "", false, false, true)
  66.             ChokoTools.FilteredIDs = {} --Reset table to empty
  67.         end
  68.     end
  69.    
  70.     if ChokoTools.HopFSM == "Search" then
  71.         print("Searching...")
  72.         ChokoTools.SearchResults = {}
  73.         ChokoTools.FilteredIDs = {}
  74.  
  75.         --Search Groups (Taken and modified from "ServerHop" Addon)
  76.         local lang = {}
  77.         for k,v in pairs(C_LFGList.GetAvailableLanguageSearchFilter()) do lang[v]=true end
  78.         C_LFGList.Search(6,LFGListSearchPanel_ParseSearchTerms(""),0,0,lang) --Search "Custom" groups
  79.        
  80.     end
  81. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement