From fbf2a78a916023800c2336f31fef5b3d8b529630 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Thu, 27 Jul 2017 15:21:04 +0300 Subject: [PATCH] Add APF Notification prompt to Join Event Listener. --- ..._destroystokyo_paper_paper_spigot_1_12.xml | 14 ---------- ...itops_abstract_plugin_framework_2_0_1.xml} | 8 +++--- .../data/listeners/PlanPlayerListener.java | 27 ++++++++++++------- Plan/src/main/resources/plugin.yml | 3 ++- 4 files changed, 24 insertions(+), 28 deletions(-) delete mode 100644 Plan/.idea/libraries/Maven__com_destroystokyo_paper_paper_spigot_1_12.xml rename Plan/.idea/libraries/{Maven__com_djrapitops_abstract_plugin_framework_2_0_0.xml => Maven__com_djrapitops_abstract_plugin_framework_2_0_1.xml} (67%) diff --git a/Plan/.idea/libraries/Maven__com_destroystokyo_paper_paper_spigot_1_12.xml b/Plan/.idea/libraries/Maven__com_destroystokyo_paper_paper_spigot_1_12.xml deleted file mode 100644 index 52ad59c0d..000000000 --- a/Plan/.idea/libraries/Maven__com_destroystokyo_paper_paper_spigot_1_12.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Plan/.idea/libraries/Maven__com_djrapitops_abstract_plugin_framework_2_0_0.xml b/Plan/.idea/libraries/Maven__com_djrapitops_abstract_plugin_framework_2_0_1.xml similarity index 67% rename from Plan/.idea/libraries/Maven__com_djrapitops_abstract_plugin_framework_2_0_0.xml rename to Plan/.idea/libraries/Maven__com_djrapitops_abstract_plugin_framework_2_0_1.xml index e90b3b519..826d210d1 100644 --- a/Plan/.idea/libraries/Maven__com_djrapitops_abstract_plugin_framework_2_0_0.xml +++ b/Plan/.idea/libraries/Maven__com_djrapitops_abstract_plugin_framework_2_0_1.xml @@ -1,13 +1,13 @@ - + - + - + - + \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java index c7baf997f..48ce0197c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/data/listeners/PlanPlayerListener.java @@ -1,8 +1,9 @@ package main.java.com.djrapitops.plan.data.listeners; import com.djrapitops.plugin.task.AbsRunnable; +import com.djrapitops.plugin.utilities.player.Fetch; import com.djrapitops.plugin.utilities.player.Gamemode; -import com.djrapitops.plugin.utilities.player.bukkit.BukkitPlayer; +import com.djrapitops.plugin.utilities.player.IPlayer; import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.data.UserData; @@ -26,6 +27,7 @@ import java.util.UUID; * Event Listener for PlayerJoin, PlayerQuit and PlayerKickEvents. * * @author Rsl1122 + * @since 2.0.0 */ public class PlanPlayerListener implements Listener { @@ -35,8 +37,7 @@ public class PlanPlayerListener implements Listener { /** * Class Constructor. *

- * Copies the references to multiple handlers from Current instance of - * handler. + * Copies the references to multiple handlers from Current instance of handler. * * @param plugin Current instance of Plan */ @@ -48,41 +49,49 @@ public class PlanPlayerListener implements Listener { /** * PlayerJoinEvent Listener. *

- * If player is a new player, creates a new data in the database for the - * player. Retrieves the UserData, updates and then saves it to the Cache. + * If player is a new player, creates new data for the player. + *

+ * Adds a LoginInfo to the processingQueue if the user is not new. * * @param event The Fired event. */ @EventHandler(priority = EventPriority.MONITOR) public void onPlayerLogin(PlayerJoinEvent event) { Player player = event.getPlayer(); + + IPlayer iPlayer = Fetch.wrapBukkit(player); + plugin.getNotificationCenter().checkNotifications(iPlayer); + UUID uuid = player.getUniqueId(); handler.startSession(uuid); Log.debug(uuid + ": PlayerJoinEvent"); + plugin.getRunnableFactory().createNew(new AbsRunnable("NewPlayerCheckTask") { @Override public void run() { LoginInfo loginInfo = new LoginInfo(uuid, MiscUtils.getTime(), player.getAddress().getAddress(), player.isBanned(), player.getDisplayName(), Gamemode.wrap(player.getGameMode()), 1); boolean isNewPlayer = !plugin.getDB().wasSeenBefore(uuid); + if (isNewPlayer) { - UserData newUserData = NewPlayerCreator.createNewPlayer(BukkitPlayer.wrap(player)); + UserData newUserData = NewPlayerCreator.createNewPlayer(iPlayer); loginInfo.process(newUserData); handler.newPlayer(newUserData); } else { handler.addToPool(loginInfo); } + Log.debug(uuid + ": PlayerJoinEvent_AsyncTask_END, New:" + isNewPlayer); this.cancel(); } }).runTaskAsynchronously(); + Log.debug(uuid + ": PlayerJoinEvent_END"); } /** * PlayerQuitEvent Listener. *

- * Retrieves the current UserData for the Player, updates it, saves the data - * to Database and clears it from cache. + * Adds a LogoutInfo to the processing Queue. * * @param event Fired event */ @@ -100,7 +109,7 @@ public class PlanPlayerListener implements Listener { /** * PlayerKickEvent Listener. *

- * Updates current playerdata and saves it to the Database. + * Adds a KickInfo & LogoutInfo to the processing Queue. * * @param event Fired event */ diff --git a/Plan/src/main/resources/plugin.yml b/Plan/src/main/resources/plugin.yml index 1d827e17c..dd3010eb7 100644 --- a/Plan/src/main/resources/plugin.yml +++ b/Plan/src/main/resources/plugin.yml @@ -106,4 +106,5 @@ permissions: plan.*: children: plan.manage: true - plan.staff: true \ No newline at end of file + plan.staff: true + apf.notify: true \ No newline at end of file