如何让我的java discord机器人在5秒后自动删除?
我如何让我的discord java bot在5秒后删除消息如何让我的java discord机器人在5秒后自动删除?,java,discord-jda,Java,Discord Jda,我如何让我的discord java bot在5秒后删除消息 String[] messageArgs = event.getMessage().getContentRaw().toLowerCase().split(" "); for (String args : messageArgs) { if (blacklistWords.contains(args)) { if (memberRoles.contains(warn0)) {
String[] messageArgs = event.getMessage().getContentRaw().toLowerCase().split(" ");
for (String args : messageArgs) {
if (blacklistWords.contains(args)) {
if (memberRoles.contains(warn0)) {
event.getMessage().delete().queue();
event.getMessage().getChannel().sendMessage
("**" + MemberMention + "** unterlasse bitte diese **Wortwahl.**"
+ "\nBei **3 Verwarnungen** wirst du **gekickt!**").queue();
event.getGuild().addRoleToMember(user, warn1).complete();
event.getJDA().getGuildById(Secrets.guildID).removeRoleFromMember(user, warn0).complete();
break;
}
}
}
只需使用类似于
Thread.sleep(5000)的东西暂停一下调用函数删除消息之前,请执行代码>操作。这将暂停5000毫秒或5秒。您可以启动一个新线程并暂停该线程,然后再对消息运行delete命令。这样就不会引起其他代码行的问题
String[]messageArgs=event.getMessage().getContentRaw().toLowerCase().split(“”);
for(字符串参数:messageArgs){
if(blacklistWords.contains(args)){
if(memberRoles.contains(warn0)){
Runnable r=新的Runnable(){
@凌驾
公开募捐{
试一试{
//暂停5秒钟
等待(5000);
event.getMessage().delete().queue();
event.getMessage().getChannel().sendMessage
(“**”+成员提及+“**UNTERLASE BITE diese**Wortwahl.**”
>此处+“\nBei**3 Verwarnungen**wirst du**gekickt!**”)。队列();
event.getGuild().addRoleToMember(用户,warn1.complete();
event.getJDA().getGuildById(Secrets.guildID).RemoveOleFromMember(用户,警告0)
.complete();
}捕捉(中断异常e){
e、 printStackTrace();
}
}
};
螺纹t=新螺纹(r);
t、 start();
打破
}
}
}
正确的方法是在发送消息时将使用者传递给.queue方法。再加上使用RestAction#queueAfter,您将获得
channel.sendMessage("message").queue(message -> message.delete().queueAfter(5,
TIMEUNIT.SECONDS);
见和
还有另一种方法,使用这是否回答了您的问题<代码>等待
不是一种合适的睡眠方式。您也不需要为此创建新线程。正确的方法是使用ScheduledExecutorService或queueAfter
。这里解释如下:感谢您的回答,我知道queueAfter
,但我不知道如何使用queueAfter
删除邮件。我也读了下面的帖子。这会使机器人在5秒钟内没有反应。这不是个好办法。