-
Notifications
You must be signed in to change notification settings - Fork 16
/
Emote.cs
40 lines (32 loc) · 1.14 KB
/
Emote.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using EOLib.Domain.Character;
using EOLib.Net.Handlers;
namespace EOLib.Net.API
{
partial class PacketAPI
{
public event Action<short, Emote> OnOtherPlayerEmote;
private void _createEmoteMembers()
{
m_client.AddPacketHandler(new FamilyActionPair(PacketFamily.Emote, PacketAction.Player), _handleEmotePlayer, true);
}
public bool ReportEmote(Emote emote)
{
//trade/level up happen differently
if (emote == Emote.Trade || emote == Emote.LevelUp)
return false; //signal error client-side
if (!m_client.ConnectedAndInitialized || !Initialized)
return false;
OldPacket pkt = new OldPacket(PacketFamily.Emote, PacketAction.Report);
pkt.AddChar((byte)emote);
return m_client.SendPacket(pkt);
}
private void _handleEmotePlayer(OldPacket pkt)
{
short playerID = pkt.GetShort();
Emote emote = (Emote)pkt.GetChar();
if(OnOtherPlayerEmote != null)
OnOtherPlayerEmote(playerID, emote);
}
}
}