0

基本的に、私はゲームを持っています、そしてこれは私が誰が所有者で誰がモデレーターであるかを管理する方法です。

public static final String[] ADMINS = {"test", "jonathan", "bob"};

そしてその行はSettings.javaにあります

Commands.javaで、どのようにコマンドを作成しますか

        case "giveadmin":
                            //write the users name to list
            return true;

これにより、配列が物理的に変更され、名前が追加されます。たとえば、jerryという名前のプレーヤーでgiveadminコマンドを使用したとします。Settings.javaでこの配列を変更するようにコードを追加するにはどうすればよいですか?

public static final String[] ADMINS = {"test", "jonathan", "bob"};

これに

public static final String[] ADMINS = {"test", "jonathan", "bob", "jerry"};

いいえ、他のすべての配列のように名前を追加したくないだけです。クラスを開いたときに、jerryという名前が配列に追加されていることを物理的に確認したいと思います。

4

2 に答える 2

1

これを行うことはお勧めしません。代わりに、すべての管理者ユーザー名を (改行などで) 区切られたリストであるファイルに書き込みます。

プログラムが起動したら、ファイルを読み取り、ファイル内ArrayList<String>のすべての名前の (または他のコレクション) を作成します。

新しい名前を追加する場合は、ファイルを開いて末尾に追加し、保存して、ArrayList<String>. ファイルがプログラムの別のインスタンスによって同時に変更された場合 (またはそれ以外の場合) に備えて、ファイルを再度開く必要があります。

これには、Java を読めない非技術者が管理者のテキスト ファイルをメモ帳で編集できるという利点があります。

于 2013-01-24T01:11:57.727 に答える
1

独自のソース コードを変更するプログラムは、非常に悪い考えです。そもそもこれを行うのは難しいだけでなく、一貫したゲームを維持することもできません。管理者が追加されるたびに、コードを再コンパイルして (時間のかかるプロセス)、ゲームを再起動する必要がありました。

より良い方法は、このすべての情報を config/XML ファイルに保存することです。フォーマットの何か

ADMINS= test, jonathan, bob
MODS= kyle, zach, bill

これにより、起動時にファイルを 1 行ずつ読み取り、各行で String.split() を実行して名前を解析して配列にすることができます。

管理者を追加するときは、新しい配列を作成し、古い値をコピーして新しい値を追加し、構成ファイルの適切な場所に書き込むだけです。

于 2013-01-24T01:27:46.497 に答える