Fix everything

This commit is contained in:
Telesphoreo 2023-06-17 15:44:24 -05:00
parent 73ede11b7b
commit c277b29457
No known key found for this signature in database
GPG Key ID: 68B745F7F8C2FADA
3 changed files with 29 additions and 8 deletions

View File

@ -21,6 +21,7 @@ public final class Fossil extends JavaPlugin {
plugin = this; plugin = this;
server = plugin.getServer(); server = plugin.getServer();
getCommand("fossil").setExecutor(new FossilCommand()); getCommand("fossil").setExecutor(new FossilCommand());
getCommand("fossil").setTabCompleter(new FossilCommand());
} }
@Override @Override

View File

@ -1,33 +1,39 @@
package dev.plex.fossil; package dev.plex.fossil;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.*;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class FossilCommand implements CommandExecutor, IFossil { public class FossilCommand implements CommandExecutor, TabCompleter, IFossil {
private final List<String> FILES = plugin.getConfig().getStringList("plugins"); private List<String> FILES = new ArrayList<>();
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) { public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (args.length == 0) { if (args.length == 0) {
sender.sendMessage(Component.text("This server is running Fossil to keep plugins in sync.")); sender.sendMessage(Component.text("This server is running Fossil to keep plugins in sync."));
sender.sendMessage(Component.text("Source code available at https://github.com/plexusorg/Fossil")); sender.sendMessage(Component.text("Source code available at: https://github.com/plexusorg/Fossil"));
return true; return true;
} }
if (args.length > 1) { if (args[0].equalsIgnoreCase("update")) {
if (!sender.hasPermission("fossil.update")) { if (!sender.hasPermission("fossil.update")) {
sender.sendMessage(Component.text("You do not have permission to use this command!").color(NamedTextColor.RED)); sender.sendMessage(Component.text("You do not have permission to use this command!").color(NamedTextColor.RED));
return true; return true;
} }
sender.sendMessage(Component.text("Updating server plugins").color(NamedTextColor.GRAY)); sender.sendMessage(Component.text("Updating server plugins").color(NamedTextColor.GRAY));
for (String file : plugin.getConfig().getStringList("plugins")) {
FILES.add(plugin.getPlugin(file));
}
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
@ -51,7 +57,17 @@ public class FossilCommand implements CommandExecutor, IFossil {
} }
} }
}.runTaskAsynchronously(plugin); }.runTaskAsynchronously(plugin);
} else {
return false;
} }
return true; return true;
} }
@Override
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length == 1 && sender.hasPermission("fossil.update")) {
return Collections.singletonList("update");
}
return Collections.emptyList();
}
} }

View File

@ -1,4 +1,8 @@
name: Fossil name: Fossil
version: '${version}' version: '${version}'
main: dev.plex.fossil.Fossil main: dev.plex.fossil.Fossil
api-version: 1.20 api-version: 1.19
commands:
fossil:
description: The main command for Fossil
usage: /<command> [update]