void Channel::Invite(Player const* player, std::string const& newname) { uint64 guid = player->GetGUID(); if (!IsOn(guid)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, guid); return; } Player* newp = sObjectAccessor->FindPlayerByName(newname); if (!newp || !newp->isGMVisible()) { WorldPacket data; MakePlayerNotFound(&data, newname); SendToOne(&data, guid); return; } if (IsBanned(newp->GetGUID())) { WorldPacket data; MakePlayerInviteBanned(&data, newname); SendToOne(&data, guid); return; } if (newp->GetTeam() != player->GetTeam() && (!player->GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHANNEL) || !newp->GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHANNEL))) { WorldPacket data; MakeInviteWrongFaction(&data); SendToOne(&data, guid); return; } if (IsOn(newp->GetGUID())) { WorldPacket data; MakePlayerAlreadyMember(&data, newp->GetGUID()); SendToOne(&data, guid); return; } if (!newp->GetSocial()->HasIgnore(GUID_LOPART(guid))) { WorldPacket data; MakeInvite(&data, guid); SendToOne(&data, newp->GetGUID()); data.clear(); } WorldPacket data; MakePlayerInvited(&data, newp->GetName()); SendToOne(&data, guid); }
void Channel::Invite(Player* player, const char* targetName) { ObjectGuid guid = player->GetObjectGuid(); if (!IsOn(guid)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, guid); return; } Player* target = sObjectMgr.GetPlayer(targetName); if (!target) { WorldPacket data; MakePlayerNotFound(&data, targetName); SendToOne(&data, guid); return; } ObjectGuid targetGuid = target->GetObjectGuid(); if (IsOn(targetGuid)) { WorldPacket data; MakePlayerAlreadyMember(&data, targetGuid); SendToOne(&data, guid); return; } if (IsBanned(targetGuid)) { WorldPacket data; MakePlayerInviteBanned(&data, targetName); SendToOne(&data, guid); return; } if (target->GetTeam() != player->GetTeam() && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) { WorldPacket data; MakeInviteWrongFaction(&data); SendToOne(&data, guid); return; } // invite player WorldPacket data; if (!target->GetSocial()->HasIgnore(guid)) { MakeInvite(&data, guid); SendToOne(&data, targetGuid); data.clear(); } MakePlayerInvited(&data, targetName); SendToOne(&data, guid); }
void Channel::Invite(Player const* player, std::string const& newname) { ObjectGuid const& guid = player->GetGUID(); if (!IsOn(guid)) { WorldPackets::Channel::ChannelNotify notify; MakeNotMember(notify); player->SendDirectMessage(notify.Write()); return; } Player* newp = ObjectAccessor::FindConnectedPlayerByName(newname); if (!newp || !newp->isGMVisible()) { WorldPackets::Channel::ChannelNotify notify; MakePlayerNotFound(notify, newname); player->SendDirectMessage(notify.Write()); return; } if (IsBanned(newp->GetGUID())) { WorldPackets::Channel::ChannelNotify notify; MakePlayerInviteBanned(notify, newname); player->SendDirectMessage(notify.Write()); return; } if (newp->GetTeam() != player->GetTeam() && (!player->GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHANNEL) || !newp->GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHANNEL))) { WorldPackets::Channel::ChannelNotify notify; MakeInviteWrongFaction(notify); player->SendDirectMessage(notify.Write()); return; } if (IsOn(newp->GetGUID())) { WorldPackets::Channel::ChannelNotify notify; MakePlayerAlreadyMember(notify, newp->GetGUID()); player->SendDirectMessage(notify.Write()); return; } if (!newp->GetSocial()->HasIgnore(guid)) { WorldPackets::Channel::ChannelNotify notify; MakeInvite(notify, guid); newp->SendDirectMessage(notify.Write()); } WorldPackets::Channel::ChannelNotify notify; MakePlayerInvited(notify, newp->GetName()); player->SendDirectMessage(notify.Write()); }
void Channel::Invite(uint64 p, const char *newname) { if (!IsOn(p)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, p); return; } Player *newp = sObjectMgr->GetPlayer(newname); if (!newp) { WorldPacket data; MakePlayerNotFound(&data, newname); SendToOne(&data, p); return; } if (IsBanned(newp->GetGUID())) { WorldPacket data; MakePlayerInviteBanned(&data, newname); SendToOne(&data, p); return; } Player *plr = sObjectMgr->GetPlayer(p); if (!plr) return; if (newp->GetTeam() != plr->GetTeam() && !sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) { WorldPacket data; MakeInviteWrongFaction(&data); SendToOne(&data, p); return; } if (IsOn(newp->GetGUID())) { WorldPacket data; MakePlayerAlreadyMember(&data, newp->GetGUID()); SendToOne(&data, p); return; } WorldPacket data; if (!newp->GetSocial()->HasIgnore(GUID_LOPART(p))) { MakeInvite(&data, p); SendToOne(&data, newp->GetGUID()); data.clear(); } MakePlayerInvited(&data, newp->GetName()); SendToOne(&data, p); }
void Channel::Invite(Player const* player, std::string const& newname) { uint64 guid = player->GetGUID(); if (!IsOn(guid)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, guid); return; } Player* newp = ObjectAccessor::FindPlayerByName(newname, false); if (!newp || !newp->isGMVisible()) { WorldPacket data; MakePlayerNotFound(&data, newname); SendToOne(&data, guid); return; } if (IsBanned(newp->GetGUID())) { WorldPacket data; MakePlayerInviteBanned(&data, newname); SendToOne(&data, guid); return; } if (newp->GetTeamId() != player->GetTeamId()) { WorldPacket data; MakeInviteWrongFaction(&data); SendToOne(&data, guid); return; } if (IsOn(newp->GetGUID())) { WorldPacket data; MakePlayerAlreadyMember(&data, newp->GetGUID()); SendToOne(&data, guid); return; } if (!newp->GetSocial()->HasIgnore(GUID_LOPART(guid))) { WorldPacket data; MakeInvite(&data, guid); SendToOne(&data, newp->GetGUID()); data.clear(); } WorldPacket data; MakePlayerInvited(&data, newp->GetName()); SendToOne(&data, guid); }
void Channel::Invite(ObjectGuid p, const char *newname) { if (!IsOn(p)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, p); return; } PlayerPointer newp = GetPlayer(newname); if (!newp) { WorldPacket data; MakePlayerNotFound(&data, newname); SendToOne(&data, p); return; } PlayerPointer plr = GetPlayer(p); if (!plr.get()) return; if (newp->GetTeam() != plr->GetTeam() && !sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) { WorldPacket data; MakeInviteWrongFaction(&data); SendToOne(&data, p); return; } if (IsOn(newp->GetObjectGuid())) { WorldPacket data; MakePlayerAlreadyMember(&data, newp->GetObjectGuid()); SendToOne(&data, p); return; } WorldPacket data; if (!newp->GetSocial()->HasIgnore(p)) { MakeInvite(&data, p); SendToOne(&data, newp->GetObjectGuid()); data.clear(); } MakePlayerInvited(&data, newp->GetName()); SendToOne(&data, p); }
void Channel::Invite(uint64 p, const char *newname) { if(!IsOn(p)) { WorldPacket data; MakeNotMember(&data); SendToOne(&data, p); } else { Player *newp = objmgr.GetPlayer(newname); if(!newp) { WorldPacket data; MakePlayerNotFound(&data, newname); SendToOne(&data, p); } else if(IsOn(newp->GetGUID())) { WorldPacket data; MakePlayerAlreadyMember(&data, newp->GetGUID()); SendToOne(&data, p); } else { WorldPacket data; if(!newp->HasInIgnoreList(p)) { MakeInvite(&data, p); SendToOne(&data, newp->GetGUID()); data.clear(); } MakePlayerInvited(&data, newp->GetGUID()); SendToOne(&data, p); } } }