我的不和谐机器人是不发送任何消息时,我键入“!你好”,即使所有的在线文档应该是说,这是正确的,我遵循了教程,显示它的工作。有人能帮助我吗?
我使用的是discord.net3.8.1(目前最新版本)和dotnet sdk版本7.0.100
using Discord;
using Discord.WebSocket;
using System;
using System.IO;
using System.Threading.Tasks;
namespace discorddotnet
{
class Program
{
public static void Main(string[] args)
=> new Program().MainAsync().GetAwaiter().GetResult();
private DiscordSocketClient _client;
public async Task MainAsync()
{
_client = new DiscordSocketClient();
_client.MessageReceived += CommandHandler;
_client.Log += Log;
// You can assign your bot token to a string, and pass that in to connect.
// This is, however, insecure, particularly if you plan to have your code hosted in a public repository.
var token = File.ReadAllText("token.json");
// Some alternative options would be to keep your token in an Environment Variable or a standalone file.
// var token = Environment.GetEnvironmentVariable("NameOfYourEnvironmentVariable");
// var token = File.ReadAllText("token.txt");
// var token = JsonConvert.DeserializeObject<AConfigurationClass>(File.ReadAllText("config.json")).Token;
await _client.LoginAsync(TokenType.Bot, token);
await _client.StartAsync();
// Block this task until the program is closed.
await Task.Delay(-1);
}
private Task Log(LogMessage msg)
{
Console.WriteLine(msg.ToString());
return Task.CompletedTask;
}
private Task CommandHandler(SocketMessage message)
{
//variables
string command = "";
int lengthOfCommand = -1;
//filtering messages begin here
if (!message.Content.StartsWith('!')) //This is your prefix
return Task.CompletedTask;
if (message.Author.IsBot) //This ignores all commands from bots
return Task.CompletedTask;
if (message.Content.Contains(' '))
lengthOfCommand = message.Content.IndexOf(' ');
else
lengthOfCommand = message.Content.Length;
command = message.Content.Substring(1, lengthOfCommand - 1).ToLower();
//Commands begin here
if (command.Equals("hello"))
{
message.Channel.SendMessageAsync($@"Hello {message.Author.Mention}");
}
return Task.CompletedTask;
}
}
}
1条答案
按热度按时间jdzmm42g1#
我遇到了同样的问题但我解决了。
你需要在你的
DiscordSocketConfig()
中将你的GatewayIntents
设置为all守则: