Skip to content

Commit

Permalink
Added command aliases
Browse files Browse the repository at this point in the history
  • Loading branch information
xDec0de committed Jul 15, 2024
1 parent b37d624 commit 5d66f05
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 6 deletions.
3 changes: 3 additions & 0 deletions api/src/main/java/net/codersky/mcutils/cmd/MCCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ public interface MCCommand<S extends MCCommandSender<?>> {
@NotNull
String getName();

@NotNull
List<String> getAliases();

boolean onCommand(@NotNull S sender, @NotNull String[] args);

@NotNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import net.codersky.mcutils.cmd.MCCommand;
import net.codersky.mcutils.cmd.MCCommandSender;
import net.codersky.mcutils.cmd.SubCommandHandler;
import net.codersky.mcutils.java.MCCollections;
import net.codersky.mcutils.spigot.java.strings.MCStrings;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
Expand All @@ -15,6 +16,7 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Arrays;
import java.util.List;

public abstract class SpigotCommand<P extends JavaPlugin> extends Command implements MCCommand<SpigotCommandSender>, PluginIdentifiableCommand, TabExecutor {
Expand All @@ -28,6 +30,11 @@ public SpigotCommand(@NotNull P plugin, @NotNull String name) {
this.plugin = plugin;
}

public SpigotCommand(@NotNull P plugin, @NotNull String name, @NotNull String... aliases) {
this(plugin, name);
super.setAliases(Arrays.asList(aliases));
}

@NotNull
@Override
public final P getPlugin() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.velocitypowered.api.proxy.ProxyServer;
import net.codersky.mcutils.MCUtils;
import net.codersky.mcutils.cmd.MCCommand;
import net.codersky.mcutils.java.MCCollections;
import net.codersky.mcutils.velocity.cmd.VelocityCommand;
import org.jetbrains.annotations.NotNull;

Expand Down Expand Up @@ -35,7 +36,10 @@ public void registerCommands(MCCommand<?>... commands) {
final CommandManager manager = getProxy().getCommandManager();
for (MCCommand<?> mcCommand : commands) {
final VelocityCommand velocityCommand = (VelocityCommand) mcCommand;
final CommandMeta meta = manager.metaBuilder(velocityCommand.getName()).plugin(plugin).build();
final CommandMeta meta = manager.metaBuilder(velocityCommand.getName())
.plugin(plugin)
.aliases(velocityCommand.getAliasesArray())
.build();
manager.register(meta, velocityCommand);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,52 @@
import com.velocitypowered.api.command.SimpleCommand;
import net.codersky.mcutils.cmd.MCCommand;
import net.codersky.mcutils.cmd.SubCommandHandler;
import net.codersky.mcutils.java.MCCollections;
import net.codersky.mcutils.velocity.VelocityUtils;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;

public abstract class VelocityCommand<U extends VelocityUtils> implements SimpleCommand, MCCommand<VelocityCommandSender> {
public abstract class VelocityCommand<U extends VelocityUtils<?>> implements SimpleCommand, MCCommand<VelocityCommandSender> {

private final String name;
private final SubCommandHandler<VelocityCommandSender> subCmdHandler = new SubCommandHandler();
private final String[] aliases;
private final SubCommandHandler<VelocityCommandSender> subCmdHandler = new SubCommandHandler<>();

public VelocityCommand(@NotNull String name) {
public VelocityCommand(@NotNull String name, @NotNull String... aliases) {
this.name = Objects.requireNonNull(name).toLowerCase();
this.aliases = Objects.requireNonNull(aliases);
}

public VelocityCommand(@NotNull String name) {
this(name, new String[0]);
}

@NotNull
@Override
public @NotNull String getName() {
public final String getName() {
return name;
}

@NotNull
@Override
public final List<String> getAliases() {
return MCCollections.asArrayList(aliases);
}

@NotNull
public final String[] getAliasesArray() {
return aliases;
}

// Command logic //

public VelocityCommand<U> inject(VelocityCommand... commands) {
@SafeVarargs
public final VelocityCommand<U> inject(VelocityCommand<U>... commands) {
subCmdHandler.inject(commands);
return this;
}
Expand Down

0 comments on commit 5d66f05

Please sign in to comment.