public async ValueTask OnMessageCreate(IDiscordMessage message) { switch (message.Content) { // Command !ping // Replies with the message "Pong". case "!ping": await _client.SendMessageAsync(message.ChannelId, "Pong"); break; // Command !embed // Replies with a example embed. case "!embed": await _client.SendMessageAsync(message.ChannelId, null, new DiscordEmbed { Title = "Example", Description = "Example embed" }); break; // Command !users // Show all users of the guild with their normalized name. case "!users" when message.GuildId.HasValue: { var memberNames = (await _client.GetGuildMemberNamesAsync(message.GuildId.Value)) .Select(n => $"- {n.Nickname ?? n.Username} ({n.NormalizedNickname ?? n.NormalizedUsername})"); var response = string.Join("\n", memberNames); await _client.SendMessageAsync(message.ChannelId, response); break; } // Command !spam case "!spam" when message.GuildId.HasValue: { for (var i = 0; i < 10; i++) { await _client.SendMessageAsync(message.ChannelId, $"Message {i}"); } break; } } }