2018-01-27 09:44:15 +03:00
|
|
|
package ru.bvn13.jircbot.listeners;
|
|
|
|
|
|
|
|
import org.pircbotx.hooks.ListenerAdapter;
|
|
|
|
import org.pircbotx.hooks.events.JoinEvent;
|
|
|
|
import org.pircbotx.hooks.events.KickEvent;
|
|
|
|
import org.pircbotx.hooks.events.MessageEvent;
|
|
|
|
import org.pircbotx.hooks.types.GenericMessageEvent;
|
2018-02-01 11:28:28 +03:00
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
2018-01-30 17:22:27 +03:00
|
|
|
import org.springframework.stereotype.Component;
|
2018-01-31 22:05:04 +03:00
|
|
|
import ru.bvn13.jircbot.bot.ImprovedListenerAdapter;
|
2018-03-27 16:43:42 +03:00
|
|
|
import ru.bvn13.jircbot.bot.JircBot;
|
2018-02-01 11:28:28 +03:00
|
|
|
import ru.bvn13.jircbot.database.services.ChannelSettingsService;
|
2018-01-27 09:44:15 +03:00
|
|
|
import ru.bvn13.jircbot.listeners.advices.AdviceEngine;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by bvn13 on 27.01.2018.
|
|
|
|
*/
|
2018-01-30 17:22:27 +03:00
|
|
|
@Component
|
2018-01-31 22:05:04 +03:00
|
|
|
public class AutoRejoinListener extends ImprovedListenerAdapter {
|
2018-01-27 09:44:15 +03:00
|
|
|
|
2018-02-01 11:28:28 +03:00
|
|
|
@Autowired
|
|
|
|
private ChannelSettingsService channelSettingsService;
|
|
|
|
|
2018-01-27 09:44:15 +03:00
|
|
|
private Boolean wasKicked = false;
|
|
|
|
private String offender = "";
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onKick(KickEvent event) throws Exception {
|
|
|
|
|
2018-03-28 20:47:13 +03:00
|
|
|
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName()).getAutoRejoinEnabled()) {
|
2018-02-01 11:28:28 +03:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-01-27 09:44:15 +03:00
|
|
|
if (event.getRecipient().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
|
|
|
wasKicked = true;
|
|
|
|
offender = event.getUser().getNick();
|
|
|
|
event.getBot().sendIRC().joinChannel(event.getChannel().getName());
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onJoin(JoinEvent event) throws Exception {
|
|
|
|
|
2018-03-28 20:47:13 +03:00
|
|
|
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), event.getChannel().getName()).getAutoRejoinEnabled()) {
|
2018-02-01 11:28:28 +03:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-01-27 09:44:15 +03:00
|
|
|
if (wasKicked) {
|
|
|
|
wasKicked = false;
|
2018-01-31 22:05:04 +03:00
|
|
|
this.sendNotice(event, ""+offender+", "+ AdviceEngine.getAdvice());
|
2018-01-27 09:44:15 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|