Discord Bot 无法发送消息
Posted
技术标签:
【中文标题】Discord Bot 无法发送消息【英文标题】:Discord Bot unable to send messages 【发布时间】:2021-03-02 16:47:54 【问题描述】:我正在开发一个不和谐的机器人,但我遇到了一些我从未遇到过的问题。我的不和谐机器人无法发送消息。该机器人不包含任何已弃用的方法。代码如下:
主要:
private Main() throws LoginException
final JDA jda = JDABuilder.createDefault("My.Token.Here", GatewayIntent.GUILD_MEMBERS, GatewayIntent.GUILD_EMOJIS, GatewayIntent.GUILD_VOICE_STATES).build();
CommandClientBuilder builder = new CommandClientBuilder();
builder.setOwnerId("778564522046128148");
builder.setActivity(Activity.watching("es bueda fixe!"));
CommandClient client = builder.build();
jda.addEventListener(client);
jda.addEventListener(new JoinLeave());
jda.addEventListener(new TestCommand());
public static void main(String[] args) throws LoginException
long enable = System.currentTimeMillis();
new Main();
System.out.println("Bot enabled in: " + (System.currentTimeMillis() - enable) + "ms!");
TestCommand(测试机器人是否工作):
public class TestCommand extends ListenerAdapter
@Override
public void onGuildMessageReceived(GuildMessageReceivedEvent e)
System.out.println("hefdfs");
if(e.getMessage().getContentRaw().equalsIgnoreCase("!test"))
e.getChannel().sendMessage("test").queue();
谢谢。
【问题讨论】:
您是否尝试在e.getChannel().sendMessage("test").queue();
处放置断点以查看是否到达该行?
我快速浏览了 API,如果到达该行,您应该使用带有两个参数的替代 queue
方法来查看调用是否返回错误:ci.dv8tion.net/job/JDA/javadoc/net/dv8tion/jda/api/requests/…跨度>
没有。当我运行命令时它没有到达那里
那么GuildMessageReceivedEvent
永远不会出现,或者e.getMessage().getContentRaw().equalsIgnoreCase("!test")
永远不会匹配
是的,但我看过视频,每个人都这样做
【参考方案1】:
您禁用了 GUILD_MESSAGES
意图。调用createDefault
时将其添加到您的意图列表中:
EnumSet<GatewayIntent> intents = EnumSet.of(
GatewayIntent.GUILD_MEMBERS, // for member join/remove events and cache
GatewayIntent.GUILD_EMOJIS, // for Guild#getEmotes (not very useful)
GatewayIntent.GUILD_VOICE_STATES, // for member voice states
GatewayIntent.GUILD_MESSAGES // for message received event
);
JDA jda = JDABuilder.createDefault("My.Token.Here", intents)
.addEventListeners(new TestCommand(), new JoinCommand(), client)
.build();
阅读Gateway Intents and Member Caching
【讨论】:
我的天,谢谢你是最好的谢谢以上是关于Discord Bot 无法发送消息的主要内容,如果未能解决你的问题,请参考以下文章