A Minecraft server-side mod that adds various teleportation related commands
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

updates

+62 -48
+1 -2
src/main/java/dev/mrsnowy/teleport_commands/TeleportCommands.java
··· 44 44 45 45 // todo: /back /tpa /tpahere /home /homes /sethome /delhome /renamehome /defaulthome /spawn /worldspawn 46 46 commands.registerCommands(); 47 - 48 47 } 49 48 50 49 ··· 52 51 private void onPlayerUnload(Entity entity, ServerWorld world) { 53 52 if (entity instanceof ServerPlayerEntity player) { 54 53 // LOGGER.info(String.valueOf(entity.getRemovalReason())); 55 - if (player.getRemovalReason() != null && Objects.equals(player.getRemovalReason().toString(), "KILLED") || Objects.equals(player.getRemovalReason().toString(), "DISCARDED")) { 54 + if (player.getRemovalReason() != null && (Objects.equals(player.getRemovalReason().toString(), "KILLED") || Objects.equals(player.getRemovalReason().toString(), "DISCARDED"))) { 56 55 try { 57 56 // /back command position 58 57 LOGGER.info(player.getPos().toString());
+16 -21
src/main/java/dev/mrsnowy/teleport_commands/storage/StorageManager.java
··· 56 56 StorageClass.Player newPlayer = new StorageClass.Player(); 57 57 58 58 newPlayer.Player_UUID = UUID; 59 - newPlayer.DefaultHome = "home"; 59 + newPlayer.DefaultHome = ""; 60 60 newPlayer.deathLocation = new StorageClass.Player.Location(); 61 61 newPlayer.deathLocation.x = new StorageClass.Player.Location().x; 62 62 newPlayer.deathLocation.y = new StorageClass.Player.Location().y; ··· 91 91 return gson.fromJson(jsonContent, StorageClass.class); 92 92 } 93 93 94 - public static PlayerStorageResult GetPlayerStorage(String UUID) { 95 - try { 96 - StorageClass storage = StorageRetriever(); 94 + public static PlayerStorageResult GetPlayerStorage(String UUID) throws Exception { 95 + StorageClass storage = StorageRetriever(); 97 96 98 - Optional<StorageClass.Player> playerStorage = storage.Players.stream() 97 + Optional<StorageClass.Player> playerStorage = storage.Players.stream() 98 + .filter(player -> Objects.equals(UUID, player.Player_UUID)) 99 + .findFirst(); 100 + 101 + if (playerStorage.isEmpty()) { 102 + StorageAdd(UUID); 103 + 104 + storage = StorageRetriever(); 105 + 106 + playerStorage = storage.Players.stream() 99 107 .filter(player -> Objects.equals(UUID, player.Player_UUID)) 100 108 .findFirst(); 101 109 102 110 if (playerStorage.isEmpty()) { 103 - StorageAdd(UUID); 104 - 105 - storage = StorageRetriever(); 106 - 107 - playerStorage = storage.Players.stream() 108 - .filter(player -> Objects.equals(UUID, player.Player_UUID)) 109 - .findFirst(); 110 - 111 - if (playerStorage.isEmpty()) { 112 - throw new Exception("No Player found?!"); 113 - } 111 + throw new Exception("No Player found?!"); 114 112 } 115 - 116 - return new PlayerStorageResult(storage, playerStorage.get()); 117 - 118 - } catch (Exception e) { 119 - throw new RuntimeException(e); 120 113 } 114 + 115 + return new PlayerStorageResult(storage, playerStorage.get()); 121 116 } 122 117 123 118 public static class PlayerStorageResult {
+13 -7
src/main/java/dev/mrsnowy/teleport_commands/suggestions/HomesuggestionProvider.java
··· 4 4 import com.mojang.brigadier.suggestion.SuggestionProvider; 5 5 import com.mojang.brigadier.suggestion.Suggestions; 6 6 import com.mojang.brigadier.suggestion.SuggestionsBuilder; 7 + import dev.mrsnowy.teleport_commands.TeleportCommands; 7 8 import dev.mrsnowy.teleport_commands.storage.StorageManager; 8 9 import net.minecraft.server.command.ServerCommandSource; 9 10 import net.minecraft.server.network.ServerPlayerEntity; ··· 18 19 public class HomesuggestionProvider implements SuggestionProvider<ServerCommandSource> { 19 20 @Override 20 21 public CompletableFuture<Suggestions> getSuggestions(CommandContext<ServerCommandSource> context, SuggestionsBuilder builder) { 22 + try { 23 + ServerPlayerEntity player = Objects.requireNonNull(context.getSource().getPlayer()); 24 + StorageManager.StorageClass.Player playerStorage = null; 25 + playerStorage = GetPlayerStorage(player.getUuidAsString()).playerStorage; 21 26 22 - ServerPlayerEntity player = Objects.requireNonNull(context.getSource().getPlayer()); 23 - StorageManager.StorageClass.Player playerStorage = GetPlayerStorage(player.getUuidAsString()).playerStorage; 27 + for (StorageManager.StorageClass.Player.Home currenthome : playerStorage.Homes) { 28 + builder.suggest(currenthome.name); 29 + } 24 30 25 - for (StorageManager.StorageClass.Player.Home currenthome : playerStorage.Homes) { 26 - builder.suggest(currenthome.name); 31 + // Build and return the suggestions 32 + return builder.buildFuture(); 33 + } catch (Exception e) { 34 + TeleportCommands.LOGGER.error("Error getting suggestions!"); 35 + return null; 27 36 } 28 - 29 - // Build and return the suggestions 30 - return builder.buildFuture(); 31 37 } 32 38 }
+22 -12
src/main/java/dev/mrsnowy/teleport_commands/utils/commands.java
··· 8 8 import net.minecraft.server.command.CommandManager; 9 9 import net.minecraft.server.network.ServerPlayerEntity; 10 10 import net.minecraft.text.Text; 11 + import net.minecraft.util.Formatting; 11 12 12 13 import javax.swing.text.html.parser.Entity; 13 14 import java.util.Objects; ··· 18 19 public class commands { 19 20 public static void registerCommands() { 20 21 CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("back") 21 - // .requires(source -> source.hasPermissionLevel(2)) 22 22 .executes(context -> { 23 23 ServerPlayerEntity player = Objects.requireNonNull(context.getSource().getPlayer()); 24 - 25 - player.sendMessage(Text.literal("Teleporting"), true); 26 - tools.ToDeathLocation(player); 24 + try { 25 + player.sendMessage(Text.literal("Teleporting"), true); 26 + tools.ToDeathLocation(player); 27 + } catch (Exception e) { 28 + TeleportCommands.LOGGER.error(String.valueOf(e)); 29 + player.sendMessage(Text.literal("Error Teleporting!").formatted(Formatting.RED, Formatting.BOLD), true); 30 + return 1; 31 + } 27 32 return 0; 28 33 }))); 29 34 ··· 40 45 41 46 } catch (Exception e) { 42 47 TeleportCommands.LOGGER.error(String.valueOf(e)); 43 - player.sendMessage(Text.literal("Error Setting Home"), true); 48 + player.sendMessage(Text.literal("Error Setting Home!").formatted(Formatting.RED, Formatting.BOLD), true); 44 49 return 1; 45 50 } 46 51 return 0; ··· 56 61 57 62 } catch (Exception e) { 58 63 TeleportCommands.LOGGER.error(String.valueOf(e)); 59 - player.sendMessage(Text.literal("Error Going Home"), true); 64 + player.sendMessage(Text.literal("Error Going Home!").formatted(Formatting.RED, Formatting.BOLD), true); 60 65 return 1; 61 66 } 62 67 return 0; ··· 71 76 tools.GoHome(player, name); 72 77 73 78 } catch (Exception e) { 74 - player.sendMessage(Text.literal("Error Going Home"), true); 79 + player.sendMessage(Text.literal("Error Going Home!").formatted(Formatting.RED, Formatting.BOLD), true); 75 80 TeleportCommands.LOGGER.error(String.valueOf(e)); 76 81 return 1; 77 82 } ··· 90 95 91 96 } catch (Exception e) { 92 97 TeleportCommands.LOGGER.error(String.valueOf(e)); 93 - player.sendMessage(Text.literal("Error Deleting Home"), true); 98 + player.sendMessage(Text.literal("Error Deleting Home!").formatted(Formatting.RED, Formatting.BOLD), true); 94 99 return 1; 95 100 } 96 101 return 0; ··· 109 114 tools.RenameHome(player, name, newName); 110 115 } catch (Exception e) { 111 116 TeleportCommands.LOGGER.error(String.valueOf(e)); 112 - player.sendMessage(Text.literal("Error Renaming Home"), true); 117 + player.sendMessage(Text.literal("Error Renaming Home!").formatted(Formatting.RED, Formatting.BOLD), true); 113 118 return 1; 114 119 } 115 120 return 0; ··· 119 124 CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("homes") 120 125 .executes(context -> { 121 126 ServerPlayerEntity player = Objects.requireNonNull(context.getSource().getPlayer()); 122 - 123 - tools.PrintHomes(player); 127 + try { 128 + tools.PrintHomes(player); 129 + } catch (Exception e) { 130 + TeleportCommands.LOGGER.error(String.valueOf(e)); 131 + player.sendMessage(Text.literal("Error Getting Homes!").formatted(Formatting.RED, Formatting.BOLD), true); 132 + return 1; 133 + } 124 134 return 0; 125 135 }))); 126 136 ··· 133 143 tools.SetDefaultHome(player, name); 134 144 } catch (Exception e) { 135 145 TeleportCommands.LOGGER.error(String.valueOf(e)); 136 - player.sendMessage(Text.literal("Error Changing Default Home"), true); 146 + player.sendMessage(Text.literal("Error Changing Default Home!").formatted(Formatting.RED, Formatting.BOLD), true); 137 147 return 1; 138 148 } 139 149 return 0;
+10 -6
src/main/java/dev/mrsnowy/teleport_commands/utils/tools.java
··· 89 89 } 90 90 } 91 91 92 - public static void GoHome(ServerPlayerEntity player, String homeName) { 92 + public static void GoHome(ServerPlayerEntity player, String homeName) throws Exception { 93 93 homeName = homeName.toLowerCase(); 94 94 StorageClass.Player playerStorage = GetPlayerStorage(player.getUuidAsString()).playerStorage; 95 95 96 + // check if there is a default exists 96 97 if (homeName.isEmpty()) { 97 - homeName = playerStorage.DefaultHome; 98 - // todo : can cause error if home doesnt exist 98 + if (playerStorage.DefaultHome.isEmpty()) { 99 + player.sendMessage(Text.literal("You Have No Homes!"), true); 100 + return; 101 + } else { 102 + homeName = playerStorage.DefaultHome; 103 + } 99 104 } 100 105 101 106 boolean foundHome = false; ··· 122 127 } else if (!foundWorld) { 123 128 player.sendMessage(Text.literal("World Not Found!"), true); 124 129 } 125 - 126 130 } 127 131 128 132 public static void DeleteHome(ServerPlayerEntity player, String homeName) throws Exception { ··· 193 197 194 198 } 195 199 196 - public static void PrintHomes(ServerPlayerEntity player) { 200 + public static void PrintHomes(ServerPlayerEntity player) throws Exception { 197 201 StorageClass.Player playerStorage = GetPlayerStorage(player.getUuidAsString()).playerStorage; 198 202 boolean anyHomes = false; 199 203 ··· 269 273 } 270 274 271 275 272 - public static void ToDeathLocation(ServerPlayerEntity player) { 276 + public static void ToDeathLocation(ServerPlayerEntity player) throws Exception { 273 277 StorageClass.Player playerStorage = GetPlayerStorage(player.getUuidAsString()).playerStorage; 274 278 275 279 Vec3d pos = new Vec3d(playerStorage.deathLocation.x, playerStorage.deathLocation.y, playerStorage.deathLocation.z);