summaryrefslogtreecommitdiff
path: root/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
diff options
context:
space:
mode:
authorPepich <benedikt.abel@yahoo.de>2017-05-09 14:15:09 +0200
committerGitHub <noreply@github.com>2017-05-09 14:15:09 +0200
commitca7b33dd26f45c847df6810610ee830dedfb2e13 (patch)
treef4bb74c67e79f369b15ee5d0aa2971b2b4a7bb9a /src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
parenta6e089ed797d9d09083099cbe448f150656ac83f (diff)
parent6ca0abc74aabbbf0ff5a436070fe80e6686b1a3c (diff)
Merge pull request #1 from RedstonerServer/AsyncMod
Async commands and overriding/removing commands
Diffstat (limited to 'src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java')
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java b/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
new file mode 100644
index 0000000..7e97705
--- /dev/null
+++ b/src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java
@@ -0,0 +1,39 @@
+package com.nemez.cmdmgr.util;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+
+import org.bukkit.command.CommandSender;
+import org.bukkit.plugin.java.JavaPlugin;
+
+import com.nemez.cmdmgr.component.ICommandComponent;
+
+public class AsyncExecutableDefinition extends ExecutableDefinition
+{
+ public AsyncExecutableDefinition(ArrayList<ICommandComponent> cmd, ArrayList<Integer> paramLinks, String perm,
+ Method method, Object methodContainer, Type type)
+ {
+ super(cmd, paramLinks, perm, method, methodContainer, type);
+ }
+
+ @Override
+ public boolean invoke(Object[] args, CommandSender sender, JavaPlugin plugin)
+ {
+ Thread t = new Thread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ invokeFromThread(args, sender, plugin);
+ }
+ });
+ t.setDaemon(true);
+ t.start();
+ return true;
+ }
+
+ private final void invokeFromThread(Object[] args, CommandSender sender, JavaPlugin plugin)
+ {
+ super.invoke(args, sender, plugin);
+ }
+}