Skip to content

Commit

Permalink
Make replaceabletagevent fully core-ready
Browse files Browse the repository at this point in the history
This is part of a large group that will need to be moved all at once
probably.
  • Loading branch information
mcmonkey4eva committed Dec 13, 2014
1 parent d8da233 commit 797f2e2
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 35 deletions.
23 changes: 2 additions & 21 deletions src/main/java/net/aufdemrand/denizen/tags/ReplaceableTagEvent.java
@@ -1,7 +1,5 @@
package net.aufdemrand.denizen.tags;

import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizen.objects.dScript;
import net.aufdemrand.denizen.scripts.ScriptEntry;

Expand Down Expand Up @@ -33,17 +31,6 @@ public class ReplaceableTagEvent {
////////////
// Constructors

@Deprecated
public ReplaceableTagEvent(dPlayer player, dNPC npc, String tag) {
this(player, npc, tag, null, null);
}

@Deprecated
public ReplaceableTagEvent(dPlayer player, dNPC npc, String tag, ScriptEntry scriptEntry, dScript script) {
this(tag, new BukkitTagContext(player, npc, false, scriptEntry,
scriptEntry != null ? scriptEntry.shouldDebug(): true, script));
}

public ReplaceableTagEvent(String tag, TagContext context) {

// Reference ScriptEntry if available
Expand Down Expand Up @@ -285,14 +272,8 @@ public boolean hasAlternative() {

// Other internal mechanics

@Deprecated
public dNPC getNPC() {
return ((BukkitTagContext)context).npc;
}

@Deprecated
public dPlayer getPlayer() {
return ((BukkitTagContext)context).player;
public TagContext getContext() {
return context;
}

public String getReplaced() {
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/net/aufdemrand/denizen/tags/TagManager.java
Expand Up @@ -258,8 +258,7 @@ public void fetchObject(ReplaceableTagEvent event) {
}

public static String readSingleTag(String str, TagContext context) {
ReplaceableTagEvent event = new ReplaceableTagEvent(((BukkitTagContext)context).player,
((BukkitTagContext)context).npc, str, ((BukkitTagContext)context).entry, ((BukkitTagContext)context).script);
ReplaceableTagEvent event = new ReplaceableTagEvent(str, context);
if (event.isInstant() != context.instant) {
// Not the right type of tag, escape the brackets so it doesn't get parsed again
return String.valueOf((char)0x01) + str + String.valueOf((char)0x02);
Expand Down
@@ -1,6 +1,7 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.tags.ReplaceableTagEvent;
import net.aufdemrand.denizen.tags.TagManager;
import net.aufdemrand.denizen.utilities.debugging.dB;
Expand Down Expand Up @@ -28,8 +29,8 @@ public void anchorTags(ReplaceableTagEvent event) {
if (event.getType() != null
&& event.getType().matches("\\d+"))
npc = CitizensAPI.getNPCRegistry().getById(Integer.valueOf(event.getType()));
else if (event.getNPC() != null)
npc = event.getNPC().getCitizen();
else if (((BukkitTagContext)event.getContext()).npc != null)
npc = ((BukkitTagContext)event.getContext()).npc.getCitizen();
if (npc == null) return;

if (npc.getTrait(Anchors.class).getAnchor(event.getValue()) != null) {
Expand Down
@@ -1,6 +1,7 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.tags.ReplaceableTagEvent;
import net.aufdemrand.denizen.npc.traits.ConstantsTrait;
import net.aufdemrand.denizen.tags.Attribute;
Expand Down Expand Up @@ -35,8 +36,8 @@ public void constantTags(ReplaceableTagEvent event) {
NPC npc = null;
if (event.getType() != null && event.getType().matches("\\d+"))
npc = CitizensAPI.getNPCRegistry().getById(Integer.valueOf(event.getType()));
else if (event.getNPC() != null)
npc = event.getNPC().getCitizen();
else if (((BukkitTagContext)event.getContext()).npc != null)
npc = ((BukkitTagContext)event.getContext()).npc.getCitizen();

if (npc == null) {
dB.echoError("Constant tag '" + event.raw_tag + " does not contain a valid NPC! " +
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/net/aufdemrand/denizen/tags/core/FlagTags.java
@@ -1,6 +1,7 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.tags.ReplaceableTagEvent;
import net.aufdemrand.denizen.flags.FlagManager;
import net.aufdemrand.denizen.flags.FlagManager.Value;
Expand Down Expand Up @@ -76,17 +77,17 @@ public void flagTag(ReplaceableTagEvent event) {
}

} else if (event.getType().toUpperCase().startsWith("D") || event.getType().toUpperCase().startsWith("N")) {
if (denizen.flagManager().getNPCFlag(event.getNPC().getId(), flagName).get(index).isEmpty()) {
if (denizen.flagManager().getNPCFlag(((BukkitTagContext)event.getContext()).npc.getId(), flagName).get(index).isEmpty()) {
// dB.echoDebug(ChatColor.YELLOW + "//REPLACED//" + ChatColor.WHITE + " '%s' flag not found, using fallback!", flagName);
} else {
FlagManager.Flag flag = denizen.flagManager().getNPCFlag(event.getNPC().getId(), flagName);
FlagManager.Flag flag = denizen.flagManager().getNPCFlag(((BukkitTagContext)event.getContext()).npc.getId(), flagName);
event.setReplaced(getReplaceable(flag, flag.get(index), replaceType));
// dB.echoDebug(ChatColor.YELLOW + "//REPLACED//" + ChatColor.WHITE + " '%s' with flag value '" + event.getReplaced() + "'.", flagName);
}

} else if (event.getType().toUpperCase().startsWith("P")) {
// Separate name since subType context may specify a different (or offline) player
dPlayer player = event.getPlayer();
dPlayer player = ((BukkitTagContext)event.getContext()).player;

// No name? No flag replacement!
if (player == null) return;
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/net/aufdemrand/denizen/tags/core/NPCTags.java
Expand Up @@ -2,6 +2,7 @@

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.events.EventManager;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.tags.ReplaceableTagEvent;
import net.aufdemrand.denizen.events.core.NPCNavigationSmartEvent;
import net.aufdemrand.denizen.objects.*;
Expand Down Expand Up @@ -44,8 +45,8 @@ public void npcTags(ReplaceableTagEvent event) {
// Build a new attribute out of the raw_tag supplied in the script to be fulfilled
Attribute attribute = new Attribute(event.raw_tag, event.getScriptEntry());

// PlayerTags require a... dPlayer!
dNPC n = event.getNPC();
// NPCTags require a... dNPC!
dNPC n = ((BukkitTagContext)event.getContext()).npc;

// Player tag may specify a new player in the <player[context]...> portion of the tag.
if (attribute.hasContext(1))
Expand Down
@@ -1,6 +1,7 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.tags.ReplaceableTagEvent;
import net.aufdemrand.denizen.tags.Attribute;
import net.aufdemrand.denizen.objects.*;
Expand Down Expand Up @@ -64,7 +65,7 @@ public void playerTags(ReplaceableTagEvent event) {
Attribute attribute = new Attribute(event.raw_tag, event.getScriptEntry());

// PlayerTags require a... dPlayer!
dPlayer p = event.getPlayer();
dPlayer p = ((BukkitTagContext)event.getContext()).player;

// Player tag may specify a new player in the <player[context]...> portion of the tag.
if (attribute.hasContext(1))
Expand Down
Expand Up @@ -2,6 +2,7 @@

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.tags.BukkitTagContext;
import net.aufdemrand.denizen.tags.ReplaceableTagEvent;
import net.aufdemrand.denizen.objects.ObjectFetcher;
import net.aufdemrand.denizen.objects.dList;
Expand Down Expand Up @@ -153,9 +154,9 @@ public void procedureTag(ReplaceableTagEvent event) {
// Build script entries
List<ScriptEntry> entries;
if (path != null)
entries = script.getContainer().getEntries(new BukkitScriptEntryData(event.getPlayer(), event.getNPC()), path);
entries = script.getContainer().getEntries(new BukkitScriptEntryData(((BukkitTagContext)event.getContext()).player, ((BukkitTagContext)event.getContext()).npc), path);
else
entries = script.getContainer().getBaseEntries(new BukkitScriptEntryData(event.getPlayer(), event.getNPC()));
entries = script.getContainer().getBaseEntries(new BukkitScriptEntryData(((BukkitTagContext)event.getContext()).player, ((BukkitTagContext)event.getContext()).npc));

// Return if no entries built
if (entries.isEmpty()) return;
Expand Down

0 comments on commit 797f2e2

Please sign in to comment.