所以我有以下问题,我想在文本频道上制作一个迷你游戏,问题是,我想创建某种超时,这样人们就不会创建多个只会使机器人过载的“listenerAdapter”实例。我用来加载我的游戏事件的命令(ListenerAdapter 如下)。
@Override
public void handle(List<String> args, GuildMessageReceivedEvent event) {
// TODO Auto-generated method stub
TextChannel channel = event.getChannel();
channel.sendMessage("please type \"joingame\" to join! ").queue();
event.getJDA().addEventListener(new MinigameEvent(channel, event.getAuthor(), event));
}
然后,我用来加载播放器的代码如下:
当我达到 3 人时,侦听器适配器会按预期停止工作,当事件的作者(使用 !minigame 命令的人)类型取消时也是如此。但是当计时器关闭时,它会发送消息表明游戏已被取消,但侦听器适配器仍在运行,如果有人试图在之后加入,它将允许他这样做。
我目前通过使用 finalize 方法解决了这个问题,但我认为你可以做一些像 event.getJDA().removeEventListener(this); 这样的事情。
守候你守候我
相关分类