/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it * and/or modify it under version 2 of the License, or (at your option), any later version. */ #include "GuildAcceptAction.h" #include "Event.h" #include "GuildPackets.h" #include "PlayerbotSecurity.h" #include "Playerbots.h" bool GuildAcceptAction::Execute(Event event) { WorldPacket p(event.getPacket()); p.rpos(0); Player* inviter = nullptr; std::string Invitedname; p >> Invitedname; if (normalizePlayerName(Invitedname)) inviter = ObjectAccessor::FindPlayerByName(Invitedname.c_str()); if (!inviter) return false; bool accept = true; uint32 guildId = inviter->GetGuildId(); if (!guildId) { botAI->TellError("You are not in a guild!"); accept = false; } else if (bot->GetGuildId()) { botAI->TellError("Sorry, I am in a guild already"); accept = false; } else if (!botAI->GetSecurity()->CheckLevelFor(PLAYERBOT_SECURITY_INVITE, false, inviter, true)) { botAI->TellError("Sorry, I don't want to join your guild :("); accept = false; } if (accept) { WorldPackets::Guild::AcceptGuildInvite data = WorldPacket(CMSG_GUILD_ACCEPT); bot->GetSession()->HandleGuildAcceptOpcode(data); } else { WorldPackets::Guild::GuildDeclineInvitation data = WorldPacket(CMSG_GUILD_DECLINE); bot->GetSession()->HandleGuildDeclineOpcode(data); } return true; }