private async void ClientPacketReceived(object sender, PacketReceivedEventArgs args)
{
Trace.WriteLine("C->S: " + args.Packet);
if (ServerEndPoint == null) return;
string kickMessage = null;
try
{
args.Connection = this;
_server.PluginManager.ApplyClientPacket(args);
if (!args.Handled)
ServerEndPoint.SendPacketQueued(args.Packet);
}
catch (OperationCanceledException ex)
{
kickMessage = ex.Message;
}
if (kickMessage != null)
await KickUserAsync(kickMessage);
}