mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-10-03 00:47:33 +02:00
Fix non-spigot server support
This commit is contained in:
parent
60c7499cf4
commit
caf2a0ee9e
@ -21,6 +21,7 @@ import fr.xephi.authme.listener.PlayerListener111;
|
||||
import fr.xephi.authme.listener.PlayerListener16;
|
||||
import fr.xephi.authme.listener.PlayerListener18;
|
||||
import fr.xephi.authme.listener.PlayerListener19;
|
||||
import fr.xephi.authme.listener.PlayerListener19Spigot;
|
||||
import fr.xephi.authme.listener.ServerListener;
|
||||
import fr.xephi.authme.security.HashAlgorithm;
|
||||
import fr.xephi.authme.security.crypts.Sha256;
|
||||
@ -313,6 +314,11 @@ public class AuthMe extends JavaPlugin {
|
||||
pluginManager.registerEvents(injector.getSingleton(PlayerListener19.class), this);
|
||||
}
|
||||
|
||||
// Try to register 1.9 spigot player listeners
|
||||
if (isClassLoaded("org.spigotmc.event.player.PlayerSpawnLocationEvent")) {
|
||||
pluginManager.registerEvents(injector.getSingleton(PlayerListener19Spigot.class), this);
|
||||
}
|
||||
|
||||
// Register listener for 1.11 events if available
|
||||
if (isClassLoaded("org.bukkit.event.entity.EntityAirChangeEvent")) {
|
||||
pluginManager.registerEvents(injector.getSingleton(PlayerListener111.class), this);
|
||||
|
@ -191,7 +191,7 @@ public class PlayerListener implements Listener {
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
|
||||
if (!PlayerListener19.isIsPlayerSpawnLocationEventCalled()) {
|
||||
if (!PlayerListener19Spigot.isIsPlayerSpawnLocationEventCalled()) {
|
||||
teleportationService.teleportOnJoin(player);
|
||||
management.performJoin(player, player.getLocation());
|
||||
}
|
||||
|
@ -1,51 +1,20 @@
|
||||
package fr.xephi.authme.listener;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import fr.xephi.authme.process.Management;
|
||||
import fr.xephi.authme.service.TeleportationService;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerSwapHandItemsEvent;
|
||||
import org.spigotmc.event.player.PlayerSpawnLocationEvent;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Listener of player events for events introduced in Minecraft 1.9.
|
||||
*/
|
||||
public class PlayerListener19 implements Listener {
|
||||
|
||||
@Inject
|
||||
private Management management;
|
||||
|
||||
@Inject
|
||||
private TeleportationService teleportationService;
|
||||
|
||||
@Inject
|
||||
private ListenerService listenerService;
|
||||
|
||||
private static boolean IS_PLAYER_SPAWN_LOCATION_EVENT_CALLED = false;
|
||||
|
||||
public static boolean isIsPlayerSpawnLocationEventCalled() {
|
||||
return IS_PLAYER_SPAWN_LOCATION_EVENT_CALLED;
|
||||
}
|
||||
|
||||
// Note: the following event is called since MC1.9, in older versions we have to fallback on the PlayerJoinEvent
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerSpawn(PlayerSpawnLocationEvent event) {
|
||||
PlayerListener19.IS_PLAYER_SPAWN_LOCATION_EVENT_CALLED = true;
|
||||
final Player player = event.getPlayer();
|
||||
|
||||
management.performJoin(player, event.getSpawnLocation());
|
||||
|
||||
Location customSpawnLocation = teleportationService.prepareOnJoinSpawnLocation(player);
|
||||
if (customSpawnLocation != null) {
|
||||
event.setSpawnLocation(customSpawnLocation);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
|
||||
public void onPlayerSwapHandItems(PlayerSwapHandItemsEvent event) {
|
||||
if (listenerService.shouldCancelEvent(event)) {
|
||||
|
@ -0,0 +1,42 @@
|
||||
package fr.xephi.authme.listener;
|
||||
|
||||
import fr.xephi.authme.process.Management;
|
||||
import fr.xephi.authme.service.TeleportationService;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.spigotmc.event.player.PlayerSpawnLocationEvent;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class PlayerListener19Spigot implements Listener {
|
||||
|
||||
@Inject
|
||||
private Management management;
|
||||
|
||||
@Inject
|
||||
private TeleportationService teleportationService;
|
||||
|
||||
private static boolean IS_PLAYER_SPAWN_LOCATION_EVENT_CALLED = false;
|
||||
|
||||
public static boolean isIsPlayerSpawnLocationEventCalled() {
|
||||
return IS_PLAYER_SPAWN_LOCATION_EVENT_CALLED;
|
||||
}
|
||||
|
||||
// Note: the following event is called since MC1.9, in older versions we have to fallback on the PlayerJoinEvent
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerSpawn(PlayerSpawnLocationEvent event) {
|
||||
IS_PLAYER_SPAWN_LOCATION_EVENT_CALLED = true;
|
||||
final Player player = event.getPlayer();
|
||||
|
||||
management.performJoin(player, event.getSpawnLocation());
|
||||
|
||||
Location customSpawnLocation = teleportationService.prepareOnJoinSpawnLocation(player);
|
||||
if (customSpawnLocation != null) {
|
||||
event.setSpawnLocation(customSpawnLocation);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -32,7 +32,7 @@ public final class ListenerConsistencyTest {
|
||||
"PlayerListener#onPlayerQuit", "ServerListener#onPluginDisable",
|
||||
"ServerListener#onServerPing", "ServerListener#onPluginEnable",
|
||||
"PlayerListener#onJoinMessage", "PlayerListener#onAsyncPlayerPreLoginEvent",
|
||||
"PlayerListener19#onPlayerSpawn");
|
||||
"PlayerListener19Spigot#onPlayerSpawn");
|
||||
|
||||
@BeforeClass
|
||||
public static void collectListenerClasses() {
|
||||
|
Loading…
Reference in New Issue
Block a user