diff options
author | Kevin <92656833+kevinthegreat1@users.noreply.github.com> | 2024-07-14 21:37:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-14 21:37:45 +0800 |
commit | 1d1cfea67947dada26ac178d24c75beba677770f (patch) | |
tree | 48cc2a5ab9e2dbcd2060bb06c90e0d7615441a4e /src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java | |
parent | 8fc27fc21c7ac1b72f8327da0855db9148c69895 (diff) | |
parent | 3a7dce4e3d60232805e6fb07ec5cbd5c26b7673e (diff) | |
download | Skyblocker-1d1cfea67947dada26ac178d24c75beba677770f.tar.gz Skyblocker-1d1cfea67947dada26ac178d24c75beba677770f.tar.bz2 Skyblocker-1d1cfea67947dada26ac178d24c75beba677770f.zip |
Merge pull request #834 from Emirlol/command-changes
Add some custom command argument types
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java index d709181f..83167c18 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java @@ -8,6 +8,8 @@ import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.command.argumenttypes.blockpos.ClientBlockPosArgumentType; +import de.hysky.skyblocker.utils.command.argumenttypes.blockpos.ClientPosArgument; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; @@ -18,9 +20,6 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.command.CommandRegistryAccess; -import net.minecraft.command.argument.BlockPosArgumentType; -import net.minecraft.command.argument.PosArgument; -import net.minecraft.server.command.ServerCommandSource; import net.minecraft.text.ClickEvent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; @@ -123,10 +122,10 @@ public class CrystalsLocationsManager { private static void registerWaypointLocationCommands(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) { dispatcher.register(literal(SkyblockerMod.NAMESPACE) .then(literal("crystalWaypoints") - .then(argument("pos", BlockPosArgumentType.blockPos()) + .then(argument("pos", ClientBlockPosArgumentType.blockPos()) .then(argument("place", StringArgumentType.greedyString()) .suggests((context, builder) -> suggestMatching(WAYPOINT_LOCATIONS.keySet(), builder)) - .executes(context -> addWaypointFromCommand(context.getSource(), getString(context, "place"), context.getArgument("pos", PosArgument.class))) + .executes(context -> addWaypointFromCommand(context.getSource(), getString(context, "place"), context.getArgument("pos", ClientPosArgument.class))) ) ) .then(literal("share") @@ -160,9 +159,8 @@ public class CrystalsLocationsManager { return text; } - public static int addWaypointFromCommand(FabricClientCommandSource source, String place, PosArgument location) { - // TODO Less hacky way with custom ClientBlockPosArgumentType - BlockPos blockPos = location.toAbsoluteBlockPos(new ServerCommandSource(null, source.getPosition(), source.getRotation(), null, 0, null, null, null, null)); + public static int addWaypointFromCommand(FabricClientCommandSource source, String place, ClientPosArgument location) { + BlockPos blockPos = location.toAbsoluteBlockPos(source); if (WAYPOINT_LOCATIONS.containsKey(place)) { addCustomWaypoint(place, blockPos); |