Admin team add command was not adding players correctly.

Fixes https://github.com/BentoBoxWorld/BentoBox/issues/506

Also, admin unregister was blocking unregistration of team players, but
that is an artificial constraint, so I enabled it. Without it, it would
not be possible to correct weird team issues like this one after they
happen.
This commit is contained in:
tastybento 2019-01-30 17:27:53 -08:00
parent 804d0f9878
commit 8dbf7ec231
4 changed files with 15 additions and 24 deletions

View File

@ -36,14 +36,11 @@ public class AdminUnregisterCommand extends CompositeCommand {
user.sendMessage("general.errors.unknown-player", TextVariables.NAME, args.get(0)); user.sendMessage("general.errors.unknown-player", TextVariables.NAME, args.get(0));
return false; return false;
} }
if (!getIslands().hasIsland(getWorld(), targetUUID)) { if (!getIslands().hasIsland(getWorld(), targetUUID) && !getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("general.errors.player-has-no-island"); user.sendMessage("general.errors.player-has-no-island");
return false; return false;
} }
if (getIslands().inTeam(getWorld(), targetUUID)) {
user.sendMessage("commands.admin.unregister.cannot-unregister-team-player");
return false;
}
// Unregister island // Unregister island
user.sendMessage("commands.admin.unregister.unregistered-island", "[xyz]", Util.xyz(getIslands().getIsland(getWorld(), targetUUID).getCenter().toVector())); user.sendMessage("commands.admin.unregister.unregistered-island", "[xyz]", Util.xyz(getIslands().getIsland(getWorld(), targetUUID).getCenter().toVector()));
getIslands().removePlayer(getWorld(), targetUUID); getIslands().removePlayer(getWorld(), targetUUID);

View File

@ -6,6 +6,7 @@ import java.util.UUID;
import world.bentobox.bentobox.api.commands.CompositeCommand; import world.bentobox.bentobox.api.commands.CompositeCommand;
import world.bentobox.bentobox.api.localization.TextVariables; import world.bentobox.bentobox.api.localization.TextVariables;
import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.api.user.User;
import world.bentobox.bentobox.database.objects.Island;
public class AdminTeamAddCommand extends CompositeCommand { public class AdminTeamAddCommand extends CompositeCommand {
@ -60,9 +61,15 @@ public class AdminTeamAddCommand extends CompositeCommand {
User owner = User.getInstance(ownerUUID); User owner = User.getInstance(ownerUUID);
owner.sendMessage("commands.island.team.invite.accept.name-joined-your-island", TextVariables.NAME, getPlugin().getPlayers().getName(targetUUID)); owner.sendMessage("commands.island.team.invite.accept.name-joined-your-island", TextVariables.NAME, getPlugin().getPlayers().getName(targetUUID));
target.sendMessage("commands.island.team.invite.accept.you-joined-island", TextVariables.LABEL, getTopLabel()); target.sendMessage("commands.island.team.invite.accept.you-joined-island", TextVariables.LABEL, getTopLabel());
getIslands().getIsland(getWorld(), ownerUUID).addMember(targetUUID); Island teamIsland = getIslands().getIsland(getWorld(), ownerUUID);
user.sendMessage("general.success"); if (teamIsland != null) {
return true; getIslands().setJoinTeam(teamIsland, targetUUID);
user.sendMessage("general.success");
return true;
} else {
user.sendMessage("general.errors.player-has-no-island");
return false;
}
} }

View File

@ -147,19 +147,6 @@ public class AdminUnregisterCommandTest {
Mockito.verify(user).sendMessage(Mockito.eq("general.errors.player-has-no-island")); Mockito.verify(user).sendMessage(Mockito.eq("general.errors.player-has-no-island"));
} }
/**
* Test method for .
*/
@Test
public void testExecuteInTeam() {
when(im.inTeam(Mockito.any(),Mockito.any())).thenReturn(true);
String[] name = {"tastybento"};
when(pm.getUUID(Mockito.any())).thenReturn(notUUID);
AdminUnregisterCommand itl = new AdminUnregisterCommand(ac);
assertFalse(itl.execute(user, itl.getLabel(), Arrays.asList(name)));
Mockito.verify(user).sendMessage("commands.admin.unregister.cannot-unregister-team-player");
}
/** /**
* Test method for . * Test method for .
*/ */

View File

@ -294,7 +294,7 @@ public class AdminTeamAddCommandTest {
// Success // Success
assertTrue(itl.execute(user, itl.getLabel(), Arrays.asList(name))); assertTrue(itl.execute(user, itl.getLabel(), Arrays.asList(name)));
Mockito.verify(island).addMember(notUUID); Mockito.verify(im).setJoinTeam(Mockito.eq(island), Mockito.eq(notUUID));
Mockito.verify(user).sendMessage(Mockito.eq("general.success")); Mockito.verify(user).sendMessage(Mockito.eq("general.success"));
} }