From 646fc93d94a480e6dc5f799e7a05e3692c4fabb9 Mon Sep 17 00:00:00 2001 From: jnngl Date: Wed, 12 Jul 2023 01:20:18 +1100 Subject: [PATCH] Add TELEPORT_PLAYER action --- src/main/java/net/elytrium/limbohub/Settings.java | 8 +++++--- .../net/elytrium/limbohub/handler/HubSessionHandler.java | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/elytrium/limbohub/Settings.java b/src/main/java/net/elytrium/limbohub/Settings.java index 0daf4ac..7da79b6 100644 --- a/src/main/java/net/elytrium/limbohub/Settings.java +++ b/src/main/java/net/elytrium/limbohub/Settings.java @@ -341,10 +341,11 @@ public enum Type { SEND_MESSAGE, OPEN_MENU, CONNECT_TO_SERVER, - KICK_PLAYER + KICK_PLAYER, + TELEPORT_PLAYER } - @Comment("Available values: DO_NOTHING, CLOSE_MENU, SEND_MESSAGE, OPEN_MENU, CONNECT_TO_SERVER, KICK_PLAYER") + @Comment("Available values: DO_NOTHING, CLOSE_MENU, SEND_MESSAGE, OPEN_MENU, CONNECT_TO_SERVER, KICK_PLAYER, TELEPORT_PLAYER") public Type TYPE = Type.DO_NOTHING; @Comment({ "Depends on action type:", @@ -353,7 +354,8 @@ public enum Type { "SEND_MESSAGE: Message to send, lines should be separated with {NL}.", "OPEN_MENU: Menu ID", "CONNECT_TO_SERVER: Server name (as in velocity.toml).", - "KICK_PLAYER: Kick reason" + "KICK_PLAYER: Kick reason", + "TELEPORT_PLAYER: Coordinates in \"x y z yaw pitch\" format." }) public String DATA = ""; } diff --git a/src/main/java/net/elytrium/limbohub/handler/HubSessionHandler.java b/src/main/java/net/elytrium/limbohub/handler/HubSessionHandler.java index 6d2908d..f6fcef2 100644 --- a/src/main/java/net/elytrium/limbohub/handler/HubSessionHandler.java +++ b/src/main/java/net/elytrium/limbohub/handler/HubSessionHandler.java @@ -237,6 +237,14 @@ private void handleAction(Settings.MAIN.ACTION action) { this.proxyPlayer.disconnect(LimboHub.getSerializer().deserialize(action.DATA)); break; + case TELEPORT_PLAYER: + String[] data = action.DATA.split(" "); + this.player.teleport( + Double.parseDouble(data[0]), Double.parseDouble(data[1]), Double.parseDouble(data[2]), + Float.parseFloat(data[3]), Float.parseFloat(data[4]) + ); + break; + default: throw new IllegalStateException(); }