Skip to content

Commit

Permalink
Merge pull request #2888 from HaHaWTH/upstream/fix/y0-teleport
Browse files Browse the repository at this point in the history
Fix y = 0 teleportUnAuthedToSpawn bug
  • Loading branch information
sgdc3 authored Oct 21, 2024
2 parents c962471 + 8ee60e6 commit 46cb717
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@ public void processPlayerLogin(Player player, boolean isFirstLogin, List<String>
}

final PlayerAuth auth = playerCache.getAuth(name);

if (isFirstLogin) { // Save quit location before login teleport
auth.setQuitLocation(player.getLocation());
}

teleportationService.teleportOnLogin(player, auth, limbo);

// We can now display the join message (if delayed)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public void teleportOnLogin(final Player player, PlayerAuth auth, LimboPlayer li
logger.debug("Teleporting `{0}` to spawn because of 'force-spawn after login'", player.getName());
teleportToSpawn(player, true);
} else if (settings.getProperty(TELEPORT_UNAUTHED_TO_SPAWN)) {
if (settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION) && auth.getQuitLocY() != 0) {
if (settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)) {
Location location = buildLocationFromAuth(player, auth);
logger.debug("Teleporting `{0}` after login, based on the player auth", player.getName());
teleportBackFromSpawn(player, location);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,9 @@
import java.util.Arrays;

import static fr.xephi.authme.service.BukkitServiceTestHelper.setBukkitServiceToScheduleSyncTaskFromOptionallyAsyncTask;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
Expand Down Expand Up @@ -328,30 +327,6 @@ public void shouldTeleportAccordingToPlayerAuthAndPlayerWorldAsFallback() {
assertCorrectLocation(locationCaptor.getValue(), auth, world);
}

@Test
public void shouldTeleportWithLimboPlayerIfAuthYCoordIsNotSet() {
// given
given(settings.getProperty(RestrictionSettings.TELEPORT_UNAUTHED_TO_SPAWN)).willReturn(true);
given(settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)).willReturn(true);

PlayerAuth auth = createAuthWithLocation();
auth.setQuitLocY(0.0);
auth.setWorld("authWorld");
Player player = mock(Player.class);
given(player.isOnline()).willReturn(true);
LimboPlayer limbo = mock(LimboPlayer.class);
Location location = mockLocation();
given(limbo.getLocation()).willReturn(location);
setBukkitServiceToScheduleSyncTaskFromOptionallyAsyncTask(bukkitService);

// when
teleportationService.teleportOnLogin(player, auth, limbo);

// then
verify(player).teleport(location);
verify(bukkitService, never()).getWorld(anyString());
}

@Test
public void shouldTeleportWithLimboPlayerIfSaveQuitLocIsDisabled() {
// given
Expand Down

0 comments on commit 46cb717

Please sign in to comment.