aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/dwarven
diff options
context:
space:
mode:
authorolim <bobq4582@gmail.com>2024-04-08 16:45:41 +0100
committerolim <bobq4582@gmail.com>2024-04-08 16:45:41 +0100
commit72f269cc871c252c72ce52d553ca7ff2e74dfda4 (patch)
tree7bf6421355cfc7386fd9b5e3a899442f2aba8062 /src/main/java/de/hysky/skyblocker/skyblock/dwarven
parentb3623837bda701610868552005a25a5e5c148b8f (diff)
downloadSkyblocker-72f269cc871c252c72ce52d553ca7ff2e74dfda4.tar.gz
Skyblocker-72f269cc871c252c72ce52d553ca7ff2e74dfda4.tar.bz2
Skyblocker-72f269cc871c252c72ce52d553ca7ff2e74dfda4.zip
add ability to share crystal waypoint locations
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dwarven')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java27
1 files changed, 27 insertions, 0 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 f43574ab..560cb1a3 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dwarven/CrystalsLocationsManager.java
@@ -9,6 +9,7 @@ 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.scheduler.MessageScheduler;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
@@ -40,6 +41,7 @@ import org.slf4j.Logger;
import static com.mojang.brigadier.arguments.StringArgumentType.getString;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.argument;
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal;
+import static net.minecraft.command.CommandSource.suggestMatching;
public class CrystalsLocationsManager {
private static final Logger LOGGER = LogUtils.getLogger();
@@ -113,9 +115,16 @@ public class CrystalsLocationsManager {
.then(literal("crystalWaypoints")
.then(argument("pos", BlockPosArgumentType.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)))
)
)
+ .then(literal("share")
+ .then(argument("place",StringArgumentType.greedyString())
+ .suggests((context, builder) -> suggestMatching(WAYPOINT_LOCATIONS.keySet(), builder))
+ .executes(context -> shareWaypoint(getString(context, "place")))
+ )
+ )
)
);
}
@@ -159,6 +168,24 @@ public class CrystalsLocationsManager {
return Command.SINGLE_SUCCESS;
}
+ public static int shareWaypoint(String place) {
+ if (activeWaypoints.containsKey(place)) {
+ BlockPos location = activeWaypoints.get(place).pos;
+ MessageScheduler.INSTANCE.sendMessageAfterCooldown(Constants.PREFIX.get().getString()+ " " + place + ": " + location.getX() + ", " + location.getY() + ", " + location.getZ());
+ }
+ else {
+ //send fail message
+ if (CLIENT.player == null || CLIENT.getNetworkHandler() == null) {
+ return 0;
+ }
+ MutableText failMessage = Constants.PREFIX.get();
+ failMessage.append(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.crystalsWaypoints.shareFail").withColor(Color.RED.getRGB()));
+ CLIENT.player.sendMessage(failMessage, false);
+ }
+
+ return Command.SINGLE_SUCCESS;
+ }
+
private static void addCustomWaypoint(String waypointName, BlockPos pos) {
CrystalsWaypoint.Category category = WAYPOINT_LOCATIONS.get(waypointName);