Removed unused exeption

This commit is contained in:
sekwah41 2018-02-21 17:03:20 +00:00 committed by Sekwah
parent d7890a7d07
commit 55bb31c470
10 changed files with 148 additions and 26 deletions

View File

@ -57,7 +57,10 @@ portal.error.noname=No name for the portal has been given.
portal.error.takenname=The name given for the portal is already taken. portal.error.takenname=The name given for the portal is already taken.
portal.error.selection.differentworlds=Both the selected points need to be in the same world. portal.error.selection.differentworlds=Both the selected points need to be in the same world.
=error.notplayer=Only players can do that. desti.error.noname=No name for the portal has been given.
desti.error.takenname=The name given for the portal is already taken.
error.notplayer=Only players can do that.
portal.selector.poschange=\u00A7eYou have selected pos%1$s X:%2$s Y:%3$s Z:%4$s portal.selector.poschange=\u00A7eYou have selected pos%1$s X:%2$s Y:%3$s Z:%4$s

View File

@ -185,7 +185,7 @@ public class AdvancedPortalsCore {
return instance.portalManager; return instance.portalManager;
} }
public static DestinationManager getDestiManager() { public static DestinationManager getDestinationManager() {
return instance.destiManager; return instance.destiManager;
} }

View File

@ -45,6 +45,10 @@ public class Destination {
this.args.put(argName, argValue); this.args.put(argName, argValue);
} }
public void setArg(DataTag portalTag) {
this.setArg(portalTag.NAME, portalTag.VALUE);
}
public void removeArg(String arg) { public void removeArg(String arg) {
this.args.remove(arg); this.args.remove(arg);
} }

View File

@ -4,7 +4,8 @@ import com.google.gson.reflect.TypeToken;
import com.sekwah.advancedportals.core.AdvancedPortalsCore; import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.api.destination.Destination; import com.sekwah.advancedportals.core.api.destination.Destination;
import com.sekwah.advancedportals.core.api.portal.DataTag; import com.sekwah.advancedportals.core.api.portal.DataTag;
import com.sekwah.advancedportals.core.api.portal.DestinationException; import com.sekwah.advancedportals.core.api.portal.PortalException;
import com.sekwah.advancedportals.core.api.warphandler.TagHandler;
import com.sekwah.advancedportals.core.data.PlayerLocation; import com.sekwah.advancedportals.core.data.PlayerLocation;
import com.sekwah.advancedportals.coreconnector.container.PlayerContainer; import com.sekwah.advancedportals.coreconnector.container.PlayerContainer;
@ -27,10 +28,30 @@ public class DestinationManager {
this.portalsCore = portalsCore; this.portalsCore = portalsCore;
} }
public void createDesti(PlayerContainer player, PlayerLocation playerLocation, ArrayList<DataTag> dataTags) throws DestinationException { public void createDesti(String name, PlayerContainer player, PlayerLocation playerLocation, ArrayList<DataTag> tags) throws PortalException {
Destination destination = new Destination(playerLocation);
if(name == null || name.equals("")) {
throw new PortalException("desti.error.noname");
}
else if(this.destiHashMap.containsKey(name)) {
throw new PortalException("desti.error.takenname");
}
Destination desti = new Destination(playerLocation);
for(DataTag portalTag : tags) {
desti.setArg(portalTag);
}
for(DataTag destiTag : tags) {
TagHandler.Creation<Destination> creation = AdvancedPortalsCore.getDestinationTagRegistry().getCreationHandler(destiTag.NAME);
if(creation != null) {
creation.created(desti, player, destiTag.VALUE);
}
}
this.destiHashMap.put(name, desti);
} }
public void loadDestinations() { public void loadDestinations() {
Type type = new TypeToken<HashMap<String, Destination>>() { Type type = new TypeToken<HashMap<String, Destination>>() {
}.getType(); }.getType();

View File

@ -143,9 +143,21 @@ public class PortalManager {
PortalLocation maxLoc = new PortalLocation(loc1.worldName, maxX, maxY, maxZ); PortalLocation maxLoc = new PortalLocation(loc1.worldName, maxX, maxY, maxZ);
PortalLocation minLoc = new PortalLocation(loc1.worldName, minX, minY, minZ); PortalLocation minLoc = new PortalLocation(loc1.worldName, minX, minY, minZ);
if(name == null || name.equals("")) {
throw new PortalException("portal.error.noname");
}
else if(this.portalHashMap.containsKey(name)) {
throw new PortalException("portal.error.takenname");
}
AdvancedPortal portal = new AdvancedPortal(maxLoc, minLoc); AdvancedPortal portal = new AdvancedPortal(maxLoc, minLoc);
for(DataTag portalTag : tags) { for(DataTag portalTag : tags) {
portal.setArg(portalTag); if(portalTag.NAME.equalsIgnoreCase("triggerblock")) {
portal.setTriggerBlocks(portalTag.VALUE.split(","));
}
else {
portal.setArg(portalTag);
}
} }
for(DataTag portalTag : tags) { for(DataTag portalTag : tags) {
TagHandler.Creation<AdvancedPortal> creation = AdvancedPortalsCore.getPortalTagRegistry().getCreationHandler(portalTag.NAME); TagHandler.Creation<AdvancedPortal> creation = AdvancedPortalsCore.getPortalTagRegistry().getCreationHandler(portalTag.NAME);
@ -153,12 +165,6 @@ public class PortalManager {
creation.created(portal, player, portalTag.VALUE); creation.created(portal, player, portalTag.VALUE);
} }
} }
if(name == null || name.equals("")) {
throw new PortalException("portal.error.noname");
}
else if(this.portalHashMap.containsKey(name)) {
throw new PortalException("portal.error.takenname");
}
this.portalHashMap.put(name, portal); this.portalHashMap.put(name, portal);
this.updatePortalArray(); this.updatePortalArray();
} }
@ -172,7 +178,7 @@ public class PortalManager {
String portal = this.selectedPortal.get(player.getUUID().toString()); String portal = this.selectedPortal.get(player.getUUID().toString());
if(portal != null) { if(portal != null) {
try { try {
this.removePortal(player, portal); this.removePortal(portal, player);
} }
catch(PortalException e) { catch(PortalException e) {
if(e.getMessage().equals("command.remove.noname")) { if(e.getMessage().equals("command.remove.noname")) {
@ -188,11 +194,11 @@ public class PortalManager {
} }
/** /**
* @param player null if a player didnt send it
* @param portalName name of portal * @param portalName name of portal
* @param player null if a player didnt send it
* @throws PortalException * @throws PortalException
*/ */
public void removePortal(PlayerContainer player, String portalName) throws PortalException { public void removePortal(String portalName, PlayerContainer player) throws PortalException {
AdvancedPortal portal = this.getPortal(portalName); AdvancedPortal portal = this.getPortal(portalName);
if(portal == null) { if(portal == null) {
throw new PortalException("command.remove.noname"); throw new PortalException("command.remove.noname");

View File

@ -109,4 +109,8 @@ public class AdvancedPortal {
} }
return tagList; return tagList;
} }
public void setTriggerBlocks(String[] triggerBlocks) {
this.triggerBlocks = triggerBlocks;
}
} }

View File

@ -1,10 +0,0 @@
package com.sekwah.advancedportals.core.api.portal;
/**
* Returns a message saying what went wrong with the portal tag.
*/
public class DestinationException extends Exception {
public DestinationException(String reason) {
super(reason);
}
}

View File

@ -0,0 +1,94 @@
package com.sekwah.advancedportals.core.commands.subcommands.desti;
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.api.commands.SubCommand;
import com.sekwah.advancedportals.core.api.portal.DataTag;
import com.sekwah.advancedportals.core.api.portal.PortalException;
import com.sekwah.advancedportals.core.util.Lang;
import com.sekwah.advancedportals.coreconnector.container.CommandSenderContainer;
import com.sekwah.advancedportals.coreconnector.container.PlayerContainer;
import java.util.ArrayList;
import java.util.List;
public class CreateSubCommand implements SubCommand {
@Override
public void onCommand(CommandSenderContainer sender, String[] args) {
if(args.length > 2) {
PlayerContainer player = sender.getPlayerContainer();
if(player == null) {
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translate("command.create.console"));
return;
}
ArrayList<DataTag> portalTags = new ArrayList<>();
boolean partingValueWithSpaces = false;
String argBeingParsed = "";
String currentParsedValue = "";
for (int i = 2; i < args.length; i++) {
if(partingValueWithSpaces) {
if(args[i].charAt(args[i].length() - 1) == '"') {
args[i] = args[i].substring(0, args[i].length() - 1);
partingValueWithSpaces = false;
portalTags.add(new DataTag(argBeingParsed.toLowerCase(), currentParsedValue));
}
else {
currentParsedValue += " " + args[i];
}
}
else {
String detectedTag = this.getTag(args[i].toLowerCase());
if(detectedTag != null) {
String arg = args[i].substring(detectedTag.length());
if(arg.length() > 0 && arg.charAt(0) == '"') {
argBeingParsed = detectedTag;
currentParsedValue = arg;
}
else {
portalTags.add(new DataTag(detectedTag.toLowerCase(), arg));
}
}
}
}
try {
AdvancedPortalsCore.getDestinationManager().createDesti(args[1], player, player.getLoc(), portalTags);
} catch (PortalException portalTagExeption) {
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translateColor("command.create.error") + " "
+ Lang.translate(portalTagExeption.getMessage()));
}
}
else {
sender.sendMessage(Lang.translate("command.error.noname"));
}
}
private String getTag(String arg) {
ArrayList<String> tags = AdvancedPortalsCore.getPortalTagRegistry().getTags();
for(String tag : tags) {
if(arg.startsWith(tag + ":")) {
return tag;
}
}
return null;
}
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
}
@Override
public List<String> onTabComplete(CommandSenderContainer sender, String[] args) {
return null;
}
@Override
public String getBasicHelpText() {
return Lang.translate("command.create.help");
}
@Override
public String getDetailedHelpText() {
return Lang.translate("command.create.detailedhelp");
}
}

View File

@ -19,7 +19,7 @@ public class ReloadSubCommand implements SubCommand {
public void onCommand(CommandSenderContainer sender, String[] args) { public void onCommand(CommandSenderContainer sender, String[] args) {
portalsCore.loadPortalConfig(); portalsCore.loadPortalConfig();
portalsCore.getPortalManager().loadPortals(); portalsCore.getPortalManager().loadPortals();
portalsCore.getDestiManager().loadDestinations(); portalsCore.getDestinationManager().loadDestinations();
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.reload.reloaded")); sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.reload.reloaded"));
} }

View File

@ -19,7 +19,7 @@ public class RemoveSubCommand implements SubCommand {
public void onCommand(CommandSenderContainer sender, String[] args) { public void onCommand(CommandSenderContainer sender, String[] args) {
if(args.length > 1) { if(args.length > 1) {
try { try {
AdvancedPortalsCore.getPortalManager().removePortal(sender.getPlayerContainer(), args[1]); AdvancedPortalsCore.getPortalManager().removePortal(args[1], sender.getPlayerContainer());
} catch (PortalException portalTagExeption) { } catch (PortalException portalTagExeption) {
sender.sendMessage(Lang.translateColor("messageprefix.negative") sender.sendMessage(Lang.translateColor("messageprefix.negative")
+ Lang.translateColor("command.remove.error") + " " + Lang.translate(portalTagExeption.getMessage())); + Lang.translateColor("command.remove.error") + " " + Lang.translate(portalTagExeption.getMessage()));