diff options
Diffstat (limited to 'src/main/java/cat/freya/cbl/Main.java')
| -rw-r--r-- | src/main/java/cat/freya/cbl/Main.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main/java/cat/freya/cbl/Main.java b/src/main/java/cat/freya/cbl/Main.java new file mode 100644 index 0000000..fe1a3f8 --- /dev/null +++ b/src/main/java/cat/freya/cbl/Main.java @@ -0,0 +1,61 @@ +package cat.freya.cbl; + +import java.util.ArrayList; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.bukkit.plugin.java.JavaPlugin; +import org.jetbrains.annotations.NotNull; + +import cat.freya.cbl.command.Toggle; +import cat.freya.cbl.command.util.CommandGroup; + +public class Main extends JavaPlugin { + + public static Main instance; + public final ChatManager chatManager; + public final CommandBlockListener commandBlockListener; + public final CommandGroup commandGroup; + + public static final String MESSAGE_PREFIX = "CBL > "; + public static final String ERROR_PREFIX = "Error > "; + + Main() { + Main.instance = this; + this.chatManager = new ChatManager(); + this.commandBlockListener = new CommandBlockListener(this.chatManager); + this.commandGroup = new CommandGroup("cbl", + new Toggle() + ); + } + + @Override + public void onEnable() { + this.registerListener(this.commandBlockListener); + } + + private void registerListener(Listener listener) { + Bukkit.getPluginManager().registerEvents(listener, this); + } + + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage(ERROR_PREFIX + "Commands may only be run by players"); + return true; + } + commandGroup.handleCommand((Player)sender, args); + return true; + } + + public java.util.List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { + if (!(sender instanceof Player)) { + sender.sendMessage(ERROR_PREFIX + "Commands may only be run by players"); + return new ArrayList<>(); + } + return commandGroup.handleTabComplete((Player)sender, args); + } + +} |