有谁知道如何在PircBots中使用它? http://www.jibble.org/javadocs/pircbot/index.html 我只需要获取用户主机名并禁止它们。谢谢你的阅读!
if (cmd.equalsIgnoreCase("ban")) {
if (command[1] != null && command[2] != null) {
//Command[1] is the users name.
//Command[2] is the reason.
//how do i make this ban someone?
}
}
答案 0 :(得分:0)
你不能有理由禁止,只是有理由踢。在这种情况下,我假设你想要kban,这是kick + ban。
if (cmd.equalsIgnoreCase("ban")) {
if (command[1] != null && command[2] != null) {
//Command[1] is the users name.
//Command[2] is the reason.
//how do i make this ban someone?
// ban first
//make sure to input the current channel in "currentChannel"
ban(currentChannel, command[1]+"!*@*");
// kick with a reason
kick(currentChannel, command[1], command[2]);
}
}
如果你的命令需要一个主机掩码,你应该让用户指定它 - 他可能想要一个特定的禁令,也许是禁止整个范围等。否则,产生一个糟糕的昵称禁令(如果用户离线你可以使用“whowas”要找出来,否则你应该使用“whois”。注意“whowas”可能不起作用。)
来自PircBot的JavaDoc - http://www.jibble.org/javadocs/pircbot/index.html
ban(String channel,String hostmask) 禁止来自频道的用户。
kick(String channel,String nick) 从频道中踢出用户。
kick(String channel,String nick,String reason) 从频道中踢出用户,给出了理由。
答案 1 :(得分:0)
虽然这是一个老问题,但我想我会分享我是如何解决这个问题的。我假设您正在处理 onMessage
事件中的 ban 命令。在这种情况下,您必须在地图中保存 command[1]
。然后调用
sendRawLine("WHO " + command[1]);
覆盖 onServerResponse
并捕获代码 RPL_WHOREPLY,然后 split("\\s")
响应。然后您可以使用 splitResult[5]
在地图中使用密钥查找,主机将在 splitResult[3]
中,然后您可以使用 String.format("*!*%s", splitResult[3])