This commit is contained in:
kento2 2026-04-16 14:52:10 +02:00
parent c8b7049f1d
commit 124e65a472
26 changed files with 123 additions and 116 deletions

View file

@ -1,6 +1,5 @@
package de.kentoj.kencommandapi;
import de.kentoj.kencommandapi.api.processing.CommandContext;
import de.kentoj.kencommandapi.api.processing.ParsedArgument;
import de.kentoj.kencommandapi.impl.processing.CommandContextImpl;
import org.bukkit.command.CommandSender;
@ -8,8 +7,12 @@ import org.bukkit.entity.Player;
import java.util.Map;
public class BukkitCommandContext extends CommandContextImpl<CommandSender> {
BukkitCommandContext(CommandSender sender, Map<String, ParsedArgument<CommandContext<CommandSender>, ?>> parsedArguments) {
public class BukkitCommandContext extends CommandContextImpl<CommandSender, BukkitCommandContext> {
public BukkitCommandContext(
CommandSender sender,
Map<String, ParsedArgument<CommandSender, BukkitCommandContext, ?>> parsedArguments
) {
super(sender, parsedArguments);
}

View file

@ -1,7 +1,6 @@
package de.kentoj.kencommandapi;
import de.kentoj.kencommandapi.api.KenCommandApi;
import de.kentoj.kencommandapi.api.processing.CommandContext;
import de.kentoj.kencommandapi.api.structure.node.CommandNode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@ -9,10 +8,13 @@ import org.jetbrains.annotations.NotNull;
public class BukkitKenCommand extends Command {
private final CommandNode<CommandContext<CommandSender>> rootNode;
private final KenCommandApi<CommandSender, CommandContext<CommandSender>> commandManager;
private final CommandNode<CommandSender, BukkitCommandContext> rootNode;
private final KenCommandApi<CommandSender, BukkitCommandContext> commandManager;
protected BukkitKenCommand(KenCommandApi<CommandSender, CommandContext<CommandSender>> commandManager, CommandNode<CommandContext<CommandSender>> rootNode) {
protected BukkitKenCommand(
KenCommandApi<CommandSender, BukkitCommandContext> commandManager,
CommandNode<CommandSender, BukkitCommandContext> rootNode
) {
super(rootNode.getNames()[0]);
this.rootNode = rootNode;
this.commandManager = commandManager;

View file

@ -1,6 +1,5 @@
package de.kentoj.kencommandapi;
import de.kentoj.kencommandapi.api.processing.CommandContext;
import de.kentoj.kencommandapi.api.processing.ParsedArgument;
import de.kentoj.kencommandapi.api.structure.node.CommandNode;
import de.kentoj.kencommandapi.impl.AbstractKenCommandApi;
@ -11,14 +10,17 @@ import org.bukkit.command.SimpleCommandMap;
import java.lang.reflect.Field;
import java.util.Map;
public class BukkitKenCommandApi extends AbstractKenCommandApi<CommandSender, CommandContext<CommandSender>> {
public class BukkitKenCommandApi extends AbstractKenCommandApi<CommandSender, BukkitCommandContext> {
@Override
public CommandContext<CommandSender> createContext(CommandSender sender, Map<String, ParsedArgument<CommandContext<CommandSender>, ?>> parsedArguments) {
public BukkitCommandContext createContext(
CommandSender sender,
Map<String, ParsedArgument<CommandSender, BukkitCommandContext, ?>> parsedArguments
) {
return new BukkitCommandContext(sender, parsedArguments);
}
public void register(CommandNode<CommandContext<CommandSender>> rootNode) {
public void register(CommandNode<CommandSender, BukkitCommandContext> rootNode) {
try {
Field field = Bukkit.getPluginManager().getClass().getDeclaredField("commandMap");
field.setAccessible(true);

View file

@ -1,5 +1,6 @@
package de.kentoj.kencommandapi.type;
import de.kentoj.kencommandapi.BukkitCommandContext;
import de.kentoj.kencommandapi.api.processing.CommandContext;
import de.kentoj.kencommandapi.api.structure.argument.ArgumentType;
import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider;
@ -8,12 +9,13 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import java.util.Set;
import java.util.UUID;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class OfflinePlayerArgumentType implements ArgumentType<OfflinePlayer> {
public class OfflinePlayerArgumentType implements ArgumentType<CommandSender, BukkitCommandContext, OfflinePlayer> {
@Getter(lazy = true)
private static final OfflinePlayerArgumentType instance = new OfflinePlayerArgumentType();
@ -33,7 +35,7 @@ public class OfflinePlayerArgumentType implements ArgumentType<OfflinePlayer> {
}
@Override
public SuggestionProvider<?> defaultSuggestionProvider() {
return (SuggestionProvider<CommandContext<OfflinePlayer>>) context -> Set.of();
public SuggestionProvider<CommandSender, BukkitCommandContext> defaultSuggestionProvider() {
return context -> Set.of();
}
}

View file

@ -1,5 +1,6 @@
package de.kentoj.kencommandapi.type;
import de.kentoj.kencommandapi.BukkitCommandContext;
import de.kentoj.kencommandapi.api.processing.CommandContext;
import de.kentoj.kencommandapi.api.structure.argument.ArgumentType;
import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider;
@ -7,12 +8,13 @@ import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Set;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class PlayerArgumentType implements ArgumentType<Player> {
public class PlayerArgumentType implements ArgumentType<CommandSender, BukkitCommandContext, Player> {
@Getter(lazy = true)
private static final PlayerArgumentType instance = new PlayerArgumentType();
@ -25,7 +27,7 @@ public class PlayerArgumentType implements ArgumentType<Player> {
}
@Override
public SuggestionProvider<?> defaultSuggestionProvider() {
return (SuggestionProvider<CommandContext<Player>>) context -> Set.of();
public SuggestionProvider<CommandSender, BukkitCommandContext> defaultSuggestionProvider() {
return context -> Set.of();
}
}