feat: add a warning for no name being included

This commit is contained in:
Sekwah 2023-11-29 03:32:11 +00:00
parent 0753839699
commit 19d6d8f0fb
4 changed files with 28 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import com.sekwah.advancedportals.core.serializeddata.DataTag;
import com.sekwah.advancedportals.core.permissions.PortalPermissions; import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.portal.AdvancedPortal; import com.sekwah.advancedportals.core.portal.AdvancedPortal;
import com.sekwah.advancedportals.core.services.PortalServices; 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.Lang;
import com.sekwah.advancedportals.core.util.TagReader; import com.sekwah.advancedportals.core.util.TagReader;
@ -20,6 +21,9 @@ public class CreatePortalSubCommand implements SubCommand {
@Inject @Inject
PortalServices portalServices; PortalServices portalServices;
@Inject
InfoLogger infoLogger;
@Override @Override
public void onCommand(CommandSenderContainer sender, String[] args) { public void onCommand(CommandSenderContainer sender, String[] args) {
if(args.length > 1) { if(args.length > 1) {
@ -30,7 +34,10 @@ public class CreatePortalSubCommand implements SubCommand {
} }
ArrayList<DataTag> portalTags = TagReader.getTagsFromArgs(args); ArrayList<DataTag> 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) { if(portal != null) {
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.create.complete")); sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.create.complete"));
sender.sendMessage(Lang.translate("command.create.tags")); sender.sendMessage(Lang.translate("command.create.tags"));
@ -49,7 +56,7 @@ public class CreatePortalSubCommand implements SubCommand {
sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.create.error")); sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.create.error"));
} }
else { else {
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.error.noname")); sender.sendMessage(Lang.translate("messageprefix.negative") + Lang.translate("command.error.notags"));
} }
} }

View File

@ -3,6 +3,7 @@ package com.sekwah.advancedportals.core.registry;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.sekwah.advancedportals.core.AdvancedPortalsCore; import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.effect.WarpEffect; import com.sekwah.advancedportals.core.effect.WarpEffect;
import com.sekwah.advancedportals.core.util.InfoLogger;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -20,6 +21,9 @@ public class WarpEffectRegistry {
@Inject @Inject
private AdvancedPortalsCore portalsCore; private AdvancedPortalsCore portalsCore;
@Inject
private InfoLogger infoLogger;
/** /**
* Register a new warp effect. * Register a new warp effect.
* *
@ -61,7 +65,7 @@ public class WarpEffectRegistry {
list = this.visualEffects; list = this.visualEffects;
break; break;
default: default:
this.portalsCore.getInfoLogger().logWarning(type.toString() this.infoLogger.logWarning(type.toString()
+ " effect type not recognised"); + " effect type not recognised");
return null; return null;
} }
@ -69,7 +73,7 @@ public class WarpEffectRegistry {
return list.get(name); return list.get(name);
} }
else{ else{
this.portalsCore.getInfoLogger().logWarning("No effect of type:" this.infoLogger.logWarning("No effect of type:"
+ type.toString() + " was registered with the name: " + name); + type.toString() + " was registered with the name: " + name);
return null; return null;
} }

View File

@ -1,10 +1,13 @@
package com.sekwah.advancedportals.core.services; package com.sekwah.advancedportals.core.services;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.inject.Inject;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer; import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.serializeddata.DataTag; import com.sekwah.advancedportals.core.serializeddata.DataTag;
import com.sekwah.advancedportals.core.serializeddata.PlayerLocation; import com.sekwah.advancedportals.core.serializeddata.PlayerLocation;
import com.sekwah.advancedportals.core.portal.AdvancedPortal; 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 javax.inject.Singleton;
import java.util.ArrayList; import java.util.ArrayList;
@ -13,6 +16,10 @@ import java.util.Map;
@Singleton @Singleton
public class PortalServices { public class PortalServices {
@Inject
InfoLogger infoLogger;
public void loadPortals() { public void loadPortals() {
} }
@ -34,6 +41,11 @@ public class PortalServices {
} }
public AdvancedPortal createPortal(String name, PlayerContainer player, ArrayList<DataTag> portalTags) { public AdvancedPortal createPortal(String name, PlayerContainer player, ArrayList<DataTag> 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; return null;
} }

View File

@ -98,6 +98,7 @@ portal.error.selection.differentworlds=Both the selected points need to be in th
desti.info.noargs=&cNo tags were given desti.info.noargs=&cNo tags were given
command.error.noname= No name has been 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. desti.error.takenname=The name given for the portal is already taken.