Skip to content

Commit

Permalink
Work towards moving ScriptContainer to the core
Browse files Browse the repository at this point in the history
No more hard player/NPC links!
  • Loading branch information
mcmonkey4eva committed Nov 5, 2014
1 parent e04580f commit 0e4e611
Show file tree
Hide file tree
Showing 13 changed files with 27 additions and 48 deletions.
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.events;

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.events.bukkit.ScriptReloadEvent;
import net.aufdemrand.denizen.events.core.*;
import net.aufdemrand.denizen.objects.aH;
Expand Down Expand Up @@ -304,7 +305,7 @@ public static String doEvents(List<String> eventNames, dNPC npc, dPlayer player,
if (script == null) continue;

// Fetch script from Event
List<ScriptEntry> entries = script.getEntries(player, npc, "events.on " + eventName);
List<ScriptEntry> entries = script.getEntries(new BukkitScriptEntryData(player, npc), "events.on " + eventName);

if (entries.isEmpty()) continue;

Expand Down
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.npc.actions;

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dObject;
Expand Down Expand Up @@ -48,7 +49,7 @@ public String doAction(String actionName, dNPC npc, dPlayer player, AssignmentSc
+ (player != null ? aH.debugObj("Player", player.getName()) : ""));

// Fetch script from Actions
List<ScriptEntry> script = assignment.getEntries(player, npc, "actions.on " + actionName);
List<ScriptEntry> script = assignment.getEntries(new BukkitScriptEntryData(player, npc), "actions.on " + actionName);
if (script.isEmpty()) return determination;

// Create new ID -- this is what we will look for when determining an outcome
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/net/aufdemrand/denizen/objects/dList.java
Expand Up @@ -968,7 +968,7 @@ public int compare(String o1, String o2) {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
List<ScriptEntry> entries = script.getBaseEntries(((BukkitScriptEntryData)entry.entryData).getPlayer(), ((BukkitScriptEntryData)entry.entryData).getNPC());
List<ScriptEntry> entries = script.getBaseEntries(entry.entryData.clone());
if (entries.isEmpty()) {
return 0;
}
Expand Down
Expand Up @@ -152,22 +152,16 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
List<ScriptEntry> entries;
// If it's local
if (scriptEntry.hasObject("local"))
entries = scriptEntry.getScript().getContainer().getEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC(),
entries = scriptEntry.getScript().getContainer().getEntries(scriptEntry.entryData.clone(),
scriptEntry.getElement("path").asString());

// If it has a path
else if (scriptEntry.hasObject("path"))
entries = script.getContainer().getEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC(),
entries = script.getContainer().getEntries(scriptEntry.entryData.clone(),
scriptEntry.getElement("path").asString());

// Else, assume standard path
else entries = script.getContainer().getBaseEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC());
else entries = script.getContainer().getBaseEntries(scriptEntry.entryData.clone());

// For determine
ScriptBuilder.addObjectToEntries(entries, "ReqId", scriptEntry.getObject("ReqId"));
Expand Down
Expand Up @@ -162,24 +162,18 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
List<ScriptEntry> entries;
// If it's local
if (scriptEntry.hasObject("local")) {
entries = scriptEntry.getScript().getContainer().getEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC(),
entries = scriptEntry.getScript().getContainer().getEntries(scriptEntry.entryData.clone(),
scriptEntry.getElement("path").asString());
script = scriptEntry.getScript();
}

// If it has a path
else if (scriptEntry.hasObject("path") && scriptEntry.getObject("path") != null)
entries = script.getContainer().getEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC(),
entries = script.getContainer().getEntries(scriptEntry.entryData.clone(),
scriptEntry.getElement("path").asString());

// Else, assume standard path
else entries = script.getContainer().getBaseEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC());
else entries = script.getContainer().getBaseEntries(scriptEntry.entryData.clone());

// Get the 'id' if specified
String id = (scriptEntry.hasObject("id") ?
Expand Down
Expand Up @@ -228,9 +228,7 @@ public void run() {

if (script != null) {

List<ScriptEntry> entries = script.getContainer().getBaseEntries(
((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC());
List<ScriptEntry> entries = script.getContainer().getBaseEntries(scriptEntry.entryData.clone());
ScriptQueue queue = InstantQueue.getQueue(ScriptQueue._getNextId()).addEntries(entries);
if (lastEntity.getLocation() != null)
queue.addDefinition("location", lastEntity.getLocation().identify());
Expand Down
Expand Up @@ -333,9 +333,7 @@ else if (lastVelocity != null) {

if (script != null) {
// Build a queue out of the targeted script
List<ScriptEntry> entries = script.getContainer().getBaseEntries
(((BukkitScriptEntryData)scriptEntry.entryData).getPlayer(),
((BukkitScriptEntryData)scriptEntry.entryData).getNPC());
List<ScriptEntry> entries = script.getContainer().getBaseEntries(scriptEntry.entryData.clone());
ScriptQueue queue = InstantQueue.getQueue(ScriptQueue._getNextId()).addEntries(entries);

// Add relevant definitions
Expand Down
Expand Up @@ -231,11 +231,6 @@ public List<ScriptEntry> getBaseEntries(ScriptEntryData data) {
return getEntries(data, "script");
}

@Deprecated
public List<ScriptEntry> getBaseEntries(dPlayer player, dNPC npc) {
return getEntries(player, npc, "script");
}

public List<ScriptEntry> getEntries(ScriptEntryData data, String path) {
if (path == null) path = "script";
ScriptEntrySet set = getSetFor(path.toUpperCase());
Expand All @@ -247,12 +242,6 @@ public List<ScriptEntry> getEntries(ScriptEntryData data, String path) {
return set.getEntries();
}

@Deprecated
public List<ScriptEntry> getEntries(dPlayer player, dNPC npc, String path) {
BukkitScriptEntryData bsed = new BukkitScriptEntryData(player, npc);
return getEntries(bsed, path);
}

ScriptEntrySet getSetFor(String path) {
ScriptEntrySet got = scriptsMap.get(path);
if (got != null) {
Expand Down
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.scripts.containers.core;

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.objects.*;
import net.aufdemrand.denizen.scripts.ScriptBuilder;
import net.aufdemrand.denizen.scripts.ScriptEntry;
Expand Down Expand Up @@ -102,7 +103,8 @@ public List<String> getAliases() {
}

public ScriptQueue runCommandScript(dPlayer player, dNPC npc, Map<String, dObject> context) {
ScriptQueue queue = InstantQueue.getQueue(ScriptQueue._getNextId()).addEntries(getBaseEntries(player, npc));
ScriptQueue queue = InstantQueue.getQueue(ScriptQueue._getNextId()).addEntries(getBaseEntries(
new BukkitScriptEntryData(player, npc)));
if (context != null) {
for (Map.Entry<String, dObject> entry : context.entrySet()) {
queue.addContext(entry.getKey(), entry.getValue());
Expand All @@ -114,7 +116,7 @@ public ScriptQueue runCommandScript(dPlayer player, dNPC npc, Map<String, dObjec

public boolean runAllowedHelpProcedure(dPlayer player, dNPC npc, Map<String, dObject> context) {
// Add the reqId to each of the entries for the determine command
List<ScriptEntry> entries = getEntries(player, npc, "ALLOWED HELP");
List<ScriptEntry> entries = getEntries(new BukkitScriptEntryData(player, npc), "ALLOWED HELP");
long id = DetermineCommand.getNewId();
ScriptBuilder.addObjectToEntries(entries, "ReqId", id);

Expand Down
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.scripts.containers.core;

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizen.scripts.ScriptEntry;
Expand Down Expand Up @@ -147,7 +148,7 @@ public List<ScriptEntry> getEntriesFor(Class<? extends AbstractTrigger> trigger,
+ triggerName + " TRIGGER."
+ (id == null ? "SCRIPT" : id.toUpperCase() + ".SCRIPT"))) {
// Entries exist, so get them and return the list of ScriptEntries
return getEntries(player, npc,
return getEntries(new BukkitScriptEntryData(player, npc),
"STEPS." + InteractScriptHelper.getCurrentStep(player, getName()) + "."
+ triggerName + " TRIGGER."
+ (id == null ? "SCRIPT" : id.toUpperCase() + ".SCRIPT"));
Expand Down
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.scripts.containers.core;

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.Settings;
import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dPlayer;
Expand Down Expand Up @@ -54,7 +55,7 @@ public ScriptQueue runTaskScript(String queueId, dPlayer player, dNPC npc, Map<S
queue = InstantQueue.getQueue(queueId);
else queue = TimedQueue.getQueue(queueId).setSpeed(getSpeed().getTicks());

List<ScriptEntry> listOfEntries = getBaseEntries(player, npc);
List<ScriptEntry> listOfEntries = getBaseEntries(new BukkitScriptEntryData(player, npc));
if (context != null)
ScriptBuilder.addObjectToEntries(listOfEntries, "context", context);
queue.addEntries(listOfEntries);
Expand All @@ -81,7 +82,7 @@ public ScriptQueue runTaskScriptWithDelay(String queueId, dPlayer player, dNPC n
queue = InstantQueue.getQueue(queueId);
else queue = TimedQueue.getQueue(queueId).setSpeed(getSpeed().getTicks());

List<ScriptEntry> listOfEntries = getBaseEntries(player, npc);
List<ScriptEntry> listOfEntries = getBaseEntries(new BukkitScriptEntryData(player, npc));
if (context != null)
ScriptBuilder.addObjectToEntries(listOfEntries, "context", context);
queue.addEntries(listOfEntries);
Expand All @@ -92,7 +93,7 @@ public ScriptQueue runTaskScriptWithDelay(String queueId, dPlayer player, dNPC n

public ScriptQueue injectTaskScript(String queueId, dPlayer player, dNPC npc, Map<String, String> context) {
ScriptQueue queue = ScriptQueue._getExistingQueue(queueId);
List<ScriptEntry> listOfEntries = getBaseEntries(player, npc);
List<ScriptEntry> listOfEntries = getBaseEntries(new BukkitScriptEntryData(player, npc));
if (context != null)
ScriptBuilder.addObjectToEntries(listOfEntries, "context", context);
queue.injectEntries(listOfEntries, 0);
Expand Down
Expand Up @@ -562,8 +562,7 @@ public void stop() {
List<ScriptEntry> entries =
(lastEntryExecuted != null && lastEntryExecuted.getScript() != null ?
lastEntryExecuted.getScript().getContainer()
.getEntries(lastEntryExecuted.getPlayer(),
lastEntryExecuted.getNPC(), "on queue completes") : new ArrayList<ScriptEntry>());
.getEntries(lastEntryExecuted.entryData.clone(), "on queue completes") : new ArrayList<ScriptEntry>());
// Add the 'finishing' entries back into the queue (if not empty)
if (!entries.isEmpty()) {
script_entries.addAll(entries);
Expand Down
@@ -1,5 +1,6 @@
package net.aufdemrand.denizen.tags.core;

import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.Denizen;
import net.aufdemrand.denizen.events.bukkit.ReplaceableTagEvent;
import net.aufdemrand.denizen.objects.ObjectFetcher;
Expand Down Expand Up @@ -151,9 +152,9 @@ public void procedureTag(ReplaceableTagEvent event) {
// Build script entries
List<ScriptEntry> entries;
if (path != null)
entries = script.getContainer().getEntries(event.getPlayer(), event.getNPC(), path);
entries = script.getContainer().getEntries(new BukkitScriptEntryData(event.getPlayer(), event.getNPC()), path);
else
entries = script.getContainer().getBaseEntries(event.getPlayer(), event.getNPC());
entries = script.getContainer().getBaseEntries(new BukkitScriptEntryData(event.getPlayer(), event.getNPC()));

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

0 comments on commit 0e4e611

Please sign in to comment.