我想知道是否可以组合我设置的两个字符串 -
我想要做的是当玩家输入命令" /规则添加规则在这里" 它将添加文本" Rule Goes Here"以配置文件作为列表,配置文件将如下所示:
规则:
规则1
规则2
我尝试用于命令的代码如下所示:
if (args[0].equalsIgnoreCase("add"))
{
ArrayList<String[]> list1 = new ArrayList<String[]>();
List<String[]> c = plugin.getConfig().getList("rules");
c.list1.addAll(Arrays.asList(args));
return true;
}
&#34;插件&#34;是插件的主要类,所以一切都被激活使用。那就是生成配置的地方。
我试图使用我在bukkit论坛上找到的代码 -
plugin.getConfig().getList("rules").add(args);
但是没有运气,因为我得到错误说明:
add(capture#4-of ?)
类型中的方法List<capture#4-of ?>
不适用于参数(String[]
)
现在可能是一个愚蠢的问题,而且大多数人都喜欢,但我当然还是初学者。 如果你能帮我解决这个问题,我将非常感激。 谢谢!
答案 0 :(得分:2)
您需要List<?>
具有实际类型,您不能改变具有通配符类型的对象。
答案 1 :(得分:0)
也许这就是你要找的东西:
c.list1.addAll(Arrays.asList(args));
但是你需要更准确地描述你想对哪些列表做什么。
答案 2 :(得分:0)
这实际上是一个有趣的任务,虽然这不是你应该做的java作为一个启动器(编写minecraft插件没有至少java的基础知识将无法工作)
至于你的问题,以下将是一种方法,可能有错误,因为我没有我可以测试它的我的世界服务器。
获取用户在聊天中写入规则的ArrayList<String>
很简单:
ArrayList<String> a = new ArrayList<>();
for(String s : args){
a.add(s);
}
现在要将这些规则添加到您的配置中,bukkit确实提供了一个设置值的函数,set(String, Object)
是准确的。可以找到文档here。
所以你可以这样做:
plugin.getConfig().set("Rules", a);
如果结果是您想要的结果,如果不是,请准确说明该功能有什么问题。
另外请注意,如果没有其他插件或插件使用"Rules"
作为访问它们的密钥(根据我的知识至少),添加这些规则将无法做太多。
编辑:
以上是可能的,但以下可能也有效:
if(plugin.getConfig().getList("rules")){
plugin.getConfig().getList("rules").add(Arrays.asList(args));
}
不要忘记这种方式可以重复!列表和(据我所知)它的所有实现都不会检查重复的条目!