私はプラグインで作業していて、このバグを知りませんでした。私は、複数の文字列を含むリストがあり、それが含まれているかどうかをチェックするときに.containsを使用すると、if文でfalseが返されます。Listがfalseを返しています。アイテムが含まれていません。しかし、リストをチェックするときにそれはそうですか?
if(e.getPlayer().isOp()){
List<String> warps = Main.getPlugin().getConfig().getStringList("warplist");
String title = e.getLine(0);
String toWarp = ChatColor.stripColor(e.getLine(1).toLowerCase().trim());
if(title.equalsIgnoreCase("warp")){
if(warps.contains(toWarp)){
e.setLine(0, ChatColor.AQUA + "[Warp]");
e.setLine(1, ChatColor.GREEN + toWarp.substring(0, 1).toUpperCase() + toWarp.substring(1).toLowerCase());
e.getPlayer().sendMessage(ChatColor.GOLD + "Warp Sign Created!");
e.getPlayer().sendMessage(ChatColor.ITALIC + "Plugin Created By Sodex234");
@SuppressWarnings("unchecked")
List<Location> allSigns = (List<Location>) Main.getPlugin().getConfig().getList("signs");
allSigns.add(e.getBlock().getLocation());
Main.getPlugin().getConfig().set("signs", allSigns);
Main.getPlugin().saveConfig();
}else{
e.getPlayer().sendMessage(ChatColor.RED + "That Warp Does Not Exist.");
e.getPlayer().sendMessage(ChatColor.RED + "You put: " + toWarp + ". Only these Warps exist: " + warps);
e.getBlock().setType(Material.AIR);
}
}
}
ゲームでは、「そのワープは存在しません」というメッセージが表示されます。 - それから自分自身をリストアップする。しかし、それが私にリストを示すとき、それは明確に項目を含んでいます。
たとえば、リストには「test」、「test2」、「test3」、「test4」の4つの項目があります。私は記号を置く、それは反りであることを知っている、そしてそれは名前を確認することになると、それは偽を返しますか?しかし、名前は "test"であり、arraylistにはこれが含まれています。ご覧のとおり、私はそれをトリミングし、チャットカラーをストライプして小文字にします(リスト内のすべての項目は小文字です)。
あなたは "+ toWarp +"を置くことができますか?これらのワープだけが存在します: "+ warps"結果? game –
とまったく同じです。比較では大文字と小文字が区別されます。文字列が 'ArrayList'に存在していますか? – user2004685
ここに@ᴘᴀɴᴀʏɪᴏᴛɪs:http://imgur.com/bfIqYsl – Sodex234