From 4aaf559704f555cce2fe394447094a702e35d949 Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Tue, 13 Feb 2018 21:38:19 +0100 Subject: [PATCH] Fixed some code smells --- .../commands/island/IslandCreateCommand.java | 2 +- .../commands/island/IslandResetCommand.java | 2 +- .../database/managers/PlayersManager.java | 29 ++++---------- .../managers/island/IslandsManager.java | 37 ++++------------- .../database/managers/island/NewIsland.java | 15 +++---- .../bskyblock/database/objects/Island.java | 34 +++++----------- .../bskyblock/database/objects/Players.java | 24 +++++------ .../objects/adapters/FlagSerializer.java | 20 +++++----- .../listeners/flags/BreedingListener.java | 2 +- .../listeners/flags/MobSpawnListener.java | 40 ++++++++----------- 10 files changed, 68 insertions(+), 137 deletions(-) diff --git a/src/main/java/us/tastybento/bskyblock/commands/island/IslandCreateCommand.java b/src/main/java/us/tastybento/bskyblock/commands/island/IslandCreateCommand.java index 8516dae65..d7887f69e 100644 --- a/src/main/java/us/tastybento/bskyblock/commands/island/IslandCreateCommand.java +++ b/src/main/java/us/tastybento/bskyblock/commands/island/IslandCreateCommand.java @@ -55,7 +55,7 @@ public class IslandCreateCommand extends CompositeCommand { */ protected void createIsland(User user) { try { - NewIsland.builder(getPlugin()) + NewIsland.builder() .player(user.getPlayer()) .reason(Reason.CREATE) .build(); diff --git a/src/main/java/us/tastybento/bskyblock/commands/island/IslandResetCommand.java b/src/main/java/us/tastybento/bskyblock/commands/island/IslandResetCommand.java index 572840faa..194eb8790 100644 --- a/src/main/java/us/tastybento/bskyblock/commands/island/IslandResetCommand.java +++ b/src/main/java/us/tastybento/bskyblock/commands/island/IslandResetCommand.java @@ -59,7 +59,7 @@ public class IslandResetCommand extends CompositeCommand { getPlugin().getLogger().info("DEBUG: making new island "); } try { - NewIsland.builder(getPlugin()) + NewIsland.builder() .player(player) .reason(Reason.RESET) .oldIsland(oldIsland) diff --git a/src/main/java/us/tastybento/bskyblock/database/managers/PlayersManager.java b/src/main/java/us/tastybento/bskyblock/database/managers/PlayersManager.java index 847829931..b09f80e0b 100644 --- a/src/main/java/us/tastybento/bskyblock/database/managers/PlayersManager.java +++ b/src/main/java/us/tastybento/bskyblock/database/managers/PlayersManager.java @@ -8,6 +8,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Optional; +import java.util.Map; import java.util.Set; import java.util.UUID; @@ -29,7 +30,7 @@ public class PlayersManager{ private BSBDatabase database; private AbstractDatabaseHandler handler; - private HashMap playerCache; + private Map playerCache; private Set inTeleport; /** @@ -240,20 +241,6 @@ public class PlayersManager{ return plugin.getIslands().getMembers(playerUUID).size() > 1; } - /** - * Clears player home locations - * - * @param playerUUID - */ - public void clearPlayerHomes(UUID playerUUID) { - Players player = addPlayer(playerUUID); - player.clearHomeLocations(); - /* - * TODO - playerCache.get(playerUUID).save(); // Needed? - TopTen.topTenRemoveEntry(playerUUID);*/ - } - /** * Sets the home location for the player * @param playerUUID @@ -313,7 +300,7 @@ public class PlayersManager{ * @param playerUUID * @return List of home locations */ - public HashMap getHomeLocations(UUID playerUUID) { + public Map getHomeLocations(UUID playerUUID) { addPlayer(playerUUID); return playerCache.get(playerUUID).getHomeLocations(); } @@ -327,8 +314,7 @@ public class PlayersManager{ public UUID getUUID(String string) { // See if this is a UUID try { - UUID uuid = UUID.fromString(string); - return uuid; + return UUID.fromString(string); } catch (Exception e) {} // Look in the name cache return Bukkit.getOfflinePlayer(string).getUniqueId(); @@ -336,8 +322,7 @@ public class PlayersManager{ /** * Sets the player's name and updates the name>UUID database - * @param uniqueId - * @param name + * @param user */ public void setPlayerName(User user) { if (DEBUG) { @@ -380,7 +365,7 @@ public class PlayersManager{ } // Look in the grid Optional island = plugin.getIslands().getIslandAt(loc); - return island.map(x->x.getOwner()).orElse(null); + return island.map(Island::getOwner).orElse(null); } /** @@ -617,7 +602,7 @@ public class PlayersManager{ * @param string * @return */ - public User getUser(String string) { + public User getUser(String string) { return User.getInstance(getUUID(string)); } diff --git a/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java b/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java index 6fe9e561b..643975ad0 100644 --- a/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java +++ b/src/main/java/us/tastybento/bskyblock/database/managers/island/IslandsManager.java @@ -780,7 +780,7 @@ public class IslandsManager { // Must be in the same world as the locations being checked // Note that getWorld can return null if a world has been deleted on the server if (islandTestLocation != null && islandTestLocation.getWorld() != null && islandTestLocation.getWorld().equals(loc.getWorld())) { - int protectionRange = getIslandAt(islandTestLocation).map(x->x.getProtectionRange()) + int protectionRange = getIslandAt(islandTestLocation).map(Island::getProtectionRange) .orElse(plugin.getSettings().getIslandProtectionRange()); if (loc.getX() > islandTestLocation.getX() - protectionRange && loc.getX() < islandTestLocation.getX() + protectionRange @@ -808,23 +808,8 @@ public class IslandsManager { // Get the player's island from the grid if it exists Optional island = getIslandAt(loc); if (island.isPresent()) { - //plugin.getLogger().info("DEBUG: island here is " + island.getCenter()); - // On an island in the grid - //plugin.getLogger().info("DEBUG: onIsland = " + island.onIsland(loc)); - //plugin.getLogger().info("DEBUG: members = " + island.getMembers()); - //plugin.getLogger().info("DEBUG: player UUID = " + player.getUniqueId()); - - if (island.get().onIsland(loc) && island.get().getMemberSet().contains(player.getUniqueId())) { - //plugin.getLogger().info("DEBUG: allowed"); - // In a protected zone but is on the list of acceptable players - return true; - } else { - // Not allowed - //plugin.getLogger().info("DEBUG: not allowed"); - return false; - } - } else { - //plugin.getLogger().info("DEBUG: no island at this location"); + // Return whether the location is within the protected zone and the player is on the list of acceptable players + return island.get().onIsland(loc) && island.get().getMemberSet().contains(player.getUniqueId()); } // Not in the grid, so do it the old way // Make a list of test locations and test them @@ -833,20 +818,13 @@ public class IslandsManager { islandTestLocations.add(getIslandLocation(player.getUniqueId())); } // TODO: Check any coop locations - /* - islandTestLocations.addAll(CoopPlay.getInstance().getCoopIslands(player)); - if (islandTestLocations.isEmpty()) { - return false; - }*/ // Run through all the locations for (Location islandTestLocation : islandTestLocations) { if (loc.getWorld().equals(islandTestLocation.getWorld())) { - if (loc.getX() >= islandTestLocation.getX() - plugin.getSettings().getIslandProtectionRange() + return loc.getX() >= islandTestLocation.getX() - plugin.getSettings().getIslandProtectionRange() && loc.getX() < islandTestLocation.getX() + plugin.getSettings().getIslandProtectionRange() && loc.getZ() >= islandTestLocation.getZ() - plugin.getSettings().getIslandProtectionRange() - && loc.getZ() < islandTestLocation.getZ() + plugin.getSettings().getIslandProtectionRange()) { - return true; - } + && loc.getZ() < islandTestLocation.getZ() + plugin.getSettings().getIslandProtectionRange(); } } return false; @@ -866,7 +844,6 @@ public class IslandsManager { * @return */ private Location netherIsland(Location islandLocation) { - //plugin.getLogger().info("DEBUG: netherworld = " + ASkyBlock.getNetherWorld()); return islandLocation.toVector().toLocation(plugin.getIslandWorldManager().getNetherWorld()); } @@ -874,7 +851,7 @@ public class IslandsManager { * Checks if an online player is in the protected area of their island, a team island or a * coop island * - * @param player + * @param user * @return true if on valid island, false if not */ public boolean playerIsOnIsland(User user) { @@ -1025,7 +1002,7 @@ public class IslandsManager { if (DEBUG) { plugin.getLogger().info("DEBUG: leaving team"); } - plugin.getPlayers().clearPlayerHomes(playerUUID); + plugin.getPlayers().clearHomeLocations(playerUUID); removePlayer(playerUUID); } diff --git a/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java b/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java index 8210ba144..6c4fcd936 100644 --- a/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java +++ b/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java @@ -47,10 +47,9 @@ public class NewIsland { /** * Start building a new island - * @param plugin * @return New island builder object */ - public static Builder builder(BSkyBlock plugin) { + public static Builder builder() { return new Builder(); } @@ -106,7 +105,7 @@ public class NewIsland { if (DEBUG) { plugin.getLogger().info("DEBUG: finding island location"); } - Location next = getNextIsland(player.getUniqueId()); + Location next = getNextIsland(); if (DEBUG) { plugin.getLogger().info("DEBUG: found " + next); } @@ -173,7 +172,7 @@ public class NewIsland { default: break; } - event = IslandEvent.builder() + IslandEvent.builder() .involvedPlayer(player.getUniqueId()) .reason(reasonDone) .island(island) @@ -184,14 +183,12 @@ public class NewIsland { /** * Get the location of next free island spot - * @param playerUUID * @return Location of island spot */ - private Location getNextIsland(UUID playerUUID) { + private Location getNextIsland() { Location last = plugin.getIslands().getLast(); - if (DEBUG) - { + if (DEBUG) { plugin.getLogger().info("DEBUG: last = " + last); // Find the next free spot } @@ -209,7 +206,7 @@ public class NewIsland { plugin.getLogger().info("DEBUG: getting next loc"); } next = nextGridLocation(next); - }; + } // Make the last next, last last = next.clone(); if (DEBUG) { diff --git a/src/main/java/us/tastybento/bskyblock/database/objects/Island.java b/src/main/java/us/tastybento/bskyblock/database/objects/Island.java index 4e3e70895..323b4fe08 100755 --- a/src/main/java/us/tastybento/bskyblock/database/objects/Island.java +++ b/src/main/java/us/tastybento/bskyblock/database/objects/Island.java @@ -1,10 +1,7 @@ package us.tastybento.bskyblock.database.objects; -import java.util.HashMap; -import java.util.HashSet; +import java.util.*; import java.util.Map.Entry; -import java.util.Set; -import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -77,7 +74,7 @@ public class Island implements DataObject { //// Team //// private UUID owner; - private HashMap members = new HashMap<>(); + private Map members = new HashMap<>(); //// State //// private boolean locked = false; @@ -88,7 +85,7 @@ public class Island implements DataObject { //// Protection flags //// @Adapter(FlagSerializer.class) - private HashMap flags = new HashMap<>(); + private Map flags = new HashMap<>(); private int levelHandicap; @@ -175,7 +172,7 @@ public class Island implements DataObject { /** * @return the flags */ - public HashMap getFlags() { + public Map getFlags() { return flags; } @@ -196,7 +193,7 @@ public class Island implements DataObject { /** * @return the members */ - public HashMap getMembers() { + public Map getMembers() { return members; } @@ -292,14 +289,7 @@ public class Island implements DataObject { */ public int getRank(User user) { //Bukkit.getLogger().info("DEBUG: user UUID = " + user.getUniqueId()); - return members.containsKey(user.getUniqueId()) ? members.get(user.getUniqueId()) : RanksManager.VISITOR_RANK; - } - - /** - * @return the ranks - */ - public HashMap getRanks() { - return members; + return members.getOrDefault(user.getUniqueId(), RanksManager.VISITOR_RANK); } /** @@ -480,10 +470,8 @@ public class Island implements DataObject { */ public boolean onIsland(Location target) { if (center != null && center.getWorld() != null) { - if (target.getBlockX() >= minProtectedX && target.getBlockX() < (minProtectedX + protectionRange * 2) - && target.getBlockZ() >= minProtectedZ && target.getBlockZ() < (minProtectedZ + protectionRange * 2)) { - return true; - } + return target.getBlockX() >= minProtectedX && target.getBlockX() < (minProtectedX + protectionRange * 2) + && target.getBlockZ() >= minProtectedZ && target.getBlockZ() < (minProtectedZ + protectionRange * 2); } return false; @@ -530,7 +518,7 @@ public class Island implements DataObject { /** * @param flags the flags to set */ - public void setFlags(HashMap flags) { + public void setFlags(Map flags) { this.flags = flags; } @@ -574,7 +562,7 @@ public class Island implements DataObject { /** * @param members the members to set */ - public void setMembers(HashMap members) { + public void setMembers(Map members) { this.members = members; } @@ -667,7 +655,7 @@ public class Island implements DataObject { /** * @param ranks the ranks to set */ - public void setRanks(HashMap ranks) { + public void setRanks(Map ranks) { members = ranks; } diff --git a/src/main/java/us/tastybento/bskyblock/database/objects/Players.java b/src/main/java/us/tastybento/bskyblock/database/objects/Players.java index e69fa6579..68e54ea30 100755 --- a/src/main/java/us/tastybento/bskyblock/database/objects/Players.java +++ b/src/main/java/us/tastybento/bskyblock/database/objects/Players.java @@ -1,9 +1,6 @@ package us.tastybento.bskyblock.database.objects; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.UUID; +import java.util.*; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -17,13 +14,13 @@ import us.tastybento.bskyblock.BSkyBlock; * @author tastybento */ public class Players implements DataObject { - private HashMap homeLocations; + private Map homeLocations; private String uniqueId; private String playerName; private int resetsLeft; private String locale = ""; private int deaths; - private HashMap kickedList; + private Map kickedList; /** * This is required for database storage @@ -78,28 +75,28 @@ public class Players implements DataObject { /** * @return List of home locations */ - public HashMap getHomeLocations() { + public Map getHomeLocations() { return homeLocations; } /** * @return the kickedList */ - public HashMap getKickedList() { + public Map getKickedList() { return kickedList; } /** * @param kickedList the kickedList to set */ - public void setKickedList(HashMap kickedList) { + public void setKickedList(Map kickedList) { this.kickedList = kickedList; } /** * @param homeLocations the homeLocations to set */ - public void setHomeLocations(HashMap homeLocations) { + public void setHomeLocations(Map homeLocations) { //Bukkit.getLogger().info("DEBUG: " + homeLocations.toString()); this.homeLocations = homeLocations; } @@ -248,8 +245,7 @@ public class Players implements DataObject { // long hours = (coolDownTime.getTimeInMillis() - // timeNow.getTimeInMillis())/(1000 * 60 * 60); // Temp minutes - long hours = (coolDownTime.getTimeInMillis() - timeNow.getTimeInMillis()) / (1000 * 60); - return hours; + return (coolDownTime.getTimeInMillis() - timeNow.getTimeInMillis()) / (1000 * 60); } } return 0; @@ -267,14 +263,12 @@ public class Players implements DataObject { @Override public String getUniqueId() { - return uniqueId.toString(); + return uniqueId; } @Override public void setUniqueId(String uniqueId) { - //Bukkit.getLogger().info("DEBUG: uniqueId = " + uniqueId); this.uniqueId = uniqueId; - //Bukkit.getLogger().info("DEBUG: UUID = " + this.uniqueId); } } diff --git a/src/main/java/us/tastybento/bskyblock/database/objects/adapters/FlagSerializer.java b/src/main/java/us/tastybento/bskyblock/database/objects/adapters/FlagSerializer.java index 81334490e..e9bed17ea 100644 --- a/src/main/java/us/tastybento/bskyblock/database/objects/adapters/FlagSerializer.java +++ b/src/main/java/us/tastybento/bskyblock/database/objects/adapters/FlagSerializer.java @@ -1,6 +1,7 @@ package us.tastybento.bskyblock.database.objects.adapters; import java.util.HashMap; +import java.util.Map; import java.util.Map.Entry; import org.bukkit.Bukkit; @@ -11,16 +12,16 @@ import us.tastybento.bskyblock.api.flags.Flag; /** * Serializes the {@link us.tastybento.bskyblock.database.objects.Island#getFlags() getFlags()} and - * {@link us.tastybento.bskyblock.database.objects.Island#setFlags() setFlags()} + * {@link us.tastybento.bskyblock.database.objects.Island#setFlags(Map)} () setFlags()} * in {@link us.tastybento.bskyblock.database.objects.Island} * @author tastybento * */ -public class FlagSerializer implements AdapterInterface, HashMap> { +public class FlagSerializer implements AdapterInterface, Map> { @Override - public HashMap serialize(Object object) { - HashMap result = new HashMap<>(); + public Map serialize(Object object) { + Map result = new HashMap<>(); if (object == null) { return result; } @@ -33,7 +34,7 @@ public class FlagSerializer implements AdapterInterface, result.put(BSkyBlock.getInstance().getFlagsManager().getFlagByID(key), section.getInt(key)); } } else { - for (Entry en : ((HashMap)object).entrySet()) { + for (Entry en : ((Map)object).entrySet()) { result.put(BSkyBlock.getInstance().getFlagsManager().getFlagByID(en.getKey()), en.getValue()); } } @@ -41,18 +42,15 @@ public class FlagSerializer implements AdapterInterface, } @Override - public HashMap deserialize(Object object) { - HashMap result = new HashMap<>(); + public Map deserialize(Object object) { + Map result = new HashMap<>(); if (object == null) { return result; } - HashMap flags = (HashMap)object; + Map flags = (Map)object; for (Entry en: flags.entrySet()) { result.put(en.getKey().getID(), en.getValue()); } return result; } - - - } diff --git a/src/main/java/us/tastybento/bskyblock/listeners/flags/BreedingListener.java b/src/main/java/us/tastybento/bskyblock/listeners/flags/BreedingListener.java index 64f63503e..b11cf4ccf 100644 --- a/src/main/java/us/tastybento/bskyblock/listeners/flags/BreedingListener.java +++ b/src/main/java/us/tastybento/bskyblock/listeners/flags/BreedingListener.java @@ -28,7 +28,7 @@ public class BreedingListener extends AbstractFlagListener { * A list of items that cause breeding if a player has them in their hand and they click an animal * This list may need to be extended with future versions of Minecraft. */ - private final static List BREEDING_ITEMS = Arrays.asList( + private static final List BREEDING_ITEMS = Arrays.asList( Material.EGG, Material.WHEAT, Material.CARROT_ITEM, diff --git a/src/main/java/us/tastybento/bskyblock/listeners/flags/MobSpawnListener.java b/src/main/java/us/tastybento/bskyblock/listeners/flags/MobSpawnListener.java index 680160455..f3a59204c 100644 --- a/src/main/java/us/tastybento/bskyblock/listeners/flags/MobSpawnListener.java +++ b/src/main/java/us/tastybento/bskyblock/listeners/flags/MobSpawnListener.java @@ -43,33 +43,25 @@ public class MobSpawnListener extends AbstractFlagListener { || e.getSpawnReason().equals(SpawnReason.NETHER_PORTAL)) { Optional island = getIslands().getIslandAt(e.getLocation()); if (island.isPresent()) { - if (e.getEntity() instanceof Monster || e.getEntity() instanceof Slime) { - if (!island.get().isAllowed(Flags.MOB_SPAWN)) { - // Mobs not allowed to spawn - e.setCancelled(true); - return; - } - } else if (e.getEntity() instanceof Animals) { - if (!island.get().isAllowed(Flags.MONSTER_SPAWN)) { - // Mobs not allowed to spawn - e.setCancelled(true); - return; - } + if ((e.getEntity() instanceof Monster || e.getEntity() instanceof Slime) + && !island.get().isAllowed(Flags.MOB_SPAWN)) { + // Mobs not allowed to spawn + e.setCancelled(true); + } else if (e.getEntity() instanceof Animals + && !island.get().isAllowed(Flags.MONSTER_SPAWN)) { + // Mobs not allowed to spawn + e.setCancelled(true); } } else { // Outside of the island - if (e.getEntity() instanceof Monster || e.getEntity() instanceof Slime) { - if (!Flags.MOB_SPAWN.isDefaultSetting()) { - // Mobs not allowed to spawn - e.setCancelled(true); - return; - } - } else if (e.getEntity() instanceof Animals) { - if (!Flags.MONSTER_SPAWN.isDefaultSetting()) { - // Mobs not allowed to spawn - e.setCancelled(true); - return; - } + if ((e.getEntity() instanceof Monster || e.getEntity() instanceof Slime) + && !Flags.MOB_SPAWN.isDefaultSetting()) { + // Mobs not allowed to spawn + e.setCancelled(true); + } else if (e.getEntity() instanceof Animals + && !Flags.MONSTER_SPAWN.isDefaultSetting()) { + // Mobs not allowed to spawn + e.setCancelled(true); } } }