2016-04-05 4 views
-1

"the_pvbro"がチャットでコマンドを入力しようとするとき、ボットは彼にそれを使用させません。私は新しいモードを追加するたびに新しいクラスを作るのは面倒です。 だれでも考え方があるかもしれません。私のボットはmodのために私の文字列配列を受け入れません。誰もそれが間違って何を知っていますか?

import org.jibble.pircbot.*; 

パブリッククラスTwitchBotは、今あなたが変更配列に対してString送信者を比較している{

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


    } 

} 

答えて

0

PircBotを拡張します。 Stringは配列ではないため、これは常にfalseを返します。あなたがしたいのは、mod配列が含まれているかどうかを確認することです。

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

String mod [] = new String[3];{ 
    mod[0] = "the_pvbro"; 
} 

次にあなたが交換することによりcontainsメソッドを使用することができます:私はどうなるのか

は、代わりに置き換えることにより、配列のリストを使用している

sender.equals(mod) 

あなたはより多くの改造を得るとき
mod.contains(sender); 

この方法で、あなただけのすなわち、Arrays.asList()に引数に追加することができます。:

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

感謝に答えると説明します。すべて正常に動作します。 – Skalrayi

+0

@Skalrayi問題ありません。私があなたの質問に十分に答えたと思えば、投票ボタンの下のチェックマークをクリックすることを検討してください:) – gla3dr

関連する問題