Skip to content

Commit

Permalink
add remaining common standard tag bases, fixes #1919
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Mar 13, 2019
1 parent 7d32cbf commit 96d072e
Show file tree
Hide file tree
Showing 16 changed files with 456 additions and 29 deletions.
17 changes: 16 additions & 1 deletion plugin/src/main/java/net/aufdemrand/denizen/Denizen.java
Original file line number Diff line number Diff line change
Expand Up @@ -558,15 +558,30 @@ public void onEnable() {

tagManager().registerCoreTags();

// Objects
new BiomeTags(this);
new ChunkTags(this);
new ColorTags(this);
new CuboidTags(this);
new EllipsoidTags(this);
new EntityTags(this);
new InventoryTags(this);
new ItemTags(this);
new LocationTags(this);
new MaterialTags(this);
if (Depends.citizens != null) {
new NPCTags(this);
}
new PlayerTags(this);
new PluginTags(this);
new TradeTags(this);
new WorldTags(this);

// Other bases
new ServerTags(this);
new TextTags(this);
new ParseTags(this);
if (Depends.citizens != null) {
new NPCTags(this);
new AnchorTags(this);
new ConstantTags(this);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dBiome;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class BiomeTags {

public BiomeTags(Denizen denizen) {
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
biomeTags(event);
}
}, "biome");
}

public void biomeTags(ReplaceableTagEvent event) {

if (!event.matches("biome") || event.replaced()) {
return;
}

dBiome biome = null;

if (event.hasNameContext()) {
biome = dBiome.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (biome == null) {
return;
}

Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(biome, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dChunk;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class ChunkTags {

public ChunkTags(Denizen denizen) {
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
chunkTags(event);
}
}, "chunk");
}

public void chunkTags(ReplaceableTagEvent event) {

if (!event.matches("chunk") || event.replaced()) {
return;
}

dChunk chunk = null;

if (event.hasNameContext()) {
chunk = dChunk.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (chunk == null) {
return;
}

Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(chunk, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dColor;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class ColorTags {

public ColorTags(Denizen denizen) {
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
colorTags(event);
}
}, "color");
}

public void colorTags(ReplaceableTagEvent event) {

if (!event.matches("color") || event.replaced()) {
return;
}

dColor color = null;

if (event.hasNameContext()) {
color = dColor.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (color == null) {
return;
}

Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(color, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;


public class CuboidTags {
Expand All @@ -27,9 +28,8 @@ public void cuboidTags(ReplaceableTagEvent event) {

dCuboid cuboid = null;

String context = event.getNameContext();
if (event.hasNameContext()) {
cuboid = dCuboid.valueOf(context);
cuboid = dCuboid.valueOf(event.getNameContext(), event.getAttributes().context);
}

// Check if cuboid is null, return if it is
Expand All @@ -39,7 +39,7 @@ public void cuboidTags(ReplaceableTagEvent event) {

// Build and fill attributes
Attribute attribute = event.getAttributes();
event.setReplaced(cuboid.getAttribute(attribute.fulfill(1)));
event.setReplacedObject(CoreUtilities.autoAttrib(cuboid, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dEllipsoid;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class EllipsoidTags {

public EllipsoidTags(Denizen denizen) {
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
ellipsoidTags(event);
}
}, "ellipsoid");
}

public void ellipsoidTags(ReplaceableTagEvent event) {

if (!event.matches("ellipsoid") || event.replaced()) {
return;
}

dEllipsoid ellipsoid = null;

if (event.hasNameContext()) {
ellipsoid = dEllipsoid.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (ellipsoid == null) {
return;
}

Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(ellipsoid, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dEntity;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class EntityTags {

Expand All @@ -29,26 +29,18 @@ public void entityTags(ReplaceableTagEvent event) {
return;
}

// Build a new attribute out of the raw_tag supplied in the script to be fulfilled
Attribute attribute = event.getAttributes();

dEntity e = null;
dEntity entity = null;

// Entity tag may specify a new entity in the <entity[context]...> portion of the tag.
if (attribute.hasContext(1)) {
// Check if this is a valid entity and update the dEntity object reference.
if (attribute.getIntContext(1) >= 1) {
e = dEntity.valueOf("e@" + attribute.getContext(1)); // TODO: Is the e@ needed here? If so, why? Should it be?
}
if (event.hasNameContext()) {
entity = dEntity.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (e == null || !e.isValid()) {
if (!event.hasAlternative()) {
dB.echoError("Invalid or missing entity for tag <" + event.raw_tag + ">!");
}
if (entity == null) {
return;
}

event.setReplaced(e.getAttribute(attribute.fulfill(1)));
Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(entity, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dInventory;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class InventoryTags {

public InventoryTags(Denizen denizen) {
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
inventoryTags(event);
}
}, "inventory");
}

public void inventoryTags(ReplaceableTagEvent event) {

if (!event.matches("inventory") || event.replaced()) {
return;
}

dInventory inventory = null;

if (event.hasNameContext()) {
inventory = dInventory.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (inventory == null) {
return;
}

Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(inventory, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dItem;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;

public class ItemTags {

public ItemTags(Denizen denizen) {
TagManager.registerTagHandler(new TagRunnable.RootForm() {
@Override
public void run(ReplaceableTagEvent event) {
itemTags(event);
}
}, "item");
}

public void itemTags(ReplaceableTagEvent event) {

if (!event.matches("item") || event.replaced()) {
return;
}

dItem item = null;

if (event.hasNameContext()) {
item = dItem.valueOf(event.getNameContext(), event.getAttributes().context);
}

if (item == null) {
return;
}

Attribute attribute = event.getAttributes();
event.setReplacedObject(CoreUtilities.autoAttrib(item, attribute.fulfill(1)));

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dLocation;
import net.aufdemrand.denizencore.objects.TagRunnable;
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import net.aufdemrand.denizencore.utilities.CoreUtilities;
import net.aufdemrand.denizencore.utilities.debugging.SlowWarning;


public class LocationTags {

public LocationTags(Denizen denizen) {
Expand Down Expand Up @@ -39,7 +38,7 @@ public void locationTags(ReplaceableTagEvent event) {
// the ScriptEntry for a 'location' context
String context = event.getNameContext();
if (event.hasNameContext() && dLocation.matches(context)) {
loc = dLocation.valueOf(context);
loc = dLocation.valueOf(context, event.getAttributes().context);
}
else if (event.getScriptEntry().hasObject("location")) {
loc = (dLocation) event.getScriptEntry().getObject("location");
Expand All @@ -51,8 +50,7 @@ else if (event.getScriptEntry().hasObject("location")) {
}

// Build and fill attributes
Attribute attribute = event.getAttributes();
event.setReplaced(loc.getAttribute(attribute.fulfill(1)));
event.setReplacedObject(CoreUtilities.autoAttrib(loc, event.getAttributes().fulfill(1)));

}
}
Loading

0 comments on commit 96d072e

Please sign in to comment.