public async Task ParseChatMessageHandler(ParseChatMessage message, Player player) { try { await player.Zone.OnChatMessage.InvokeAsync(player, message.Message); } catch { // Something went wrong with event } await using var ctx = new UchuContext(); var character = await ctx.Characters.Include(c => c.User).FirstAsync( c => c.Id == player.Id ); Console.WriteLine($"Message: {message.Message}"); if (message.Message.StartsWith('/')) { var response = await Server.HandleCommandAsync( message.Message, player, (GameMasterLevel)character.User.GameMasterLevel ); if (!string.IsNullOrWhiteSpace(response)) { player.SendChatMessage(response, PlayerChatChannel.Normal); } return; } if (((WorldServer)Server).Whitelist.CheckPhrase(message.Message).Any()) { return; } var transcript = new ChatTranscript { Author = character.Id, Message = message.Message, Receiver = 0, SentTime = DateTime.Now }; await ctx.ChatTranscript.AddAsync(transcript); await ctx.SaveChangesAsync(); foreach (var zonePlayer in player.Zone.Players) { zonePlayer.SendChatMessage(message.Message, PlayerChatChannel.Normal, player); } }
public async Task ParseChatMessageHandler(ParseChatMessage message, Player player) { try { await player.Zone.OnChatMessage.InvokeAsync(player, message.Message); } catch { // Something went wrong with event } await using var ctx = new UchuContext(); var character = await ctx.Characters.Include(c => c.User) .FirstAsync(c => c.CharacterId == player.ObjectId); var response = await Server.HandleCommandAsync( message.Message, player, (GameMasterLevel)character.User.GameMasterLevel ); if (!string.IsNullOrWhiteSpace(response)) { player.SendChatMessage(response); } else { if (((WorldServer)Server).Whitelist.CheckPhrase(message.Message).Any()) { return; } foreach (var zonePlayer in player.Zone.Players) { zonePlayer.SendChatMessage(message.Message, PlayerChatChannel.Normal, player); } } }