2014-02-16 27 views
0

我是初学java用户,在Twitch.tv开始流式传输。我一直在努力开发一个整晚的IRC机器人,以简化我的频道中的节制(我想要使用Cookie裁剪器IRC bot无法提供的定制级别)。如何使用Pirc创建IRC的轮询系统

绊倒我的一件事是创建投票。我已经浏览了Pirc javadocs,并且没有任何命令,只要我能看到检查由渠道运营商发送的消息,这对于防止巨魔创建民意调查至关重要,并且我知道的有限知识我不知道如何去抓来自消息的额外参数。

我想是这样的:

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

任何帮助这里?我会将你添加到我的我的感谢屏幕上,以显示每个流的输出。

回答

0

从我通过PIRC的javadoc快看,它看起来像你想用的方法#onMessage(字符串通道, 字符串发件人, 字符串登录, 字符串主机名, 字符串消息)

从这里,你可以得到任何所需的信息。现在取决于你如何处理传入的消息,所有你需要做的事情就是搜索命令,在这个例子中是命令“!poll”,你将从消息字符串中得到。从那里,你可以进一步解析信息,并按照你的意愿去做。

如果你还没有使用他们已经为PIRC的javadoc的位置在这里:http://www.jibble.org/javadocs/pircbot/index.html

0

正如Jdsfighter说,你需要从PircBot超使用onMessage(...)方法。只要邮件发送到您的频道,就会调用此方法。我猜想你现在已经明白了这一点,因为在制作IRC bot时,使机器人对聊天做出反应是alpha和omega。

当担心Moderators(IRC术语中的操作符)时,Twitch IRC服务器的行为方式完全不被PircBot理解,并且我还没有从User类的User.isOp(...)方法中获得成功。什么我发现全成是包括在我的僵尸类(而不是主类)以下:

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); 
} 

每当你看到一行在控制台模式开始时,像这样的这种方法被称为:

jtv MODE #channel +o moderatorName 

现在,你需要做一个每当收到的消息"!poll"开始,并检查邮件的发件人是在OPS组被称为方法。

这里有一个大纲为你,被放置在onMessage()方法

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

现在你只需要做出一些代码!“民意调查”后获取该行的其余部分,并发布消息回关于不同民意调查选项的频道。

你显然需要一个地方来存储您的选择,他们多少票获得各,我建议干脆两个数组,一个String[]和一个int[]