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.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 class CreatePortalSubCommand implements SubCommand {
}
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) {
sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translate("command.create.complete"));
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"));
}
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.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 class WarpEffectRegistry {
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 class WarpEffectRegistry {
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;
}

View File

@ -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 @@ import java.util.Map;
@Singleton
public class PortalServices {
@Inject
InfoLogger infoLogger;
public void loadPortals() {
}
@ -34,6 +41,11 @@ public class PortalServices {
}
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;
}

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
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.