From c3e60fa02ec0452f630b8ec61baefd33c90608b8 Mon Sep 17 00:00:00 2001 From: sekwah Date: Sun, 3 Dec 2023 18:31:53 +0000 Subject: [PATCH] feat: add error messages for the destination commands --- .../subcommands/desti/CreateDestiSubCommand.java | 13 ++++++++++--- .../core/destination/Destination.java | 2 +- .../core/services/DestinationServices.java | 9 +++++---- lang/src/main/resources/lang/en_GB.lang | 8 ++++---- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java index 440977c..e45a09f 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java @@ -44,9 +44,14 @@ public class CreateDestiSubCommand extends CreateTaggedSubCommand { destinationTags.add(nameTag); } + if (nameTag == null) { + sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.error.noname")); + return; + } + Destination destination = destinationServices.createDesti(player, player.getLoc(), destinationTags); if(destination != null) { - sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.createdesti.complete")); + sender.sendMessage(""); sender.sendMessage(Lang.translate("command.create.tags")); ArrayList destiArgs = destination.getArgs(); @@ -57,19 +62,21 @@ public class CreateDestiSubCommand extends CreateTaggedSubCommand { else { for (DataTag tag : destiArgs) { if(tag.VALUES.length == 1) { - sender.sendMessage("\u00A7a" + tag.NAME + "\u00A77:\u00A7e" + tag.VALUES[0]); + sender.sendMessage(" \u00A7a" + tag.NAME + "\u00A77:\u00A7e" + tag.VALUES[0]); } else { sender.sendMessage("\u00A7a" + tag.NAME + "\u00A77:\u00A7e" + tag.VALUES[0]); } } } + sender.sendMessage(""); + sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.createdesti.complete")); } else { sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.createdesti.error")); } } else { - sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.error.noname")); + sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.error.noname")); } } diff --git a/core/src/main/java/com/sekwah/advancedportals/core/destination/Destination.java b/core/src/main/java/com/sekwah/advancedportals/core/destination/Destination.java index cd84d8b..0058a72 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/destination/Destination.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/destination/Destination.java @@ -33,7 +33,7 @@ public class Destination implements TagTarget { private PlayerLocation loc; @SerializedName("a") - private HashMap args = new HashMap<>(); + transient private HashMap args = new HashMap<>(); private transient Set argsCol; diff --git a/core/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java b/core/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java index a8b2533..b8d986d 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java @@ -66,16 +66,16 @@ public class DestinationServices { // If the name is null, send an error saying that the name is required. if(nameTag == null) { - player.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("desti.error.noname")); + player.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("desti.error.noname")); return null; } if(name == null || name.equals("")) { - player.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("desti.error.noname")); + player.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.error.noname")); return null; } else if(this.destinationRepository.containsKey(name)) { - player.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("desti.error.takenname")); + player.sendMessage(Lang.translate("messageprefix.negative") + Lang.translateInsertVariables("command.error.nametaken", name)); return null; } @@ -92,8 +92,9 @@ public class DestinationServices { } try { this.destinationRepository.addDestination(name, desti); - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); + player.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("desti.error.save")); } this.saveDestinations(); return desti; diff --git a/lang/src/main/resources/lang/en_GB.lang b/lang/src/main/resources/lang/en_GB.lang index 95e5031..825b94d 100644 --- a/lang/src/main/resources/lang/en_GB.lang +++ b/lang/src/main/resources/lang/en_GB.lang @@ -67,7 +67,7 @@ command.createdesti.console= You cannot create a destination using the console. command.createdesti.detailedhelp=Format is /desti create (name) [tag:tagvalue] List tags after create in the format tag:value, if your value needs spaces use the format tag:"value with spaces" command.createdesti.complete= The destination has been successfully created. -command.create.tags=&aTags: +command.create.tags=&aTags&e: command.playeronly= Sorry but that command can only be run by a player. @@ -97,11 +97,11 @@ portal.error.selection.differentworlds=Both the selected points need to be in th desti.info.noargs=&cNo tags were given -command.error.noname= No name has been given. +command.error.noname= You must specify a name. (name:someNameHere) command.error.notags= No tags have been given. You need to include at least &ename:(name)&c. +command.error.nametaken= The name &e%1$s &cis already taken. -desti.error.takenname=The name given for the portal is already taken. -desti.error.noname=You must specify a name for the destination. (name:destinationname) +desti.error.save= There was a problem saving the destination: error.notplayer=Only players can do that.