diff --git a/src/main/java/com/graywolf336/jail/PrisonerManager.java b/src/main/java/com/graywolf336/jail/PrisonerManager.java index 7448d5c..3b01bfb 100644 --- a/src/main/java/com/graywolf336/jail/PrisonerManager.java +++ b/src/main/java/com/graywolf336/jail/PrisonerManager.java @@ -268,7 +268,7 @@ public class PrisonerManager { for(ItemStack item : inventory) { if(item != null) { - if(!Util.isStringInsideList(blacklist, item.getType().toString())) { + if(!Util.isStringInsideList(item.getType().toString(), blacklist)) { int i = chest.firstEmpty(); if(i != -1) {//Check that we have got a free spot, should never happen but just in case chest.setItem(i, item); @@ -279,7 +279,7 @@ public class PrisonerManager { for(ItemStack item : armor) { if(item != null) { - if(!Util.isStringInsideList(blacklist, item.getType().toString())) { + if(!Util.isStringInsideList(item.getType().toString(), blacklist)) { int i = chest.firstEmpty(); if(i != -1) {//Check that we have got a free spot, should never happen but just in case chest.setItem(i, item); @@ -293,12 +293,12 @@ public class PrisonerManager { }else { for(ItemStack item : player.getInventory().getContents()) if(item != null) - if(Util.isStringInsideList(blacklist, item.getType().toString())) + if(Util.isStringInsideList(item.getType().toString(), blacklist)) player.getInventory().remove(item); for(ItemStack item : player.getInventory().getArmorContents()) if(item != null) - if(Util.isStringInsideList(blacklist, item.getType().toString())) + if(Util.isStringInsideList(item.getType().toString(), blacklist)) player.getInventory().remove(item); String[] inv = Util.playerInventoryToBase64(player.getInventory()); @@ -321,12 +321,12 @@ public class PrisonerManager { for(ItemStack item : player.getInventory().getContents()) if(item != null) - if(Util.isStringInsideList(blacklist, item.getType().toString())) + if(Util.isStringInsideList(item.getType().toString(), blacklist)) player.getInventory().remove(item); for(ItemStack item : player.getInventory().getArmorContents()) if(item != null) - if(Util.isStringInsideList(blacklist, item.getType().toString())) + if(Util.isStringInsideList(item.getType().toString(), blacklist)) player.getInventory().remove(item); String[] inv = Util.playerInventoryToBase64(player.getInventory()); diff --git a/src/main/java/com/graywolf336/jail/Util.java b/src/main/java/com/graywolf336/jail/Util.java index f72df54..3f651ef 100644 --- a/src/main/java/com/graywolf336/jail/Util.java +++ b/src/main/java/com/graywolf336/jail/Util.java @@ -74,17 +74,34 @@ public class Util { return (point1 <= loc) && (loc <= point2); } + + /** + * Checks if the given string is inside the array, ignoring the casing. + * + *

+ * + * @param value to check + * @param array of strings to check + * @return true if the array contains the provided value, false if it doesn't + */ + public static boolean isStringInsideArray(String value, String... array) { + for(String s : array) + if(s.equalsIgnoreCase(value)) + return true; + + return false; + } /** * Checks if the given string is inside the list, ignoring the casing. * *

* - * @param list of strings to check * @param value to check + * @param list of strings to check * @return true if the list contains the provided value, false if it doesn't */ - public static boolean isStringInsideList(List list, String value) { + public static boolean isStringInsideList(String value, List list) { for(String s : list) if(s.equalsIgnoreCase(value)) return true; diff --git a/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java b/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java index 0602691..011bf81 100644 --- a/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java +++ b/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java @@ -32,8 +32,8 @@ public class ProtectionListener implements Listener { //Let's check if the player is jailed if(pl.getJailManager().isPlayerJailed(event.getPlayer().getUniqueId())) { //Get the breaking whitelist, check if the current item is in there - if(!Util.isStringInsideList(pl.getConfig().getStringList(Settings.BLOCKBREAKWHITELIST.getPath()), - event.getBlock().getType().toString().toLowerCase())) { + if(!Util.isStringInsideList(event.getBlock().getType().toString().toLowerCase(), + pl.getConfig().getStringList(Settings.BLOCKBREAKWHITELIST.getPath()))) { //As our Util.getTime throws an exception when the time is in an //incorrect format, we catch the exception and don't add any time //as a fail safe, don't want us to go crazy adding tons of time. @@ -84,8 +84,8 @@ public class ProtectionListener implements Listener { //Let's check if the player is jailed if(pl.getJailManager().isPlayerJailed(event.getPlayer().getUniqueId())) { //Get the placing whitelist, check if the current item is in there - if(!Util.isStringInsideList(pl.getConfig().getStringList(Settings.BLOCKPLACEWHITELIST.getPath()), - event.getBlock().getType().toString().toLowerCase())) { + if(!Util.isStringInsideList(event.getBlock().getType().toString().toLowerCase(), + pl.getConfig().getStringList(Settings.BLOCKPLACEWHITELIST.getPath()))) { //As our Util.getTime throws an exception when the time is in an //incorrect format, we catch the exception and don't add any time //as a fail safe, don't want us to go crazy adding tons of time. @@ -264,8 +264,8 @@ public class ProtectionListener implements Listener { if (event.getClickedBlock() != null) { //Get the interaction blacklist, check if the current block is in there //if it is, then let's take action - if(Util.isStringInsideList(pl.getConfig().getStringList(Settings.PREVENTINTERACTIONBLOCKS.getPath()), - event.getClickedBlock().getType().toString().toLowerCase())) { + if(Util.isStringInsideList(event.getClickedBlock().getType().toString().toLowerCase(), + pl.getConfig().getStringList(Settings.PREVENTINTERACTIONBLOCKS.getPath()))) { try { long add = Util.getTime(pl.getConfig().getString(Settings.PREVENTINTERACTIONBLOCKSPENALTY.getPath())); pl.getJailManager().getPrisoner(event.getPlayer().getUniqueId()).addTime(add); @@ -293,8 +293,8 @@ public class ProtectionListener implements Listener { //Otherwise let's check if they have something in hand //Get the interaction blacklist, check if the current item is in there //if it is, then let's take action - if(Util.isStringInsideList(pl.getConfig().getStringList(Settings.PREVENTINTERACTIONITEMS.getPath()), - event.getClickedBlock().getType().toString().toLowerCase())) { + if(Util.isStringInsideList(event.getClickedBlock().getType().toString().toLowerCase(), + pl.getConfig().getStringList(Settings.PREVENTINTERACTIONITEMS.getPath()))) { try { long add = Util.getTime(pl.getConfig().getString(Settings.PREVENTINTERACTIONITEMSPENALTY.getPath())); pl.getJailManager().getPrisoner(event.getPlayer().getUniqueId()).addTime(add); diff --git a/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java b/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java index 53339b3..9ddba62 100644 --- a/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java +++ b/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java @@ -58,16 +58,16 @@ public class TestUtilClass { @Test public void testInList() { - assertTrue(Util.isStringInsideList(list, "seeds")); - assertTrue(Util.isStringInsideList(list, Material.COAL_ORE.toString())); - assertTrue(Util.isStringInsideList(list, "tOrCh")); + assertTrue(Util.isStringInsideList("seeds", list)); + assertTrue(Util.isStringInsideList(Material.COAL_ORE.toString(), list)); + assertTrue(Util.isStringInsideList("tOrCh", list)); } @Test public void testNotInList() { - assertFalse(Util.isStringInsideList(list, "dirt")); - assertFalse(Util.isStringInsideList(list, "SAND")); - assertFalse(Util.isStringInsideList(list, Material.BEDROCK.toString())); + assertFalse(Util.isStringInsideList("dirt", list)); + assertFalse(Util.isStringInsideList("SAND", list)); + assertFalse(Util.isStringInsideList(Material.BEDROCK.toString(), list)); } @Test