当前位置: 首页 > 面试题库 >

使用JDA在Discord中将消息发送到特定频道

孔经武
2023-03-14
问题内容

如何要求机器人将消息发送到与机器人接收命令不同的另一个通道(特定通道)?

假设bot !ban @xxx在channel中接收到消息,#a并且如果操作完成,则bot发送ban to user @xxx is given到channel #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
}

问题答案:

答案很简单:

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


 类似资料:
  • 我目前正在使用Java和jda为discord制作一个机器人。我想让机器人向特定的通道发送消息。我该怎么做?

  • 我试图使用Discord JDA API发送消息,但是每当我发送一条消息时,它就会无限地发送。 JDA版本:4.2.1_255 我尝试过什么: 使用GuildMessageReceivedEvent而不是MessageReceivedEvent来研究此问题 伪代码: SendPrivate ateMessage():

  • 我正在为我的Discord服务器创建一个bot。 我的服务器中有一个新的用户通道。当新用户加入时,我想向这个频道发送欢迎消息。但是,我不知道如何才能访问新用户的渠道。

  • 如何要求机器人将消息发送到与机器人接收命令不同的另一个通道(特定通道)? 假设bot在通道中收到消息,如果操作完成,则bot发送给通道。 code:

  • 问题内容: 我有自己的基于JDA的Discord BOT。我需要向特定频道发送短信。我知道如何将消息作为onEvent响应发送,但是在我的情况下,我没有此类事件。 我有:作者(BOT),令牌和通道号。 我的问题是:如何在 没有事件的情况下 将消息发送到此频道? 问题答案: 好吧,我想我知道你的意思。您无需进行任何事件即可获取频道ID和发送消息。您唯一需要做的就是实例化JDA,调用awaitRead