pIRCbot не будет присоединяться к каналу Twitch или отправлять сообщения

Следующий код успешно подключается к IRC Twitch и запускает метод onConnect, на котором все останавливается. Поскольку в pIRCbot включены подробные сведения, я вижу, что он отправляет JOIN #twitchplayspokemon после подключения, но в спецификации сказано, что я должен получить немедленный ответ с тем же текстом, за которым следует список пользователей (что вызовет срабатывание методов onJoin и onUserList), который не случаться.

Я также пытался подключиться к своему каналу и отправить сообщение с помощью
joinChannel("#[mychannelname]"); sendMessage("#[mychannelname]", "Hello World");
Все, что он делает, это отправляет две команды JOIN и никогда не присоединяется, и сообщение не появляется в чате.

Я использую учебник/справочник: http://help.twitch.tv/customer/portal/articles/1302780-twitch-irc

Другие ответы также не выводятся. Я получаю MOTD, но не вижу «Конец команды /MOTD».

import org.jibble.pircbot.*;

public class MyBotMain extends PircBot {

    public static void main(String[] args) throws Exception {

        MyBotMain bot = new MyBotMain();

        bot.setVerbose(true);

        bot.setName("[myname]");
        bot.setLogin("[myname]");

        try {
            bot.connect("irc.twitch.tv", 6667, "oauth:db4aai4mh474ikbgzzuh76fv67n"); // Not the key I'm using
        } catch (NickAlreadyInUseException e) {
            System.err.println("Nickname is currently in use");
        } catch (IrcException e) {
            System.err.println("Server did not accept connection");
            e.printStackTrace();
        }
    }

    @Override
    protected void onConnect() {
        System.out.println("Connected!");
        joinChannel("#witchplayspokemon");
        super.onConnect();
    }

    @Override
    protected void onJoin(String channel, String sender, String login, String hostname) {
        System.out.println(login + " joined channel " + channel);
        super.onJoin(channel, sender, login, hostname);
    }

    @Override
    protected void onUserList(String channel, User[] users) {
        for (User user : users) {
            System.out.println(user);
        }
        super.onUserList(channel, users);
    }
}

person Lee Fogg    schedule 23.03.2015    source источник


Ответы (1)


Ваш код работает отлично, единственная проблема заключается в том, что канал, к которому вы пытаетесь присоединиться, - это "witchplayspokemon" вместо "twitchplayspokemon", onUserList (канал String, пользователи []) дает мне только одного пользователя, но у меня были эта проблема недавно на моем собственном боте, поэтому я еще не уверен в причине.

person Justalilbitnerdy    schedule 22.06.2015
comment
Я только что прочитал, что для e3 twitch отключил части списка пользователей / присоединения к своим серверам чата IRC, поэтому onUserList (канал String, пользователи [] пользователи) не будет работать, пока они не добавят его обратно. - person Justalilbitnerdy; 22.06.2015