diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java
index 8578dba..e085b8f 100755
--- a/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java
+++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java
@@ -13,12 +13,14 @@ import eu.mhsl.craftattack.worldmuseum.util.NewPlayer;
 import eu.mhsl.craftattack.worldmuseum.util.SignHandler;
 import eu.mhsl.craftattack.worldmuseum.worlds.World;
 import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager;
+import net.kyori.adventure.key.Key;
 import net.minestom.server.MinecraftServer;
 import net.minestom.server.entity.GameMode;
 import net.minestom.server.event.GlobalEventHandler;
 import net.minestom.server.event.inventory.InventoryPreClickEvent;
 import net.minestom.server.event.item.ItemDropEvent;
 import net.minestom.server.event.player.*;
+import net.minestom.server.instance.block.BlockManager;
 import net.minestom.server.timer.TaskSchedule;
 
 import java.time.Duration;
@@ -55,17 +57,13 @@ public class Main {
         globalEventHandler.addListener(PlayerBlockBreakEvent.class, new BlockBreakListener());
         globalEventHandler.addListener(PlayerMoveEvent.class, new MovementListener());
         globalEventHandler.addListener(PlayerBlockPlaceEvent.class, new BlockPlaceListener());
+        globalEventHandler.addListener(PlayerDisconnectEvent.class, new DisconnectListener());
         MinecraftServer.getBlockManager().registerHandler("minecraft:sign", SignHandler::new);
 
         //canceled Events
         globalEventHandler.addListener(PlayerSwapItemEvent.class, new EventCancel<>());
         globalEventHandler.addListener(ItemDropEvent.class, new EventCancel<>());
 
-
-
-
-
-
         //commands
         MinecraftServer.getCommandManager().register(new TeleportCommand());
         MinecraftServer.getCommandManager().register(new GcCommand());
@@ -84,6 +82,7 @@ public class Main {
             player.setAllowFlying(true);
             player.getInventory().setItemStack(0, ItemManager.getCompassItem());
             player.getInventory().setItemStack(8, ItemManager.getBedItem());
+            System.out.println("[Join] Player " + player.getUsername() +" joined the server.");
         });
 
         try {
diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/DisconnectListener.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/DisconnectListener.java
new file mode 100644
index 0000000..3cc3ddf
--- /dev/null
+++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/DisconnectListener.java
@@ -0,0 +1,12 @@
+package eu.mhsl.craftattack.worldmuseum.listener;
+
+import net.minestom.server.event.player.PlayerDisconnectEvent;
+
+import java.util.function.Consumer;
+
+public class DisconnectListener implements Consumer<PlayerDisconnectEvent> {
+    @Override
+    public void accept(PlayerDisconnectEvent playerDisconnectEvent) {
+        System.out.println("[Join] Player " + playerDisconnectEvent.getPlayer().getUsername() +" left the server.");
+    }
+}
diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/util/ChangeWorld.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/util/ChangeWorld.java
index 3f68d25..f316f3d 100644
--- a/src/main/java/eu/mhsl/craftattack/worldmuseum/util/ChangeWorld.java
+++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/util/ChangeWorld.java
@@ -6,6 +6,7 @@ import net.minestom.server.potion.PotionEffect;
 public class ChangeWorld {
     public static void changeWorld(NewPlayer player, World targetWorld) {
         player.setAllowMovement(false);
+        World world = (World) player.getInstance();
         player.setAllowCompassUsage(false);
         player.addEffect(new Potion(PotionEffect.BLINDNESS, (byte) 0, 1000000));
 
@@ -16,5 +17,6 @@ public class ChangeWorld {
             player.update_lastCompassUsage();
             player.setAllowCompassUsage(true);
         });
+        System.out.println("[Worldchange] Player " + player.getUsername() + "changed world from " + world.getName() + " to " + targetWorld.getName() +".");
     }
 }