various changes and updates

This commit is contained in:
Elias Müller 2024-12-26 21:06:18 +01:00
parent 969178366e
commit c92bc0f5a8
6 changed files with 23 additions and 42 deletions

View File

@ -16,7 +16,6 @@ public class ActionItemManager {
List<IActionItem> actionItems = List.of(
new WorldSelector(),
new LeaveItem(),
new FlightChanger(),
new SpawnTeleport(),
new SpeedChanger()
);

View File

@ -1,35 +0,0 @@
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 FlightChanger implements IActionItem {
private final ItemStack item = generateItem();
private ItemStack generateItem() {
ItemStack item = new ItemStack(Material.ELYTRA);
ItemMeta meta = item.getItemMeta();
meta.displayName(Component.text("Aktiviere/Deaktiviere Fliegen"));
item.setItemMeta(meta);
return item;
}
@Override
public void action(@NotNull Player player) {
player.setFlying(!player.isFlying());
}
@Override
public ItemStack getItem() {
return item;
}
@Override
public int getItemLocation() {
return 1;
}
}

View File

@ -12,7 +12,7 @@ import java.util.List;
import java.util.stream.IntStream;
public class SpeedChanger implements IActionItem {
List<Float> flySpeeds = List.of(0.2f, 0.4f, 0.6f, 0.8f);
List<Float> flySpeeds = List.of(0.1f, 0.3f, 0.5f, 0.7f);
@Override
public void action(@NotNull Player player) {
@ -42,6 +42,6 @@ public class SpeedChanger implements IActionItem {
@Override
public int getItemLocation() {
return 2;
return 1;
}
}

View File

@ -4,6 +4,7 @@ import eu.mhsl.minecraft.WorldMuseum.Main;
import eu.mhsl.minecraft.WorldMuseum.viewableWorld.ViewableWorld;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@ -15,6 +16,7 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import java.util.Objects;
public class WorldSelector implements IActionItem {
private Inventory generateWorldSelectorInventory() {
@ -26,8 +28,13 @@ public class WorldSelector implements IActionItem {
Inventory inventory = Bukkit.createInventory(null, inventorySize, Component.text("Weltenmuseum"));
worlds.stream()
.filter(ViewableWorld::isEnabled)
.forEach(viewableWorld -> inventory.addItem(viewableWorld.getItem()));
.filter(ViewableWorld::isEnabled)
.sorted((o1, o2) -> {
String name1 = PlainTextComponentSerializer.plainText().serialize(o1.getItem().displayName());
String name2 = PlainTextComponentSerializer.plainText().serialize(o2.getItem().displayName());
return name1.compareTo(name2);
})
.forEach(viewableWorld -> inventory.addItem(viewableWorld.getItem()));
boolean canExit = Main.instance().getConfig().getBoolean("bungee.enabled");
if(canExit) inventory.setItem(inventorySize - 1, exitItem());
@ -51,6 +58,12 @@ public class WorldSelector implements IActionItem {
@EventHandler
public void onInteract(InventoryClickEvent event) {
if(Objects.equals(event.getCurrentItem(), exitItem())) {
LeaveItem item = new LeaveItem();
item.action((Player) event.getWhoClicked());
return;
}
List<ItemStack> worldItems = Main.instance().getWorlds().stream().map(ViewableWorld::getItem).toList();
if(!worldItems.contains(event.getCurrentItem())) return;
event.setCancelled(true);
@ -63,7 +76,7 @@ public class WorldSelector implements IActionItem {
@Override
public ItemStack getItem() {
ItemStack item = new ItemStack(Material.GRASS_BLOCK);
ItemStack item = new ItemStack(Material.COMPASS);
ItemMeta meta = item.getItemMeta();
meta.displayName(Component.text("Weltenliste", NamedTextColor.GOLD));
item.setItemMeta(meta);

View File

@ -28,13 +28,16 @@ public class PlayerListener implements Listener {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
player.getInventory().clear();
player.getActivePotionEffects().clear();
player.clearTitle();
player.setGameMode(GameMode.SURVIVAL);
player.setAllowFlight(true);
player.setInvulnerable(true);
player.setFoodLevel(20);
player.setHealth(20);
player.setAllowFlight(true);
player.setFlying(true);
Main.instance().getWorlds().stream()
.filter(ViewableWorld::isDefaultWorld)

View File

@ -61,6 +61,7 @@ public class ViewableWorld {
this.world = worldCreator.createWorld();
Objects.requireNonNull(this.world);
this.world.setAutoSave(false);
this.world.setClearWeatherDuration(Integer.MAX_VALUE);
}
public void unloadWorld() {