如何要求机器人将消息发送到与机器人接收命令不同的另一个通道(特定通道)?
假设bot !ban @xxx在channel中接收到消息,#a并且如果操作完成,则bot发送ban to user @xxx is given到channel #b。
!ban @xxx
#a
ban to user @xxx is given
#b
代码Main.java:
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:
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();