Skip to content

Commit

Permalink
Some TODOs
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jan 11, 2015
1 parent d6c5afa commit 4ee3a56
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 163 deletions.
2 changes: 2 additions & 0 deletions src/main/java/net/aufdemrand/denizencore/DenizenCore.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.aufdemrand.denizencore;

import net.aufdemrand.denizencore.events.OldEventManager;
import net.aufdemrand.denizencore.scripts.ScriptHelper;
import net.aufdemrand.denizencore.scripts.commands.CommandRegistry;
import net.aufdemrand.denizencore.utilities.debugging.dB;
Expand Down Expand Up @@ -92,6 +93,7 @@ public static void loadScripts() {
*/
public static void reloadScripts() {
loadScripts();
OldEventManager.scanWorldEvents();
}

public static List<Schedulable> scheduled = new ArrayList<Schedulable>();
Expand Down
168 changes: 21 additions & 147 deletions src/main/java/net/aufdemrand/denizencore/events/OldEventManager.java
Original file line number Diff line number Diff line change
@@ -1,43 +1,28 @@
package net.aufdemrand.denizencore.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;
import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dObject;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizen.scripts.ScriptBuilder;
import net.aufdemrand.denizen.scripts.ScriptEntry;
import net.aufdemrand.denizen.scripts.commands.core.DetermineCommand;
import net.aufdemrand.denizen.scripts.containers.core.WorldScriptContainer;
import net.aufdemrand.denizen.scripts.queues.ScriptQueue;
import net.aufdemrand.denizen.scripts.queues.core.InstantQueue;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizencore.BukkitScriptEntryData;
import net.aufdemrand.denizencore.events.bukkit.ScriptReloadEvent;
import net.aufdemrand.denizencore.events.core.*;
import net.aufdemrand.denizencore.objects.aH;
import net.aufdemrand.denizencore.objects.dNPC;
import net.aufdemrand.denizencore.objects.dObject;
import net.aufdemrand.denizencore.objects.dPlayer;
import net.aufdemrand.denizencore.scripts.ScriptBuilder;
import net.aufdemrand.denizencore.scripts.ScriptEntry;
import net.aufdemrand.denizencore.scripts.commands.core.DetermineCommand;
import net.aufdemrand.denizencore.scripts.containers.core.WorldScriptContainer;
import net.aufdemrand.denizencore.scripts.queues.ScriptQueue;
import net.aufdemrand.denizencore.scripts.queues.core.InstantQueue;
import net.aufdemrand.denizencore.utilities.debugging.dB;
import net.aufdemrand.denizencore.utilities.YamlConfiguration;
import net.aufdemrand.denizencore.utilities.debugging.dB.DebugElement;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandMap;
import org.bukkit.command.PluginCommand;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.SimplePluginManager;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;

public class OldEventManager implements Listener {


public EventManager() {
DenizenAPI.getCurrentInstance().getServer().getPluginManager()
.registerEvents(this, DenizenAPI.getCurrentInstance());
}

public class OldEventManager {

///////////////////
// MAPS
Expand All @@ -53,15 +38,14 @@ public EventManager() {
new HashMap<String, List<WorldScriptContainer>>();

// Map for keeping track of registered smart_events
public static Set<SmartEvent> smart_events = new HashSet<SmartEvent>();
public static Set<OldSmartEvent> smart_events = new HashSet<OldSmartEvent>();

//////////////////
// PERFORMANCE
///////////


@EventHandler
public void scanWorldEvents(ScriptReloadEvent event) {
public static void scanWorldEvents() {
try {
// Build a Map of scripts keyed by 'world events name'.

Expand Down Expand Up @@ -102,11 +86,11 @@ public void scanWorldEvents(ScriptReloadEvent event) {
// dB.echoApproval("Built events map: " + events);

// Breakdown all SmartEvents (if still being used, they will reinitialize next)
for (SmartEvent smartEvent : smart_events)
for (OldSmartEvent smartEvent : smart_events)
smartEvent.breakDown();

// Pass these along to each SmartEvent so they can determine whether they can be enabled or not
for (SmartEvent smartEvent : smart_events) {
for (OldSmartEvent smartEvent : smart_events) {
// If it should initialize, run _initialize!
if (smartEvent.shouldInitialize(events.keySet()))
smartEvent._initialize();
Expand All @@ -117,58 +101,6 @@ public void scanWorldEvents(ScriptReloadEvent event) {
}
}


private Plugin plugin = DenizenAPI.getCurrentInstance();


public void registerCommand(String... aliases) {
PluginCommand command = getCommand(aliases[0], plugin);

command.setAliases(Arrays.asList(aliases));
getCommandMap().register(plugin.getDescription().getName(), command);
}


private static PluginCommand getCommand(String name, Plugin plugin) {
PluginCommand command = null;

try {
Constructor<PluginCommand> c = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class);
c.setAccessible(true);

command = c.newInstance(name, plugin);
} catch (Exception e) {
dB.echoError(e);
}

return command;
}


private static CommandMap getCommandMap() {
CommandMap commandMap = null;

try {
if (Bukkit.getPluginManager() instanceof SimplePluginManager) {
Field f = SimplePluginManager.class.getDeclaredField("commandMap");
f.setAccessible(true);

commandMap = (CommandMap) f.get(Bukkit.getPluginManager());
}
} catch (NoSuchFieldException e) {
dB.echoError(e);
} catch (SecurityException e) {
dB.echoError(e);
} catch (IllegalArgumentException e) {
dB.echoError(e);
} catch (IllegalAccessException e) {
dB.echoError(e);
}

return commandMap;
}


public static List<String> trimEvents(List<String> original) {
List<String> event = new ArrayList<String>();
event.addAll(original);
Expand Down Expand Up @@ -200,47 +132,6 @@ public static boolean eventExists(String original) {
return events.containsKey("ON " + original.toUpperCase());
}

///////////////////
// COMPATIBILITY
//////////////


/**
*
* @deprecated this was just a temporary place holder and will be removed soon.
*/
@Deprecated
public static String doEvents(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context,
boolean usesIdentifiers, int Use_dPlayer) {

// If a list of events uses identifiers, also add those events to the list
// with their identifiers stripped
return doEvents(usesIdentifiers ? addAlternates(eventNames)
: eventNames,
npc, player, context);
}

@Deprecated
public static String doEvents(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context,
boolean usesIdentifiers) {

// If a list of events uses identifiers, also add those events to the list
// with their identifiers stripped
return doEvents(usesIdentifiers ? addAlternates(eventNames)
: eventNames,
npc, player, context);
}

public static List<String> doEvents1(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context,
boolean usesIdentifiers) {

// If a list of events uses identifiers, also add those events to the list
// with their identifiers stripped
return doEvents1(usesIdentifiers ? addAlternates(eventNames)
: eventNames,
npc, player, context);
}


public static List<String> addAlternates(List<String> events) {

Expand Down Expand Up @@ -291,25 +182,8 @@ public static String StripIdentifiers(String original) {
///////////////


/**
*
* @deprecated this was just a temporary place holder and will be removed soon.
*/
@Deprecated
public static String doEvents(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context, int Use_dPlayer) {
return doEvents(eventNames, npc, player, context);
}

@Deprecated
public static String doEvents(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context) {
List<String> strs = doEvents1(eventNames, npc, player, context);
if (strs.isEmpty())
return DetermineCommand.DETERMINE_NONE;
else
return strs.get(0);
}

public static List<String> doEvents1(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context) {
// TODO: EventContext? Or reuse an existing context object.
public static List<String> doEvents(List<String> eventNames, dNPC npc, dPlayer player, Map<String, dObject> context) {

try {
List<String> determinations = new ArrayList<String>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
import java.util.Arrays;
import java.util.List;

import net.aufdemrand.denizencore.BukkitScriptEntryData;
import net.aufdemrand.denizencore.objects.aH;
import net.aufdemrand.denizencore.objects.dNPC;
import net.aufdemrand.denizencore.objects.dPlayer;
import net.aufdemrand.denizencore.scripts.containers.ScriptContainer;
import net.aufdemrand.denizencore.utilities.debugging.dB;

Expand Down Expand Up @@ -35,7 +32,8 @@ public static List<ScriptEntry> addObjectToEntries(List<ScriptEntry> scriptEntry
* Builds ScriptEntry(ies) of items read from a script
*/

public static List<ScriptEntry> buildScriptEntries(List<String> contents, ScriptContainer parent, dPlayer player, dNPC npc) {
// TODO: use a context object
public static List<ScriptEntry> buildScriptEntries(List<String> contents, ScriptContainer parent) {
List<ScriptEntry> scriptCommands = new ArrayList<ScriptEntry>();

if (contents == null || contents.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package net.aufdemrand.denizencore.scripts;

import net.aufdemrand.denizencore.events.EventManager;
import net.aufdemrand.denizencore.events.OldEventManager;
import net.aufdemrand.denizencore.scripts.containers.ScriptContainer;
import net.aufdemrand.denizencore.scripts.containers.core.*;
import net.aufdemrand.denizencore.utilities.debugging.dB;
Expand Down Expand Up @@ -57,9 +57,9 @@ public static boolean containsScript(String id, Class scriptContainerType) {

public static void _buildCoreYamlScriptContainers(YamlConfiguration yamlScripts) {
scriptContainers.clear();
EventManager.world_scripts.clear();
EventManager.events.clear();
ItemScriptHelper.item_scripts.clear();
OldEventManager.world_scripts.clear();
OldEventManager.events.clear();
ItemScriptHelper.item_scripts.clear(); // TODO: De-corify this non-core crap
ItemScriptHelper.item_scripts_by_hash_id.clear();
InventoryScriptHelper.inventory_scripts.clear();
// Get a set of key names in concatenated Denizen Scripts
Expand Down Expand Up @@ -93,7 +93,7 @@ public static void _buildCoreYamlScriptContainers(YamlConfiguration yamlScripts)
}
}

public static List<net.aufdemrand.denizencore.utilities.YamlConfiguration> outside_scripts = new ArrayList<net.aufdemrand.denizencore.utilities.YamlConfiguration>();
public static List<YamlConfiguration> outside_scripts = new ArrayList<net.aufdemrand.denizencore.utilities.YamlConfiguration>();

/**
* Adds a YAML FileConfiguration to the list of scripts to be loaded. Adding a new
Expand All @@ -102,7 +102,7 @@ public static void _buildCoreYamlScriptContainers(YamlConfiguration yamlScripts)
* @param yaml_script the FileConfiguration containing the script
*
*/
public static void addYamlScriptContainer(net.aufdemrand.denizencore.utilities.YamlConfiguration yaml_script) {
public static void addYamlScriptContainer(YamlConfiguration yaml_script) {
outside_scripts.add(yaml_script);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package net.aufdemrand.denizencore.scripts.containers.core;

import net.aufdemrand.denizencore.BukkitScriptEntryData;
import net.aufdemrand.denizencore.Settings;
import net.aufdemrand.denizencore.objects.dNPC;
import net.aufdemrand.denizencore.objects.dPlayer;
import net.aufdemrand.denizencore.scripts.ScriptBuilder;
import net.aufdemrand.denizencore.scripts.ScriptEntry;
import net.aufdemrand.denizencore.scripts.queues.ScriptQueue;
Expand Down Expand Up @@ -34,6 +30,7 @@ public Duration getSpeed() {
speed = Duration.valueOf(getString("SPEED", "0t"));

} else
// TODO: Settings = read dImplementation
speed = new Duration(Duration.valueOf(Settings.scriptQueueSpeed()).getSeconds());

return speed;
Expand All @@ -45,6 +42,7 @@ public TaskScriptContainer setSpeed(Duration speed) {
return this;
}

// TODO: use a context object
public ScriptQueue runTaskScript(dPlayer player, dNPC npc, Map<String, String> context) {
return runTaskScript(ScriptQueue.getNextId(getName()), player, npc, context);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package net.aufdemrand.denizencore.scripts.containers.core;

import net.aufdemrand.denizencore.events.EventManager;
import net.aufdemrand.denizencore.events.OldEventManager;
import net.aufdemrand.denizencore.scripts.containers.ScriptContainer;
import net.aufdemrand.denizencore.utilities.YamlConfiguration;

public class WorldScriptContainer extends ScriptContainer {

public WorldScriptContainer(YamlConfiguration configurationSection, String scriptContainerName) {
super(configurationSection, scriptContainerName);
EventManager.world_scripts.put(getName(), this);
OldEventManager.world_scripts.put(getName(), this);
}
}

0 comments on commit 4ee3a56

Please sign in to comment.