Skip to content

Commit

Permalink
update for regex removal update
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Feb 15, 2020
1 parent 27a55cd commit abc19fd
Show file tree
Hide file tree
Showing 19 changed files with 22 additions and 104 deletions.
100 changes: 18 additions & 82 deletions plugin/src/main/java/com/denizenscript/denizen/objects/EntityTag.java
Expand Up @@ -45,7 +45,6 @@
import org.bukkit.util.Vector;

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class EntityTag implements ObjectTag, Adjustable, EntityFormObject {
Expand Down Expand Up @@ -185,16 +184,9 @@ public static EntityTag valueOf(String string, TagContext context) {
if (string == null) {
return null;
}

Matcher m;

///////
// Handle objects with properties through the object fetcher
m = ObjectFetcher.DESCRIBED_PATTERN.matcher(string);
if (m.matches()) {
if (ObjectFetcher.isObjectWithProperties(string)) {
return ObjectFetcher.getObjectFrom(EntityTag.class, string, context);
}

// Choose a random entity type if "RANDOM" is used
if (string.equalsIgnoreCase("RANDOM")) {

Expand All @@ -211,23 +203,10 @@ public static EntityTag valueOf(String string, TagContext context) {

return new EntityTag(randomType, "RANDOM");
}

///////
// Match @object format

// Make sure string matches what this interpreter can accept.

m = entity_by_id.matcher(string);

if (m.matches()) {

String entityGroup = m.group(1).toUpperCase();

if (string.startsWith("n@") || string.startsWith("e@") || string.startsWith("p@")) {
// NPC entity
if (entityGroup.equals("N@")) {

if (string.startsWith("n@")) {
NPCTag npc = NPCTag.valueOf(string);

if (npc != null) {
if (npc.isSpawned()) {
return new EntityTag(npc);
Expand All @@ -244,24 +223,23 @@ public static EntityTag valueOf(String string, TagContext context) {
+ "' does not exist!");
}
}

// Player entity
else if (entityGroup.matches("P@")) {
LivingEntity returnable = PlayerTag.valueOf(m.group(2)).getPlayerEntity();

else if (string.startsWith("p@")) {
LivingEntity returnable = PlayerTag.valueOf(string).getPlayerEntity();
if (returnable != null) {
return new EntityTag(returnable);
}
else if (context == null || context.debug) {
Debug.echoError("Invalid Player! '" + m.group(2)
+ "' could not be found. Has the player logged off?");
Debug.echoError("Invalid Player! '" + string + "' could not be found. Has the player logged off?");
}
}

// Assume entity
else {
if (string.startsWith("e@")) {
string = string.substring("e@".length());
}
try {
UUID entityID = UUID.fromString(m.group(2));
UUID entityID = UUID.fromString(string);
Entity entity = getEntityForID(entityID);
if (entity != null) {
return new EntityTag(entity);
Expand All @@ -276,43 +254,15 @@ else if (context == null || context.debug) {
// return getSaved(m.group(2));
}
}

string = string.replace("e@", "");

////////
// Match Custom Entity

if (ScriptRegistry.containsScript(string, EntityScriptContainer.class)) {
// Construct a new custom unspawned entity from script
return ScriptRegistry.getScriptContainerAs(string, EntityScriptContainer.class).getEntityFrom();
}

////////
// Match Entity_Type

m = entity_with_data.matcher(string);

if (m.matches()) {

String data1 = null;
String data2 = null;

if (m.group(2) != null) {

data1 = m.group(2);
}

if (m.group(3) != null) {

data2 = m.group(3);
}

// Handle custom DenizenEntityTypes
if (DenizenEntityType.isRegistered(m.group(1))) {
return new EntityTag(DenizenEntityType.getByName(m.group(1)), data1, data2);
}
List<String> data = CoreUtilities.split(string, ',');
// Handle custom DenizenEntityTypes
if (DenizenEntityType.isRegistered(data.get(0))) {
return new EntityTag(DenizenEntityType.getByName(data.get(0)), data.size() > 1 ? data.get(1) : null, data.size() > 2 ? data.get(2) : null);
}

try {
UUID entityID = UUID.fromString(string);
Entity entity = getEntityForID(entityID);
Expand All @@ -324,11 +274,9 @@ else if (context == null || context.debug) {
catch (Exception ex) {
// DO NOTHING
}

if (context == null || context.debug) {
Debug.log("valueOf EntityTag returning null: " + string);
}

return null;
}

Expand All @@ -345,18 +293,10 @@ public static Entity getEntityForID(UUID id) {
return null;
}

final static Pattern entity_by_id = Pattern.compile("(n@|e@|p@)(.+)",
Pattern.CASE_INSENSITIVE);

final static Pattern entity_with_data = Pattern.compile("(\\w+),?(\\w+)?,?(\\w+)?",
Pattern.CASE_INSENSITIVE);

public static boolean matches(String arg) {

// Accept anything that starts with a valid entity object identifier.
Matcher m;
m = entity_by_id.matcher(arg);
if (m.matches()) {
if (arg.startsWith("n@") || arg.startsWith("e@") || arg.startsWith("p@")) {
return true;
}

Expand All @@ -373,13 +313,9 @@ public static boolean matches(String arg) {
return true;
}

// Use regex to make some matcher groups
m = entity_with_data.matcher(arg);
if (m.matches()) {
// Check first word with a valid entity_type (other groups are datas used in constructors)
if (DenizenEntityType.isRegistered(m.group(1))) {
return true;
}
// Check first word with a valid entity_type (other groups are datas used in constructors)
if (DenizenEntityType.isRegistered(CoreUtilities.split(arg, ',').get(0))) {
return true;
}

// No luck otherwise!
Expand Down
Expand Up @@ -43,7 +43,6 @@
import org.bukkit.inventory.meta.BookMeta;

import java.util.*;
import java.util.regex.Matcher;

public class InventoryTag implements ObjectTag, Notable, Adjustable {

Expand Down Expand Up @@ -306,8 +305,7 @@ public static InventoryTag valueOf(String string, PlayerTag player, NPCTag npc,

///////
// Handle objects with properties through the object fetcher
Matcher describedMatcher = ObjectFetcher.DESCRIBED_PATTERN.matcher(string);
if (describedMatcher.matches()) {
if (ObjectFetcher.isObjectWithProperties(string)) {
InventoryTag result = ObjectFetcher.getObjectFrom(InventoryTag.class, string,
new BukkitTagContext(player, npc, null, false, null));
if (result != null && result.uniquifier != null) {
Expand Down
Expand Up @@ -108,7 +108,7 @@ public static ItemTag valueOf(String string, TagContext context) {

ItemTag stack = null;

if (ObjectFetcher.DESCRIBED_PATTERN.matcher(string).matches()) {
if (ObjectFetcher.isObjectWithProperties(string)) {
return ObjectFetcher.getObjectFrom(ItemTag.class, string, context);
}

Expand Down
Expand Up @@ -84,7 +84,7 @@ public static MaterialTag valueOf(String string, TagContext context) {

///////
// Handle objects with properties through the object fetcher
if (ObjectFetcher.DESCRIBED_PATTERN.matcher(string).matches()) {
if (ObjectFetcher.isObjectWithProperties(string)) {
return ObjectFetcher.getObjectFrom(MaterialTag.class, string, context);
}

Expand Down
Expand Up @@ -12,7 +12,6 @@
import org.bukkit.inventory.MerchantRecipe;

import java.util.Arrays;
import java.util.regex.Matcher;

public class TradeTag implements ObjectTag, Adjustable {

Expand Down Expand Up @@ -74,8 +73,7 @@ public static TradeTag valueOf(String string, TagContext context) {

///////
// Handle objects with properties through the object fetcher
Matcher m = ObjectFetcher.DESCRIBED_PATTERN.matcher(string);
if (m.matches()) {
if (ObjectFetcher.isObjectWithProperties(string)) {
return ObjectFetcher.getObjectFrom(TradeTag.class, string, new BukkitTagContext(((BukkitTagContext) context).player,
((BukkitTagContext) context).npc, null, !context.debug, null));
}
Expand Down
Expand Up @@ -9,7 +9,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;

Expand Down
Expand Up @@ -11,7 +11,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.core.ScriptTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -6,7 +6,6 @@
import com.denizenscript.denizen.objects.NPCTag;
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -9,7 +9,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -9,7 +9,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
import org.bukkit.Material;
Expand Down
Expand Up @@ -8,7 +8,6 @@
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.DurationTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;

Expand Down
Expand Up @@ -8,7 +8,6 @@
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.DurationTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;

Expand Down
Expand Up @@ -10,7 +10,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -9,7 +9,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -6,7 +6,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;

Expand Down
Expand Up @@ -8,7 +8,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -6,7 +6,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
Expand Down
Expand Up @@ -4,7 +4,6 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
import com.denizenscript.denizencore.utilities.CoreUtilities;
Expand Down
Expand Up @@ -8,7 +8,6 @@
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.objects.core.DurationTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;

Expand Down

0 comments on commit abc19fd

Please sign in to comment.