Added code to check if the material exists

This commit is contained in:
sekwah 2018-02-22 04:03:44 +00:00
parent 550fbe8804
commit 3e176566cc
5 changed files with 28 additions and 13 deletions

View File

@ -14,6 +14,7 @@ import com.sekwah.advancedportals.core.util.Config;
import com.sekwah.advancedportals.core.util.DataStorage; import com.sekwah.advancedportals.core.util.DataStorage;
import com.sekwah.advancedportals.core.util.InfoLogger; 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.coreconnector.ConnectorDataCollector;
import com.sekwah.advancedportals.coreconnector.command.CommandRegister; import com.sekwah.advancedportals.coreconnector.command.CommandRegister;
public class AdvancedPortalsCore { public class AdvancedPortalsCore {
@ -23,6 +24,7 @@ public class AdvancedPortalsCore {
private final DataStorage dataStorage; private final DataStorage dataStorage;
private final InfoLogger infoLogger; private final InfoLogger infoLogger;
private final int mcMinorVer; private final int mcMinorVer;
private final ConnectorDataCollector dataCollector;
private WarpEffectRegistry warpEffectRegistry; private WarpEffectRegistry warpEffectRegistry;
private TagRegistry<AdvancedPortal> portalTagRegistry; private TagRegistry<AdvancedPortal> portalTagRegistry;
@ -47,11 +49,13 @@ public class AdvancedPortalsCore {
* @param commandRegister - Handles the command registry, different on each platform * @param commandRegister - Handles the command registry, different on each platform
* @param mcVer Minecraft version e.g. 1.12.2 * @param mcVer Minecraft version e.g. 1.12.2
*/ */
public AdvancedPortalsCore(DataStorage dataStorage, InfoLogger infoLogger, CommandRegister commandRegister, int[] mcVer) { public AdvancedPortalsCore(DataStorage dataStorage, InfoLogger infoLogger, CommandRegister commandRegister,
ConnectorDataCollector dataCollector, int[] mcVer) {
this.dataStorage = dataStorage; this.dataStorage = dataStorage;
this.infoLogger = infoLogger; this.infoLogger = infoLogger;
this.instance = this; this.instance = this;
this.commandRegister = commandRegister; this.commandRegister = commandRegister;
this.dataCollector = dataCollector;
this.mcMinorVer = this.checkMcVer(mcVer); this.mcMinorVer = this.checkMcVer(mcVer);
this.onEnable(); this.onEnable();
@ -181,6 +185,10 @@ public class AdvancedPortalsCore {
return instance.infoLogger; return instance.infoLogger;
} }
public static ConnectorDataCollector getDataCollector() {
return instance.dataCollector;
}
public static CoreListeners getCoreListeners() { public static CoreListeners getCoreListeners() {
return instance.coreListeners; return instance.coreListeners;
} }

View File

@ -157,7 +157,15 @@ public class PortalManager {
AdvancedPortal portal = new AdvancedPortal(maxLoc, minLoc); AdvancedPortal portal = new AdvancedPortal(maxLoc, minLoc);
for(DataTag portalTag : tags) { for(DataTag portalTag : tags) {
if(portalTag.NAME.equalsIgnoreCase("triggerblock")) { if(portalTag.NAME.equalsIgnoreCase("triggerblock")) {
portal.setTriggerBlocks(portalTag.VALUE.split(",")); ArrayList<String> triggers = new ArrayList<>();
for(String trigger : portalTag.VALUE.split(",")) {
if(AdvancedPortalsCore.getDataCollector().materialExists(trigger)) {
triggers.add(trigger.toLowerCase());
}
}
if(triggers.size() != 0) {
portal.setTriggerBlocks(triggers.toArray(new String[0]));
}
} }
else { else {
portal.setArg(portalTag); portal.setArg(portalTag);

View File

@ -50,11 +50,9 @@ public class CreateDestiSubCommand extends CreateSubCommand implements SubComman
} }
protected String getTag(String arg) { protected String getTag(String arg) {
ArrayList<String> tags = AdvancedPortalsCore.getDestinationTagRegistry().getTags(); int splitLoc = arg.indexOf(":");
for(String tag : tags) { if(splitLoc != -1) {
if(arg.startsWith(tag + ":")) { return arg.substring(0,splitLoc + 1);
return tag;
}
} }
return null; return null;
} }

View File

@ -26,6 +26,7 @@ public class CreatePortalSubCommand extends CreateSubCommand implements SubComma
} }
ArrayList<DataTag> portalTags = this.getTagsFromArgs(args); ArrayList<DataTag> portalTags = this.getTagsFromArgs(args);
try { try {
System.out.println(Arrays.toString(portalTags.toArray()));
AdvancedPortal portal = AdvancedPortalsCore.getPortalManager().createPortal(args[1], player, portalTags); AdvancedPortal portal = AdvancedPortalsCore.getPortalManager().createPortal(args[1], player, portalTags);
if(portal != null) { if(portal != null) {
sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.create.complete")); sender.sendMessage(Lang.translateColor("messageprefix.positive") + Lang.translateColor("command.create.complete"));
@ -46,11 +47,9 @@ public class CreatePortalSubCommand extends CreateSubCommand implements SubComma
} }
protected String getTag(String arg) { protected String getTag(String arg) {
ArrayList<String> tags = AdvancedPortalsCore.getPortalTagRegistry().getTags(); int splitLoc = arg.indexOf(":");
for(String tag : tags) { if(splitLoc != -1) {
if(arg.startsWith(tag + ":")) { return arg.substring(0,splitLoc + 1);
return tag;
}
} }
return null; return null;
} }

View File

@ -1,7 +1,9 @@
package com.sekwah.advancedportals.coreconnector; package com.sekwah.advancedportals.coreconnector;
/**
* Gets info from the specific implementation
*/
public class ConnectorDataCollector { public class ConnectorDataCollector {
public boolean materialExists(String materialName) { public boolean materialExists(String materialName) {
return false; return false;
} }