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(
|
List<Listener> listeners = List.of(
|
||||||
new PlayerListener(),
|
new PlayerListener(),
|
||||||
new ChatListener(),
|
new ChatListener(),
|
||||||
// new WorldSelectListener(),
|
|
||||||
new ViewableWorldListener(),
|
new ViewableWorldListener(),
|
||||||
new WorldSelector()
|
new WorldSelector()
|
||||||
);
|
);
|
||||||
@ -45,6 +44,10 @@ public class Main extends JavaPlugin {
|
|||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
this.worlds.forEach(ViewableWorld::unloadWorld);
|
this.worlds.forEach(ViewableWorld::unloadWorld);
|
||||||
}
|
}
|
||||||
|
// @Override
|
||||||
|
// public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
|
||||||
|
// return new CustomChunkGenerator();
|
||||||
|
// }
|
||||||
|
|
||||||
private void loadWorlds() {
|
private void loadWorlds() {
|
||||||
File worldFolder = new File(getDataFolder().getAbsolutePath() + "/worlds");
|
File worldFolder = new File(getDataFolder().getAbsolutePath() + "/worlds");
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package eu.mhsl.minecraft.WorldMuseum.items;
|
package eu.mhsl.minecraft.WorldMuseum.items;
|
||||||
|
|
||||||
import eu.mhsl.minecraft.WorldMuseum.items.actionItems.IActionItem;
|
import eu.mhsl.minecraft.WorldMuseum.items.actionItems.*;
|
||||||
import eu.mhsl.minecraft.WorldMuseum.items.actionItems.LeaveItem;
|
|
||||||
import eu.mhsl.minecraft.WorldMuseum.items.actionItems.WorldSelector;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -19,6 +17,8 @@ public class ActionItemManager {
|
|||||||
private void initItems() {
|
private void initItems() {
|
||||||
actionObjects.add(new WorldSelector());
|
actionObjects.add(new WorldSelector());
|
||||||
actionObjects.add(new LeaveItem());
|
actionObjects.add(new LeaveItem());
|
||||||
|
actionObjects.add(new GamemodeChanger());
|
||||||
|
actionObjects.add(new SpawnTeleport());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ActionItemManager getInstance() {
|
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);
|
Objects.requireNonNull(bungeeSettings);
|
||||||
|
|
||||||
if(!(bungeeSettings.getBoolean("enabled", false))) {
|
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;
|
if(!bungeeSettings.getBoolean("returnOnSelectExit")) return;
|
||||||
sendPlayerToExit(player);
|
sendPlayerToExit(player);
|
||||||
@ -47,7 +48,7 @@ public class LeaveItem implements Listener, IActionItem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemLocation() {
|
public int getItemLocation() {
|
||||||
int itemLocation = 8; //Item will be placed in the last hotbar slot
|
//Item will be placed in the last hotbar slot
|
||||||
return itemLocation;
|
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