From 61448e77f233dffca20137aa6575627f32ab8199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 1 Oct 2023 19:32:14 +0200 Subject: [PATCH] Refactored Command structure, began support for API driven Rooms --- .../compileJava/previous-compilation-data.bin | Bin 63510 -> 63987 bytes .../java/eu/mhsl/minenet/minigames/Api.java | 4 ++ .../minenet/minigames/command/Commands.java | 6 ++- .../minigames/command/PrivilegedCommand.java | 36 +++++++++++++++ .../command/privileged/DebugCommand.java | 6 +-- .../command/privileged/FakeplayerCommand.java | 4 +- .../command/privileged/FlyCommand.java | 6 +-- .../command/privileged/GamemodeCommand.java | 5 +-- .../command/privileged/GcCommand.java | 6 +-- .../command/privileged/KickCommand.java | 32 ++++++++++++++ .../command/privileged/LangTestCommand.java | 6 +-- .../command/privileged/OpCommand.java | 6 +-- ...mmand.java => RefreshCommandsCommand.java} | 13 +++--- .../command/privileged/RoomCommand.java | 6 +-- .../privileged/SetRoomOwnerCommand.java | 41 ++++++++++++++++++ .../minenet/minigames/instance/room/Room.java | 23 +++++----- .../instance/virtualRoom/VirtualRoom.java | 15 +++++++ .../mhsl/minenet/minigames/score/Score.java | 1 + 18 files changed, 167 insertions(+), 49 deletions(-) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/Api.java create mode 100644 src/main/java/eu/mhsl/minenet/minigames/command/PrivilegedCommand.java create mode 100644 src/main/java/eu/mhsl/minenet/minigames/command/privileged/KickCommand.java rename src/main/java/eu/mhsl/minenet/minigames/command/privileged/{UpdateCommand.java => RefreshCommandsCommand.java} (51%) create mode 100644 src/main/java/eu/mhsl/minenet/minigames/command/privileged/SetRoomOwnerCommand.java create mode 100644 src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 9a7d97f557c5328e1102a4476f34c999713c03a5..0a4cc28353ece1622162bf6da81adadc2d48b77c 100644 GIT binary patch literal 63987 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 literal 63510 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 conditions = new ArrayList<>(); + public PrivilegedCommand(@NotNull String name, @Nullable String... aliases) { + super(name, aliases); + construct(); + } + + public PrivilegedCommand(@NotNull String name) { + super(name); + construct(); + } + + private void construct() { + addCondition(isPrivileged()); + + setCondition((sender, commandString) -> conditions.parallelStream().allMatch(condition -> condition.canUse(sender, commandString))); + } + + protected CommandCondition isPrivileged() { + return (sender, commandString) -> sender.hasPermission("admin"); + } + + protected void addCondition(CommandCondition condition) { + conditions.add(condition); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/DebugCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/DebugCommand.java index 6a41503..cb5e9b8 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/DebugCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/DebugCommand.java @@ -1,20 +1,18 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.type.ActionBarMessage; import eu.mhsl.minenet.minigames.message.type.ChatMessage; import eu.mhsl.minenet.minigames.message.type.TitleMessage; -import net.minestom.server.command.builder.Command; import java.util.ArrayList; import java.util.List; -public class DebugCommand extends Command { +public class DebugCommand extends PrivilegedCommand { public DebugCommand() { super("debug"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); - setDefaultExecutor((sender, args) -> { new ChatMessage(Icon.CHAT).appendTranslated("sample").send(sender); new ActionBarMessage().appendTranslated("sample").send(sender); diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FakeplayerCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FakeplayerCommand.java index b8c0ed0..2d0ef53 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FakeplayerCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FakeplayerCommand.java @@ -1,9 +1,9 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.instance.room.Room; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.type.ChatMessage; -import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.arguments.ArgumentType; import net.minestom.server.entity.Player; import net.minestom.server.entity.fakeplayer.FakePlayer; @@ -11,7 +11,7 @@ import net.minestom.server.entity.fakeplayer.FakePlayerOption; import java.util.UUID; -public class FakeplayerCommand extends Command { +public class FakeplayerCommand extends PrivilegedCommand { public FakeplayerCommand() { super("fakeplayer"); diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FlyCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FlyCommand.java index c294850..f5e3dac 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FlyCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/FlyCommand.java @@ -1,15 +1,13 @@ package eu.mhsl.minenet.minigames.command.privileged; -import net.minestom.server.command.builder.Command; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import net.minestom.server.coordinate.Vec; import net.minestom.server.entity.Player; -public class FlyCommand extends Command { +public class FlyCommand extends PrivilegedCommand { public FlyCommand() { super("fly"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); - setDefaultExecutor((sender, context) -> { Player p = (Player) sender; p.setVelocity(new Vec(0, 5, 0)); diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GamemodeCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GamemodeCommand.java index 88e6eda..68fe523 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GamemodeCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GamemodeCommand.java @@ -1,16 +1,15 @@ package eu.mhsl.minenet.minigames.command.privileged; -import net.minestom.server.command.builder.Command; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import net.minestom.server.command.builder.arguments.ArgumentEnum; import net.minestom.server.command.builder.arguments.ArgumentType; import net.minestom.server.entity.GameMode; import net.minestom.server.entity.Player; -public class GamemodeCommand extends Command { +public class GamemodeCommand extends PrivilegedCommand { public GamemodeCommand() { super("gamemode", "gm"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); addSyntax((sender, context) -> ((Player) sender).setGameMode( context.get("target")), diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GcCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GcCommand.java index 39c8197..e332b8e 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GcCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/GcCommand.java @@ -1,17 +1,15 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.message.type.ChatMessage; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.util.Monitoring; -import net.minestom.server.command.builder.Command; -public class GcCommand extends Command { +public class GcCommand extends PrivilegedCommand { private static long lastRun = System.currentTimeMillis(); public GcCommand() { super("gc"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); - setDefaultExecutor((sender, context) -> { long nextRun = (lastRun - (System.currentTimeMillis() - 30*1000)) / 1000; if(nextRun > 0) { diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/KickCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/KickCommand.java new file mode 100644 index 0000000..d4c6e16 --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/KickCommand.java @@ -0,0 +1,32 @@ +package eu.mhsl.minenet.minigames.command.privileged; + +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; +import net.minestom.server.MinecraftServer; +import net.minestom.server.command.builder.arguments.ArgumentType; +import net.minestom.server.entity.Player; + +import java.util.Objects; + +public class KickCommand extends PrivilegedCommand { + public KickCommand() { + super("kick"); + + addSyntax( + (sender, context) -> + kick(context.getRaw("player"), ""), + ArgumentType.Entity("player").onlyPlayers(true) + ); + + addSyntax( + (sender, context) -> + kick(context.getRaw("player"), context.getRaw("reason")), + ArgumentType.Entity("player").onlyPlayers(true), + ArgumentType.String("reason") + ); + } + + private void kick(String playername, String reason) { + Player playerToKick = MinecraftServer.getConnectionManager().findPlayer(playername); + Objects.requireNonNull(playerToKick).kick(reason); + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/LangTestCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/LangTestCommand.java index cf3b80d..e9f98ae 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/LangTestCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/LangTestCommand.java @@ -1,20 +1,18 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.lang.Languages; import eu.mhsl.minenet.minigames.lang.Lang; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.TranslatableMessage; import eu.mhsl.minenet.minigames.message.type.ChatMessage; -import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.arguments.ArgumentType; import net.minestom.server.entity.Player; -public class LangTestCommand extends Command { +public class LangTestCommand extends PrivilegedCommand { public LangTestCommand() { super("langtest"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); - setDefaultExecutor((sender, context) -> sendMessage(Languages.getInstance().getLanguage((Player) sender), "sample").send(sender)); var targetString = ArgumentType.String("mapId"); diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/OpCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/OpCommand.java index 5fe9e73..4546f81 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/OpCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/OpCommand.java @@ -1,19 +1,17 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.type.ChatMessage; import net.minestom.server.MinecraftServer; -import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.arguments.ArgumentType; import net.minestom.server.entity.Player; import net.minestom.server.permission.Permission; -public class OpCommand extends Command { +public class OpCommand extends PrivilegedCommand { public OpCommand() { super("op"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); - addSyntax((sender, context) -> { Player target = MinecraftServer.getConnectionManager().getPlayer(context.getRaw("target")); if(target != null) { diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/UpdateCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/RefreshCommandsCommand.java similarity index 51% rename from src/main/java/eu/mhsl/minenet/minigames/command/privileged/UpdateCommand.java rename to src/main/java/eu/mhsl/minenet/minigames/command/privileged/RefreshCommandsCommand.java index cbc1cd5..d0e5b36 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/UpdateCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/RefreshCommandsCommand.java @@ -1,18 +1,17 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.message.type.ChatMessage; import eu.mhsl.minenet.minigames.message.Icon; -import net.minestom.server.command.builder.Command; +import net.minestom.server.MinecraftServer; import net.minestom.server.entity.Player; -public class UpdateCommand extends Command { - public UpdateCommand() { - super("update"); - - setCondition((sender, commandString) -> sender.hasPermission("admin")); +public class RefreshCommandsCommand extends PrivilegedCommand { + public RefreshCommandsCommand() { + super("refreshCommands"); setDefaultExecutor((sender, context) -> { - ((Player) sender).refreshCommands(); + MinecraftServer.getConnectionManager().getOnlinePlayers().forEach(Player::refreshCommands); new ChatMessage(Icon.SUCCESS).appendStatic("Updated command syntax!").send(sender); }); } diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/RoomCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/RoomCommand.java index 8443760..845cf8a 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/RoomCommand.java +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/RoomCommand.java @@ -1,20 +1,18 @@ package eu.mhsl.minenet.minigames.command.privileged; +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.TranslatableMessage; import eu.mhsl.minenet.minigames.message.type.ChatMessage; import eu.mhsl.minenet.minigames.instance.room.Room; -import net.minestom.server.command.builder.Command; import net.minestom.server.entity.Player; import java.util.stream.Collectors; -public class RoomCommand extends Command { +public class RoomCommand extends PrivilegedCommand { public RoomCommand() { super("room"); - setCondition((sender, commandString) -> sender.hasPermission("admin")); - setDefaultExecutor((sender, context) -> { TranslatableMessage out = new ChatMessage(Icon.SCIENCE).appendStatic("Rooms:").newLine(); diff --git a/src/main/java/eu/mhsl/minenet/minigames/command/privileged/SetRoomOwnerCommand.java b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/SetRoomOwnerCommand.java new file mode 100644 index 0000000..45f1e87 --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/command/privileged/SetRoomOwnerCommand.java @@ -0,0 +1,41 @@ +package eu.mhsl.minenet.minigames.command.privileged; + +import eu.mhsl.minenet.minigames.command.PrivilegedCommand; +import eu.mhsl.minenet.minigames.instance.room.Room; +import eu.mhsl.minenet.minigames.message.Icon; +import eu.mhsl.minenet.minigames.message.type.ChatMessage; +import net.minestom.server.MinecraftServer; +import net.minestom.server.command.builder.arguments.ArgumentType; +import net.minestom.server.command.builder.condition.CommandCondition; +import net.minestom.server.entity.Player; + +import java.util.Objects; + +public class SetRoomOwnerCommand extends PrivilegedCommand { + public SetRoomOwnerCommand() { + super("setRoomOwner"); + + addCondition((sender, commandString) -> ((Player) sender).getInstance() instanceof Room); + + setDefaultExecutor((sender, context) -> { + if(sender instanceof Player p) { + Room.getRoom(p).setOwner(p); + new ChatMessage(Icon.SUCCESS).appendStatic("You are now the owner of this room!").send(sender); + } + }); + + addSyntax((sender, context) -> { + System.out.println("Test"); + if(sender instanceof Player p) { + Player newOwner = MinecraftServer.getConnectionManager().getPlayer(context.getRaw("player")); + Room.getRoom(p).setOwner(Objects.requireNonNull(newOwner)); + new ChatMessage(Icon.SUCCESS).appendStatic("The new owner has been set!").send(sender); + } + }, ArgumentType.Entity("player").onlyPlayers(true)); + } + + @Override + protected CommandCondition isPrivileged() { + return (sender, commandString) -> super.isPrivileged().canUse(sender, commandString) || Room.getRoom(((Player) sender)).getOwner() == sender; + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/room/Room.java b/src/main/java/eu/mhsl/minenet/minigames/instance/room/Room.java index 73e02a9..8b1c069 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/room/Room.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/room/Room.java @@ -70,24 +70,28 @@ public class Room extends MineNetInstance implements Spawnable { private Player owner; private Room(Player owner) { super(Dimension.THE_END.DIMENSION); + construct(); + setOwner(owner); + new GameSelector().setInstance(this, new Pos(0.5, 16, 9.5)); + } + + protected Room() { + super(Dimension.THE_END.DIMENSION); + } + + private void construct() { MinecraftServer.getInstanceManager().registerInstance(this); setChunkLoader(new AnvilLoader(Resource.LOBBY_MAP.getPath())); eventNode().addListener(PlayerBlockBreakEvent.class, CommonEventHandles::cancel); - eventNode().addListener(PlayerDisconnectEvent.class, playerDisconnectEvent -> unsetRoom(playerDisconnectEvent.getPlayer())); - - setOwner(owner); - - new GameSelector().setInstance(this, new Pos(0.5, 16, 9.5)); - } public Player getOwner() { return owner; } - private void setOwner(Player newOwner) { + public void setOwner(Player newOwner) { this.owner = newOwner; this.owner.eventNode().addListener(PlayerDisconnectEvent.class, playerDisconnectEvent -> { @@ -97,7 +101,7 @@ public class Room extends MineNetInstance implements Spawnable { getAllMembers().stream() .filter(player -> player != p) // exclude the current leaving owner - .findFirst() // find first user meeting the requirement + .findFirst() // find the first user meeting the requirement .ifPresentOrElse( this::setOwner, // set the new owner () -> Room.deleteRoom(Room.getRoom(p)) // or else delete the room (no players in the room) @@ -108,10 +112,7 @@ public class Room extends MineNetInstance implements Spawnable { new ChatMessage(Icon.ERROR).appendStatic("The room leader left!").send(getAllMembers()); new ChatMessage(Icon.SCIENCE).appendStatic(this.owner.getUsername()).appendStatic(" is the new Leader!").send(getAllMembers().stream().filter(player -> player != this.owner).collect(Collectors.toSet())); new ChatMessage(Icon.SUCCESS).appendStatic("You are now the leader.").send(this.owner); - - logger.info("Room owner changed from " + p.getUsername() + " to " + owner.getUsername()); }); - } public void moveMembersToGame(Game game) { diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java b/src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java new file mode 100644 index 0000000..b65e11a --- /dev/null +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/virtualRoom/VirtualRoom.java @@ -0,0 +1,15 @@ +package eu.mhsl.minenet.minigames.instance.virtualRoom; + +import eu.mhsl.minenet.minigames.instance.room.Room; +import net.minestom.server.coordinate.Pos; + +public class VirtualRoom extends Room { + public VirtualRoom() { + + } + + @Override + public Pos getSpawn() { + return null; + } +} diff --git a/src/main/java/eu/mhsl/minenet/minigames/score/Score.java b/src/main/java/eu/mhsl/minenet/minigames/score/Score.java index 82d6294..225fc29 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/score/Score.java +++ b/src/main/java/eu/mhsl/minenet/minigames/score/Score.java @@ -30,6 +30,7 @@ public abstract class Score { } public void setDone() { + if(isDone) return; isDone = true; new ChatMessage(Icon.STAR, true) .appendTranslated("score#result")