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);
|
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()
|
void SendEventBankMoneyChanged()
|
||||||
{
|
{
|
||||||
GuildEventBankMoneyChanged eventPacket = new GuildEventBankMoneyChanged();
|
GuildEventBankMoneyChanged eventPacket = new GuildEventBankMoneyChanged();
|
||||||
|
|||||||
@@ -494,6 +494,10 @@ namespace Game
|
|||||||
sender.ToggleAFK();
|
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);
|
Global.ScriptMgr.OnPlayerChat(sender, ChatMsg.Afk, Language.Universal, packet.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -528,6 +532,10 @@ namespace Game
|
|||||||
sender.ToggleDND();
|
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);
|
Global.ScriptMgr.OnPlayerChat(sender, ChatMsg.Dnd, Language.Universal, packet.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -278,6 +278,23 @@ namespace Game.Network.Packets
|
|||||||
public string OldGuildName;
|
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 class GuildEventPresenceChange : ServerPacket
|
||||||
{
|
{
|
||||||
public GuildEventPresenceChange() : base(ServerOpcodes.GuildEventPresenceChange) { }
|
public GuildEventPresenceChange() : base(ServerOpcodes.GuildEventPresenceChange) { }
|
||||||
|
|||||||
Reference in New Issue
Block a user