// Path: src/main/java/pl/touk/chat/bot/janusz/JanuszCommander.java
// public class JanuszCommander {
// 
//     @Resource
//     private CommandInvoker commandInvoker;
// 
//     public void processCommand(String message, String sender, Responder responder) {
//         if (commandInvoker.isCommand(message)) {
//             String messageWithoutCommandPrefix = message.substring(1);
//             responder.respond(commandInvoker.invoke(sender, messageWithoutCommandPrefix));
//         }
//     }
// 
// }
// 
// Path: src/main/java/pl/touk/chat/bot/janusz/JanuszListener.java
// public interface JanuszListener {
//     void listen();
//     boolean isEnabled();
// }
// 
// Path: src/main/java/pl/touk/chat/bot/janusz/config/JanuszConfiguration.java
// public class JanuszConfiguration {
// 
//     public Hipchat hipchat;
//     public Slack slack;
//     public Giphy giphy = new Giphy();
//     public String nickname = "Janusz";
//     public Jdbc jdbc;
// 
// }


import com.ullink.slack.simpleslackapi.SlackMessage;
import com.ullink.slack.simpleslackapi.SlackMessageListener;
import com.ullink.slack.simpleslackapi.SlackSession;
import com.ullink.slack.simpleslackapi.impl.SlackSessionFactory;
import pl.touk.chat.bot.janusz.JanuszCommander;
import pl.touk.chat.bot.janusz.JanuszListener;
import pl.touk.chat.bot.janusz.config.JanuszConfiguration;
import javax.annotation.Resource;
package pl.touk.chat.bot.janusz.slack;



public class SlackJanusz implements JanuszListener {

    @Resource
    private JanuszConfiguration januszConfiguration;

    @Resource
    private JanuszCommander janusz;

    private SlackSession session;

    @Override
    public void listen() {
        session = SlackSessionFactory.createWebSocketSlackSession(januszConfiguration.slack.apiToken);

        session.addMessageListener(new SlackMessageListener() {
            @Override
            public void onSessionLoad(SlackSession slackSession) {
            }

            @Override
            public void onMessage(SlackMessage slackMessage) {
                janusz.processCommand(
// Path: src/main/java/pl/touk/chat/bot/janusz/JanuszCommander.java
// public class JanuszCommander {
// 
//     @Resource
//     private CommandInvoker commandInvoker;
// 
//     public void processCommand(String message, String sender, Responder responder) {
//         if (commandInvoker.isCommand(message)) {
//             String messageWithoutCommandPrefix = message.substring(1);
//             responder.respond(commandInvoker.invoke(sender, messageWithoutCommandPrefix));
//         }
//     }
// 
// }
// 
// Path: src/main/java/pl/touk/chat/bot/janusz/JanuszListener.java
// public interface JanuszListener {
//     void listen();
//     boolean isEnabled();
// }
// 
// Path: src/main/java/pl/touk/chat/bot/janusz/config/JanuszConfiguration.java
// public class JanuszConfiguration {
// 
//     public Hipchat hipchat;
//     public Slack slack;
//     public Giphy giphy = new Giphy();
//     public String nickname = "Janusz";
//     public Jdbc jdbc;
// 
// }


// Path: src/main/java/pl/touk/chat/bot/janusz/slack/SlackJanusz.java
import com.ullink.slack.simpleslackapi.SlackMessage;
import com.ullink.slack.simpleslackapi.SlackMessageListener;
import com.ullink.slack.simpleslackapi.SlackSession;
import com.ullink.slack.simpleslackapi.impl.SlackSessionFactory;
import pl.touk.chat.bot.janusz.JanuszCommander;
import pl.touk.chat.bot.janusz.JanuszListener;
import pl.touk.chat.bot.janusz.config.JanuszConfiguration;
import javax.annotation.Resource;

package pl.touk.chat.bot.janusz.slack;



public class SlackJanusz implements JanuszListener {

    @Resource
    private JanuszConfiguration januszConfiguration;

    @Resource
    private JanuszCommander janusz;

    private SlackSession session;

    @Override
    public void listen() {
        session = SlackSessionFactory.createWebSocketSlackSession(januszConfiguration.slack.apiToken);

        session.addMessageListener(new SlackMessageListener() {
            @Override
            public void onSessionLoad(SlackSession slackSession) {
            }

            @Override
            public void onMessage(SlackMessage slackMessage) {
                janusz.processCommand(
                    slackMessage.getMessageContent(),