diff --git a/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java index a1883ebb..bcfb3259 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java @@ -8,6 +8,7 @@ import com.sekwah.advancedportals.core.permissions.PortalPermissions; import com.sekwah.advancedportals.core.portal.AdvancedPortal; import com.sekwah.advancedportals.core.services.PortalServices; +import com.sekwah.advancedportals.core.util.InfoLogger; import com.sekwah.advancedportals.core.util.Lang; import com.sekwah.advancedportals.core.util.TagReader; @@ -20,6 +21,9 @@ public class CreatePortalSubCommand implements SubCommand { @Inject PortalServices portalServices; + @Inject + InfoLogger infoLogger; + @Override public void onCommand(CommandSenderContainer sender, String[] args) { if(args.length > 1) { @@ -30,7 +34,10 @@ public void onCommand(CommandSenderContainer sender, String[] args) { } ArrayList portalTags = TagReader.getTagsFromArgs(args); - AdvancedPortal portal = portalServices.createPortal(args[1], player, portalTags); + // Find the tag with the "name" NAME + DataTag nameTag = portalTags.stream().findFirst().filter(tag -> tag.NAME.equals("name")).orElse(null); + + AdvancedPortal portal = portalServices.createPortal(nameTag == null ? null : nameTag.VALUES[0], player, portalTags); if(portal != null) { sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.create.complete")); sender.sendMessage(Lang.translate("command.create.tags")); @@ -49,7 +56,7 @@ public void onCommand(CommandSenderContainer sender, String[] args) { sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.create.error")); } else { - sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.error.noname")); + sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.error.notags")); } } diff --git a/core/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java index 44f1ddc7..381edc1d 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java @@ -3,6 +3,7 @@ import com.google.inject.Inject; import com.sekwah.advancedportals.core.AdvancedPortalsCore; import com.sekwah.advancedportals.core.effect.WarpEffect; +import com.sekwah.advancedportals.core.util.InfoLogger; import java.util.HashMap; import java.util.Map; @@ -20,6 +21,9 @@ public class WarpEffectRegistry { @Inject private AdvancedPortalsCore portalsCore; + @Inject + private InfoLogger infoLogger; + /** * Register a new warp effect. * @@ -61,7 +65,7 @@ public WarpEffect getEffect(String name, WarpEffect.Type type){ list = this.visualEffects; break; default: - this.portalsCore.getInfoLogger().logWarning(type.toString() + this.infoLogger.logWarning(type.toString() + " effect type not recognised"); return null; } @@ -69,7 +73,7 @@ public WarpEffect getEffect(String name, WarpEffect.Type type){ return list.get(name); } else{ - this.portalsCore.getInfoLogger().logWarning("No effect of type:" + this.infoLogger.logWarning("No effect of type:" + type.toString() + " was registered with the name: " + name); return null; } diff --git a/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java b/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java index 9f33333c..80cf6147 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java @@ -1,10 +1,13 @@ package com.sekwah.advancedportals.core.services; import com.google.common.collect.ImmutableList; +import com.google.inject.Inject; import com.sekwah.advancedportals.core.connector.containers.PlayerContainer; import com.sekwah.advancedportals.core.serializeddata.DataTag; import com.sekwah.advancedportals.core.serializeddata.PlayerLocation; import com.sekwah.advancedportals.core.portal.AdvancedPortal; +import com.sekwah.advancedportals.core.util.InfoLogger; +import com.sekwah.advancedportals.core.util.Lang; import javax.inject.Singleton; import java.util.ArrayList; @@ -13,6 +16,10 @@ @Singleton public class PortalServices { + + @Inject + InfoLogger infoLogger; + public void loadPortals() { } @@ -34,6 +41,11 @@ public boolean removePortal(String name, PlayerContainer player) { } public AdvancedPortal createPortal(String name, PlayerContainer player, ArrayList portalTags) { + if(name == null){ + infoLogger.logWarning("Attempted to make a portal with no name"); + player.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.error.noname")); + return null; + } return null; } diff --git a/lang/src/main/resources/lang/en_GB.lang b/lang/src/main/resources/lang/en_GB.lang index 4d6c907b..d138f358 100644 --- a/lang/src/main/resources/lang/en_GB.lang +++ b/lang/src/main/resources/lang/en_GB.lang @@ -102,6 +102,7 @@ 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.notags= No tags have been given. You need to include at least &ename:(name)&c. desti.error.takenname=The name given for the portal is already taken.