summaryrefslogtreecommitdiff
path: root/src/main/java/com/nemez/cmdmgr/util/Executable.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/nemez/cmdmgr/util/Executable.java')
-rw-r--r--src/main/java/com/nemez/cmdmgr/util/Executable.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/com/nemez/cmdmgr/util/Executable.java b/src/main/java/com/nemez/cmdmgr/util/Executable.java
index c757c9e..01c2dc4 100644
--- a/src/main/java/com/nemez/cmdmgr/util/Executable.java
+++ b/src/main/java/com/nemez/cmdmgr/util/Executable.java
@@ -1,3 +1,4 @@
+//@noformat
package com.nemez.cmdmgr.util;
import java.lang.reflect.Field;
@@ -14,6 +15,7 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import com.nemez.cmdmgr.Command;
+import com.nemez.cmdmgr.Command.AsyncType;
import com.nemez.cmdmgr.CommandManager;
import com.nemez.cmdmgr.component.BooleanComponent;
import com.nemez.cmdmgr.component.ByteComponent;
@@ -263,8 +265,15 @@ public class Executable extends org.bukkit.command.Command {
if (etype == null) {
etype = Type.BOTH;
}
- ExecutableDefinition def = new ExecutableDefinition(command, links, permission, target, methodContainer, etype);
+ ExecutableDefinition def;
+ AsyncType type = target.getAnnotation(Command.class).async();
+ if (type == AsyncType.ALWAYS)
+ def = new AsyncExecutableDefinition(command, links, permission, target, methodContainer, etype);
+ else
+ def = new ExecutableDefinition(command, links, permission, target, methodContainer, etype);
commands.add(def);
+ if (def instanceof AsyncExecutableDefinition)
+ CommandManager.asyncExecutables.add(this);
}
@Override
@@ -426,3 +435,4 @@ public class Executable extends org.bukkit.command.Command {
}
}
}
+//@format