コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: ChatTranscript.cs プロジェクト: chokudai/TopCoder
// END CUT HERE
// BEGIN CUT HERE
public static void Main() {
try {
ChatTranscript ___test = new ChatTranscript();
___test.run_test(-1);
} catch(Exception e) {
//Console.WriteLine(e.StackTrace);
Console.WriteLine(e.ToString());
}
}
コード例 #3
0
ファイル: ChatTranscript.cs プロジェクト: chokudai/TopCoder
 // END CUT HERE
 // BEGIN CUT HERE
 public static void Main()
 {
     try {
     ChatTranscript ___test = new ChatTranscript();
     ___test.run_test(-1);
     } catch(Exception e) {
     //Console.WriteLine(e.StackTrace);
     Console.WriteLine(e.ToString());
     }
 }