add spawn-tp-item

This commit is contained in:
Martin Olischläger 2023-04-28 20:46:58 +02:00
parent bdd101114b
commit b5f6ac467b
3 changed files with 27 additions and 3 deletions

View File

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

View File

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

View File

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