dfghjkl;'
This commit is contained in:
parent
baf8d849b6
commit
412cabff8a
23 changed files with 706 additions and 18 deletions
84
src/main/java/me/kawaiizenbo/moonlight/command/Command.java
Normal file
84
src/main/java/me/kawaiizenbo/moonlight/command/Command.java
Normal file
|
@ -0,0 +1,84 @@
|
|||
package me.kawaiizenbo.moonlight.command;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.ArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.builder.RequiredArgumentBuilder;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.command.CommandSource;
|
||||
|
||||
public abstract class Command
|
||||
{
|
||||
protected static MinecraftClient mc;
|
||||
|
||||
private final String name;
|
||||
private final String description;
|
||||
private final List<String> aliases = new ArrayList<>();
|
||||
public int SINGLE_SUCCESS = com.mojang.brigadier.Command.SINGLE_SUCCESS;
|
||||
|
||||
public Command(String name, String description, String... aliases) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
Collections.addAll(this.aliases, aliases);
|
||||
mc = MinecraftClient.getInstance();
|
||||
}
|
||||
|
||||
// Helper methods to painlessly infer the CommandSource generic type argument
|
||||
protected static <T> RequiredArgumentBuilder<CommandSource, T> argument(final String name, final ArgumentType<T> type) {
|
||||
return RequiredArgumentBuilder.argument(name, type);
|
||||
}
|
||||
|
||||
protected static LiteralArgumentBuilder<CommandSource> literal(final String name) {
|
||||
return LiteralArgumentBuilder.literal(name);
|
||||
}
|
||||
|
||||
public final void registerTo(CommandDispatcher<CommandSource> dispatcher) {
|
||||
register(dispatcher, name);
|
||||
for (String alias : aliases) register(dispatcher, alias);
|
||||
}
|
||||
|
||||
public void register(CommandDispatcher<CommandSource> dispatcher, String name) {
|
||||
LiteralArgumentBuilder<CommandSource> builder = LiteralArgumentBuilder.literal(name);
|
||||
build(builder);
|
||||
dispatcher.register(builder);
|
||||
}
|
||||
|
||||
public abstract void build(LiteralArgumentBuilder<CommandSource> builder);
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public List<String> getAliases() {
|
||||
return aliases;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return CommandManager.get().getPrefix() + name;
|
||||
}
|
||||
|
||||
public String toString(String... args) {
|
||||
StringBuilder base = new StringBuilder(toString());
|
||||
for (String arg : args)
|
||||
base.append(' ').append(arg);
|
||||
|
||||
return base.toString();
|
||||
}
|
||||
|
||||
public static String nameToTitle(String name) {
|
||||
return Arrays.stream(name.split("-")).map(StringUtils::capitalize).collect(Collectors.joining(" "));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue