From a8a29aaefe969fd68378e69fcf1d024746a6263c Mon Sep 17 00:00:00 2001 From: Surya Date: Sun, 17 Jan 2021 11:01:39 +0530 Subject: [PATCH] Update broadcast message --- README.md | 2 +- .../me/bionicbeanie/mods/SaveCoordinates.java | 79 ++++++++++--------- 2 files changed, 44 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index f478af9..7c3c7f0 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,4 @@ `/sc "My House"` -`/sc Portal` +`/sc Portal` \ No newline at end of file diff --git a/src/main/java/me/bionicbeanie/mods/SaveCoordinates.java b/src/main/java/me/bionicbeanie/mods/SaveCoordinates.java index 39f7ba5..9e934ff 100644 --- a/src/main/java/me/bionicbeanie/mods/SaveCoordinates.java +++ b/src/main/java/me/bionicbeanie/mods/SaveCoordinates.java @@ -4,55 +4,62 @@ import static net.minecraft.server.command.CommandManager.literal; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; +import net.minecraft.network.MessageType; +import net.minecraft.server.PlayerManager; import net.minecraft.server.command.CommandManager; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.math.Vec3d; import net.minecraft.world.dimension.DimensionType; public class SaveCoordinates implements ModInitializer { - - @Override + + @Override public void onInitialize() { CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> { - dispatcher.register( - literal("sc") - .then(CommandManager.argument("desc", StringArgumentType.string()) - .executes(context -> printCoordinates(context, getDescription(context))))); + dispatcher.register(literal("sc").then(CommandManager.argument("desc", StringArgumentType.string()) + .executes(SaveCoordinates::printCoordinates))); }); } - - private static String getDimensionTypeString(ServerCommandSource source) { - - DimensionType dimensionType = source.getEntity().world.getDimension(); - - if(dimensionType.isNatural()){ - return "Overworld"; - } - - if(dimensionType.isUltrawarm()){ - return "Nether"; - } - - return "End"; - } - - private static String getDescription(CommandContext context) { - return StringArgumentType.getString(context, "desc"); - } - - private static int printCoordinates(CommandContext context, String description) { - ServerCommandSource source = context.getSource(); - String dimensionTypeString = getDimensionTypeString(source); - Vec3d pos = source.getEntity().getPos(); - long x = Math.round(pos.x); - long y = Math.round(pos.y); - long z = Math.round(pos.z); - - source.sendFeedback(new LiteralText(description + " at " + dimensionTypeString + " [ " + x + " , " + y + " , " + z + " ]"), false); + + private static String getDimensionTypeString(ServerCommandSource source) { + // Does not work with modded dimensions + + DimensionType dimensionType = source.getEntity().world.getDimension(); + + if (dimensionType.isNatural()) { + return "Overworld"; + } + + if (dimensionType.isUltrawarm()) { + return "Nether"; + } + + return "End"; + } + + private static String getDescription(CommandContext context) { + return StringArgumentType.getString(context, "desc"); + } + + private static int printCoordinates(CommandContext context) throws CommandSyntaxException { + ServerCommandSource source = context.getSource(); + String dimensionTypeString = getDimensionTypeString(source); + String description = getDescription(context); + Vec3d pos = source.getEntity().getPos(); + long x = Math.round(pos.x); + long y = Math.round(pos.y); + long z = Math.round(pos.z); + Text text = new LiteralText( " " + + description + " at " + dimensionTypeString + " [ " + x + " , " + y + " , " + z + " ]"); + PlayerManager playerManager = source.getMinecraftServer().getPlayerManager(); + + playerManager.broadcastChatMessage(text, MessageType.CHAT,source.getPlayer().getUuid()); return 1; - } + } }