prevent players in pixelblock wile being offline

This commit is contained in:
Elias Müller 2024-10-05 22:40:22 +02:00
parent 154c1cf936
commit 32e6eb259e
2 changed files with 10 additions and 3 deletions

View File

@ -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) {

View File

@ -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);
}
}