2018-01-09 12:01:55 +03:00
|
|
|
package ru.bvn13.jircbot.listeners.calculator;
|
|
|
|
|
|
|
|
import org.pircbotx.hooks.ListenerAdapter;
|
|
|
|
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-02-01 11:28:28 +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-09 12:01:55 +03:00
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.UUID;
|
|
|
|
|
2018-01-30 17:22:27 +03:00
|
|
|
@Component
|
2018-02-01 11:28:28 +03:00
|
|
|
public class CalculatorListener extends ImprovedListenerAdapter {
|
2018-01-09 12:01:55 +03:00
|
|
|
|
|
|
|
private Map<UUID, CalculatorDialog> dialogs = new HashMap<>();
|
|
|
|
|
2018-02-01 11:28:28 +03:00
|
|
|
@Autowired
|
|
|
|
private ChannelSettingsService channelSettingsService;
|
2018-01-09 12:01:55 +03:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onGenericMessage(final GenericMessageEvent event) throws Exception {
|
|
|
|
|
2018-03-28 20:47:13 +03:00
|
|
|
if (!channelSettingsService.getChannelSettings(JircBot.extractServer(event.getBot().getServerHostname()), getChannelName(event)).getCalculatorEnabled()) {
|
2018-02-01 11:28:28 +03:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-01-09 12:01:55 +03:00
|
|
|
if (event.getUser().getUserId().equals(event.getBot().getUserBot().getUserId())) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!event.getMessage().startsWith(CalculatorDialog.COMMAND.trim())) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
CalculatorDialog dialog = null;
|
|
|
|
if (this.dialogs.containsKey(event.getUser().getUserId())) {
|
|
|
|
dialog = this.dialogs.get(event.getUser().getUserId());
|
|
|
|
} else {
|
|
|
|
dialog = CalculatorDialog.createDialog();
|
|
|
|
this.dialogs.put(event.getUser().getUserId(), dialog);
|
|
|
|
}
|
|
|
|
dialog.setEvent(event);
|
|
|
|
dialog.processCommand(event.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|