From 32e6eb259e761dc35e78f9cdc8c4e41fe25507dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 5 Oct 2024 22:40:22 +0200 Subject: [PATCH] prevent players in pixelblock wile being offline --- src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java | 4 +++- .../listeners/QuitWhileInPixelBlockListener.java | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) 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); } }