add flightChanger and spawn teleporter
This commit is contained in:
parent
eaccdec4a8
commit
c95bf95375
@ -32,7 +32,6 @@ public class Main extends JavaPlugin {
|
||||
List<Listener> 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");
|
||||
|
@ -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() {
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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<ViewableWorld> 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;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user