public abstract class TriggerReactorCore extends Object implements TaskSupervisor
Modifier and Type | Field and Description |
---|---|
protected static ExecutorService |
CACHED_THREAD_POOL
Cached Pool for thread execution.
|
static String |
PERMISSION |
protected Map<String,AbstractAPISupport> |
sharedVars |
Modifier | Constructor and Description |
---|---|
protected |
TriggerReactorCore() |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
addItemLore(IItemStack iS,
String lore) |
abstract void |
callEvent(IEvent event)
Call event so that it can be heard by listeners
|
abstract <T> Future<T> |
callSyncMethod(Callable<T> call)
Run Callable on the server thread.
|
abstract Object |
createEmptyPlayerEvent(ICommandSender sender) |
abstract Interpreter.ProcessInterrupter |
createInterrupter(Object e,
Interpreter interpreter,
Map<UUID,Long> cooldowns)
Create ProcessInterrupter that will be used for the most of the Triggers.
|
abstract Interpreter.ProcessInterrupter |
createInterrupterForInv(Object e,
Interpreter interpreter,
Map<UUID,Long> cooldowns,
Map<IInventory,InventoryTrigger> inventoryMap)
Create ProcessInterrupter that will be used for the most of the Triggers.
|
abstract Object |
createPlayerCommandEvent(ICommandSender sender,
String label,
String[] args) |
abstract void |
disablePlugin()
Disable this plugin.
|
abstract IPlayer |
extractPlayerFromContext(Object e)
try to extract player from context 'e'.
|
abstract AbstractAreaTriggerManager |
getAreaManager() |
abstract String |
getAuthor()
get Author of plugin
|
abstract AbstractLocationBasedTriggerManager<AbstractLocationBasedTriggerManager.ClickTrigger> |
getClickManager() |
abstract AbstractCommandTriggerManager |
getCmdManager() |
abstract Object |
getConfig(String key)
Get the saved value associated with 'key' in config.yml.
|
abstract <T> T |
getConfig(String key,
T def)
Get the saved value associated with 'key' in config.yml.
|
abstract ICommandSender |
getConsoleSender()
get sender instance of the console
|
abstract AbstractCustomTriggerManager |
getCustomManager() |
abstract Map<String,Object> |
getCustomVarsForTrigger(Object context)
extract useful custom variables manually from 'context'
|
abstract File |
getDataFolder()
Get folder where the plugin files will be saved.
|
abstract AbstractExecutorManager |
getExecutorManager() |
static TriggerReactorCore |
getInstance()
get instance of this class.
|
abstract AbstractInventoryEditManager |
getInvEditManager() |
abstract AbstractInventoryTriggerManager<? extends IInventory> |
getInvManager() |
abstract AbstractPlayerLocationManager |
getLocationManager() |
abstract Logger |
getLogger()
get Logger.
|
abstract <T> T |
getMain()
Get the main class instance.
|
abstract AbstractNamedTriggerManager |
getNamedTriggerManager() |
abstract AbstractPermissionManager |
getPermissionManager() |
abstract AbstractPlaceholderManager |
getPlaceholderManager() |
abstract IPlayer |
getPlayer(String string) |
PluginConfigManager |
getPluginConfigManager() |
abstract String |
getPluginDescription()
get Plugin's description.
|
abstract AbstractRepeatingTriggerManager |
getRepeatManager() |
abstract AbstractScriptEditManager |
getScriptEditManager() |
abstract AbstractAreaSelectionManager |
getSelectionManager() |
abstract SelfReference |
getSelfReference() |
Map<String,AbstractAPISupport> |
getSharedVars() |
GlobalVariableManager |
getVariableManager() |
abstract String |
getVersion()
get Plugin's version as String
|
abstract AbstractLocationBasedTriggerManager<AbstractLocationBasedTriggerManager.WalkTrigger> |
getWalkManager() |
void |
handleException(ICommandSender sender,
Throwable throwable)
Handle the exception caused by Executors or Triggers.
|
void |
handleException(Object e,
Throwable throwable)
Handle the exception caused by Executors or Triggers.
|
abstract boolean |
isConfigSet(String key)
Check if the 'key' is set in the config.yml.
|
boolean |
isDebugging() |
abstract boolean |
isEnabled()
Check if this plugin is enabled.
|
abstract boolean |
isServerThread()
Check if the current Thread is the Server
|
boolean |
onCommand(ICommandSender sender,
String command,
String[] args) |
void |
onCoreDisable() |
void |
onCoreEnable() |
static List<String> |
onTabComplete(ICommandSender sender,
String[] args) |
abstract void |
registerEvents(Manager manager)
Register events for Managers.
|
abstract void |
reloadConfig()
Save all configs from config.yml.
|
protected abstract boolean |
removeLore(IItemStack iS,
int index) |
abstract void |
runTask(Runnable runnable)
Run task on the server thread.
|
abstract void |
saveAsynchronously(Manager manager)
Call saveAll() on separated thread.
|
abstract void |
saveConfig()
Save all configs to config.yml.
|
protected abstract void |
sendCommandDesc(ICommandSender sender,
String command,
String desc)
Deprecated.
no longer used
|
protected abstract void |
sendDetails(ICommandSender sender,
String detail)
Deprecated.
no longer used
|
abstract void |
setConfig(String key,
Object value)
Save the 'value' to the associated 'key' in config.yml.
|
protected abstract void |
setItemTitle(IItemStack iS,
String title) |
protected abstract boolean |
setLore(IItemStack iS,
int index,
String lore) |
protected abstract void |
showGlowStones(ICommandSender sender,
Set<Map.Entry<SimpleLocation,Trigger>> set)
Show glowstones to indicate the walk/click triggers in the chunk.
|
void |
submitAsync(Runnable run)
Execute the task asynchronously on separate thread.
|
<T> Future<T> |
submitSync(Callable<T> call)
Execute the task synchronously if possible.
|
public static final String PERMISSION
protected Map<String,AbstractAPISupport> sharedVars
protected static final ExecutorService CACHED_THREAD_POOL
public Map<String,AbstractAPISupport> getSharedVars()
public abstract SelfReference getSelfReference()
public abstract AbstractExecutorManager getExecutorManager()
public abstract AbstractPlaceholderManager getPlaceholderManager()
public abstract AbstractScriptEditManager getScriptEditManager()
public abstract AbstractPlayerLocationManager getLocationManager()
public abstract AbstractPermissionManager getPermissionManager()
public abstract AbstractAreaSelectionManager getSelectionManager()
public abstract AbstractLocationBasedTriggerManager<AbstractLocationBasedTriggerManager.ClickTrigger> getClickManager()
public abstract AbstractLocationBasedTriggerManager<AbstractLocationBasedTriggerManager.WalkTrigger> getWalkManager()
public abstract AbstractCommandTriggerManager getCmdManager()
public abstract AbstractInventoryTriggerManager<? extends IInventory> getInvManager()
public abstract AbstractInventoryEditManager getInvEditManager()
public abstract AbstractAreaTriggerManager getAreaManager()
public abstract AbstractCustomTriggerManager getCustomManager()
public abstract AbstractRepeatingTriggerManager getRepeatManager()
public abstract AbstractNamedTriggerManager getNamedTriggerManager()
public final PluginConfigManager getPluginConfigManager()
public final GlobalVariableManager getVariableManager()
public void onCoreEnable()
public void onCoreDisable()
protected abstract boolean removeLore(IItemStack iS, int index)
protected abstract boolean setLore(IItemStack iS, int index, String lore)
protected abstract void addItemLore(IItemStack iS, String lore)
protected abstract void setItemTitle(IItemStack iS, String title)
public abstract Object createEmptyPlayerEvent(ICommandSender sender)
public abstract Object createPlayerCommandEvent(ICommandSender sender, String label, String[] args)
@Deprecated protected abstract void sendCommandDesc(ICommandSender sender, String command, String desc)
sender
- sender to show descriptioncommand
- the command to explaindesc
- description@Deprecated protected abstract void sendDetails(ICommandSender sender, String detail)
sendCommandDesc(ICommandSender, String, String)
to add more information or example about the command.sender
- sender to show descriptiondetail
- detail to showpublic abstract String getPluginDescription()
public abstract String getVersion()
public abstract String getAuthor()
public boolean isDebugging()
protected abstract void showGlowStones(ICommandSender sender, Set<Map.Entry<SimpleLocation,Trigger>> set)
sender
- sender to show the glow stonesset
- the set contains location of block and its associated trigger.public abstract void registerEvents(Manager manager)
manager
- the object instance of Managerpublic abstract File getDataFolder()
public abstract Logger getLogger()
public abstract boolean isEnabled()
public abstract void disablePlugin()
public abstract <T> T getMain()
public abstract boolean isConfigSet(String key)
key
- the keypublic abstract void setConfig(String key, Object value)
saveConfig()
key
- the keyvalue
- the value to set.public abstract Object getConfig(String key)
key
- the keypublic abstract <T> T getConfig(String key, T def)
key
- the keydef
- the default value to return if the 'key' is not setpublic abstract void saveConfig()
public abstract void reloadConfig()
public abstract void runTask(Runnable runnable)
runnable
- the Runnable to runpublic abstract void saveAsynchronously(Manager manager)
manager
- public final void handleException(Object e, Throwable throwable)
e
- the contextthrowable
- the exception that was thrownpublic final void handleException(ICommandSender sender, Throwable throwable)
sender
- the sender who will receive the messagethrowable
- the exception that was thrownpublic abstract ICommandSender getConsoleSender()
public abstract Interpreter.ProcessInterrupter createInterrupter(Object e, Interpreter interpreter, Map<UUID,Long> cooldowns)
e
- the contextinterpreter
- the interpretercooldowns
- list of current cooldowns.public abstract Interpreter.ProcessInterrupter createInterrupterForInv(Object e, Interpreter interpreter, Map<UUID,Long> cooldowns, Map<IInventory,InventoryTrigger> inventoryMap)
e
- the contextinterpreter
- the interpretercooldowns
- list of current cooldowns.inventoryMap
- the inventory map that contains all the information about open inventories. As child class that implements
IIventory should override hashCode() and equals() methods, you can assume that each IInventory instance represents one trigger
that is running with the InventoryTrigger mapped. So it is ideal to get inventory object from the 'e' context and see if the Inventory
object exists in the 'inventoryMap.' For the properly working InventoryTriggerManager, closing the inventory should delete the IInventory
from the 'inventoryMap,' so you can safely assume that closed inventory will not exists in the 'inventoryMap.'public abstract IPlayer extractPlayerFromContext(Object e)
e
- Event for Bukkit APIpublic abstract <T> Future<T> callSyncMethod(Callable<T> call)
call
- the callablepublic <T> Future<T> submitSync(Callable<T> call)
TaskSupervisor
submitSync
in interface TaskSupervisor
call
- the task to be done on server threadpublic void submitAsync(Runnable run)
TaskSupervisor
submitAsync
in interface TaskSupervisor
run
- the task to be done on separate threadpublic abstract void callEvent(IEvent event)
event
- public abstract boolean isServerThread()
public abstract Map<String,Object> getCustomVarsForTrigger(Object context)
context
- public boolean onCommand(ICommandSender sender, String command, String[] args)
public static TriggerReactorCore getInstance()
public static List<String> onTabComplete(ICommandSender sender, String[] args)