Skip to content

Commit 46cb717

Browse files
authored
Merge pull request #2888 from HaHaWTH/upstream/fix/y0-teleport
Fix y = 0 teleportUnAuthedToSpawn bug
2 parents c962471 + 8ee60e6 commit 46cb717

File tree

3 files changed

+7
-27
lines changed

3 files changed

+7
-27
lines changed

Diff for: src/main/java/fr/xephi/authme/process/login/ProcessSyncPlayerLogin.java

+5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ public void processPlayerLogin(Player player, boolean isFirstLogin, List<String>
9090
}
9191

9292
final PlayerAuth auth = playerCache.getAuth(name);
93+
94+
if (isFirstLogin) { // Save quit location before login teleport
95+
auth.setQuitLocation(player.getLocation());
96+
}
97+
9398
teleportationService.teleportOnLogin(player, auth, limbo);
9499

95100
// We can now display the join message (if delayed)

Diff for: src/main/java/fr/xephi/authme/service/TeleportationService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public void teleportOnLogin(final Player player, PlayerAuth auth, LimboPlayer li
140140
logger.debug("Teleporting `{0}` to spawn because of 'force-spawn after login'", player.getName());
141141
teleportToSpawn(player, true);
142142
} else if (settings.getProperty(TELEPORT_UNAUTHED_TO_SPAWN)) {
143-
if (settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION) && auth.getQuitLocY() != 0) {
143+
if (settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)) {
144144
Location location = buildLocationFromAuth(player, auth);
145145
logger.debug("Teleporting `{0}` after login, based on the player auth", player.getName());
146146
teleportBackFromSpawn(player, location);

Diff for: src/test/java/fr/xephi/authme/service/TeleportationServiceTest.java

+1-26
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222
import java.util.Arrays;
2323

2424
import static fr.xephi.authme.service.BukkitServiceTestHelper.setBukkitServiceToScheduleSyncTaskFromOptionallyAsyncTask;
25-
import static org.hamcrest.Matchers.equalTo;
2625
import static org.hamcrest.MatcherAssert.assertThat;
26+
import static org.hamcrest.Matchers.equalTo;
2727
import static org.mockito.ArgumentMatchers.any;
28-
import static org.mockito.ArgumentMatchers.anyString;
2928
import static org.mockito.BDDMockito.given;
3029
import static org.mockito.Mockito.doAnswer;
3130
import static org.mockito.Mockito.mock;
@@ -328,30 +327,6 @@ public void shouldTeleportAccordingToPlayerAuthAndPlayerWorldAsFallback() {
328327
assertCorrectLocation(locationCaptor.getValue(), auth, world);
329328
}
330329

331-
@Test
332-
public void shouldTeleportWithLimboPlayerIfAuthYCoordIsNotSet() {
333-
// given
334-
given(settings.getProperty(RestrictionSettings.TELEPORT_UNAUTHED_TO_SPAWN)).willReturn(true);
335-
given(settings.getProperty(RestrictionSettings.SAVE_QUIT_LOCATION)).willReturn(true);
336-
337-
PlayerAuth auth = createAuthWithLocation();
338-
auth.setQuitLocY(0.0);
339-
auth.setWorld("authWorld");
340-
Player player = mock(Player.class);
341-
given(player.isOnline()).willReturn(true);
342-
LimboPlayer limbo = mock(LimboPlayer.class);
343-
Location location = mockLocation();
344-
given(limbo.getLocation()).willReturn(location);
345-
setBukkitServiceToScheduleSyncTaskFromOptionallyAsyncTask(bukkitService);
346-
347-
// when
348-
teleportationService.teleportOnLogin(player, auth, limbo);
349-
350-
// then
351-
verify(player).teleport(location);
352-
verify(bukkitService, never()).getWorld(anyString());
353-
}
354-
355330
@Test
356331
public void shouldTeleportWithLimboPlayerIfSaveQuitLocIsDisabled() {
357332
// given

0 commit comments

Comments
 (0)