Update dependencies and improve various functionalities
- Bump Gradle to 8.5 and adjust related configs. - Upgrade from JDK 17 to JDK 21. - Replace deprecated methods with modern equivalents (`withDisplayName` -> `withCustomName`). - Refactor and simplify event handling (e.g., PlayerLoginEvent -> AsyncPlayerConfigurationEvent). - Fix minor issues with player and inventory handling. - Improve Gradle startup scripts for better compatibility. - Transition plugin handling from deprecated to current class references. - General cleanup and code modernization.
This commit is contained in:
@@ -72,7 +72,7 @@ public class Main {
|
||||
MinecraftServer.getCommandManager().register(new GamemodeCommand());
|
||||
MinecraftServer.getCommandManager().register(new SpawnCommand());
|
||||
|
||||
globalEventHandler.addListener(PlayerLoginEvent.class, event -> {
|
||||
globalEventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> {
|
||||
final MuseumPlayer player = (MuseumPlayer) event.getPlayer();
|
||||
final VoidWorld voidWorld = new VoidWorld();
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ public class WorldSelector extends Inventory {
|
||||
|
||||
worldIndex.forEach((integer, world) -> setItemStack(integer, world.getItem()));
|
||||
|
||||
setItemStack(8, ItemStack.of(Material.IRON_DOOR).withDisplayName(Component.text("Zurück zum Server").color(NamedTextColor.GOLD)));
|
||||
setItemStack(8, ItemStack.of(Material.IRON_DOOR).withCustomName(Component.text("Zurück zum Server").color(NamedTextColor.GOLD)));
|
||||
|
||||
addInventoryCondition((p, slot, clickType, inventoryConditionResult) -> {
|
||||
MuseumPlayer player = (MuseumPlayer) p;
|
||||
|
||||
@@ -12,47 +12,47 @@ import java.util.function.Consumer;
|
||||
|
||||
public enum Items {
|
||||
HUB(
|
||||
ItemStack
|
||||
.of(Material.IRON_DOOR)
|
||||
.withDisplayName(
|
||||
Component
|
||||
.text("Zurück zur Überischt")
|
||||
.color(NamedTextColor.GOLD)
|
||||
),
|
||||
player -> new VoidWorld().movePlayer(player)
|
||||
ItemStack
|
||||
.of(Material.IRON_DOOR)
|
||||
.withCustomName(
|
||||
Component
|
||||
.text("Zurück zur Überischt")
|
||||
.color(NamedTextColor.GOLD)
|
||||
),
|
||||
player -> new VoidWorld().movePlayer(player)
|
||||
),
|
||||
|
||||
SPAWN(
|
||||
ItemStack
|
||||
.of(Material.TARGET)
|
||||
.withDisplayName(
|
||||
Component
|
||||
.text("Zum Spawn")
|
||||
.color(NamedTextColor.GOLD)
|
||||
),
|
||||
SpawnCommand::teleportToSpawn
|
||||
ItemStack
|
||||
.of(Material.TARGET)
|
||||
.withCustomName(
|
||||
Component
|
||||
.text("Zum Spawn")
|
||||
.color(NamedTextColor.GOLD)
|
||||
),
|
||||
SpawnCommand::teleportToSpawn
|
||||
),
|
||||
|
||||
MORE_SPEED(
|
||||
ItemStack
|
||||
.of(Material.FEATHER)
|
||||
.withDisplayName(
|
||||
Component
|
||||
.text("Schneller fliegen")
|
||||
.color(NamedTextColor.AQUA)
|
||||
),
|
||||
player -> player.updateFlyingSpeed(0.05f)
|
||||
ItemStack
|
||||
.of(Material.FEATHER)
|
||||
.withCustomName(
|
||||
Component
|
||||
.text("Schneller fliegen")
|
||||
.color(NamedTextColor.AQUA)
|
||||
),
|
||||
player -> player.updateFlyingSpeed(0.05f)
|
||||
),
|
||||
|
||||
LESS_SPEED(
|
||||
ItemStack
|
||||
.of(Material.ANVIL)
|
||||
.withDisplayName(
|
||||
Component
|
||||
.text("Langsamer fliegen")
|
||||
.color(NamedTextColor.AQUA)
|
||||
),
|
||||
player -> player.updateFlyingSpeed(-0.05f)
|
||||
ItemStack
|
||||
.of(Material.ANVIL)
|
||||
.withCustomName(
|
||||
Component
|
||||
.text("Langsamer fliegen")
|
||||
.color(NamedTextColor.AQUA)
|
||||
),
|
||||
player -> player.updateFlyingSpeed(-0.05f)
|
||||
);
|
||||
|
||||
|
||||
|
||||
@@ -13,11 +13,12 @@ public class BlockPlaceListener implements Consumer<PlayerBlockPlaceEvent> {
|
||||
|
||||
// Fire ItemUseListener for possible missed block-clicks
|
||||
new ItemUseListener().accept(
|
||||
new PlayerUseItemEvent(
|
||||
p,
|
||||
playerBlockPlaceEvent.getHand(),
|
||||
p.getInventory().getItemStack(p.getHeldSlot())
|
||||
)
|
||||
new PlayerUseItemEvent(
|
||||
p,
|
||||
playerBlockPlaceEvent.getHand(),
|
||||
p.getInventory().getItemStack(p.getHeldSlot()),
|
||||
0
|
||||
)
|
||||
);
|
||||
|
||||
playerBlockPlaceEvent.setCancelled(true);
|
||||
|
||||
@@ -3,7 +3,6 @@ package eu.mhsl.craftattack.worldmuseum.skins;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.entity.PlayerSkin;
|
||||
import net.minestom.server.timer.ExecutionType;
|
||||
import net.minestom.server.timer.TaskSchedule;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -15,6 +14,6 @@ public class SkinCache {
|
||||
MinecraftServer.getSchedulerManager().scheduleTask(() -> {
|
||||
p.setSkin(skins.computeIfAbsent(p.getUsername(), PlayerSkin::fromUsername));
|
||||
System.out.println("Es sind jetzt " + skins.size() + " Skins im Cache.");
|
||||
}, TaskSchedule.immediate(), TaskSchedule.stop(), ExecutionType.ASYNC);
|
||||
}, TaskSchedule.immediate(), TaskSchedule.stop());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package eu.mhsl.craftattack.worldmuseum.util;
|
||||
import com.google.common.io.ByteArrayDataOutput;
|
||||
import com.google.common.io.ByteStreams;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.network.packet.server.play.PluginMessagePacket;
|
||||
import net.minestom.server.network.packet.server.common.PluginMessagePacket;
|
||||
|
||||
public class BunggeCordComunicator {
|
||||
private static final String bungeeTargetSelector = "bungeecord:main";
|
||||
|
||||
@@ -6,23 +6,21 @@ import net.kyori.adventure.title.Title;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.event.player.PlayerMoveEvent;
|
||||
import net.minestom.server.network.player.GameProfile;
|
||||
import net.minestom.server.network.player.PlayerConnection;
|
||||
import net.minestom.server.potion.Potion;
|
||||
import net.minestom.server.potion.PotionEffect;
|
||||
import net.minestom.server.timer.ExecutionType;
|
||||
import net.minestom.server.timer.TaskSchedule;
|
||||
import net.minestom.server.utils.MathUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.UUID;
|
||||
|
||||
public class MuseumPlayer extends Player {
|
||||
private boolean isLoading = false;
|
||||
|
||||
public MuseumPlayer(@NotNull UUID uuid, @NotNull String username, @NotNull PlayerConnection playerConnection) {
|
||||
super(uuid, username, playerConnection);
|
||||
|
||||
public MuseumPlayer(@NotNull PlayerConnection playerConnection, @NotNull GameProfile gameProfile) {
|
||||
super(playerConnection, gameProfile);
|
||||
eventNode().addListener(PlayerMoveEvent.class, playerMoveEvent -> playerMoveEvent.setCancelled(isLoading));
|
||||
}
|
||||
|
||||
@@ -42,7 +40,7 @@ public class MuseumPlayer extends Player {
|
||||
return TaskSchedule.stop();
|
||||
}
|
||||
return TaskSchedule.millis(100);
|
||||
}, ExecutionType.ASYNC);
|
||||
});
|
||||
}
|
||||
|
||||
public void stopLoading() {
|
||||
|
||||
@@ -9,6 +9,7 @@ import net.minestom.server.event.inventory.InventoryCloseEvent;
|
||||
import net.minestom.server.event.player.PlayerMoveEvent;
|
||||
import net.minestom.server.instance.InstanceContainer;
|
||||
import net.minestom.server.instance.block.Block;
|
||||
import net.minestom.server.inventory.Inventory;
|
||||
import net.minestom.server.world.DimensionType;
|
||||
|
||||
import java.util.UUID;
|
||||
@@ -21,7 +22,7 @@ public class VoidWorld extends InstanceContainer implements PlayerMovable {
|
||||
|
||||
eventNode().addListener(InventoryCloseEvent.class, inventoryCloseEvent -> {
|
||||
if(inventoryCloseEvent.getPlayer().getInstance() != this) return;
|
||||
inventoryCloseEvent.setNewInventory(inventoryCloseEvent.getInventory());
|
||||
inventoryCloseEvent.setNewInventory((Inventory) inventoryCloseEvent.getInventory());
|
||||
});
|
||||
|
||||
eventNode().addListener(PlayerMoveEvent.class, playerMoveEvent -> playerMoveEvent.setCancelled(true));
|
||||
|
||||
@@ -10,11 +10,10 @@ import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.coordinate.Pos;
|
||||
import net.minestom.server.entity.GameMode;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.instance.AnvilLoader;
|
||||
import net.minestom.server.instance.InstanceContainer;
|
||||
import net.minestom.server.instance.anvil.AnvilLoader;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.item.Material;
|
||||
import net.minestom.server.utils.NamespaceID;
|
||||
import net.minestom.server.world.DimensionType;
|
||||
|
||||
import java.io.*;
|
||||
@@ -23,23 +22,18 @@ import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class World extends InstanceContainer implements PlayerMovable {
|
||||
private final static DimensionType dimension = DimensionType.builder(NamespaceID.from("mhsl.eu:worldview_by_olischma")).height(400).ambientLight(2.0f).build();
|
||||
|
||||
private final boolean enabled;
|
||||
private final String name;
|
||||
private final Material material;
|
||||
private final Pos spawn;
|
||||
private final List<String> tags = new ArrayList<>();
|
||||
|
||||
|
||||
static {
|
||||
MinecraftServer.getDimensionTypeManager().addDimension(dimension);
|
||||
}
|
||||
|
||||
public World(File file) throws IOException {
|
||||
super(UUID.randomUUID(), dimension, new AnvilLoader(file.getPath()));
|
||||
super(UUID.randomUUID(), DimensionType.OVERWORLD);
|
||||
MinecraftServer.getInstanceManager().registerInstance(this);
|
||||
|
||||
setChunkLoader(new AnvilLoader(file.getPath()));
|
||||
|
||||
File configFile = new File(file.getPath() + "/config.json");
|
||||
if (configFile.createNewFile()) {
|
||||
writeDefaultConfig(file);
|
||||
@@ -102,11 +96,7 @@ public class World extends InstanceContainer implements PlayerMovable {
|
||||
}
|
||||
|
||||
public ItemStack getItem() {
|
||||
return ItemStack.builder(material).displayName(Component.text(name)).build();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
return ItemStack.builder(material).customName(Component.text(name)).build();
|
||||
}
|
||||
|
||||
public Pos getSpawn() {
|
||||
|
||||
Reference in New Issue
Block a user