From c95bf9537588b7f0c6fb1d698464f8fdfe41daac Mon Sep 17 00:00:00 2001 From: olischma Date: Sat, 21 Sep 2024 14:54:30 +0200 Subject: [PATCH] add flightChanger and spawn teleporter --- .../eu/mhsl/minecraft/WorldMuseum/Main.java | 5 ++- .../WorldMuseum/items/ActionItemManager.java | 6 +-- .../items/actionItems/GamemodeChanger.java | 36 ++++++++++++++++ .../items/actionItems/LeaveItem.java | 7 ++-- .../items/actionItems/SpawnTeleport.java | 36 ++++++++++++++++ .../worldSelector/WorldSelectInventory.java | 41 ------------------- 6 files changed, 83 insertions(+), 48 deletions(-) create mode 100644 src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/GamemodeChanger.java create mode 100644 src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/SpawnTeleport.java delete mode 100644 src/main/java/eu/mhsl/minecraft/WorldMuseum/items/worldSelector/WorldSelectInventory.java diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java index 08d64e0..9fbc0a3 100644 --- a/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java @@ -32,7 +32,6 @@ public class Main extends JavaPlugin { List listeners = List.of( new PlayerListener(), new ChatListener(), -// new WorldSelectListener(), new ViewableWorldListener(), new WorldSelector() ); @@ -45,6 +44,10 @@ public class Main extends JavaPlugin { public void onDisable() { this.worlds.forEach(ViewableWorld::unloadWorld); } +// @Override +// public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) { +// return new CustomChunkGenerator(); +// } private void loadWorlds() { File worldFolder = new File(getDataFolder().getAbsolutePath() + "/worlds"); diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/ActionItemManager.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/ActionItemManager.java index c419580..a2fbbde 100644 --- a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/ActionItemManager.java +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/ActionItemManager.java @@ -1,8 +1,6 @@ package eu.mhsl.minecraft.WorldMuseum.items; -import eu.mhsl.minecraft.WorldMuseum.items.actionItems.IActionItem; -import eu.mhsl.minecraft.WorldMuseum.items.actionItems.LeaveItem; -import eu.mhsl.minecraft.WorldMuseum.items.actionItems.WorldSelector; +import eu.mhsl.minecraft.WorldMuseum.items.actionItems.*; import org.bukkit.entity.Player; import java.util.ArrayList; @@ -19,6 +17,8 @@ public class ActionItemManager { private void initItems() { actionObjects.add(new WorldSelector()); actionObjects.add(new LeaveItem()); + actionObjects.add(new GamemodeChanger()); + actionObjects.add(new SpawnTeleport()); } public static ActionItemManager getInstance() { diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/GamemodeChanger.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/GamemodeChanger.java new file mode 100644 index 0000000..6171233 --- /dev/null +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/GamemodeChanger.java @@ -0,0 +1,36 @@ +package eu.mhsl.minecraft.WorldMuseum.items.actionItems; + +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.jetbrains.annotations.NotNull; + +public class GamemodeChanger implements IActionItem{ + private final ItemStack item = generateItem(); + + private ItemStack generateItem() { + ItemStack item = new ItemStack(Material.ELYTRA); + ItemMeta meta = item.getItemMeta(); + meta.displayName(Component.text("Enable/Disable Flight ")); + item.setItemMeta(meta); + return item; + } + + @Override + public void action(@NotNull Player player) { + player.setAllowFlight(!player.getAllowFlight()); + } + + @Override + public ItemStack getItem() { + return item; + } + + @Override + public int getItemLocation() { + // Item will be placed in the second hotbar slot + return 1; + } +} diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/LeaveItem.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/LeaveItem.java index bde867e..7c62f5d 100644 --- a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/LeaveItem.java +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/LeaveItem.java @@ -30,7 +30,8 @@ public class LeaveItem implements Listener, IActionItem { Objects.requireNonNull(bungeeSettings); if(!(bungeeSettings.getBoolean("enabled", false))) { - player.sendMessage(Component.text("Bungeecord is not enabled. You can't be transpered ")); + player.sendMessage(Component.text("Bungeecord is not enabled. You can't be transferred.")); + return; } if(!bungeeSettings.getBoolean("returnOnSelectExit")) return; sendPlayerToExit(player); @@ -47,7 +48,7 @@ public class LeaveItem implements Listener, IActionItem { @Override public int getItemLocation() { - int itemLocation = 8; //Item will be placed in the last hotbar slot - return itemLocation; + //Item will be placed in the last hotbar slot + return 8; } } diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/SpawnTeleport.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/SpawnTeleport.java new file mode 100644 index 0000000..0dfdfa2 --- /dev/null +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/actionItems/SpawnTeleport.java @@ -0,0 +1,36 @@ +package eu.mhsl.minecraft.WorldMuseum.items.actionItems; + +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.jetbrains.annotations.NotNull; + +public class SpawnTeleport implements IActionItem { + private final ItemStack item = generateItem(); + + private ItemStack generateItem() { + ItemStack item = new ItemStack(Material.ENDER_PEARL); + ItemMeta meta = item.getItemMeta(); + meta.displayName(Component.text("Teleport back to spawn")); + item.setItemMeta(meta); + return item; + } + + @Override + public void action(@NotNull Player player) { + player.teleport(player.getWorld().getSpawnLocation()); + } + + @Override + public ItemStack getItem() { + return item; + } + + @Override + public int getItemLocation() { + // Item will be placed in the second last hotbar slot + return 7; + } +} diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/worldSelector/WorldSelectInventory.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/worldSelector/WorldSelectInventory.java deleted file mode 100644 index 84bea4c..0000000 --- a/src/main/java/eu/mhsl/minecraft/WorldMuseum/items/worldSelector/WorldSelectInventory.java +++ /dev/null @@ -1,41 +0,0 @@ -package eu.mhsl.minecraft.WorldMuseum.items.worldSelector; - -import eu.mhsl.minecraft.WorldMuseum.Main; -import eu.mhsl.minecraft.WorldMuseum.viewableWorld.ViewableWorld; -import net.kyori.adventure.text.Component; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.util.List; - -public class WorldSelectInventory { - public static ItemStack exitItem() { - ItemStack stack = ItemStack.of(Material.OAK_DOOR); - ItemMeta meta = stack.getItemMeta(); - meta.displayName(Component.text("Zurück zum Server")); - meta.setEnchantmentGlintOverride(true); - stack.setItemMeta(meta); - return stack; - } - - public static Inventory generateInventory() { - List worlds = Main.instance().getWorlds(); - - int itemCount = worlds.size() + 1; - int inventoryRows = Math.max(itemCount / 9, 1); - int inventorySize = inventoryRows * 9; - Inventory inventory = Bukkit.createInventory(null, inventorySize, Component.text("Weltenmuseum")); - - worlds.stream() - .filter(ViewableWorld::isEnabled) - .forEach(viewableWorld -> inventory.addItem(viewableWorld.getItem())); - - boolean canExit = Main.instance().getConfig().getBoolean("bungee.enabled"); - if(canExit) inventory.setItem(inventorySize - 1, exitItem()); - - return inventory; - } -}