[英]Combine two strings in an ArrayList
我想知道是否有可能組合我設置的兩個字符串-
我要做的是,當播放器鍵入命令“ / rules add Rule Goes Here”時,它將文本“ Rule Goes Here”作為列表添加到配置文件中,配置文件如下所示:
規則:
規則1
規則二
我嘗試用於命令的代碼如下:
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;
}
“插件”是插件的主要類,因此所有內容都可以使用。 多數民眾贊成在生成配置。
我試圖使用在bukkit論壇上找到的這段代碼plugin.getConfig().getList("rules").add(args);
但是運氣不好,因為我得到了錯誤提示:
List<capture#4-of ?>
類型中的方法add(capture#4-of ?)
不適用於參數(String[]
)
現在可能要問一個愚蠢的問題,最有可能的是,但是我當然還是個初學者。 如果可以的話,請協助我,非常感謝您。 謝謝!
您需要List<?>
具有實際類型,而不能對具有通配符類型的對象進行突變。
也許這就是您想要的:
c.list1.addAll(Arrays.asList(args));
但是,您需要更精確地描述要對哪些列表執行的操作。
這實際上是一個有趣的任務,盡管作為Java的啟動者您應該做的事情不算什么(編寫沒有至少Java基礎知識的minecraft插件將不起作用)
至於您的問題,下面將提供解決方法,因為我沒有可以測試它的Minecraft服務器,可能會出現錯誤。
使用用戶在聊天中編寫的規則來獲取ArrayList<String>
很簡單:
ArrayList<String> a = new ArrayList<>();
for(String s : args){
a.add(s);
}
現在,要將這些規則添加到您的配置中,bukkit確實提供了一個設置值的函數,即set(String, Object)
。 文檔可以在這里找到。
因此,您可以執行以下操作:
plugin.getConfig().set("Rules", a);
如果結果是您想要的偉大,如果不是,請精確說明該功能的問題。
還請記住,如果沒有其他插件,或者您的插件使用"Rules"
作為訪問它們的鑰匙,那么添加這些規則不會有多大作用(據我所知)。
編輯:
上面的方法是可行的,但以下方法也可以工作:
if(plugin.getConfig().getList("rules")){
plugin.getConfig().getList("rules").add(Arrays.asList(args));
}
不要忘記這種方式可以重復! List和(據我所知)所有實現都不會檢查重復項!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.