Мой бот не принимает мой массив строк для мод. кто-нибудь знает, что с ним не так?
Когда "the_pvbro" хочет набрать команду в чате, бот не позволяет ему использовать ее. и мне лень создавать новый класс для каждого нового мода, который я добавляю. так у кого-нибудь есть идея, может быть, как это сделать по-другому?
import org.jibble.pircbot.*;
открытый класс TwitchBot расширяет PircBot{
public TwitchBot(){
this.setName("rayibot");
this.isConnected();
}
String owner = "skalrayi";
String mod [] = new String[3];{
mod[0] = "the_pvbro";
}
public void onMessage(String channel, String sender, String login, String hostname, String message){
if(message.equalsIgnoreCase("!spiel")){
sendMessage(channel, "Aktuell wird " + Config.currentGame + " gespielt.");
}
else
if(message.equalsIgnoreCase("!song")){
sendMessage(channel, "Aktueller Song:" );
}
else
if(message.equalsIgnoreCase("!hallo")){
sendMessage(channel, "Hallo wie geht es dir denn heute so " +sender);
}
else
if(message.startsWith("!kick")){
if(sender.equals(owner) || sender.equals(mod))
{
String userToKick = message.split(" ")[1];
kick(channel, userToKick );
sendMessage(channel, ".timeout " +userToKick + " 60");
sendMessage(channel, userToKick +" wurde aus dem Channel gekickt!");
}
else{
sendMessage(channel, "Deine Rechte reichen nicht aus, um diesen Befehl zu benutzen! " + sender);
}
}
if (message.startsWith("!ban")) {
if(sender.equals(owner)|| sender.equals(mod))
{
String userToBan = message.split(" ")[1];
ban(channel, userToBan);
sendMessage(channel, ".ban " + userToBan);
sendMessage(channel, userToBan + " wurde aus dem Channel verbannt!");
}
else{
sendMessage(channel, "Deine Rechte reichen nicht aus, um diesen Befehl zu benutzen! " + sender );
}
}
}
}
1 ответ
Решение
Прямо сейчас вы сравниваете String
отправитель против массива модов. Это всегда вернется false
, поскольку строка не является массивом. Что вы хотите сделать, это проверить, содержит ли массив mod строку отправителя.
Я бы использовал список вместо массива, заменив:
String mod [] = new String[3];{
mod[0] = "the_pvbro";
}
с
List<String> mod = Arrays.asList("the_pvbro");
Тогда вы сможете использовать contains
метод путем замены:
sender.equals(mod)
с
mod.contains(sender);
Таким образом, когда вы получаете больше модов, вы можете просто добавить их в аргументы Arrays.asList()
т.е.
List<String> mod = Arrays.asList(
"the_pvbro",
"mod2",
"mod3");