public async Task OnEventAsync(Event E, Server S) { switch (E.Type) { case Event.GType.Start: Manager.AddServer(S); break; case Event.GType.Stop: break; case Event.GType.Connect: Manager.AddPlayer(E.Origin); break; case Event.GType.Disconnect: await Manager.RemovePlayer(E.Origin); break; case Event.GType.Say: if (E.Data != string.Empty && E.Data.Trim().Length > 0 && E.Data.Trim()[0] != '!') await Manager.AddMessageAsync(E.Origin.ClientId, E.Owner.GetHashCode(), E.Data); break; case Event.GType.MapChange: break; case Event.GType.MapEnd: await Manager.Sync(S); break; case Event.GType.Broadcast: break; case Event.GType.Tell: break; case Event.GType.Kick: break; case Event.GType.Ban: break; case Event.GType.Remote: break; case Event.GType.Unknown: break; case Event.GType.Report: break; case Event.GType.Flag: break; case Event.GType.Script: break; case Event.GType.Kill: string[] killInfo = (E.Data != null) ? E.Data.Split(';') : new string[0]; if (killInfo.Length >= 9 && killInfo[0].Contains("ScriptKill") && E.Owner.CustomCallback) await Manager.AddScriptKill(E.Origin, E.Target, S.GetHashCode(), S.CurrentMap.Name, killInfo[7], killInfo[8], killInfo[5], killInfo[6], killInfo[3], killInfo[4]); else if (!E.Owner.CustomCallback) await Manager.AddStandardKill(E.Origin, E.Target); break; case Event.GType.Death: break; } }