diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java index 23a7dc70e9..5b35dbbcd3 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java @@ -24,6 +24,7 @@ import meteordevelopment.meteorclient.systems.waypoints.Waypoint; import meteordevelopment.meteorclient.systems.waypoints.Waypoints; import meteordevelopment.meteorclient.utils.Utils; +import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.meteorclient.utils.player.PlayerUtils; import meteordevelopment.meteorclient.utils.render.NametagUtils; import meteordevelopment.meteorclient.utils.render.color.Color; @@ -33,6 +34,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.permissions.Permissions; import net.minecraft.world.phys.Vec3; import org.joml.Vector3d; @@ -41,6 +43,7 @@ import java.util.Date; import java.util.List; +import static meteordevelopment.meteorclient.MeteorClient.mc; import static meteordevelopment.meteorclient.utils.player.ChatUtils.formatCoords; public class WaypointsModule extends Module { @@ -255,6 +258,24 @@ private void initTable(GuiTheme theme, WTable table) { }; } + boolean isOperator = mc.player.permissions().hasPermission(Permissions.COMMANDS_GAMEMASTER); + if (isOperator) { + WButton teleportB = table.add(theme.button("TP")).widget(); + teleportB.action = () -> { + BlockPos pos = waypoint.pos.get(); + + String command = String.format( + "/execute in %s run tp %d %d %d", + waypoint.dimension.toString(), + pos.getX(), + pos.getY(), + pos.getZ() + ); + + ChatUtils.sendPlayerMsg(command, false); + }; + } + WConfirmedMinus remove = table.add(theme.confirmedMinus()).widget(); remove.action = () -> { Waypoints.get().remove(waypoint); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/world/Dimension.java b/src/main/java/meteordevelopment/meteorclient/utils/world/Dimension.java index e234259ce5..ac61f346e3 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/world/Dimension.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/world/Dimension.java @@ -17,4 +17,12 @@ public Dimension opposite() { default -> this; }; } + + public String toString() { + return switch (this) { + case Nether -> "minecraft:the_nether"; + case End -> "minecraft:the_end"; + default -> "minecraft:overworld"; + }; + } }