Fixed bugs

Fixed issues where Settings were used instead of WorldSettings.
Added getWorld to the Admin team commands.
This commit is contained in:
tastybento 2018-05-27 00:05:36 -07:00
parent 66d9ef857d
commit 60eac8e54e
12 changed files with 33 additions and 66 deletions

View File

@ -14,7 +14,7 @@ public interface BSBCommand {
/** /**
* Anything that needs to be set up for this command. * Anything that needs to be set up for this command.
* Do not register subcommands in this section. Put them after the super in the constructor * Register subcommands in this section.
*/ */
void setup(); void setup();

View File

@ -2,8 +2,6 @@ package us.tastybento.bskyblock.commands;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import us.tastybento.bskyblock.api.commands.CompositeCommand; import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.api.user.User;
@ -20,7 +18,6 @@ import us.tastybento.bskyblock.commands.island.IslandSetnameCommand;
import us.tastybento.bskyblock.commands.island.IslandSettingsCommand; import us.tastybento.bskyblock.commands.island.IslandSettingsCommand;
import us.tastybento.bskyblock.commands.island.IslandUnbanCommand; import us.tastybento.bskyblock.commands.island.IslandUnbanCommand;
import us.tastybento.bskyblock.commands.island.teams.IslandTeamCommand; import us.tastybento.bskyblock.commands.island.teams.IslandTeamCommand;
import us.tastybento.bskyblock.util.Util;
public class IslandCommand extends CompositeCommand { public class IslandCommand extends CompositeCommand {
@ -65,8 +62,7 @@ public class IslandCommand extends CompositeCommand {
return false; return false;
} }
if (args.isEmpty()) { if (args.isEmpty()) {
// If in world, go // If user has an island, go
if (getPlugin().getIslands().getIsland(getWorld(), user.getUniqueId()) != null) { if (getPlugin().getIslands().getIsland(getWorld(), user.getUniqueId()) != null) {
return getSubCommand("go").map(goCmd -> goCmd.execute(user, new ArrayList<>())).orElse(false); return getSubCommand("go").map(goCmd -> goCmd.execute(user, new ArrayList<>())).orElse(false);
} }
@ -78,11 +74,4 @@ public class IslandCommand extends CompositeCommand {
} }
@Override
public Optional<List<String>> tabComplete(User user, String alias, List<String> args) {
List<String> options = getPlugin().getIWM().getOverWorldNames().stream().collect(Collectors.toList());
String lastArg = !args.isEmpty() ? args.get(args.size()-1) : "";
return Optional.of(Util.tabLimit(options, lastArg));
}
} }

View File

@ -53,7 +53,7 @@ public class AdminRegisterCommand extends CompositeCommand {
// Register island if it exists // Register island if it exists
return island.map(i -> { return island.map(i -> {
// Island exists // Island exists
getIslands().makeLeader(user, targetUUID, i); getIslands().makeLeader(user, targetUUID, i, getPermissionPrefix());
user.sendMessage("commands.admin.register.registered-island", "[xyz]", Util.xyz(i.getCenter().toVector())); user.sendMessage("commands.admin.register.registered-island", "[xyz]", Util.xyz(i.getCenter().toVector()));
user.sendMessage("general.success"); user.sendMessage("general.success");
return true; return true;

View File

@ -3,8 +3,6 @@ package us.tastybento.bskyblock.commands.admin.teams;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.World;
import us.tastybento.bskyblock.api.commands.CompositeCommand; import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.api.user.User;
@ -24,8 +22,6 @@ public class AdminTeamAddCommand extends CompositeCommand {
@Override @Override
public boolean execute(User user, List<String> args) { public boolean execute(User user, List<String> args) {
// TODO: fix world
World world = getPlugin().getIWM().getIslandWorld();
// If args are not right, show help // If args are not right, show help
if (args.size() != 2) { if (args.size() != 2) {
showHelp(this, user); showHelp(this, user);
@ -42,20 +38,20 @@ public class AdminTeamAddCommand extends CompositeCommand {
user.sendMessage("general.errors.unknown-player-name", "[name]", args.get(1)); user.sendMessage("general.errors.unknown-player-name", "[name]", args.get(1));
return false; return false;
} }
if (!getIslands().hasIsland(world, leaderUUID)) { if (!getIslands().hasIsland(getWorld(), leaderUUID)) {
user.sendMessage("general.errors.player-has-no-island"); user.sendMessage("general.errors.player-has-no-island");
return false; return false;
} }
if (getIslands().inTeam(world, leaderUUID) && !getIslands().getTeamLeader(world, leaderUUID).equals(leaderUUID)) { if (getIslands().inTeam(getWorld(), leaderUUID) && !getIslands().getTeamLeader(getWorld(), leaderUUID).equals(leaderUUID)) {
user.sendMessage("commands.admin.team.add.name-not-leader", "[name]", args.get(0)); user.sendMessage("commands.admin.team.add.name-not-leader", "[name]", args.get(0));
getIslands().getIsland(world, leaderUUID).showMembers(getPlugin(), user); getIslands().getIsland(getWorld(), leaderUUID).showMembers(getPlugin(), user);
return false; return false;
} }
if (getIslands().inTeam(world, targetUUID)) { if (getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("commands.island.team.invite.errors.already-on-team"); user.sendMessage("commands.island.team.invite.errors.already-on-team");
return false; return false;
} }
if (getIslands().hasIsland(world, targetUUID)) { if (getIslands().hasIsland(getWorld(), targetUUID)) {
user.sendMessage("commands.admin.team.add.name-has-island", "[name]", args.get(1)); user.sendMessage("commands.admin.team.add.name-has-island", "[name]", args.get(1));
return false; return false;
} }
@ -64,7 +60,7 @@ public class AdminTeamAddCommand extends CompositeCommand {
User leader = User.getInstance(leaderUUID); User leader = User.getInstance(leaderUUID);
leader.sendMessage("commands.island.team.invite.accept.name-joined-your-island", "[name]", getPlugin().getPlayers().getName(targetUUID)); leader.sendMessage("commands.island.team.invite.accept.name-joined-your-island", "[name]", getPlugin().getPlayers().getName(targetUUID));
target.sendMessage("commands.island.team.invite.accept.you-joined-island", "[label]", getTopLabel()); target.sendMessage("commands.island.team.invite.accept.you-joined-island", "[label]", getTopLabel());
getIslands().getIsland(world, leaderUUID).addMember(targetUUID); getIslands().getIsland(getWorld(), leaderUUID).addMember(targetUUID);
user.sendMessage("general.success"); user.sendMessage("general.success");
return true; return true;

View File

@ -3,8 +3,6 @@ package us.tastybento.bskyblock.commands.admin.teams;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.World;
import us.tastybento.bskyblock.api.commands.CompositeCommand; import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.api.user.User;
@ -23,9 +21,6 @@ public class AdminTeamDisbandCommand extends CompositeCommand {
@Override @Override
public boolean execute(User user, List<String> args) { public boolean execute(User user, List<String> args) {
// TODO: fix world
World world = getPlugin().getIWM().getIslandWorld();
// If args are not right, show help // If args are not right, show help
if (args.size() != 1) { if (args.size() != 1) {
showHelp(this, user); showHelp(this, user);
@ -37,24 +32,24 @@ public class AdminTeamDisbandCommand extends CompositeCommand {
user.sendMessage("general.errors.unknown-player"); user.sendMessage("general.errors.unknown-player");
return false; return false;
} }
if (!getIslands().hasIsland(world, targetUUID)) { if (!getIslands().hasIsland(getWorld(), targetUUID)) {
user.sendMessage("general.errors.no-island"); user.sendMessage("general.errors.no-island");
return false; return false;
} }
if (!getIslands().inTeam(world, targetUUID)) { if (!getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("general.errors.not-in-team"); user.sendMessage("general.errors.not-in-team");
return false; return false;
} }
if (!getIslands().getTeamLeader(world, targetUUID).equals(targetUUID)) { if (!getIslands().getTeamLeader(getWorld(), targetUUID).equals(targetUUID)) {
user.sendMessage("commands.admin.team.disband.use-disband-leader", "[leader]", getPlayers().getName(getIslands().getTeamLeader(world, targetUUID))); user.sendMessage("commands.admin.team.disband.use-disband-leader", "[leader]", getPlayers().getName(getIslands().getTeamLeader(getWorld(), targetUUID)));
return false; return false;
} }
// Disband team // Disband team
getIslands().getMembers(world, targetUUID).forEach(m -> { getIslands().getMembers(getWorld(), targetUUID).forEach(m -> {
User.getInstance(m).sendMessage("commands.admin.team.disband.disbanded"); User.getInstance(m).sendMessage("commands.admin.team.disband.disbanded");
// The leader gets to keep the island // The leader gets to keep the island
if (!m.equals(targetUUID)) { if (!m.equals(targetUUID)) {
getIslands().setLeaveTeam(world, m); getIslands().setLeaveTeam(getWorld(), m);
} }
}); });
user.sendMessage("general.success"); user.sendMessage("general.success");

View File

@ -3,8 +3,6 @@ package us.tastybento.bskyblock.commands.admin.teams;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.World;
import us.tastybento.bskyblock.api.commands.CompositeCommand; import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.api.user.User;
@ -24,9 +22,6 @@ public class AdminTeamKickCommand extends CompositeCommand {
@Override @Override
public boolean execute(User user, List<String> args) { public boolean execute(User user, List<String> args) {
// TODO: fix world
World world = getPlugin().getIWM().getIslandWorld();
// If args are not right, show help // If args are not right, show help
if (args.size() != 1) { if (args.size() != 1) {
showHelp(this, user); showHelp(this, user);
@ -38,21 +33,21 @@ public class AdminTeamKickCommand extends CompositeCommand {
user.sendMessage("general.errors.unknown-player"); user.sendMessage("general.errors.unknown-player");
return false; return false;
} }
if (!getIslands().hasIsland(world, targetUUID)) { if (!getIslands().hasIsland(getWorld(), targetUUID)) {
user.sendMessage("general.errors.no-island"); user.sendMessage("general.errors.no-island");
return false; return false;
} }
if (!getIslands().inTeam(world, targetUUID)) { if (!getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("general.errors.not-in-team"); user.sendMessage("general.errors.not-in-team");
return false; return false;
} }
if (getIslands().getTeamLeader(world, targetUUID).equals(targetUUID)) { if (getIslands().getTeamLeader(getWorld(), targetUUID).equals(targetUUID)) {
user.sendMessage("commands.admin.team.kick.cannot-kick-leader"); user.sendMessage("commands.admin.team.kick.cannot-kick-leader");
getIslands().getIsland(world, targetUUID).showMembers(getPlugin(), user); getIslands().getIsland(getWorld(), targetUUID).showMembers(getPlugin(), user);
return false; return false;
} }
User.getInstance(targetUUID).sendMessage("commands.admin.team.kick.admin-kicked"); User.getInstance(targetUUID).sendMessage("commands.admin.team.kick.admin-kicked");
getIslands().removePlayer(world, targetUUID); getIslands().removePlayer(getWorld(), targetUUID);
user.sendMessage("general.success"); user.sendMessage("general.success");
return true; return true;

View File

@ -3,8 +3,6 @@ package us.tastybento.bskyblock.commands.admin.teams;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.bukkit.World;
import us.tastybento.bskyblock.api.commands.CompositeCommand; import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.api.user.User; import us.tastybento.bskyblock.api.user.User;
@ -23,9 +21,6 @@ public class AdminTeamMakeLeaderCommand extends CompositeCommand {
@Override @Override
public boolean execute(User user, List<String> args) { public boolean execute(User user, List<String> args) {
// TODO: fix world
World world = getPlugin().getIWM().getIslandWorld();
// If args are not right, show help // If args are not right, show help
if (args.size() != 1) { if (args.size() != 1) {
showHelp(this, user); showHelp(this, user);
@ -37,20 +32,20 @@ public class AdminTeamMakeLeaderCommand extends CompositeCommand {
user.sendMessage("general.errors.unknown-player"); user.sendMessage("general.errors.unknown-player");
return false; return false;
} }
if (!getIslands().hasIsland(world, targetUUID)) { if (!getIslands().hasIsland(getWorld(), targetUUID)) {
user.sendMessage("general.errors.no-island"); user.sendMessage("general.errors.no-island");
return false; return false;
} }
if (!getIslands().inTeam(world, targetUUID)) { if (!getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("general.errors.not-in-team"); user.sendMessage("general.errors.not-in-team");
return false; return false;
} }
if (getIslands().getTeamLeader(world, targetUUID).equals(targetUUID)) { if (getIslands().getTeamLeader(getWorld(), targetUUID).equals(targetUUID)) {
user.sendMessage("commands.admin.team.makeleader.already-leader"); user.sendMessage("commands.admin.team.makeleader.already-leader");
return false; return false;
} }
// Make new leader // Make new leader
getIslands().makeLeader(world, user, targetUUID); getIslands().makeLeader(getWorld(), user, targetUUID, getPermissionPrefix());
user.sendMessage("general.success"); user.sendMessage("general.success");
return true; return true;
} }

View File

@ -44,7 +44,7 @@ public class IslandGoCommand extends CompositeCommand {
} }
if (!args.isEmpty() && NumberUtils.isDigits(args.get(0))) { if (!args.isEmpty() && NumberUtils.isDigits(args.get(0))) {
int homeValue = Integer.valueOf(args.get(0)); int homeValue = Integer.valueOf(args.get(0));
int maxHomes = Util.getPermValue(user.getPlayer(), "island.maxhomes", getSettings().getMaxHomes()); int maxHomes = Util.getPermValue(user.getPlayer(), "island.maxhomes", getIWM().getMaxHomes(getWorld()));
if (homeValue > 1 && homeValue <= maxHomes) { if (homeValue > 1 && homeValue <= maxHomes) {
getIslands().homeTeleport(getWorld(), user.getPlayer(), homeValue); getIslands().homeTeleport(getWorld(), user.getPlayer(), homeValue);
user.sendMessage("commands.island.go.tip", "[label]", getTopLabel()); user.sendMessage("commands.island.go.tip", "[label]", getTopLabel());

View File

@ -68,7 +68,7 @@ public class IslandTeamSetownerCommand extends CompositeCommand {
if (event.isCancelled()) { if (event.isCancelled()) {
return false; return false;
} }
getIslands().makeLeader(getWorld(), user, targetUUID); getIslands().makeLeader(getWorld(), user, targetUUID, getPermissionPrefix());
getIslands().save(true); getIslands().save(true);
return true; return true;
} }

View File

@ -794,9 +794,6 @@ public class IslandsManager {
return getMembers(world, playerUUID).size() > 1; return getMembers(world, playerUUID).size() > 1;
} }
private int getMaxRangeSize(User user) {
return Util.getPermValue(user.getPlayer(), "island.range.", plugin.getSettings().getIslandProtectionRange());
}
/** /**
* Makes a new leader for an island * Makes a new leader for an island
@ -804,8 +801,8 @@ public class IslandsManager {
* @param user - the user who is issuing the command * @param user - the user who is issuing the command
* @param targetUUID - the current island member who is going to become the leader * @param targetUUID - the current island member who is going to become the leader
*/ */
public void makeLeader(World world, User user, UUID targetUUID) { public void makeLeader(World world, User user, UUID targetUUID, String permPrefix) {
makeLeader(user, targetUUID, getIsland(world, targetUUID)); makeLeader(user, targetUUID, getIsland(world, targetUUID), permPrefix);
} }
/** /**
@ -814,7 +811,7 @@ public class IslandsManager {
* @param targetUUID - new leader * @param targetUUID - new leader
* @param island - island to register * @param island - island to register
*/ */
public void makeLeader(User user, UUID targetUUID, Island island) { public void makeLeader(User user, UUID targetUUID, Island island, String permPrefix) {
islandCache.setOwner(island, targetUUID); islandCache.setOwner(island, targetUUID);
user.sendMessage("commands.island.team.setowner.name-is-the-owner", "[name]", plugin.getPlayers().getName(targetUUID)); user.sendMessage("commands.island.team.setowner.name-is-the-owner", "[name]", plugin.getPlayers().getName(targetUUID));
@ -824,7 +821,7 @@ public class IslandsManager {
target.sendMessage("commands.island.team.setowner.you-are-the-owner"); target.sendMessage("commands.island.team.setowner.you-are-the-owner");
if (target.isOnline()) { if (target.isOnline()) {
// Check if new leader has a different range permission than the island size // Check if new leader has a different range permission than the island size
int range = getMaxRangeSize(target); int range = Util.getPermValue(target.getPlayer(), permPrefix + "island.range.", plugin.getIWM().getIslandProtectionRange(Util.getWorld(island.getWorld())));
// Range can go up or down // Range can go up or down
if (range != island.getProtectionRange()) { if (range != island.getProtectionRange()) {
user.sendMessage("commands.admin.setrange.range-updated", "[number]", String.valueOf(range)); user.sendMessage("commands.admin.setrange.range-updated", "[number]", String.valueOf(range));

View File

@ -40,11 +40,11 @@ public class DeleteIslandChunks {
for (int x = minXChunk; x <= maxXChunk; x++) { for (int x = minXChunk; x <= maxXChunk; x++) {
for (int z = minZChunk; z<=maxZChunk; z++) { for (int z = minZChunk; z<=maxZChunk; z++) {
world.regenerateChunk(x, z); world.regenerateChunk(x, z);
if (plugin.getSettings().isNetherGenerate() && plugin.getSettings().isNetherIslands()) { if (plugin.getIWM().isNetherGenerate(world) && plugin.getIWM().isNetherIslands(world)) {
plugin.getIWM().getNetherWorld().regenerateChunk(x, z); plugin.getIWM().getNetherWorld().regenerateChunk(x, z);
} }
if (plugin.getSettings().isEndGenerate() && plugin.getSettings().isEndIslands()) { if (plugin.getIWM().isEndGenerate(world) && plugin.getIWM().isEndIslands(world)) {
plugin.getIWM().getEndWorld().regenerateChunk(x, z); plugin.getIWM().getEndWorld().regenerateChunk(x, z);
} }
} }

View File

@ -199,7 +199,7 @@ public class AdminTeamMakeLeaderCommandTest {
AdminTeamMakeLeaderCommand itl = new AdminTeamMakeLeaderCommand(ac); AdminTeamMakeLeaderCommand itl = new AdminTeamMakeLeaderCommand(ac);
assertTrue(itl.execute(user, Arrays.asList(name))); assertTrue(itl.execute(user, Arrays.asList(name)));
// Add other verifications // Add other verifications
Mockito.verify(im).makeLeader(Mockito.any(), Mockito.eq(user), Mockito.eq(notUUID)); Mockito.verify(im).makeLeader(Mockito.any(), Mockito.eq(user), Mockito.eq(notUUID), Mockito.any());
Mockito.verify(user).sendMessage(Mockito.eq("general.success")); Mockito.verify(user).sendMessage(Mockito.eq("general.success"));
} }