Merge branch 'master' into spigot

This commit is contained in:
sekwah 2018-02-22 03:16:10 +00:00
commit ceffd5ffde
7 changed files with 57 additions and 21 deletions

View File

@ -35,10 +35,18 @@ command.reload.detailedhelp=Reloads all portal data from files in the data folde
command.reload.reloaded= All Advanced Portals data reloaded
command.create.help=Creates portals
command.create.noargs= You need to actually list args for portal creation.
command.create.error= There was an error making the portal:
command.create.console= You cannot create a portal using the console.
command.create.detailedhelp=Format is /portal 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.create.complete= The portal has been successfully created.
command.createdesti.help=Creates destinations
command.createdesti.error= There was an error making the destination:
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=\u00A7aTags:
command.playeronly= Sorry but that command can only be run by a player.
@ -53,11 +61,11 @@ command.selector.help=Gives you a portal region selector
command.selector.detailedhelp=Gives you a portal selector to select the regions for making portals.
portal.error.invalidselection=You must have both pos1 and pos2 selected to create a portal.
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.selection.differentworlds=Both the selected points need to be in the same world.
desti.error.noname=No name for the portal has been given.
command.error.noname= No name has been given.
desti.error.takenname=The name given for the portal is already taken.
error.notplayer=Only players can do that.

View File

@ -10,6 +10,7 @@ import com.sekwah.advancedportals.core.api.warphandler.TagHandler;
import com.sekwah.advancedportals.core.data.PlayerLocation;
import com.sekwah.advancedportals.coreconnector.container.PlayerContainer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
@ -101,4 +102,12 @@ public class Destination {
}
}
}
public ArrayList<DataTag> getArgs() {
ArrayList<DataTag> tagList = new ArrayList<>();
for(Map.Entry<String, String> entry : this.args.entrySet()){
tagList.add(new DataTag(entry.getKey(), entry.getValue()));
}
return tagList;
}
}

View File

@ -28,7 +28,7 @@ public class DestinationManager {
this.portalsCore = portalsCore;
}
public void createDesti(String name, PlayerContainer player, PlayerLocation playerLocation, ArrayList<DataTag> tags) throws PortalException {
public Destination createDesti(String name, PlayerContainer player, PlayerLocation playerLocation, ArrayList<DataTag> tags) throws PortalException {
if(name == null || name.equals("")) {
throw new PortalException("desti.error.noname");
}
@ -47,6 +47,7 @@ public class DestinationManager {
}
}
this.destiHashMap.put(name, desti);
return desti;
}
@ -55,6 +56,10 @@ public class DestinationManager {
Type type = new TypeToken<HashMap<String, Destination>>() {
}.getType();
this.destiHashMap = this.portalsCore.getDataStorage().loadJson(type, "destinations.json");
this.saveDestinations();
}
public void saveDestinations() {
if (this.destiHashMap == null) {
this.destiHashMap = new HashMap<>();
}

View File

@ -67,11 +67,15 @@ public class PortalManager {
Type type = new TypeToken<HashMap<String, AdvancedPortal>>() {
}.getType();
this.portalHashMap = this.portalsCore.getDataStorage().loadJson(type, "portals.json");
this.savePortals();
this.updatePortalArray();
}
public void savePortals() {
if (this.portalHashMap == null) {
this.portalHashMap = new HashMap<>();
}
this.portalsCore.getDataStorage().storeJson(this.portalHashMap, "portals.json");
this.updatePortalArray();
}
public void activateCooldown(PlayerContainer player) {
@ -94,7 +98,7 @@ public class PortalManager {
return false;
}
public void createPortal(String name, PlayerContainer player, ArrayList<DataTag> tags) throws PortalException {
public AdvancedPortal createPortal(String name, PlayerContainer player, ArrayList<DataTag> tags) throws PortalException {
if (this.portalSelectorLeftClick.containsKey(player.getUUID().toString())
&& this.portalSelectorRightClick.containsKey(player.getUUID().toString())) {
this.createPortal(name, player, this.portalSelectorLeftClick.get(player.getUUID().toString()),
@ -102,6 +106,7 @@ public class PortalManager {
} else {
throw new PortalException("portal.invalidselection");
}
return null;
}
/**
@ -127,7 +132,7 @@ public class PortalManager {
* @param tags
* @throws PortalException
*/
public void createPortal(String name, PlayerContainer player, PortalLocation loc1, PortalLocation loc2, ArrayList<DataTag> tags) throws PortalException {
public AdvancedPortal createPortal(String name, PlayerContainer player, PortalLocation loc1, PortalLocation loc2, ArrayList<DataTag> tags) throws PortalException {
int maxX = Math.max(loc1.posX, loc2.posX);
int maxY = Math.max(loc1.posY, loc2.posY);
@ -167,6 +172,7 @@ public class PortalManager {
}
this.portalHashMap.put(name, portal);
this.updatePortalArray();
return portal;
}
private void updatePortalArray() {

View File

@ -2,6 +2,7 @@ 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.destination.Destination;
import com.sekwah.advancedportals.core.api.portal.DataTag;
import com.sekwah.advancedportals.core.api.portal.PortalException;
import com.sekwah.advancedportals.core.commands.subcommands.CreateSubCommand;
@ -16,22 +17,27 @@ public class CreateDestiSubCommand extends CreateSubCommand implements SubComman
@Override
public void onCommand(CommandSenderContainer sender, String[] args) {
if(args.length > 2) {
if(args.length > 1) {
PlayerContainer player = sender.getPlayerContainer();
if(player == null) {
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translate("command.create.console"));
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translate("command.createdesti.console"));
return;
}
ArrayList<DataTag> destiTags = this.getTagsFromArgs(args);
try {
AdvancedPortalsCore.getDestinationManager().createDesti(args[1], player, player.getLoc(), destiTags);
Destination desti = AdvancedPortalsCore.getDestinationManager().createDesti(args[1], player, player.getLoc(), destiTags);
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.createdesti.complete"));
sender.sendMessage(Lang.translateColor("command.create.tags"));
for (DataTag tag: desti.getArgs()) {
sender.sendMessage(tag.NAME + ":" + tag.VALUE);
}
} catch (PortalException portalTagExeption) {
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translateColor("command.create.error") + " "
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translateColor("command.createdesti.error") + " "
+ Lang.translate(portalTagExeption.getMessage()));
}
}
else {
sender.sendMessage(Lang.translate("command.error.noname"));
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translate("command.error.noname"));
}
}
@ -57,11 +63,11 @@ public class CreateDestiSubCommand extends CreateSubCommand implements SubComman
@Override
public String getBasicHelpText() {
return Lang.translate("command.create.help");
return Lang.translate("command.createdesti.help");
}
@Override
public String getDetailedHelpText() {
return Lang.translate("command.create.detailedhelp");
return Lang.translate("command.createdesti.detailedhelp");
}
}

View File

@ -1,4 +0,0 @@
package com.sekwah.advancedportals.core.commands.subcommands.desti;
public class TestSubCommand {
}

View File

@ -2,6 +2,7 @@ package com.sekwah.advancedportals.core.commands.subcommands.portal;
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.api.commands.SubCommand;
import com.sekwah.advancedportals.core.api.portal.AdvancedPortal;
import com.sekwah.advancedportals.core.api.portal.DataTag;
import com.sekwah.advancedportals.core.api.portal.PortalException;
import com.sekwah.advancedportals.core.commands.subcommands.CreateSubCommand;
@ -16,7 +17,7 @@ public class CreatePortalSubCommand extends CreateSubCommand implements SubComma
@Override
public void onCommand(CommandSenderContainer sender, String[] args) {
if(args.length > 2) {
if(args.length > 1) {
PlayerContainer player = sender.getPlayerContainer();
if(player == null) {
sender.sendMessage(Lang.translateColor("messageprefix.negative") + Lang.translate("command.create.console"));
@ -24,14 +25,19 @@ public class CreatePortalSubCommand extends CreateSubCommand implements SubComma
}
ArrayList<DataTag> portalTags = this.getTagsFromArgs(args);
try {
AdvancedPortalsCore.getPortalManager().createPortal(args[1], player, portalTags);
AdvancedPortal portal = AdvancedPortalsCore.getPortalManager().createPortal(args[1], player, portalTags);
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.create.complete"));
sender.sendMessage(Lang.translateColor("command.create.tags"));
for (DataTag tag: portal.getArgs()) {
sender.sendMessage(tag.NAME + ":" + tag.VALUE);
}
} 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"));
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translate("command.error.noname"));
}
}