使用JDA开发Discord机器人时help命令发送Embed消息失败
Discord机器人Help命令Embed消息发送失败解决方法
错误原因
EmbedBuilder.build()生成的是MessageEmbed对象,你调用的sendMessage(CharSequence)是用于发送普通文本的方法,两者类型不兼容,强制类型转换会触发类型转换异常,导致代码无法正常运行。
修复代码
将错误的发送语句替换为专门发送Embed消息的方法:
if (message.equalsIgnoreCase(">help")) { EmbedBuilder eb = new EmbedBuilder(); eb.setColor(0x26FF00); eb.setTitle("Commands"); eb.setDescription("Command test..."); eb.setFooter("Made by kersozone.pl"); // 替换这里的发送逻辑 event.getChannel().sendMessageEmbeds(eb.build()).queue(); }
如果使用的是旧版本JDA(4.x及以下),可以用以下写法兼容:
event.getChannel().sendMessage("").setEmbeds(eb.build()).queue();
额外检查
确保已正确导入相关类:
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageChannel; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
内容的提问来源于stack exchange,提问作者Kerso
相关产品推荐
相关产品推荐

