我正在使用Pircbot框架为Java中的IRC Bot发出命令。
if (message.contains("!goawaybot")){
String[] parts = message.split(" ");
//use the parts variable to find if the command has an argument
//if yes, part with that message, else:
partChannel(channel, "Leaving");
}
如果存在争论,(即"!goawaybot derp")那么它应该将该论点作为理由(i,e;" derp")。否则,它将与通用" Leaving"消息。
答案 0 :(得分:1)
据我了解你的要求:
message
可能包含文字" !goawaybot "。如果是,请使用partChannel()
之后的任何文字作为!goawaybot
的参数,或者#34; 离开"来呼叫partChannel()
。如果没有提供。
分裂空白是有问题的;其中最重要的是它使处理多字消息变得不必要地困难。
这是regular expressions的标准问题。定义正则表达式,如:
^.*!goawaybot(.+)?$
如果message
与此正则表达式匹配,请使用您的partChannel()
消息的第1组值(如果存在)。
E.g。
final Pattern GO_AWAY_BOT = Pattern.compile("^.*!goawaybot(.+)?$");
...
Matcher m = GO_AWAY_BOT.matcher(message);
if (m.matches()) {
partChannel(channel, m.group(1) != null ? m.group(1) : "Leaving");
}
答案 1 :(得分:0)
String reason = (parts[1] != null) ? parts[1] : "Leaving";
并使用reason
代替"离开"在part命令中。