mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-09-27 22:27:29 +02:00
Prevent invites to vanished players
https://github.com/BentoBoxWorld/BentoBox/issues/972
This commit is contained in:
parent
c05f2a3c15
commit
c1ede3c66a
@ -81,7 +81,7 @@ public class IslandTeamInviteCommand extends CompositeCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
invitedPlayer = User.getInstance(invitedPlayerUUID);
|
invitedPlayer = User.getInstance(invitedPlayerUUID);
|
||||||
if (!invitedPlayer.isOnline()) {
|
if (!invitedPlayer.isOnline() || !user.getPlayer().canSee(invitedPlayer.getPlayer())) {
|
||||||
user.sendMessage("general.errors.offline-player");
|
user.sendMessage("general.errors.offline-player");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,8 @@ public class IslandTeamInviteCommandTest {
|
|||||||
private UUID islandUUID;
|
private UUID islandUUID;
|
||||||
private IslandTeamInviteCommand itl;
|
private IslandTeamInviteCommand itl;
|
||||||
private UUID notUUID;
|
private UUID notUUID;
|
||||||
|
@Mock
|
||||||
|
private Player p;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -92,7 +94,6 @@ public class IslandTeamInviteCommandTest {
|
|||||||
// Player & users
|
// Player & users
|
||||||
PowerMockito.mockStatic(User.class);
|
PowerMockito.mockStatic(User.class);
|
||||||
|
|
||||||
Player p = mock(Player.class);
|
|
||||||
// Sometimes use Mockito.withSettings().verboseLogging()
|
// Sometimes use Mockito.withSettings().verboseLogging()
|
||||||
when(user.isOp()).thenReturn(false);
|
when(user.isOp()).thenReturn(false);
|
||||||
uuid = UUID.randomUUID();
|
uuid = UUID.randomUUID();
|
||||||
@ -104,6 +105,8 @@ public class IslandTeamInviteCommandTest {
|
|||||||
when(user.getPermissionValue(anyString(), anyInt())).thenReturn(3);
|
when(user.getPermissionValue(anyString(), anyInt())).thenReturn(3);
|
||||||
when(User.getInstance(eq(uuid))).thenReturn(user);
|
when(User.getInstance(eq(uuid))).thenReturn(user);
|
||||||
when(user.getTranslation(any())).thenAnswer(invocation -> invocation.getArgument(0, String.class));
|
when(user.getTranslation(any())).thenAnswer(invocation -> invocation.getArgument(0, String.class));
|
||||||
|
// Vanished players
|
||||||
|
when(p.canSee(any())).thenReturn(true);
|
||||||
|
|
||||||
User.setPlugin(plugin);
|
User.setPlugin(plugin);
|
||||||
// Target
|
// Target
|
||||||
@ -230,6 +233,16 @@ public class IslandTeamInviteCommandTest {
|
|||||||
assertFalse(itl.canExecute(user, itl.getLabel(), Collections.singletonList("target")));
|
assertFalse(itl.canExecute(user, itl.getLabel(), Collections.singletonList("target")));
|
||||||
verify(user).sendMessage(eq("general.errors.offline-player"));
|
verify(user).sendMessage(eq("general.errors.offline-player"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test method for {@link world.bentobox.bentobox.api.commands.island.team.IslandTeamInviteCommand#canExecute(User, String, java.util.List)}.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testCanExecuteVanishedPlayer() {
|
||||||
|
when(p.canSee(any())).thenReturn(false);
|
||||||
|
assertFalse(itl.canExecute(user, itl.getLabel(), Collections.singletonList("target")));
|
||||||
|
verify(user).sendMessage(eq("general.errors.offline-player"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user