From f2831c7258ba952a8b7a4ba17c1d4f9b440a26b9 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 29 Jul 2018 16:56:14 -0700 Subject: [PATCH] Improved addon loading error reporting Fixed a bug in the team invite error strings. --- .../bbox/api/addons/AddonClassLoader.java | 11 +++++----- .../island/team/IslandTeamInviteCommand.java | 22 +++++++++---------- .../bentobox/bbox/managers/AddonsManager.java | 3 +-- .../team/IslandTeamInviteCommandTest.java | 4 ++-- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/main/java/world/bentobox/bbox/api/addons/AddonClassLoader.java b/src/main/java/world/bentobox/bbox/api/addons/AddonClassLoader.java index 29e278d8a..7cef1170c 100644 --- a/src/main/java/world/bentobox/bbox/api/addons/AddonClassLoader.java +++ b/src/main/java/world/bentobox/bbox/api/addons/AddonClassLoader.java @@ -14,7 +14,6 @@ import org.bukkit.permissions.PermissionDefault; import org.bukkit.plugin.InvalidDescriptionException; import org.bukkit.util.permissions.DefaultPermissions; -import world.bentobox.bbox.BentoBox; import world.bentobox.bbox.api.addons.AddonDescription.AddonDescriptionBuilder; import world.bentobox.bbox.api.addons.exception.InvalidAddonFormatException; import world.bentobox.bbox.api.addons.exception.InvalidAddonInheritException; @@ -45,12 +44,12 @@ public class AddonClassLoader extends URLClassLoader { try { String mainClass = data.getString("main"); javaClass = Class.forName(mainClass, true, this); - if(mainClass.contains("us.tastybento")){ - throw new InvalidAddonFormatException("Packages declaration cannot start with 'us.tastybento'"); + if(mainClass.startsWith("world.bentobox")){ + throw new InvalidAddonFormatException("Packages declaration cannot start with 'world.bentobox'"); } - } catch (ClassNotFoundException e) { - BentoBox.getInstance().logError("Could not load '" + path.getName() + "' in folder '" + path.getParent() + "' - invalid addon.yml"); - throw new InvalidDescriptionException("Invalid addon.yml"); + } catch (Exception e) { + e.printStackTrace(); + throw new InvalidDescriptionException("Could not load '" + path.getName() + "' in folder '" + path.getParent() + "' - " + e.getMessage()); } Class addonClass; diff --git a/src/main/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommand.java b/src/main/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommand.java index 73ef8c837..95885a8f2 100644 --- a/src/main/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommand.java +++ b/src/main/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommand.java @@ -71,19 +71,19 @@ public class IslandTeamInviteCommand extends CompositeCommand { } // Player cannot invite themselves if (playerUUID.equals(invitedPlayerUUID)) { - user.sendMessage("commands.island.team.invite.cannot-invite-self"); + user.sendMessage("commands.island.team.invite.errors.cannot-invite-self"); return false; } // Check if this player can be invited to this island, or // whether they are still on cooldown long time = getPlayers().getInviteCoolDownTime(invitedPlayerUUID, getIslands().getIslandLocation(getWorld(), playerUUID)); if (time > 0 && !user.isOp()) { - user.sendMessage("commands.island.team.invite.cooldown", TextVariables.NUMBER, String.valueOf(time)); + user.sendMessage("commands.island.team.invite.errors.cooldown", TextVariables.NUMBER, String.valueOf(time)); return false; } // Player cannot invite someone already on a team if (getIslands().inTeam(getWorld(), invitedPlayerUUID)) { - user.sendMessage("commands.island.team.invite.already-on-team"); + user.sendMessage("commands.island.team.invite.errors.already-on-team"); return false; } return invite(user,invitedPlayer); @@ -146,14 +146,14 @@ public class IslandTeamInviteCommand extends CompositeCommand { public BiMap getInviteList() { return inviteList; } - + /** - * Gets the maximum team size for this player in this game based on the permission or the world's setting - * @param user - user - * @return max team size of user - */ - public int getMaxTeamSize(User user) { - return Util.getPermValue(user.getPlayer(), getPermissionPrefix() + "team.maxsize.", getIWM().getMaxTeamSize(getWorld())); - } + * Gets the maximum team size for this player in this game based on the permission or the world's setting + * @param user - user + * @return max team size of user + */ + public int getMaxTeamSize(User user) { + return Util.getPermValue(user.getPlayer(), getPermissionPrefix() + "team.maxsize.", getIWM().getMaxTeamSize(getWorld())); + } } diff --git a/src/main/java/world/bentobox/bbox/managers/AddonsManager.java b/src/main/java/world/bentobox/bbox/managers/AddonsManager.java index 3963f22a1..43482a6d5 100644 --- a/src/main/java/world/bentobox/bbox/managers/AddonsManager.java +++ b/src/main/java/world/bentobox/bbox/managers/AddonsManager.java @@ -92,8 +92,7 @@ public class AddonsManager { // Obtain the addon.yml file JarEntry entry = jar.getJarEntry("addon.yml"); if (entry == null) { - throw new InvalidAddonFormatException("Addon doesn't contains description file"); - + throw new InvalidAddonFormatException("Addon '" + f.getName() + "' doesn't contains addon.yml file"); } // Open a reader to the jar BufferedReader reader = new BufferedReader(new InputStreamReader(jar.getInputStream(entry))); diff --git a/src/test/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommandTest.java b/src/test/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommandTest.java index 11c7b4f9a..49cff7381 100644 --- a/src/test/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommandTest.java +++ b/src/test/java/world/bentobox/bbox/commands/island/team/IslandTeamInviteCommandTest.java @@ -190,7 +190,7 @@ public class IslandTeamInviteCommandTest { String[] name = {"tastybento"}; when(pm.getUUID(Mockito.any())).thenReturn(uuid); assertFalse(itl.execute(user, itl.getLabel(), Arrays.asList(name))); - Mockito.verify(user).sendMessage(Mockito.eq("commands.island.team.invite.cannot-invite-self")); + Mockito.verify(user).sendMessage(Mockito.eq("commands.island.team.invite.errors.cannot-invite-self")); } @@ -207,7 +207,7 @@ public class IslandTeamInviteCommandTest { when(pm.getUUID(Mockito.any())).thenReturn(notUUID); when(im.inTeam(Mockito.any(), Mockito.any())).thenReturn(true); assertFalse(itl.execute(user, itl.getLabel(), Arrays.asList(name))); - Mockito.verify(user).sendMessage(Mockito.eq("commands.island.team.invite.already-on-team")); + Mockito.verify(user).sendMessage(Mockito.eq("commands.island.team.invite.errors.already-on-team")); } }