diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java index 4d84caf..7ab26b7 100755 --- a/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java @@ -1,6 +1,7 @@ package eu.mhsl.craftattack.worldmuseum; import eu.mhsl.craftattack.worldmuseum.commands.GamemodeCommand; +import eu.mhsl.craftattack.worldmuseum.items.BedManager; import eu.mhsl.craftattack.worldmuseum.temp.GcCommand; import eu.mhsl.craftattack.worldmuseum.commands.SpawnCommand; import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand; @@ -77,6 +78,7 @@ public class Main { player.setRespawnPoint(startworld.getSpawn()); player.setGameMode(GameMode.CREATIVE); player.getInventory().setItemStack(0, compassManager.getCompass()); + player.getInventory().setItemStack(8, BedManager.getBedItem()); }); diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/items/BedManager.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/items/BedManager.java new file mode 100644 index 0000000..474be5b --- /dev/null +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/items/BedManager.java @@ -0,0 +1,11 @@ +package eu.mhsl.craftattack.worldmuseum.items; + +import net.kyori.adventure.text.Component; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; + +public class BedManager { + public static ItemStack getBedItem() { + return ItemStack.builder(Material.RED_BED).displayName(Component.text("Spawn-Teleporter")).build(); + } +} diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/ItemUseListener.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/ItemUseListener.java index a4531bc..19966e3 100755 --- a/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/ItemUseListener.java +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/listener/ItemUseListener.java @@ -1,7 +1,9 @@ package eu.mhsl.craftattack.worldmuseum.listener; +import eu.mhsl.craftattack.worldmuseum.items.BedManager; import eu.mhsl.craftattack.worldmuseum.util.NewPlayer; import eu.mhsl.craftattack.worldmuseum.items.CompassManager; +import eu.mhsl.craftattack.worldmuseum.worlds.World; import net.kyori.adventure.text.Component; import net.minestom.server.event.player.PlayerUseItemEvent; import net.minestom.server.item.ItemStack; @@ -15,15 +17,24 @@ public class ItemUseListener implements Consumer { ItemStack usedItem = playerUseItemEvent.getItemStack(); CompassManager compassManager = CompassManager.getInstance(); - if (!usedItem.equals(compassManager.getCompass())) return; + if (usedItem.equals(compassManager.getCompass())) compassUse(p); + else if (usedItem.equals(BedManager.getBedItem())) bedUse(p); + + playerUseItemEvent.setCancelled(true); + } + private void compassUse(NewPlayer p) { + CompassManager compassManager = CompassManager.getInstance(); if (!p.isAllowCompassUsage()) { long lastUsed = (System.currentTimeMillis() - p.getLastCompassUsage()) / 1000; p.sendActionBar(Component.text("Du kannst den Kompass erst in " + (10 - lastUsed) + " Sekunden wieder benutzen.")); - return; } p.update_lastCompassUsage(); p.openInventory(compassManager.getInventory()); - playerUseItemEvent.setCancelled(true); + } + private void bedUse(NewPlayer player) { + World world = (World) player.getInstance(); + assert world != null; + player.teleport(world.getSpawn()); } }