Created
September 27, 2019 12:20
-
-
Save Wetxius/12a2929804c60c80532de68b6a37bd21 to your computer and use it in GitHub Desktop.
ShestakUI\Modules\Automation\AutoInvite.lua
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local T, C, L, _ = unpack(select(2, ...)) | |
---------------------------------------------------------------------------------------- | |
-- Accept invites from guild members or friend list(by ALZA) | |
---------------------------------------------------------------------------------------- | |
if C.automation.accept_invite == true then | |
local function CheckFriend(inviterGUID) | |
if C_BattleNet.GetGameAccountInfoByGUID(inviterGUID) or C_FriendList.IsFriend(inviterGUID) or IsGuildMember(inviterGUID) then | |
return true | |
end | |
end | |
local ai = CreateFrame("Frame") | |
ai:RegisterEvent("PARTY_INVITE_REQUEST") | |
ai:SetScript("OnEvent", function(self, event, name, _, _, _, _, _, inviterGUID) | |
if QueueStatusMinimapButton:IsShown() or GetNumGroupMembers() > 0 then return end | |
if CheckFriend(inviterGUID) then | |
RaidNotice_AddMessage(RaidWarningFrame, L_INFO_INVITE..name, {r = 0.41, g = 0.8, b = 0.94}, 3) | |
print(format("|cffffff00"..L_INFO_INVITE..name..".|r")) | |
AcceptGroup() | |
for i = 1, STATICPOPUP_NUMDIALOGS do | |
local frame = _G["StaticPopup"..i] | |
if frame:IsVisible() and frame.which == "PARTY_INVITE" then | |
frame.inviteAccepted = 1 | |
StaticPopup_Hide("PARTY_INVITE") | |
return | |
elseif frame:IsVisible() and frame.which == "PARTY_INVITE_XREALM" then | |
frame.inviteAccepted = 1 | |
StaticPopup_Hide("PARTY_INVITE_XREALM") | |
return | |
end | |
end | |
else | |
SendWho(name) | |
end | |
end) | |
end | |
---------------------------------------------------------------------------------------- | |
-- Auto invite by whisper(by Tukz) | |
---------------------------------------------------------------------------------------- | |
if T.client == "ruRU" then | |
C.automation.invite_keyword = "инв" | |
end | |
local autoinvite = CreateFrame("Frame") | |
autoinvite:RegisterEvent("CHAT_MSG_WHISPER") | |
autoinvite:RegisterEvent("CHAT_MSG_BN_WHISPER") | |
autoinvite:SetScript("OnEvent", function(self, event, arg1, arg2, ...) | |
if ((not UnitExists("party1") or UnitIsGroupLeader("player") or UnitIsGroupAssistant("player")) and arg1:lower():match(C.automation.invite_keyword)) and SavedOptionsPerChar.AutoInvite == true and not QueueStatusMinimapButton:IsShown() then | |
if event == "CHAT_MSG_WHISPER" then | |
InviteUnit(arg2) | |
elseif event == "CHAT_MSG_BN_WHISPER" then | |
local bnetIDAccount = select(11, ...) | |
local bnetIDGameAccount = select(6, BNGetFriendInfoByID(bnetIDAccount)) | |
BNInviteFriend(bnetIDGameAccount) | |
end | |
end | |
end) | |
SlashCmdList.AUTOINVITE = function(msg) | |
if msg == "" then | |
if SavedOptionsPerChar.AutoInvite == true then | |
SavedOptionsPerChar.AutoInvite = false | |
print("|cffffff00"..L_INVITE_DISABLE..".|r") | |
else | |
SavedOptionsPerChar.AutoInvite = true | |
print("|cffffff00"..L_INVITE_ENABLE..C.automation.invite_keyword..".|r") | |
C.automation.invite_keyword = C.automation.invite_keyword | |
end | |
else | |
SavedOptionsPerChar.AutoInvite = true | |
print("|cffffff00"..L_INVITE_ENABLE..msg..".|r") | |
C.automation.invite_keyword = msg | |
end | |
end | |
SLASH_AUTOINVITE1 = "/ainv" | |
SLASH_AUTOINVITE2 = "/фштм" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment