From 121dd7e6fb1a662a479147e31f57f00d460e8ed7 Mon Sep 17 00:00:00 2001 From: Xephi59 Date: Mon, 2 May 2016 02:13:19 +0200 Subject: [PATCH] Add Spigot API - 1.9 PlayerSpawnLocationEvent --- pom.xml | 8 +++ src/main/java/fr/xephi/authme/AuthMe.java | 61 +++++++++++-------- .../fr/xephi/authme/hooks/PluginHooks.java | 14 +++-- .../listener/AuthMePlayerListener19.java | 26 ++++++++ 4 files changed, 77 insertions(+), 32 deletions(-) create mode 100644 src/main/java/fr/xephi/authme/listener/AuthMePlayerListener19.java diff --git a/pom.xml b/pom.xml index ec273c53..832fdce8 100644 --- a/pom.xml +++ b/pom.xml @@ -429,6 +429,14 @@ true + + + org.spigotmc + spigot-api + 1.9.2-R0.1-SNAPSHOT + provided + + org.bukkit diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 6aebc2f2..66a49dbd 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -1,5 +1,32 @@ package fr.xephi.authme; +import static fr.xephi.authme.settings.properties.EmailSettings.MAIL_ACCOUNT; +import static fr.xephi.authme.settings.properties.EmailSettings.MAIL_PASSWORD; +import static fr.xephi.authme.settings.properties.EmailSettings.RECALL_PLAYERS; +import static fr.xephi.authme.settings.properties.PluginSettings.HELP_HEADER; + +import java.io.File; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; + +import org.apache.logging.log4j.LogManager; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Server; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitTask; + import fr.xephi.authme.api.API; import fr.xephi.authme.api.NewAPI; import fr.xephi.authme.cache.auth.PlayerAuth; @@ -27,6 +54,7 @@ import fr.xephi.authme.listener.AuthMeInventoryPacketAdapter; import fr.xephi.authme.listener.AuthMePlayerListener; import fr.xephi.authme.listener.AuthMePlayerListener16; import fr.xephi.authme.listener.AuthMePlayerListener18; +import fr.xephi.authme.listener.AuthMePlayerListener19; import fr.xephi.authme.listener.AuthMeServerListener; import fr.xephi.authme.listener.AuthMeTabCompletePacketAdapter; import fr.xephi.authme.listener.AuthMeTablistPacketAdapter; @@ -62,32 +90,6 @@ import fr.xephi.authme.util.MigrationService; import fr.xephi.authme.util.StringUtils; import fr.xephi.authme.util.Utils; import fr.xephi.authme.util.ValidationService; -import org.apache.logging.log4j.LogManager; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.plugin.PluginManager; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitTask; - -import java.io.File; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; - -import static fr.xephi.authme.settings.properties.EmailSettings.MAIL_ACCOUNT; -import static fr.xephi.authme.settings.properties.EmailSettings.MAIL_PASSWORD; -import static fr.xephi.authme.settings.properties.EmailSettings.RECALL_PLAYERS; -import static fr.xephi.authme.settings.properties.PluginSettings.HELP_HEADER; /** * The AuthMe main class. @@ -398,6 +400,13 @@ public class AuthMe extends JavaPlugin { pluginManager.registerEvents(new AuthMePlayerListener18(), this); } catch (ClassNotFoundException ignore) { } + + // Try to register 1.9 player listeners + try { + Class.forName("org.spigotmc.event.player.PlayerSpawnLocationEvent"); + pluginManager.registerEvents(new AuthMePlayerListener19(this), this); + } catch (ClassNotFoundException ignore) { + } } private void reloadSupportHook() { diff --git a/src/main/java/fr/xephi/authme/hooks/PluginHooks.java b/src/main/java/fr/xephi/authme/hooks/PluginHooks.java index 3a54709a..fd455bb1 100644 --- a/src/main/java/fr/xephi/authme/hooks/PluginHooks.java +++ b/src/main/java/fr/xephi/authme/hooks/PluginHooks.java @@ -1,17 +1,19 @@ package fr.xephi.authme.hooks; -import com.earth2me.essentials.Essentials; -import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.api.MVWorldManager; -import fr.xephi.authme.ConsoleLogger; -import net.minelink.ctplus.CombatTagPlus; +import java.io.File; + import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; -import java.io.File; +import com.earth2me.essentials.Essentials; +import com.onarandombox.MultiverseCore.MultiverseCore; +import com.onarandombox.MultiverseCore.api.MVWorldManager; + +import fr.xephi.authme.ConsoleLogger; +import net.minelink.ctplus.CombatTagPlus; /** * Hooks into third-party plugins and allows to perform actions on them. diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener19.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener19.java new file mode 100644 index 00000000..5e6525bb --- /dev/null +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener19.java @@ -0,0 +1,26 @@ +package fr.xephi.authme.listener; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import fr.xephi.authme.AuthMe; + +/** + * Listener of player events for events introduced in Minecraft 1.9. + */ +public class AuthMePlayerListener19 implements Listener { + + private final AuthMe plugin; + + public AuthMePlayerListener19(AuthMe plugin) { + this.plugin = plugin; + } + + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerSpawn(PlayerSpawnLocationEvent event) { + event.setSpawnLocation(plugin.getSpawnLocation(event.getPlayer())); + } + +}