Skip to content

Commit

Permalink
add more context awareness to core systems
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Feb 6, 2019
1 parent cf89590 commit 8c006b6
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 1 deletion.
4 changes: 4 additions & 0 deletions src/main/java/net/aufdemrand/denizencore/objects/Element.java
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,10 @@ public <T extends dObject> T asType(Class<T> dClass) {
return ObjectFetcher.getObjectFrom(dClass, element);
}

public <T extends dObject> T asType(Class<T> dClass, TagContext context) {
return ObjectFetcher.getObjectFrom(dClass, element, context);
}

public boolean matchesEnum(Enum[] values) {
for (Enum value : values) {
if (value.name().equalsIgnoreCase(element)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ public Element getValue() {
return value;
}

public <T extends dObject> T valueAsType(Class<T> dClass) {
return ObjectFetcher.getObjectFrom(dClass, getValue().asString(), context);
}

public boolean hasValue() {
return value != null;
}
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/net/aufdemrand/denizencore/objects/aH.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.aufdemrand.denizencore.objects;

import net.aufdemrand.denizencore.DenizenCore;
import net.aufdemrand.denizencore.scripts.ScriptEntry;
import net.aufdemrand.denizencore.scripts.ScriptRegistry;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;
Expand Down Expand Up @@ -89,6 +90,8 @@ public Argument clone() {
public boolean needsFill = false;
public boolean hasSpecialPrefix = false;

public ScriptEntry scriptEntry = null;

public String generateRaw() {
return prefix == null ? value : prefix + ":" + value;
}
Expand Down Expand Up @@ -397,7 +400,7 @@ public Element asElement() {


public <T extends dObject> T asType(Class<T> clazz) {
T arg = CoreUtilities.asType(object, clazz, DenizenCore.getImplementation().getTagContext(null));
T arg = CoreUtilities.asType(object, clazz, DenizenCore.getImplementation().getTagContext(scriptEntry));
if (arg != null) {
arg.setPrefix(prefix);
return arg;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ public void generateAHArgs() {
}
for (int i : internal.processArgs) {
Argument arg = internal.args_ref.get(i);
arg.aHArg.scriptEntry = this;
aHArgs.set(i, arg.aHArg.needsFill || arg.aHArg.hasSpecialPrefix || (internal.hasOldDefs && arg.aHArg.raw_value.indexOf('%') != -1) ? arg.aHArg.clone() : arg.aHArg);
}
}
Expand Down

0 comments on commit 8c006b6

Please sign in to comment.