我的机器人不接受mod的字符串数组。有谁知道它有什么问题吗?

时间:2016-04-05 16:26:06

标签: java command irc twitch pircbot

当" the_pvbro"想要在聊天中键入命令,机器人不允许他使用它。而且我懒得为我添加的每个新mod创建一个新类。 也有人有想法如何做到这一点不同吗?

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 个答案:

答案 0 :(得分:0)

现在您正在将String发件人与mod数组进行比较。这将始终返回false,因为String不是数组。你想要做的是检查mod数组是否包含发送者字符串。

我要做的是通过替换:

来使用列表而不是数组
String mod [] = new String[3];{
    mod[0] = "the_pvbro";
}

List<String> mod = Arrays.asList("the_pvbro");

然后您可以使用contains方法替换:

sender.equals(mod)

mod.contains(sender);

这样,当你获得更多mod时,你可以将它们添加到Arrays.asList()的参数中,即:

List<String> mod = Arrays.asList(
    "the_pvbro",
    "mod2",
    "mod3");