2016-08-30 12 views
-1

私はC#でプログラミングしてツイッチチャットをしようとしています。具体的には、私は武器要求システムをプログラミングしています。特定のユーザがコマンドを使うことができるようにする

本質的にこのプログラムでは、!weaponrequestコマンドを使用して、リストに次の武器が何であるかを見ることができます。これにより、ストリーマーは武器の要求を受け入れることができます完全に自動化されたシステムを備えたゲーム。

とにかく私の問題に移って、特定のユーザーがコマンドを使用できるようにする方法が必要です。ユーザーを格納するためのリストが必要になることはわかっています。私は手動で書き込むので、そのためのシステムは必要ありません。私が思うのは、IF文を使用することです。ユーザーがこのリストに含まれているかどうかを確認して、そのユーザーのみがそのコマンドをアクティブにして応答を受け取れるようにする方法を確認します。

case "nextweapon": 
{ 
    if (new FileInfo("MyFile.txt").Length == 0) 
    { 
     irc.sendChatMessage("There are no weapons in the list!"); 
     break; 
    } 

    string Lines = File.ReadLines("MyFile.txt").Take(1).First(); 
    //irc.sendChatMessage(Lines); 

    List<string> WeaponList = File.ReadAllLines("MyFile.txt").ToList(); 
    string FirstItem = WeaponList[0]; 
    WeaponList.RemoveAt(0); 
    File.WriteAllLines("MyFile.txt", WeaponList.ToArray()); 
    irc.sendChatMessage(Lines); 
    break; 
} 

これは、特定のユーザーのみが使用するコマンドです。

申し訳ありませんが、これは恐ろしい言葉やひどい形式です。私はこれまでにここに質問を投稿していません。ありがとうございました!

EDIT大丈夫です! Nevermind私は解決策を見つけました。アイデアのためにみんなありがとう&助けて!乾杯、皆さんが一日の残りの部分をお楽しみください!

+1

テキストの画像を投稿しないでください。コードをインラインでポストして強調表示し、 '{}'ボタンを押してフォーマットされていることを確認してください。ああ、ああ、 – Blorgbeard

+0

。申し訳ありませんが、私が言ったように私は以前これを使ったことがありません。私の悪い。 –

+0

あなたの質問を編集してコードを追加することができます。とにかく、あなたの質問に(多分)答えるために、 'List 'に文字列が含まれているかどうかを見るために 'List .Contains()'を使うことができます。 – Blorgbeard

答えて

0
if ((username == "kevkof1994") || (username == "pk191") || (username == "linxzfade")) 
{ 

} 

私は問題を解決する方法これは、それが最も効率的な方法ではありませんが、私はそうリストを作成する必要はありませんでした必要な限られたユーザーが存在します。

明らかに、名前をコマンドを使用できるようにする独自の名前に置き換える必要があります。例:

(username == "RandomStranger") 
{ 

} 
-1

ファイルをバッファに読み込んだり、行ごとに分割したり、それらの行をループしたり、ユーザー名が見つかった場合はループを中断したりします。私はC#に慣れていないが、以下の擬似コードは、私の考えを強調すべきである:

username = /* the current user's username */; 
userfile = readfile('users.txt'); 
userlist = split(userfile, "\n"); 
is_valid = false; 

for user in userlist 
    if user equals username 
     command_is_valid = true; 
     break; 

if command_is_valid: 
    // your code 

else 
    // do nothing 

私が言うように、私はC#のに慣れていない、ので、私はそれを行うには良い方法があります確信しています。別のことに、MyFile.txtはおそらくフラットファイルデータベースのベストネームではありません。お役に立てれば!

+0

アドバイスありがとうございます!はい、私はそれがないことを知っている、私はちょうどシステムの基本を作った。今私はそれにいくつかの鐘と笛を加えています。そして、私は実際には、一貫した変数とリストでそれを正しく作っていきます!アドバイスをいただきありがとうございます。 –

+0

@JoshJones:問題はない、ちょうど私がそれを指摘するべきだと思った。あなたのプロジェクトに幸運を祈る!ではごきげんよう。 –

2

List<string>.Add(strUserName)機能を使用して、ソース(コード、テキスト、データベースなど)の特別なユーザーをList<string>変数に追加します。

List<string> lstCertainUsers = new List<string>(); 
/* 
* ToDo: Add users from source (in-code, text, database, etc.) into lstCertainUsers 
*/ 

次に、ユーザーの一覧を取得し、特定のユーザーが含まれているかどうかを確認します。

// Check if user has access to special commands 
if (lstCertainUsers.Contains(strUserName)) 
{ 
    /* nextweapon code here */ 
} 
+0

返信いただきありがとうございます!それは有り難いです。 –

+1

最近、変数名の前に接頭辞がついている人はいません –

+0

私はこれを試しましたが、どのように動作させるかはうまくいきません。これは実際には、ユーザー名がファイル内にあるかどうかを確認してからその名前を実行することです。技術的には、ユーザー名がファイル内にある限り、誰でもコマンドを使用できるようにすることです。 –

関連する問題