Fixed AdminTeamKickCommand not working properly

#577
This commit is contained in:
Florian CUNY 2019-02-24 11:11:25 +01:00
parent 7fff4257fa
commit 73417fd990
2 changed files with 19 additions and 21 deletions

View File

@ -27,27 +27,31 @@ public class AdminTeamKickCommand extends CompositeCommand {
}
@Override
public boolean execute(User user, String label, List<String> args) {
public boolean canExecute(User user, String label, List<String> args) {
// If args are not right, show help
if (args.size() != 1) {
showHelp(this, user);
return false;
}
// Get target
UUID targetUUID = getPlayers().getUUID(args.get(0));
if (targetUUID == null) {
user.sendMessage("general.errors.unknown-player", TextVariables.NAME, args.get(0));
return false;
}
if (!getIslands().hasIsland(getWorld(), targetUUID)) {
user.sendMessage("general.errors.no-island");
return false;
}
if (!getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("general.errors.not-in-team");
return false;
}
if (getIslands().getOwner(getWorld(), targetUUID).equals(targetUUID)) {
return true;
}
@Override
public boolean execute(User user, String label, List<String> args) {
UUID targetUUID = getPlayers().getUUID(args.get(0));
if (targetUUID.equals(getIslands().getOwner(getWorld(), targetUUID))) {
user.sendMessage("commands.admin.team.kick.cannot-kick-owner");
getIslands().getIsland(getWorld(), targetUUID).showMembers(user);
return false;
@ -65,8 +69,5 @@ public class AdminTeamKickCommand extends CompositeCommand {
.build();
Bukkit.getServer().getPluginManager().callEvent(event);
return true;
}
}

View File

@ -1,6 +1,3 @@
/**
*
*/
package world.bentobox.bentobox.api.commands.admin.team;
import static org.junit.Assert.assertFalse;
@ -129,37 +126,37 @@ public class AdminTeamKickCommandTest {
/**
* Test method for {@link AdminTeamKickCommand#execute(User, String, List)}.
* Test method for {@link AdminTeamKickCommand#canExecute(User, String, List)}.
*/
@Test
public void testExecuteNoTarget() {
public void testCanExecuteNoTarget() {
AdminTeamKickCommand itl = new AdminTeamKickCommand(ac);
assertFalse(itl.execute(user, itl.getLabel(), new ArrayList<>()));
assertFalse(itl.canExecute(user, itl.getLabel(), new ArrayList<>()));
// Show help
}
/**
* Test method for {@link AdminTeamKickCommand#execute(User, String, List)}.
* Test method for {@link AdminTeamKickCommand#canExecute(User, String, List)}.
*/
@Test
public void testExecuteUnknownPlayer() {
public void testCanExecuteUnknownPlayer() {
AdminTeamKickCommand itl = new AdminTeamKickCommand(ac);
String[] name = {"tastybento"};
when(pm.getUUID(Mockito.any())).thenReturn(null);
assertFalse(itl.execute(user, itl.getLabel(), Arrays.asList(name)));
assertFalse(itl.canExecute(user, itl.getLabel(), Arrays.asList(name)));
Mockito.verify(user).sendMessage("general.errors.unknown-player", "[name]", name[0]);
}
/**
* Test method for {@link AdminTeamKickCommand#execute(User, String, List)}.
* Test method for {@link AdminTeamKickCommand#canExecute(User, String, List)}.
*/
@Test
public void testExecutePlayerNotInTeam() {
public void testCanExecutePlayerNotInTeam() {
AdminTeamKickCommand itl = new AdminTeamKickCommand(ac);
String[] name = {"tastybento"};
when(pm.getUUID(Mockito.any())).thenReturn(notUUID);
when(im.getMembers(Mockito.any(), Mockito.any())).thenReturn(new HashSet<>());
assertFalse(itl.execute(user, itl.getLabel(), Arrays.asList(name)));
assertFalse(itl.canExecute(user, itl.getLabel(), Arrays.asList(name)));
Mockito.verify(user).sendMessage(Mockito.eq("general.errors.not-in-team"));
}