0

私は Java の初心者で、Twitch.tv でストリーマーを始めています。私は一晩中、自分のチャンネルのモデレーションを合理化する IRC ボットの開発に取り組んできました (クッキー カッター IRC ボットを使用してもできないレベルのカスタマイズが必要です)。

私をつまずかせていることの 1 つは、投票の作成です。私はPirc javadocsに目を通しましたが、チャネルopによって送信されたメッセージをチェックするコマンドはありません。これは、荒らしが投票を作成しないようにするために重要です。私の限られた知識では、取得する方法がわかりませんメッセージからの追加パラメータ。

私が欲しいのはこれです:

!poll <question> <c1> <c2> <c3> <seconds>

ここで何か助けはありますか?各ストリームのアウトロの感謝画面にあなたを追加します。

4

2 に答える 2

0

onMessage(...)Jdsfighter が言ったように、PircBot スーパークラスのメソッドを使用する必要があります。このメソッドは、メッセージがチャネルに送信されるたびに呼び出されます。ボットをチャットに反応させることは、IRC ボットを作成する際のアルファとオメガであるため、これまでにこれを理解していると思います。

モデレーター (IRC 用語でのオペレーター) に関して言えば、Twitch IRC サーバーは、PircBot が完全には理解できない方法で動作しUser.isOp(...)、User クラスからのメソッドでうまくいきませんでした。私が成功したのは、Bot クラス (メイン クラスではない) に以下を含めることです。

Set<String> OPs = new HashSet<String>();

protected void onUserMode(String channel, String sourceNick, String sourceLogin, String sourceHostname, String recipient) {
    recipient = recipient.split(" ")[2];
    OPs.add(recipient);
}

このメソッドは、次のように、コンソールに MODE で始まる行が表示されるたびに呼び出されます。

jtv MODE #channel +o moderatorName

ここで、受信したメッセージが で始まるたびに呼び出されるメソッドを作成し、"!poll"メッセージの送信者が OP セットにあるかどうかを確認する必要があります。

onMessage()メソッドに配置する概要を次に示します。

if (message.toLowerCase().startsWith("!poll") {
    if (OPs.contains(sender)) {
            //TODO Add body
    }
}

ここで、"!Poll" の後の行の残りをキャッチし、さまざまなポーリング オプションに関するメッセージをチャネルにポストするコードを作成する必要があります。

String[]明らかに、代替案とそれぞれの投票数を保存する場所が必要です。 oneと oneの 2 つの配列だけをお勧めしますint[]

于 2014-02-18T17:42:42.483 に答える