Core/PacketIO: Implement SMSG_GUILD_EVENT_AWAY_CHANGE
Port From (https://github.com/TrinityCore/TrinityCore/commit/cdb27ff3020f40c2a9a104a7ebba5c5c19452afc)
This commit is contained in:
@@ -1091,6 +1091,29 @@ namespace Game.Guilds
|
||||
member.AddFlag(GuildMemberFlags.Online);
|
||||
}
|
||||
|
||||
public void SendEventAwayChanged(ObjectGuid memberGuid, bool afk, bool dnd)
|
||||
{
|
||||
Member member = GetMember(memberGuid);
|
||||
if (member == null)
|
||||
return;
|
||||
|
||||
if (afk)
|
||||
member.AddFlag(GuildMemberFlags.AFK);
|
||||
else
|
||||
member.RemoveFlag(GuildMemberFlags.AFK);
|
||||
|
||||
if (dnd)
|
||||
member.AddFlag(GuildMemberFlags.DND);
|
||||
else
|
||||
member.RemoveFlag(GuildMemberFlags.DND);
|
||||
|
||||
GuildEventAwayChange awayChange = new GuildEventAwayChange();
|
||||
awayChange.Guid = memberGuid;
|
||||
awayChange.AFK = afk;
|
||||
awayChange.DND = dnd;
|
||||
BroadcastPacket(awayChange);
|
||||
}
|
||||
|
||||
void SendEventBankMoneyChanged()
|
||||
{
|
||||
GuildEventBankMoneyChanged eventPacket = new GuildEventBankMoneyChanged();
|
||||
|
||||
@@ -494,6 +494,10 @@ namespace Game
|
||||
sender.ToggleAFK();
|
||||
}
|
||||
|
||||
Guild guild = sender.GetGuild();
|
||||
if (guild != null)
|
||||
guild.SendEventAwayChanged(sender.GetGUID(), sender.IsAFK(), sender.IsDND());
|
||||
|
||||
Global.ScriptMgr.OnPlayerChat(sender, ChatMsg.Afk, Language.Universal, packet.Text);
|
||||
}
|
||||
|
||||
@@ -528,6 +532,10 @@ namespace Game
|
||||
sender.ToggleDND();
|
||||
}
|
||||
|
||||
Guild guild = sender.GetGuild();
|
||||
if (guild != null)
|
||||
guild.SendEventAwayChanged(sender.GetGUID(), sender.IsAFK(), sender.IsDND());
|
||||
|
||||
Global.ScriptMgr.OnPlayerChat(sender, ChatMsg.Dnd, Language.Universal, packet.Text);
|
||||
}
|
||||
|
||||
|
||||
@@ -278,6 +278,23 @@ namespace Game.Network.Packets
|
||||
public string OldGuildName;
|
||||
}
|
||||
|
||||
public class GuildEventAwayChange : ServerPacket
|
||||
{
|
||||
public GuildEventAwayChange() : base(ServerOpcodes.GuildEventAwayChange) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WritePackedGuid(Guid);
|
||||
_worldPacket.WriteBit(AFK);
|
||||
_worldPacket.WriteBit(DND);
|
||||
_worldPacket.FlushBits();
|
||||
}
|
||||
|
||||
public ObjectGuid Guid;
|
||||
public bool AFK;
|
||||
public bool DND;
|
||||
}
|
||||
|
||||
public class GuildEventPresenceChange : ServerPacket
|
||||
{
|
||||
public GuildEventPresenceChange() : base(ServerOpcodes.GuildEventPresenceChange) { }
|
||||
|
||||
Reference in New Issue
Block a user