diff options
author | Pepich <benedikt.abel@yahoo.de> | 2017-05-09 14:15:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-09 14:15:09 +0200 |
commit | ca7b33dd26f45c847df6810610ee830dedfb2e13 (patch) | |
tree | f4bb74c67e79f369b15ee5d0aa2971b2b4a7bb9a /src/main/java/com/nemez/cmdmgr/util/AsyncExecutableDefinition.java | |
parent | a6e089ed797d9d09083099cbe448f150656ac83f (diff) | |
parent | 6ca0abc74aabbbf0ff5a436070fe80e6686b1a3c (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.java | 39 |
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); + } +} |