mirror of
https://github.com/mangosfour/server.git
synced 2026-01-01 16:37:12 +00:00
Rebase resync
This commit is contained in:
parent
a0797532e8
commit
1997c1e903
3106 changed files with 11118 additions and 627576 deletions
|
|
@ -49,7 +49,7 @@ void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleArenaTeamQueryOpcode(WorldPacket& recv_data)
|
||||
{
|
||||
DEBUG_LOG("WORLD: Received CMSG_ARENA_TEAM_QUERY");
|
||||
DEBUG_LOG("WORLD: Received opcode CMSG_ARENA_TEAM_QUERY");
|
||||
|
||||
uint32 ArenaTeamId;
|
||||
recv_data >> ArenaTeamId;
|
||||
|
|
@ -63,7 +63,7 @@ void WorldSession::HandleArenaTeamQueryOpcode(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::HandleArenaTeamRosterOpcode(WorldPacket& recv_data)
|
||||
{
|
||||
DEBUG_LOG("WORLD: Received CMSG_ARENA_TEAM_ROSTER");
|
||||
DEBUG_LOG("WORLD: Received opcode CMSG_ARENA_TEAM_ROSTER");
|
||||
|
||||
uint32 ArenaTeamId; // arena team id
|
||||
recv_data >> ArenaTeamId;
|
||||
|
|
@ -72,6 +72,56 @@ void WorldSession::HandleArenaTeamRosterOpcode(WorldPacket& recv_data)
|
|||
arenateam->Roster(this);
|
||||
}
|
||||
|
||||
void WorldSession::HandleArenaTeamCreateOpcode(WorldPacket& recv_data)
|
||||
{
|
||||
DEBUG_LOG("WORLD: Received CMSG_ARENA_TEAM_CREATE");
|
||||
|
||||
uint32 slot, icon, iconcolor, border, bordercolor, background;
|
||||
std::string name;
|
||||
|
||||
recv_data >> slot >> iconcolor >> bordercolor >> border >> background >> icon;
|
||||
name = recv_data.ReadString(recv_data.ReadBits(8));
|
||||
|
||||
ArenaType type = ArenaTeam::GetTypeBySlot(slot);
|
||||
if (!IsArenaTypeValid(type))
|
||||
return;
|
||||
|
||||
if (!IsArenaTypeValid(ArenaType(type)))
|
||||
return;
|
||||
|
||||
if (_player->GetArenaTeamId(slot))
|
||||
{
|
||||
SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, name, "", ERR_ALREADY_IN_ARENA_TEAM);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sObjectMgr.IsReservedName(name) || !ObjectMgr::IsValidCharterName(name))
|
||||
{
|
||||
SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, name, "", ERR_ARENA_TEAM_NAME_INVALID);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sObjectMgr.GetArenaTeamByName(name))
|
||||
{
|
||||
SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, name, "", ERR_ARENA_TEAM_NAME_EXISTS_S);
|
||||
return;
|
||||
}
|
||||
|
||||
ArenaTeam* at = new ArenaTeam;
|
||||
if (!at->Create(_player->GetObjectGuid(), ArenaType(type), name))
|
||||
{
|
||||
sLog.outError("WorldSession::HandleArenaTeamCreateOpcode: arena team create failed.");
|
||||
delete at;
|
||||
return;
|
||||
}
|
||||
|
||||
at->SetEmblem(background, icon, iconcolor, border, bordercolor);
|
||||
|
||||
// register team and add captain
|
||||
sObjectMgr.AddArenaTeam(at);
|
||||
DEBUG_LOG("WorldSession::HandleArenaTeamCreateOpcode: arena team added to objmrg");
|
||||
}
|
||||
|
||||
void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket& recv_data)
|
||||
{
|
||||
DEBUG_LOG("CMSG_ARENA_TEAM_INVITE");
|
||||
|
|
@ -110,6 +160,12 @@ void WorldSession::HandleArenaTeamInviteOpcode(WorldPacket& recv_data)
|
|||
return;
|
||||
}
|
||||
|
||||
if (arenateam->GetCaptainGuid() != _player->GetObjectGuid())
|
||||
{
|
||||
SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_PERMISSIONS);
|
||||
return;
|
||||
}
|
||||
|
||||
// OK result but not send invite
|
||||
if (player->GetSocial()->HasIgnore(GetPlayer()->GetObjectGuid()))
|
||||
return;
|
||||
|
|
@ -329,11 +385,15 @@ void WorldSession::HandleArenaTeamLeaderOpcode(WorldPacket& recv_data)
|
|||
|
||||
void WorldSession::SendArenaTeamCommandResult(uint32 team_action, const std::string& team, const std::string& player, uint32 error_id)
|
||||
{
|
||||
DEBUG_LOG("Sent SMSG_ARENA_TEAM_COMMAND_RESULT");
|
||||
WorldPacket data(SMSG_ARENA_TEAM_COMMAND_RESULT, 4 + team.length() + 1 + player.length() + 1 + 4);
|
||||
data.WriteBits(player.length(), 7);
|
||||
data.WriteBits(team.length(), 8);
|
||||
data.FlushBits();
|
||||
data.append(player.data(), player.length());
|
||||
data << uint32(team_action);
|
||||
data << team;
|
||||
data << player;
|
||||
data << uint32(error_id);
|
||||
data.append(team.data(), team.length());
|
||||
SendPacket(&data);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue