private PacketFilter(PacketFilter other) { Order = other.Order; Forged = other.Forged; Modified = other.Modified; Silenced = other.Silenced; Function = other.Function; }
internal PacketHandler(bool raw, string name, ushort?code, Delegate handler, PacketFilter filter) { IsRaw = raw; Name = name; Code = code; Handler = handler ?? throw new ArgumentNullException(nameof(handler)); Filter = filter ?? new PacketFilter(); }
public PacketHandler AddHandler(GlobalPacketHandler handler, PacketFilter filter = null) { var ph = new PacketHandler(true, null, null, handler, filter); lock (_listLock) _globalHandlers.Add(ph); return(ph); }
public PacketHandler AddHandler(string name, RawPacketHandler handler, PacketFilter filter = null) { if (!Context.Serializer.GameMessages.NameToCode.TryGetValue(name, out var code)) { throw new UnmappedMessageException(); } var ph = new PacketHandler(true, name, code, handler, filter); var list = _codeHandlers[code]; lock (_listLock) list.Add(ph); return(ph); }
public PacketHandler AddHandler <T>(TypedPacketHandler <T> handler, PacketFilter filter = null) where T : SerializablePacket { var name = typeof(T).GetCustomAttribute <PacketAttribute>()?.Name; if (name == null) { throw new ArgumentException("Invalid packet type."); } if (!Context.Serializer.GameMessages.NameToCode.TryGetValue(name, out var code)) { throw new UnmappedMessageException(); } var ph = new PacketHandler(false, name, code, handler, filter); var list = _codeHandlers[code]; lock (_listLock) list.Add(ph); return(ph); }