diff --git a/src/main/java/fr/korastrip/paperplugin/SharedStats.java b/src/main/java/fr/korastrip/paperplugin/SharedStats.java
index 4bbaffe..065e71f 100644
--- a/src/main/java/fr/korastrip/paperplugin/SharedStats.java
+++ b/src/main/java/fr/korastrip/paperplugin/SharedStats.java
@@ -29,6 +29,7 @@ public void onEnable() {
this.getServer().getPluginManager().registerEvents(new DamageListener(this), this);
this.getServer().getPluginManager().registerEvents(new PlayerQuitListener(this), this);
this.getServer().getPluginManager().registerEvents(new PlayerDeathListener(this), this);
+ this.getServer().getPluginManager().registerEvents(new PlayerJoinListener(this), this);
this.getServer().getPluginManager().registerEvents(new RegenerationListener(this), this);
this.getServer().getPluginManager().registerEvents(new PlayerRespawnListener(this), this);
this.getServer().getPluginManager().registerEvents(new EntityResurrectListener(this), this);
diff --git a/src/main/java/fr/korastrip/paperplugin/listener/PlayerJoinListener.java b/src/main/java/fr/korastrip/paperplugin/listener/PlayerJoinListener.java
new file mode 100644
index 0000000..cac825e
--- /dev/null
+++ b/src/main/java/fr/korastrip/paperplugin/listener/PlayerJoinListener.java
@@ -0,0 +1,38 @@
+package fr.korastrip.paperplugin.listener;
+
+import fr.korastrip.paperplugin.SharedStats;
+import fr.korastrip.paperplugin.model.SharedGroup;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerJoinEvent;
+
+public class PlayerJoinListener implements Listener {
+
+ private final SharedStats plugin;
+
+ public PlayerJoinListener(SharedStats plugin) {
+ this.plugin = plugin;
+ }
+
+ @EventHandler
+ public void onPlayerJoin(PlayerJoinEvent event) {
+ Player player = event.getPlayer();
+ SharedGroup group = this.plugin.getGroup();
+
+ if(!group.getIsPlaying()) return;
+ if (group.getPlayersId().contains(player.getUniqueId())) {
+
+ Bukkit.getScheduler().runTask(plugin, () -> {
+ if (!player.isOnline()) return;
+ if(player.isDead()) return;
+
+ if(this.plugin.getSynchronizationConfig().isEnabled("health")) player.setHealth(group.getHealth());
+ if(this.plugin.getSynchronizationConfig().isEnabled("food")) player.setFoodLevel(group.getFood());
+ });
+ }
+ }
+
+
+}
diff --git a/src/main/java/fr/korastrip/paperplugin/listener/PlayerQuitListener.java b/src/main/java/fr/korastrip/paperplugin/listener/PlayerQuitListener.java
index fde17f6..29baf7b 100644
--- a/src/main/java/fr/korastrip/paperplugin/listener/PlayerQuitListener.java
+++ b/src/main/java/fr/korastrip/paperplugin/listener/PlayerQuitListener.java
@@ -38,13 +38,18 @@ public void onPlayerQuit(PlayerQuitEvent event) {
group.resetGroup();
return;
}
- group.removePlayer(playerId);
- if (group.getIsPlaying() && group.getOnlinePlayers().size() < 2) {
- group.getOnlinePlayers().forEach(p -> {
- p.sendRichMessage("The group has been disbanded because there are not enough players to continue.");
- });
- group.resetGroup();
- }
+
+ Bukkit.getScheduler().runTask(plugin, () -> {
+ if (!group.getIsPlaying()) {
+ group.removePlayer(playerId);
+ }
+ if (group.getIsPlaying() && group.getOnlinePlayers().size() < 2) {
+ group.getOnlinePlayers().forEach(p -> {
+ p.sendRichMessage("The group has been disbanded because there are not enough players to continue.");
+ });
+ group.resetGroup();
+ }
+ });
}
}
}