diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java index a750f84..90e1124 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java @@ -72,7 +72,8 @@ public final class Main extends JavaPlugin { new PreventLiquidsFlowListener(), new PreventPistonsListener(), new PreventEntityPlacementListener(), - new DiscoverRecipesListener() + new DiscoverRecipesListener(), + new QuitWhileInPixelBlockListener() }; for (Listener listener : listeners) { @@ -87,6 +88,7 @@ public final class Main extends JavaPlugin { @Override public void onDisable() { + Bukkit.getOnlinePlayers().forEach(QuitWhileInPixelBlockListener::kickPlayerOutOfWorld); try { database.close(); } catch (SQLException e) { diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/QuitWhileInPixelBlockListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/QuitWhileInPixelBlockListener.java index 81856da..ca03ed2 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/QuitWhileInPixelBlockListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/QuitWhileInPixelBlockListener.java @@ -3,6 +3,7 @@ package eu.mhsl.minecraft.pixelblocks.listeners; import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld; import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; @@ -12,10 +13,14 @@ import java.util.Objects; public class QuitWhileInPixelBlockListener implements Listener { @EventHandler public void onLeave(PlayerQuitEvent event) { - World pixelBlockWorld = event.getPlayer().getLocation().getWorld(); + kickPlayerOutOfWorld(event.getPlayer()); + } + + public static void kickPlayerOutOfWorld(Player player) { + World pixelBlockWorld = player.getLocation().getWorld(); if(!PixelBlockWorld.isPixelWorld(pixelBlockWorld)) return; PixelBlock pixelBlock = PixelBlock.getPixelBlockFromBlockWorld(pixelBlockWorld); Objects.requireNonNull(pixelBlock); - pixelBlock.exitBlock(event.getPlayer()); + pixelBlock.exitBlock(player); } }