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

有了这个,您可以在启动时逐行读取文件,并在每一行使用 String.split() 将名称解析为数组。

添加管理员时,您只需创建一个新数组并复制旧值并附加新值并将其写入配置文件中的适当位置。

于 2013-01-24T01:27:46.497 回答