Fix Folia compatibility

This commit is contained in:
HaHaWTH 2024-05-30 13:38:04 +08:00
parent 69f3d9838d
commit 2dd5ebcb8c
3 changed files with 18 additions and 8 deletions

View File

@ -1,6 +1,7 @@
package fr.xephi.authme.command.executable.authme; package fr.xephi.authme.command.executable.authme;
import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.command.PlayerCommand;
import fr.xephi.authme.service.BukkitService;
import fr.xephi.authme.settings.Settings; import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.SpawnLoader; import fr.xephi.authme.settings.SpawnLoader;
import fr.xephi.authme.settings.properties.SecuritySettings; import fr.xephi.authme.settings.properties.SecuritySettings;
@ -18,17 +19,21 @@ public class FirstSpawnCommand extends PlayerCommand {
private Settings settings; private Settings settings;
@Inject @Inject
private SpawnLoader spawnLoader; private SpawnLoader spawnLoader;
@Inject
private BukkitService bukkitService;
@Override @Override
public void runCommand(Player player, List<String> arguments) { public void runCommand(Player player, List<String> arguments) {
if (spawnLoader.getFirstSpawn() == null) { if (spawnLoader.getFirstSpawn() == null) {
player.sendMessage("[AuthMe] First spawn has failed, please try to define the first spawn"); player.sendMessage("[AuthMe] First spawn has failed, please try to define the first spawn");
} else { } else {
//String name= player.getName(); //String name= player.getName();
if(settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)) { bukkitService.runTaskIfFolia(player, () -> {
TeleportUtils.teleport(player, spawnLoader.getFirstSpawn()); if (settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)) {
} else { TeleportUtils.teleport(player, spawnLoader.getFirstSpawn());
player.teleport(spawnLoader.getFirstSpawn()); } else {
} player.teleport(spawnLoader.getFirstSpawn());
}
});
//player.teleport(spawnLoader.getFirstSpawn()); //player.teleport(spawnLoader.getFirstSpawn());
} }
} }

View File

@ -1,6 +1,7 @@
package fr.xephi.authme.command.executable.authme; package fr.xephi.authme.command.executable.authme;
import fr.xephi.authme.command.PlayerCommand; import fr.xephi.authme.command.PlayerCommand;
import fr.xephi.authme.service.BukkitService;
import fr.xephi.authme.settings.SpawnLoader; import fr.xephi.authme.settings.SpawnLoader;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -11,13 +12,17 @@ public class SpawnCommand extends PlayerCommand {
@Inject @Inject
private SpawnLoader spawnLoader; private SpawnLoader spawnLoader;
@Inject
private BukkitService bukkitService;
@Override @Override
public void runCommand(Player player, List<String> arguments) { public void runCommand(Player player, List<String> arguments) {
if (spawnLoader.getSpawn() == null) { if (spawnLoader.getSpawn() == null) {
player.sendMessage("[AuthMe] Spawn has failed, please try to define the spawn"); player.sendMessage("[AuthMe] Spawn has failed, please try to define the spawn");
} else { } else {
player.teleport(spawnLoader.getSpawn()); bukkitService.runTaskIfFolia(player, () -> {
player.teleport(spawnLoader.getSpawn());
});
} }
} }
} }

View File

@ -375,13 +375,13 @@ public class PlayerListener implements Listener{
Location spawn = spawnLoader.getSpawnLocation(player); Location spawn = spawnLoader.getSpawnLocation(player);
if (spawn != null && spawn.getWorld() != null) { if (spawn != null && spawn.getWorld() != null) {
if (!player.getWorld().equals(spawn.getWorld())) { if (!player.getWorld().equals(spawn.getWorld())) {
if(settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)) { if (settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)) {
TeleportUtils.teleport(player,spawn); TeleportUtils.teleport(player,spawn);
} else { } else {
player.teleport(spawn); player.teleport(spawn);
} }
} else if (spawn.distance(player.getLocation()) > settings.getProperty(ALLOWED_MOVEMENT_RADIUS)) { } else if (spawn.distance(player.getLocation()) > settings.getProperty(ALLOWED_MOVEMENT_RADIUS)) {
if(settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)) { if (settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)) {
TeleportUtils.teleport(player,spawn); TeleportUtils.teleport(player,spawn);
} else { } else {
player.teleport(spawn); player.teleport(spawn);