【问题标题】:Send message to specific channel in Discord with JDA使用 JDA 向 Discord 中的特定频道发送消息
【发布时间】:2019-03-01 15:55:54
【问题描述】:

如何要求bot发送消息到与bot接收命令不同的另一个频道(特定频道)?

假设 bot 在通道 #a 中收到消息 !ban @xxx,如果操作完成,则 bot 将 ban to user @xxx is given 发送到通道 #b

代码Main.java:

import net.dv8tion.jda.core.*;

public class Main {

    private static String token = "NDk0MjI2Mjk2OTY5MjMyMzk0.DowgCA.j0sQHnBV3wm70rzz7Q78rX0NVPU";
    public static void main(String[] args) throws Exception{

        try {
            JDA api = new JDABuilder(AccountType.BOT).setToken(token).build();
            api.addEventListener(new MyEventListner() );
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

代码MyEventListner.java:

import net.dv8tion.jda.core.entities.Member;
import net.dv8tion.jda.core.entities.Message;
import net.dv8tion.jda.core.entities.MessageChannel;
import net.dv8tion.jda.core.entities.Role;
import net.dv8tion.jda.core.entities.User;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter;

    public void onMessageReceived(MessageReceivedEvent event) {
        if (event.getAuthor().isBot()) return;

            User author = event.getAuthor();
            Message message = event.getMessage();
            String content = message.getContentRaw();
            MessageChannel channel = event.getChannel();
            Member member = event.getMember();
            String nickname = member.getNickname();
            Role role = event.getGuild().getPublicRole();
            //that is the most needed part, I believe
}

【问题讨论】:

  • 您使用的是什么 API?
  • @AlexCouch JDA。标题中提到了)
  • 对不起,我在移动设备上,我一定完全错过了尝试阅读消息或其他内容的过程。你目前有什么代码?
  • @AlexCouch 几秒
  • 基本上,添加的代码必须在“MyEventListner”中。需要什么:将消息发送到特定通道(机器人接收命令的位置不同)

标签: java discord discord-jda


【解决方案1】:

答案很简单:

TextChannel textChannel = event.getGuild().getTextChannelsByName("CHANNEL_NAME",true).get(0);
textChannel.sendMessage("MESSAGE").queue();

【讨论】:

    最近更新 更多