簡體   English   中英

我的機器人不接受我的字符串數組作為 mod。 有誰知道有什么問題嗎?

[英]my bot doesn't accept my string array for mod. does anyone know whats wrong with it?

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


    }

}

現在您正在將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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM