diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d7463400..d54d248a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,11 +7,10 @@ jobs: if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }} runs-on: ubuntu-latest steps: - - name: Checkout repo - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v3 with: - java-version: 1.8 + java-version: '17' + distribution: 'temurin' - name: Build with Maven run: mvn -B package --file pom.xml \ No newline at end of file diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml index 65d1fe60..3775d24d 100644 --- a/.github/workflows/maven-publish.yml +++ b/.github/workflows/maven-publish.yml @@ -1,30 +1,29 @@ # This workflow will build a package using Maven and then publish it to GitHub packages when a release is created # For more information see: https://github.com/actions/setup-java#apache-maven-with-a-settings-path -name: Maven Package +name: Maven Package to Unnamed Repo and github packages on: - release: - types: released - + release: + types: [created] jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - server-id: github # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Build with Maven - run: mvn -B package --file pom.xml - - - name: Publish to GitHub Packages Apache Maven - run: mvn deploy -s $GITHUB_WORKSPACE/settings.xml - env: - GITHUB_TOKEN: ${{ github.token }} + publish: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + - name: Set up Java for publishing to unnamed repo + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + server-id: unnamed-releases + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + - name: Publish to unnamed repo + run: mvn --batch-mode deploy + env: + MAVEN_USERNAME: ${{ secrets.USERNAME }} + MAVEN_PASSWORD: ${{ secrets.TOKEN }} \ No newline at end of file diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierCommandManager.java b/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierCommandManager.java deleted file mode 100644 index 67d5fad4..00000000 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierCommandManager.java +++ /dev/null @@ -1,237 +0,0 @@ -package me.fixeddev.commandflow.brigadier; - -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.tree.LiteralCommandNode; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.ParseResult; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.fixeddev.commandflow.bukkit.MessageUtils; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.lucko.commodore.Commodore; -import me.lucko.commodore.CommodoreProvider; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TranslatableComponent; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; - -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; -import java.util.HashMap; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Optional; -import java.util.logging.Level; -import java.util.stream.Collectors; - -public class BrigadierCommandManager extends BukkitCommandManager { - - private Commodore commodore; - private CommandBrigadierConverter commandBrigadierConverter; - private final Plugin plugin; - - private final Map>> brigadierNodes; - - private MethodHandle selectEntitiesHandle; - - public BrigadierCommandManager(CommandManager commandManager, Plugin plugin) { - super(commandManager, plugin.getName()); - - this.plugin = plugin; - this.brigadierNodes = new HashMap<>(); - - if (isCommodoreSupported()) { - commodore = CommodoreProvider.getCommodore(plugin); - - commandBrigadierConverter = new CommandBrigadierConverter(commodore); - } - - getTranslator().setProvider(new BrigadierDefaultTranslationProvider()); - - try { - selectEntitiesHandle = MethodHandles.lookup().findStatic(Bukkit.class, "selectEntities", - MethodType.methodType(List.class, CommandSender.class, String.class)); - } catch (NoSuchMethodException | IllegalAccessException e) { - plugin.getLogger().log(Level.SEVERE, "Failed to find selectEntities method, consider using Paper for selector functionality on commands"); - } - - } - - public BrigadierCommandManager(Plugin plugin) { - super(plugin.getName()); - - this.plugin = plugin; - this.brigadierNodes = new HashMap<>(); - - if (isCommodoreSupported()) { - commodore = CommodoreProvider.getCommodore(plugin); - - commandBrigadierConverter = new CommandBrigadierConverter(commodore); - } - - getTranslator().setProvider(new BrigadierDefaultTranslationProvider()); - - try { - selectEntitiesHandle = MethodHandles.lookup().findStatic(Bukkit.class, "selectEntities", - MethodType.methodType(List.class, CommandSender.class, String.class)); - } catch (NoSuchMethodException | IllegalAccessException e) { - plugin.getLogger().log(Level.SEVERE, "Failed to find selectEntities method, consider using Paper for selector functionality on commands"); - } - } - - private boolean isCommodoreSupported() { - return CommodoreProvider.isSupported(); - } - - @Override - public void registerCommand(Command command) { - manager.registerCommand(command); - - BrigadierCommandWrapper bukkitCommand = new BrigadierCommandWrapper(command, - this, getTranslator()); - - wrapperMap.put(command.getName(), bukkitCommand); - bukkitCommandMap.register(fallbackPrefix, bukkitCommand); - - if (isCommodoreSupported()) { - brigadierNodes.put(command, commandBrigadierConverter.registerCommand(command, plugin, bukkitCommand)); - } - } - - @Override - public void unregisterCommand(Command command) { - super.unregisterCommand(command); - - if (isCommodoreSupported()) { - List> nodes = brigadierNodes.get(command); - - if (nodes == null) { - return; - } - - commandBrigadierConverter.unregisterCommand(nodes); - } - } - - @Override - public boolean execute(Namespace accessor, List arguments) throws CommandException { - accessor.setObject(CommandManager.class, "commandManager", this); - try { - replaceSelectors(accessor, arguments); - } catch (CommandException throwable) { - try { - return getErrorHandler().handleException(accessor, throwable); - } catch (Throwable ex) { - throwOrWrap(ex); - } - } - - return super.execute(accessor, arguments); - } - - - @Override - public ParseResult parse(Namespace accessor, List arguments) throws CommandException { - try { - replaceSelectors(accessor, arguments); - } catch (CommandException throwable) { - return new ParseResult() { - @Override - public Optional getContext() { - return Optional.empty(); - } - - @Override - public Optional getException() { - return Optional.of(throwable); - } - }; - } - - return super.parse(accessor, arguments); - } - - @Override - public boolean execute(Namespace accessor, String line) throws CommandException { - List tokens = getInputTokenizer().tokenize(line); - - return execute(accessor, tokens); - } - - @Override - public ParseResult parse(Namespace accessor, String line) throws CommandException { - List tokens = getInputTokenizer().tokenize(line); - - return parse(accessor, tokens); - } - - - private void throwOrWrap(Throwable throwable) throws CommandException { - if (throwable instanceof CommandException) { - throw (CommandException) throwable; - } - - throw new CommandException(throwable); - } - - private void replaceSelectors(Namespace accessor, List arguments) throws CommandException { - if (selectEntitiesHandle != null) { - ListIterator iterator = arguments.listIterator(); - - while (iterator.hasNext()) { - String argument = iterator.next(); - - if (!argument.isEmpty() && argument.charAt(0) != '@') { - continue; - } - - CommandSender sender = accessor.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); - try { - @SuppressWarnings("unchecked") - List entities = (List) selectEntitiesHandle.invoke(sender, argument); - - List matchedPlayers = entities.stream() - .filter(entity -> entity instanceof Player) - .map(entity -> ((Player) entity)) - .collect(Collectors.toList()); - - if (matchedPlayers.isEmpty()) { - continue; - } - - if (matchedPlayers.size() > 1) { - Component component = getTranslator().translate(Component.translatable("selector.ambiguous", Component.text(argument)), accessor); - BaseComponent[] components = MessageUtils.kyoriToBungee(component); - - MessageUtils.sendMessage(sender, components); - continue; - } - - iterator.set(matchedPlayers.get(0).getName()); - - } catch (Throwable e) { - String message = e.getMessage(); - - if (e instanceof IllegalArgumentException) { - if (e.getCause() instanceof CommandSyntaxException) { - message = e.getCause().getMessage(); - } - } - - Component component = Component.translatable("selector.parse-error", Component.text(argument), Component.text(message)); - throw new CommandUsage(component); - } - } - } - } - -} diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierCommandWrapper.java b/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierCommandWrapper.java deleted file mode 100644 index 54e390c6..00000000 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierCommandWrapper.java +++ /dev/null @@ -1,27 +0,0 @@ -package me.fixeddev.commandflow.brigadier; - -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.bukkit.BukkitCommandWrapper; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.translator.Translator; -import net.kyori.adventure.text.Component; - -public class BrigadierCommandWrapper extends BukkitCommandWrapper { - - public BrigadierCommandWrapper(Command command, CommandManager dispatcher, Translator translator) { - super(command, dispatcher, translator); - } - - public CommandManager getCommandManager() { - return commandManager; - } - - public Component getPermissionMessageComponent() { - return permissionMessage; - } - - public Translator getTranslator() { - return translator; - } - -} diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierDefaultTranslationProvider.java b/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierDefaultTranslationProvider.java deleted file mode 100644 index 08c6c0ae..00000000 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/BrigadierDefaultTranslationProvider.java +++ /dev/null @@ -1,12 +0,0 @@ -package me.fixeddev.commandflow.brigadier; - -import me.fixeddev.commandflow.bukkit.BukkitDefaultTranslationProvider; - -public class BrigadierDefaultTranslationProvider extends BukkitDefaultTranslationProvider { - - public BrigadierDefaultTranslationProvider() { - translations.put("selector.parse-error", "Failed to parse selector %s:\n %s"); - translations.put("selector.ambiguous", "The selector %s is ambiguous (more than one player matched), leaving it as is."); - } - -} diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/CommandBrigadierConverter.java b/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/CommandBrigadierConverter.java deleted file mode 100644 index 43e5a36f..00000000 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/CommandBrigadierConverter.java +++ /dev/null @@ -1,495 +0,0 @@ -package me.fixeddev.commandflow.brigadier; - -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.arguments.BoolArgumentType; -import com.mojang.brigadier.arguments.DoubleArgumentType; -import com.mojang.brigadier.arguments.IntegerArgumentType; -import com.mojang.brigadier.arguments.LongArgumentType; -import com.mojang.brigadier.arguments.StringArgumentType; -import com.mojang.brigadier.builder.ArgumentBuilder; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.builder.RequiredArgumentBuilder; -import com.mojang.brigadier.tree.CommandNode; -import com.mojang.brigadier.tree.LiteralCommandNode; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.SimpleCommandContext; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.fixeddev.commandflow.bukkit.part.OfflinePlayerPart; -import me.fixeddev.commandflow.bukkit.part.PlayerPart; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.PartsWrapper; -import me.fixeddev.commandflow.part.SinglePartWrapper; -import me.fixeddev.commandflow.part.defaults.BooleanPart; -import me.fixeddev.commandflow.part.defaults.DoublePart; -import me.fixeddev.commandflow.part.defaults.FirstMatchPart; -import me.fixeddev.commandflow.part.defaults.IntegerPart; -import me.fixeddev.commandflow.part.defaults.LongPart; -import me.fixeddev.commandflow.part.defaults.OptionalPart; -import me.fixeddev.commandflow.part.defaults.StringPart; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; -import me.fixeddev.commandflow.part.defaults.SwitchPart; -import me.fixeddev.commandflow.part.defaults.ValueFlagPart; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; -import me.fixeddev.commandflow.stack.SimpleArgumentStack; -import me.lucko.commodore.Commodore; -import me.lucko.commodore.MinecraftArgumentTypes; -import org.bukkit.Bukkit; -import org.bukkit.NamespacedKey; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerCommandSendEvent; -import org.bukkit.plugin.Plugin; - -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -public class CommandBrigadierConverter { - - private final Commodore commodore; - - public CommandBrigadierConverter(Commodore commodore) { - this.commodore = commodore; - } - - public List> registerCommand(Command command, Plugin plugin, BrigadierCommandWrapper bukkitCommand) { - List> nodes = getCommodoreCommand(command, bukkitCommand.getCommandManager().getAuthorizer()); - - nodes.forEach(commodore::register); - - Bukkit.getPluginManager().registerEvents(new CommandDataSendListener(bukkitCommand, bukkitCommand::testPermissionSilent), plugin); - - return nodes; - } - - public void unregisterCommand(List> nodes) { - Collection> rootNodes = commodore.getDispatcher().getRoot().getChildren(); - - rootNodes.removeAll(nodes); - } - - public List> getCommodoreCommand(Command command, Authorizer authorizer) { - return getCommodoreCommand(command, false, authorizer); - } - - public List> getCommodoreCommand(Command command, boolean optional, Authorizer authorizer) { - LiteralArgumentBuilder argumentBuilder = LiteralArgumentBuilder.literal(command.getName()) - .requires(new PermissionRequirement(command.getPermission(), authorizer, commodore)); - - if (isFirstPartOptional(command.getPart())) { - argumentBuilder.executes(context -> 1); - } - - LiteralCommandNode mainNode = argumentBuilder.build(); - - CommandNode node = convertToNodes(command, authorizer); - - if (node != null) { - if (node instanceof LiteralCommandNode && (node.getName().equals("valueFlag") || node.getName().equals("Wrapper"))) { - for (CommandNode child : node.getChildren()) { - mainNode.addChild(child); - } - } else { - mainNode.addChild(node); - } - } - - - List> argumentBuilders = new ArrayList<>(); - - argumentBuilders.add(mainNode); - - for (String alias : command.getAliases()) { - LiteralArgumentBuilder aliasBuilder = LiteralArgumentBuilder - .literal(alias) - .redirect(mainNode) - .requires(new PermissionRequirement(command.getPermission(), authorizer, commodore)); - - if (optional) { - aliasBuilder = aliasBuilder.executes(context -> 1); - } - - argumentBuilders.add(aliasBuilder.build()); - } - - return argumentBuilders; - } - - private CommandNode convertToNodes(Command command, Authorizer authorizer) { - return command.getPart().acceptVisitor(new CommandPartVisitor>() { - @Override - public CommandNode visit(CommandPart part) { - if (part instanceof SwitchPart) { - SwitchPart switchPart = (SwitchPart) part; - - LiteralCommandNode shortName = LiteralArgumentBuilder.literal("-" + switchPart.getShortName()).build(); - LiteralCommandNode fullName = LiteralArgumentBuilder.literal("--" + switchPart.getName()).build(); - - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("valueFlag"); - - builder.then(shortName); - - if (switchPart.allowsFullName()) { - builder.then(fullName); - } - - return builder.build(); - } - - return null; - } - - @Override - public CommandNode visit(ArgumentPart argumentPart) { - return CommandBrigadierConverter.this.visit(argumentPart); - } - - @Override - public CommandNode visit(PartsWrapper partsWrapper) { - return CommandBrigadierConverter.this.visit(partsWrapper, this); - } - - @Override - public CommandNode visit(SinglePartWrapper singlePartWrapper) { - return CommandBrigadierConverter.this.visit(singlePartWrapper, this); - } - - @Override - public CommandNode visit(SubCommandPart subCommand) { - return CommandBrigadierConverter.this.visit(subCommand, this, authorizer); - } - }); - } - - private void handleSimpleWrapperAdd(MultipleHeadNode nodeBuilder, CommandNode node, boolean nextOptional) { - if (nextOptional) { - for (CommandNode child : node.getChildren()) { - ArgumentBuilder childBuilder = child.createBuilder(); - childBuilder.executes(context -> 1); - - nodeBuilder.addChild(childBuilder.build()); - } - } else { - nodeBuilder.addChild(node.getChildren()); - } - } - - private boolean handleValueFlagAdd(MultipleHeadNode nodeBuilder, CommandNode node, boolean shouldAddNextToTail) { - nodeBuilder.addChild(node.getChildren()); - - if (shouldAddNextToTail) { - for (CommandNode child : node.getChildren()) { - nodeBuilder.addTailPointer(child); - } - } - - Iterator> iterator = node.getChildren().iterator(); - - // at least one is present - CommandNode mainNode = iterator.next(); - shouldAddNextToTail = true; - - // check if it is a SwitchPart, lol - if (!mainNode.getChildren().isEmpty()) { - // it isn't - nodeBuilder.setHeadPointer(0, mainNode.getChildren().iterator().next()); - } - - return shouldAddNextToTail; - } - - private boolean handleSimplePartAdding(MultipleHeadNode nodeBuilder, boolean shouldAddNextToTail, CommandNode node, boolean nextOptional) { - if (nextOptional) { - ArgumentBuilder childBuilder = node.createBuilder(); - - childBuilder.executes(context -> 1); - node = childBuilder.build(); - } - - nodeBuilder.addChild(node); - - if (shouldAddNextToTail) { - nodeBuilder.addTailPointer(node); - shouldAddNextToTail = false; - } - return shouldAddNextToTail; - } - - private boolean isFirstPartOptional(CommandPart part) { - if (part instanceof PartsWrapper) { - for (CommandPart commandPart : ((PartsWrapper) part).getParts()) { - if (!(commandPart instanceof ArgumentPart) && !(commandPart instanceof OptionalPart)) { - continue; - } - - return isFirstPartOptional(commandPart); - } - } - - if (part instanceof SinglePartWrapper) { - if (part instanceof OptionalPart) { - return true; - } - - return isFirstPartOptional(((SinglePartWrapper) part).getPart()); - } - - if (part instanceof SubCommandPart) { - return ((SubCommandPart) part).isOptional(); - } - - return false; - } - - // Taken from https://github.com/lucko/commodore/blob/master/src/main/java/me/lucko/commodore/file/MinecraftArgumentTypeParser.java#L117 - private static ArgumentType constructMinecraftArgumentType(NamespacedKey key, Class[] argTypes, Object... args) { - try { - final Constructor> constructor = MinecraftArgumentTypes.getClassByKey(key).getDeclaredConstructor(argTypes); - constructor.setAccessible(true); - return constructor.newInstance(args); - } catch (ReflectiveOperationException e) { - throw new RuntimeException(e); - } - } - - private CommandNode toArgumentBuilder(ArgumentPart part) { - if (part instanceof PlayerPart || part instanceof OfflinePlayerPart) { - return RequiredArgumentBuilder.argument(part.getName(), - constructMinecraftArgumentType(NamespacedKey.minecraft("entity"), - new Class[]{boolean.class, boolean.class}, true, true)).build(); - } else if (part instanceof BooleanPart) { - return RequiredArgumentBuilder.argument(part.getName(), BoolArgumentType.bool()).build(); - } else if (part instanceof IntegerPart) { - return RequiredArgumentBuilder.argument(part.getName(), IntegerArgumentType.integer()).build(); - } else if (part instanceof DoublePart) { - return RequiredArgumentBuilder.argument(part.getName(), DoubleArgumentType.doubleArg()).build(); - } else if (part instanceof LongPart) { - return RequiredArgumentBuilder.argument(part.getName(), LongArgumentType.longArg()).build(); - } else { - if (part instanceof StringPart) { - StringPart stringPart = (StringPart) part; - - if (stringPart.isConsumeAll()) { - return RequiredArgumentBuilder.argument(part.getName(), StringArgumentType.greedyString()).build(); - } else { - return RequiredArgumentBuilder.argument(part.getName(), StringArgumentType.word()).build(); - } - } - - return RequiredArgumentBuilder.argument(part.getName(), StringArgumentType.word()) - .suggests((context, builder) -> { - CommandSender sender = commodore.getBukkitSender(context.getSource()); - - Namespace namespace = Namespace.create(); - namespace.setObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE, sender); - - CommandContext commandContext = new SimpleCommandContext(namespace, new ArrayList<>()); - - List suggestions = part.getSuggestions(commandContext, new SimpleArgumentStack(Collections.singletonList(""))); - - if (suggestions != null) { - for (String suggestion : suggestions) { - builder.suggest(suggestion); - } - } - - return builder.buildFuture(); - }).build(); - } - } - - public CommandNode visit(ArgumentPart argumentPart) { - return toArgumentBuilder(argumentPart); - } - - public CommandNode visit(PartsWrapper partsWrapper, CommandPartVisitor> visitor) { - if (partsWrapper instanceof FirstMatchPart) { - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("Wrapper"); - - FirstMatchPart firstMatchPart = (FirstMatchPart) partsWrapper; - - for (CommandPart part : firstMatchPart.getParts()) { - CommandNode argumentNode = part.acceptVisitor(visitor); - - if (argumentNode == null) { - continue; // not available for brigadier completition. - } - - if (argumentNode instanceof LiteralCommandNode) { - if (argumentNode.getName().equals("Wrapper") || argumentNode.getName().equals("valueFlag")) { - // we can't do a lot more lol. - argumentNode.getChildren().forEach(builder::then); - - continue; - } - } - - builder.then(argumentNode); - } - - return builder.build(); - } - - MultipleHeadNode nodeBuilder = new MultipleHeadNode<>(); - boolean shouldAddNextToTail = false; - - ListIterator partsIterator = partsWrapper.getParts().listIterator(); - - while (partsIterator.hasNext()) { - CommandPart part = partsIterator.next(); - - CommandNode node = part.acceptVisitor(visitor); - - if (node == null) { - continue; // ignore this part, it's not available to be completed in brigadier. - } - - boolean nextOptional = false; - - if (partsIterator.hasNext()) { - CommandPart next = partsIterator.next(); - - if (isFirstPartOptional(next)) { - nextOptional = true; - } - - partsIterator.previous(); - } - - if (nodeBuilder.getHeadsSize() > 0) { - if (node instanceof LiteralCommandNode) { - if (node.getName().equals("Wrapper")) { - handleSimpleWrapperAdd(nodeBuilder, node, nextOptional); - } else if (node.getName().equals("valueFlag")) { - shouldAddNextToTail = handleValueFlagAdd(nodeBuilder, node, shouldAddNextToTail); - } else { - if (nextOptional) { - ArgumentBuilder childBuilder = node.createBuilder(); - - childBuilder.executes(context -> 1); - node = childBuilder.build(); - } - - nodeBuilder.addChild(node); - } - } else { - shouldAddNextToTail = handleSimplePartAdding(nodeBuilder, shouldAddNextToTail, node, nextOptional); - } - } else { - if (node.getName().equals("valueFlag")) { - shouldAddNextToTail = handleValueFlagAdd(nodeBuilder, node, shouldAddNextToTail); - - continue; - } - - shouldAddNextToTail = handleSimplePartAdding(nodeBuilder, shouldAddNextToTail, node, nextOptional); - } - } - - return nodeBuilder.getWrappedTail("Wrapper"); - } - - public CommandNode visit(SinglePartWrapper singlePartWrapper, CommandPartVisitor> visitor) { - if (singlePartWrapper instanceof ValueFlagPart) { - ValueFlagPart valueFlagPart = (ValueFlagPart) singlePartWrapper; - CommandNode node = singlePartWrapper.getPart().acceptVisitor(visitor); - - LiteralCommandNode shortName = LiteralArgumentBuilder.literal("-" + valueFlagPart.getShortName()).then(node).build(); - LiteralCommandNode fullName = LiteralArgumentBuilder.literal("--" + valueFlagPart.getName()).redirect(shortName).build(); - - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("valueFlag"); - - builder.then(shortName); - - if (valueFlagPart.allowsFullName()) { - builder.then(fullName); - } - - return builder.build(); - } - - return singlePartWrapper.getPart().acceptVisitor(visitor); - } - - public CommandNode visit(SubCommandPart subCommand, CommandPartVisitor> visitor, Authorizer authorizer) { - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("Wrapper"); - - for (Command command : subCommand.getSubCommands()) { - CommandNode node = command.getPart().acceptVisitor(visitor); - - LiteralArgumentBuilder literalNodeBuilder = LiteralArgumentBuilder.literal(command.getName()); - - if (command.getPermission() != null) { - literalNodeBuilder.requires(new PermissionRequirement(command.getPermission(), authorizer, commodore)); - } - - if (node != null) { - if (node instanceof LiteralCommandNode && (node.getName().equals("valueFlag") || node.getName().equals("Wrapper"))) { - for (CommandNode child : node.getChildren()) { - literalNodeBuilder.then(child); - } - } else { - literalNodeBuilder.then(node); - } - } - - LiteralCommandNode literalNode = literalNodeBuilder.build(); - - builder = builder.then(literalNode); - - for (String alias : command.getAliases()) { - LiteralCommandNode aliasNode = LiteralArgumentBuilder.literal(alias).redirect(literalNode).build(); - - builder = builder.then(aliasNode); - } - } - - return builder.build(); - } - - /** - * Taken from CommodoreImpl, since we can't use the register method that registers this listener - * Removes minecraft namespaced argument data, & data for players without permission to view the - * corresponding commands. - */ - private static final class CommandDataSendListener implements Listener { - - private final Set aliases; - private final Set minecraftPrefixedAliases; - private final Predicate permissionTest; - - CommandDataSendListener(org.bukkit.command.Command pluginCommand, Predicate permissionTest) { - this.aliases = new HashSet<>(Commodore.getAliases(pluginCommand)); - this.minecraftPrefixedAliases = this.aliases.stream().map(alias -> "minecraft:" + alias).collect(Collectors.toSet()); - this.permissionTest = permissionTest; - } - - @EventHandler - public void onCommandSend(PlayerCommandSendEvent e) { - // always remove 'minecraft:' prefixed aliases added by craftbukkit. - // this happens because bukkit thinks our injected commands are vanilla commands. - e.getCommands().removeAll(this.minecraftPrefixedAliases); - - // remove the actual aliases if the player doesn't pass the permission test - if (!this.permissionTest.test(e.getPlayer())) { - e.getCommands().removeAll(this.aliases); - } - } - - } - -} diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/PermissionRequirement.java b/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/PermissionRequirement.java deleted file mode 100644 index 63edbb82..00000000 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/PermissionRequirement.java +++ /dev/null @@ -1,33 +0,0 @@ -package me.fixeddev.commandflow.brigadier; - -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.lucko.commodore.Commodore; -import org.bukkit.command.CommandSender; - -import java.util.function.Predicate; - -public class PermissionRequirement implements Predicate { - - private final String permission; - private final Authorizer authorizer; - private final Commodore commodore; - - public PermissionRequirement(String permission, Authorizer authorizer, Commodore commodore) { - this.permission = permission; - this.authorizer = authorizer; - this.commodore = commodore; - } - - @Override - public boolean test(Object o) { - CommandSender sender = commodore.getBukkitSender(o); - - Namespace namespace = Namespace.create(); - namespace.setObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE, sender); - - return authorizer.isAuthorized(namespace, permission); - } - -} diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/Sender.java b/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/Sender.java deleted file mode 100644 index b6328efb..00000000 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/Sender.java +++ /dev/null @@ -1,11 +0,0 @@ -package me.fixeddev.commandflow.bukkit.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.PARAMETER) -public @interface Sender { -} diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/annotation/Sender.java b/Bungee/src/main/java/me/fixeddev/commandflow/bungee/annotation/Sender.java deleted file mode 100644 index 6a0fd7ee..00000000 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/annotation/Sender.java +++ /dev/null @@ -1,11 +0,0 @@ -package me.fixeddev.commandflow.bungee.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.PARAMETER) -public @interface Sender { -} diff --git a/Universal/src/main/java/me/fixeddev/commandflow/Namespace.java b/Universal/src/main/java/me/fixeddev/commandflow/Namespace.java deleted file mode 100644 index d8b96b24..00000000 --- a/Universal/src/main/java/me/fixeddev/commandflow/Namespace.java +++ /dev/null @@ -1,31 +0,0 @@ -package me.fixeddev.commandflow; - -public interface Namespace { - - /** - * Gets an injected object from the backing Map - * - * @param clazz The class type of the Object to get - * @param name The name of the Object to get - * @param The type of the Object to get - * - * @return A nullable instance of T contained in the backing map with the specified name - */ - T getObject(Class clazz, String name); - - /** - * Sets an Object of Type T with a specified name into the backing Map - * If an object with the same name and type is already on the map, it will be override - * - * @param clazz The class type of the Object to set - * @param name The name of the object to set - * @param object The Object to set into the backing map - * @param The Type of the object to set - */ - void setObject(Class clazz, String name, T object); - - static Namespace create() { - return new NamespaceImpl(); - } - -} diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/AnnotatedCommandBuilder.java b/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/AnnotatedCommandBuilder.java deleted file mode 100644 index 0853aaae..00000000 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/AnnotatedCommandBuilder.java +++ /dev/null @@ -1,23 +0,0 @@ -package me.fixeddev.commandflow.annotated.builder; - -import me.fixeddev.commandflow.annotated.part.PartInjector; - -public interface AnnotatedCommandBuilder { - - /** - * Creates a new builder to create a {@link me.fixeddev.commandflow.command.Command} instance. - *

- * While being similar to {@link me.fixeddev.commandflow.command.Command.Builder} it allows to create commands based on annotations, - * that means that the {@link me.fixeddev.commandflow.command.Action} or {@link me.fixeddev.commandflow.part.CommandPart} instances - * for the build command will be created based on a given method. - * - * @param name The name of {@link me.fixeddev.commandflow.command.Command} to build. - * @return A {@link CommandDataNode} which will allow building a complete {@link me.fixeddev.commandflow.command.Command} tree. - */ - CommandDataNode newCommand(String name); - - static AnnotatedCommandBuilder create(PartInjector injector) { - return new AnnotatedCommandBuilderImpl(injector); - } - -} diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/visitor/CommandPartVisitor.java b/Universal/src/main/java/me/fixeddev/commandflow/part/visitor/CommandPartVisitor.java deleted file mode 100644 index 29d4f026..00000000 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/visitor/CommandPartVisitor.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.fixeddev.commandflow.part.visitor; - -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.PartsWrapper; -import me.fixeddev.commandflow.part.SinglePartWrapper; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; - -public interface CommandPartVisitor { - - R visit(CommandPart part); - - R visit(ArgumentPart argumentPart); - - R visit(PartsWrapper partsWrapper); - - R visit(SinglePartWrapper singlePartWrapper); - - R visit(SubCommandPart subCommandPart); - -} diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/annotation/Sender.java b/Velocity/src/main/java/me/fixeddev/commandflow/velocity/annotation/Sender.java deleted file mode 100644 index 9c5b0574..00000000 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/annotation/Sender.java +++ /dev/null @@ -1,11 +0,0 @@ -package me.fixeddev.commandflow.velocity.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.PARAMETER) -public @interface Sender { -} diff --git a/Universal/pom.xml b/api/pom.xml similarity index 91% rename from Universal/pom.xml rename to api/pom.xml index 26e3b865..d6a9edd8 100644 --- a/Universal/pom.xml +++ b/api/pom.xml @@ -2,15 +2,14 @@ + 4.0.0 + team.unnamed commandflow - me.fixeddev - 0.6.0 + 0.7.0 + ../pom.xml - 4.0.0 - - ${version.universal} - commandflow-universal + commandflow-api jar diff --git a/Universal/src/main/java/me/fixeddev/commandflow/Authorizer.java b/api/src/main/java/team/unnamed/commandflow/Authorizer.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/Authorizer.java rename to api/src/main/java/team/unnamed/commandflow/Authorizer.java index d4624849..a87ee1ad 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/Authorizer.java +++ b/api/src/main/java/team/unnamed/commandflow/Authorizer.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; public interface Authorizer { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/CommandContext.java b/api/src/main/java/team/unnamed/commandflow/CommandContext.java similarity index 98% rename from Universal/src/main/java/me/fixeddev/commandflow/CommandContext.java rename to api/src/main/java/team/unnamed/commandflow/CommandContext.java index 9b73d0f9..fecece2f 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/CommandContext.java +++ b/api/src/main/java/team/unnamed/commandflow/CommandContext.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.CommandPart; import java.util.Collections; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/CommandManager.java b/api/src/main/java/team/unnamed/commandflow/CommandManager.java similarity index 93% rename from Universal/src/main/java/me/fixeddev/commandflow/CommandManager.java rename to api/src/main/java/team/unnamed/commandflow/CommandManager.java index dcfa257a..fa78772a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/CommandManager.java +++ b/api/src/main/java/team/unnamed/commandflow/CommandManager.java @@ -1,12 +1,13 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.executor.Executor; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.translator.Translator; -import me.fixeddev.commandflow.usage.UsageBuilder; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.UsageBuilder; +import team.unnamed.commandflow.command.Action; import java.util.List; import java.util.Optional; @@ -149,7 +150,7 @@ public interface CommandManager { /** * Executes a command based on the provided {@link CommandContext}. *

- * If the executed {@link Command}'s {@link me.fixeddev.commandflow.command.Action} returns a false value then this method gets the usage for the executed Command + * If the executed {@link Command}'s {@link Action} returns a false value then this method gets the usage for the executed Command * * @param commandContext The {@link CommandContext} used to execute the command. * @return A boolean indicating if a command was executed or not @@ -160,7 +161,7 @@ public interface CommandManager { /** * Calls {@link CommandManager#parse(Namespace, List)} and executes the command with the {@link CommandContext} returned by the method. *

- * If the executed {@link Command}'s {@link me.fixeddev.commandflow.command.Action} returns a false value then this method gets the usage for the executed Command + * If the executed {@link Command}'s {@link Action} returns a false value then this method gets the usage for the executed Command * * @param accessor The {@link Namespace} used to inject things into the Command parsing/execution phase * @param arguments A {@link List} of arguments including the command used to parse the actual command used and the parameters of that command diff --git a/Universal/src/main/java/me/fixeddev/commandflow/ContextSnapshot.java b/api/src/main/java/team/unnamed/commandflow/ContextSnapshot.java similarity index 95% rename from Universal/src/main/java/me/fixeddev/commandflow/ContextSnapshot.java rename to api/src/main/java/team/unnamed/commandflow/ContextSnapshot.java index 1166c96e..9f2b8f9f 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/ContextSnapshot.java +++ b/api/src/main/java/team/unnamed/commandflow/ContextSnapshot.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.CommandPart; import java.util.List; import java.util.Map; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/ErrorHandler.java b/api/src/main/java/team/unnamed/commandflow/ErrorHandler.java similarity index 98% rename from Universal/src/main/java/me/fixeddev/commandflow/ErrorHandler.java rename to api/src/main/java/team/unnamed/commandflow/ErrorHandler.java index e147effd..92c91670 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/ErrorHandler.java +++ b/api/src/main/java/team/unnamed/commandflow/ErrorHandler.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; /** * This interface is used to handle errors that occur during the execution of a command, by the usage of error handlers diff --git a/api/src/main/java/team/unnamed/commandflow/Namespace.java b/api/src/main/java/team/unnamed/commandflow/Namespace.java new file mode 100644 index 00000000..a8908315 --- /dev/null +++ b/api/src/main/java/team/unnamed/commandflow/Namespace.java @@ -0,0 +1,55 @@ +package team.unnamed.commandflow; + +public interface Namespace { + + String DEFAULT_NAMESPACE_NAME = "__"; + + /** + * Gets an injected object from the backing Map + * + * @param clazz The class type of the Object to get + * @param name The name of the Object to get + * @param The type of the Object to get + * @return A nullable instance of T contained in the backing map with the specified name + */ + T getObject(Class clazz, String name); + + /** + * Gets an injected object from the backing Map, with the default namespace name. + * + * @param clazz The class type of the Object to get + * @param The type of the Object to get + * @return A nullable instance of T contained in the backing map with the default namespace name + */ + default T getObject(Class clazz) { + return getObject(clazz, DEFAULT_NAMESPACE_NAME); + } + + /** + * Sets an Object of Type T with a specified name into the backing Map + * If an object with the same name and type is already on the map, it will be overridden + * + * @param clazz The class type of the Object to set + * @param name The name of the object to set + * @param object The Object to set into the backing map + * @param The Type of the object to set + */ + void setObject(Class clazz, String name, T object); + + /** + * Sets an Object of Type T with the default name into the backing Map + * If an object with the same type and without a specified name is already on the map, it will be overridden + * + * @param clazz The class type of the Object to set + * @param object The Object to set into the backing map + * @param The Type of the object to set + */ + default void setObject(Class clazz, T object) { + setObject(clazz, DEFAULT_NAMESPACE_NAME, object); + } + + static Namespace create() { + return new NamespaceImpl(); + } + +} diff --git a/Universal/src/main/java/me/fixeddev/commandflow/NamespaceImpl.java b/api/src/main/java/team/unnamed/commandflow/NamespaceImpl.java similarity index 96% rename from Universal/src/main/java/me/fixeddev/commandflow/NamespaceImpl.java rename to api/src/main/java/team/unnamed/commandflow/NamespaceImpl.java index 0f6e1dad..cb507165 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/NamespaceImpl.java +++ b/api/src/main/java/team/unnamed/commandflow/NamespaceImpl.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; import java.util.Map; import java.util.Objects; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/ParseResult.java b/api/src/main/java/team/unnamed/commandflow/ParseResult.java similarity index 71% rename from Universal/src/main/java/me/fixeddev/commandflow/ParseResult.java rename to api/src/main/java/team/unnamed/commandflow/ParseResult.java index 0f8f7a6f..671d2d18 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/ParseResult.java +++ b/api/src/main/java/team/unnamed/commandflow/ParseResult.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; -import me.fixeddev.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.CommandException; import java.util.Optional; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/SimpleCommandContext.java b/api/src/main/java/team/unnamed/commandflow/SimpleCommandContext.java similarity index 97% rename from Universal/src/main/java/me/fixeddev/commandflow/SimpleCommandContext.java rename to api/src/main/java/team/unnamed/commandflow/SimpleCommandContext.java index 8a049c31..24054906 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/SimpleCommandContext.java +++ b/api/src/main/java/team/unnamed/commandflow/SimpleCommandContext.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.CommandPart; import java.util.ArrayList; import java.util.HashMap; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/SimpleCommandManager.java b/api/src/main/java/team/unnamed/commandflow/SimpleCommandManager.java similarity index 91% rename from Universal/src/main/java/me/fixeddev/commandflow/SimpleCommandManager.java rename to api/src/main/java/team/unnamed/commandflow/SimpleCommandManager.java index 9feaf521..5fbcdaf3 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/SimpleCommandManager.java +++ b/api/src/main/java/team/unnamed/commandflow/SimpleCommandManager.java @@ -1,27 +1,27 @@ -package me.fixeddev.commandflow; - -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.CommandModifiers; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.command.modifiers.ModifierPhase; -import me.fixeddev.commandflow.exception.ArgumentException; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.exception.NoPermissionsException; -import me.fixeddev.commandflow.exception.StopParseException; -import me.fixeddev.commandflow.executor.DefaultExecutor; -import me.fixeddev.commandflow.executor.Executor; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.input.StringSpaceTokenizer; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.SimpleArgumentStack; -import me.fixeddev.commandflow.translator.DefaultMapTranslationProvider; -import me.fixeddev.commandflow.translator.DefaultTranslator; -import me.fixeddev.commandflow.translator.Translator; -import me.fixeddev.commandflow.usage.DefaultUsageBuilder; -import me.fixeddev.commandflow.usage.UsageBuilder; +package team.unnamed.commandflow; + +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.CommandModifiers; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.command.modifiers.ModifierPhase; +import team.unnamed.commandflow.exception.ArgumentException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.CommandUsage; +import team.unnamed.commandflow.exception.NoPermissionsException; +import team.unnamed.commandflow.exception.StopParseException; +import team.unnamed.commandflow.executor.DefaultExecutor; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.input.StringSpaceTokenizer; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.SimpleArgumentStack; +import team.unnamed.commandflow.translator.DefaultMapTranslationProvider; +import team.unnamed.commandflow.translator.DefaultTranslator; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.DefaultUsageBuilder; +import team.unnamed.commandflow.usage.UsageBuilder; import java.util.Collections; import java.util.HashMap; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/SimpleErrorHandler.java b/api/src/main/java/team/unnamed/commandflow/SimpleErrorHandler.java similarity index 97% rename from Universal/src/main/java/me/fixeddev/commandflow/SimpleErrorHandler.java rename to api/src/main/java/team/unnamed/commandflow/SimpleErrorHandler.java index 0c2928f7..da288fc0 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/SimpleErrorHandler.java +++ b/api/src/main/java/team/unnamed/commandflow/SimpleErrorHandler.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; import java.util.HashMap; import java.util.Map; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/AnnotatedCommandTreeBuilder.java b/api/src/main/java/team/unnamed/commandflow/annotated/AnnotatedCommandTreeBuilder.java similarity index 72% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/AnnotatedCommandTreeBuilder.java rename to api/src/main/java/team/unnamed/commandflow/annotated/AnnotatedCommandTreeBuilder.java index 30568124..0858dd6b 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/AnnotatedCommandTreeBuilder.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/AnnotatedCommandTreeBuilder.java @@ -1,9 +1,12 @@ -package me.fixeddev.commandflow.annotated; +package team.unnamed.commandflow.annotated; -import me.fixeddev.commandflow.annotated.builder.AnnotatedCommandBuilder; -import me.fixeddev.commandflow.annotated.part.PartInjector; -import me.fixeddev.commandflow.command.Command; +import team.unnamed.commandflow.annotated.builder.AnnotatedCommandBuilder; +import team.unnamed.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.command.Command; import net.kyori.adventure.text.Component; +import team.unnamed.commandflow.annotated.annotation.Handler; +import team.unnamed.commandflow.annotated.annotation.SubCommandClasses; +import team.unnamed.commandflow.part.defaults.SubCommandPart; import java.util.List; import java.util.function.Function; @@ -19,15 +22,15 @@ public interface AnnotatedCommandTreeBuilder { * The {@link Command} instances created from annotated methods should be public instance methods(not static ones) that return boolean or void, * not being inherited from other classes. *

- * The {@link me.fixeddev.commandflow.annotated.annotation.Command} annotation is used to indicate whether a method or a class is a Command, + * The {@link team.unnamed.commandflow.annotated.annotation.Command} annotation is used to indicate whether a method or a class is a Command, * if a class has this annotation, that means that every command in that class is his subcommand, with the main command being * a command with empty name. *

- * The {@link me.fixeddev.commandflow.annotated.annotation.Handler} annotation is used to indicate that a method of a class with subcommands is the one that - * handles the sub commands, actualy being a {@link me.fixeddev.commandflow.part.defaults.SubCommandPart.SubCommandHandler} but created with + * The {@link Handler} annotation is used to indicate that a method of a class with subcommands is the one that + * handles the sub commands, actualy being a {@link SubCommandPart.SubCommandHandler} but created with * an annotated method. *

- * The {@link me.fixeddev.commandflow.annotated.annotation.SubCommandClasses} annotation is used to indicate that the given classes are actually subcommands + * The {@link SubCommandClasses} annotation is used to indicate that the given classes are actually subcommands * of the given {@link CommandClass}, these sub command classes will be instantiated using a {@link SubCommandInstanceCreator} and * parsed with this same method, the returned commands will be added as subcommands for the provided {@link CommandClass}. * This allows multiple levels of subcommands without a lot of hassle. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/AnnotatedCommandTreeBuilderImpl.java b/api/src/main/java/team/unnamed/commandflow/annotated/AnnotatedCommandTreeBuilderImpl.java similarity index 86% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/AnnotatedCommandTreeBuilderImpl.java rename to api/src/main/java/team/unnamed/commandflow/annotated/AnnotatedCommandTreeBuilderImpl.java index 84dc4921..dbd45b16 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/AnnotatedCommandTreeBuilderImpl.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/AnnotatedCommandTreeBuilderImpl.java @@ -1,17 +1,17 @@ -package me.fixeddev.commandflow.annotated; - -import me.fixeddev.commandflow.annotated.annotation.*; -import me.fixeddev.commandflow.annotated.builder.AnnotatedCommandBuilder; -import me.fixeddev.commandflow.annotated.builder.CommandDataNode; -import me.fixeddev.commandflow.annotated.builder.CommandModifiersNode; -import me.fixeddev.commandflow.annotated.builder.CommandPartsNode; -import me.fixeddev.commandflow.annotated.builder.SubCommandsNode; -import me.fixeddev.commandflow.annotated.part.PartInjector; -import me.fixeddev.commandflow.command.Action; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; +package team.unnamed.commandflow.annotated; + +import team.unnamed.commandflow.annotated.builder.AnnotatedCommandBuilder; +import team.unnamed.commandflow.annotated.builder.CommandDataNode; +import team.unnamed.commandflow.annotated.builder.CommandModifiersNode; +import team.unnamed.commandflow.annotated.builder.CommandPartsNode; +import team.unnamed.commandflow.annotated.builder.SubCommandsNode; +import team.unnamed.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.command.Action; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.defaults.SubCommandPart; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; +import team.unnamed.commandflow.annotated.annotation.*; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -55,16 +55,16 @@ public void setComponentParser(Function componentParser) { public List fromClass(CommandClass commandClass) { Class clazz = commandClass.getClass(); - me.fixeddev.commandflow.annotated.annotation.Command rootCommandAnnotation = - clazz.getAnnotation(me.fixeddev.commandflow.annotated.annotation.Command.class); + team.unnamed.commandflow.annotated.annotation.Command rootCommandAnnotation = + clazz.getAnnotation(team.unnamed.commandflow.annotated.annotation.Command.class); List commandList = new ArrayList<>(); Method rootCommandMethod = null; for (Method method : clazz.getDeclaredMethods()) { - me.fixeddev.commandflow.annotated.annotation.Command commandAnnotation = - method.getAnnotation(me.fixeddev.commandflow.annotated.annotation.Command.class); + team.unnamed.commandflow.annotated.annotation.Command commandAnnotation = + method.getAnnotation(team.unnamed.commandflow.annotated.annotation.Command.class); if (commandAnnotation == null) { continue; @@ -91,7 +91,7 @@ public List fromClass(CommandClass commandClass) { } private Command fromMethod(CommandClass commandClass, - me.fixeddev.commandflow.annotated.annotation.Command commandAnnotation, + team.unnamed.commandflow.annotated.annotation.Command commandAnnotation, Method method) { if (Modifier.isStatic(method.getModifiers()) || !Modifier.isPublic(method.getModifiers())) { return null; @@ -128,7 +128,7 @@ private Command fromMethod(CommandClass commandClass, @NotNull private List createRootCommand(CommandClass commandClass, Class clazz, - me.fixeddev.commandflow.annotated.annotation.Command rootCommandAnnotation, + team.unnamed.commandflow.annotated.annotation.Command rootCommandAnnotation, List commandList, Method rootCommandMethod) { String[] names = rootCommandAnnotation.names(); diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/CommandClass.java b/api/src/main/java/team/unnamed/commandflow/annotated/CommandClass.java similarity index 69% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/CommandClass.java rename to api/src/main/java/team/unnamed/commandflow/annotated/CommandClass.java index 0551f2ba..d249e2b5 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/CommandClass.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/CommandClass.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated; +package team.unnamed.commandflow.annotated; /** * A marker interface for Commands based on annotations. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/ReflectionInstanceCreator.java b/api/src/main/java/team/unnamed/commandflow/annotated/ReflectionInstanceCreator.java similarity index 96% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/ReflectionInstanceCreator.java rename to api/src/main/java/team/unnamed/commandflow/annotated/ReflectionInstanceCreator.java index 99d813f5..20b0a67b 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/ReflectionInstanceCreator.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/ReflectionInstanceCreator.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated; +package team.unnamed.commandflow.annotated; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/ReflectionSubCommandHandler.java b/api/src/main/java/team/unnamed/commandflow/annotated/ReflectionSubCommandHandler.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/ReflectionSubCommandHandler.java rename to api/src/main/java/team/unnamed/commandflow/annotated/ReflectionSubCommandHandler.java index 4297a292..ee147e03 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/ReflectionSubCommandHandler.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/ReflectionSubCommandHandler.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated; +package team.unnamed.commandflow.annotated; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.exception.ArgumentException; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.exception.ArgumentException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.defaults.SubCommandPart; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/SubCommandInstanceCreator.java b/api/src/main/java/team/unnamed/commandflow/annotated/SubCommandInstanceCreator.java similarity index 93% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/SubCommandInstanceCreator.java rename to api/src/main/java/team/unnamed/commandflow/annotated/SubCommandInstanceCreator.java index 294cf639..4066d6f4 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/SubCommandInstanceCreator.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/SubCommandInstanceCreator.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated; +package team.unnamed.commandflow.annotated; /** * An interface with the purpose of creating a {@link CommandClass} instance that is a sub commands class of another diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/action/ReflectiveAction.java b/api/src/main/java/team/unnamed/commandflow/annotated/action/ReflectiveAction.java similarity index 86% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/action/ReflectiveAction.java rename to api/src/main/java/team/unnamed/commandflow/annotated/action/ReflectiveAction.java index e4771e4b..5ec81eb5 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/action/ReflectiveAction.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/action/ReflectiveAction.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.action; +package team.unnamed.commandflow.annotated.action; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.annotated.CommandClass; -import me.fixeddev.commandflow.command.Action; -import me.fixeddev.commandflow.exception.CommandException; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.command.Action; +import team.unnamed.commandflow.exception.CommandException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/action/ValueGetter.java b/api/src/main/java/team/unnamed/commandflow/annotated/action/ValueGetter.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/action/ValueGetter.java rename to api/src/main/java/team/unnamed/commandflow/annotated/action/ValueGetter.java index 9beba130..4ff3862e 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/action/ValueGetter.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/action/ValueGetter.java @@ -1,9 +1,7 @@ -package me.fixeddev.commandflow.annotated.action; +package team.unnamed.commandflow.annotated.action; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.part.CommandPart; - -import java.util.Collections; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.part.CommandPart; public interface ValueGetter { Object getValue(CommandContext commandContext); diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ArgOrSub.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/ArgOrSub.java similarity index 90% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ArgOrSub.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/ArgOrSub.java index 29a06ccf..8627c3dc 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ArgOrSub.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/ArgOrSub.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Command.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Command.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Command.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Command.java index f3a8cd0f..10bb302f 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Command.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Command.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ConsumeAll.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/ConsumeAll.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ConsumeAll.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/ConsumeAll.java index ac6f58b7..54d695ba 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ConsumeAll.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/ConsumeAll.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Flag.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Flag.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Flag.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Flag.java index b57f7a9c..9768b733 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Flag.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Flag.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Handler.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Handler.java similarity index 83% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Handler.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Handler.java index 0dd5d59f..a45bf841 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Handler.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Handler.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Limit.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Limit.java similarity index 83% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Limit.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Limit.java index 7344134a..f273669c 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Limit.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Limit.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Named.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Named.java similarity index 83% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Named.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Named.java index fa6f85b1..6a7b3722 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Named.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Named.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/OptArg.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/OptArg.java similarity index 74% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/OptArg.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/OptArg.java index f9422de8..06303ca6 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/OptArg.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/OptArg.java @@ -1,4 +1,6 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; + +import team.unnamed.commandflow.command.Command; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -7,7 +9,7 @@ /** * The purpose of this annotation is to define the default value of a parameter - * in an {@link me.fixeddev.commandflow.command.Command}. + * in an {@link Command}. */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ParentArg.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/ParentArg.java similarity index 90% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ParentArg.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/ParentArg.java index ee9ceaaa..b23b44e3 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/ParentArg.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/ParentArg.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Range.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Range.java similarity index 52% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Range.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Range.java index 9da1139f..2a6fa028 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Range.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Range.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; public @interface Range { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Required.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Required.java similarity index 86% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Required.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Required.java index 0c097469..aa18ba1d 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Required.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Required.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Rewrites.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Rewrites.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Rewrites.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Rewrites.java index 8ddad349..9d8983fd 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Rewrites.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Rewrites.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/annotation/Sender.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Sender.java similarity index 82% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/annotation/Sender.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Sender.java index e9237974..03c05304 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/annotation/Sender.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Sender.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.discord.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Strict.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Strict.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Strict.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Strict.java index f2a86058..3f482b55 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Strict.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Strict.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/SubCommandClasses.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/SubCommandClasses.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/SubCommandClasses.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/SubCommandClasses.java index 9c4d45ad..2397cd38 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/SubCommandClasses.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/SubCommandClasses.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; -import me.fixeddev.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.annotated.CommandClass; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Suggestions.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Suggestions.java similarity index 84% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Suggestions.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Suggestions.java index 4b50655b..27855f98 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Suggestions.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Suggestions.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Switch.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Switch.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Switch.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Switch.java index 247284a1..b5159b56 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Switch.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Switch.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Text.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Text.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Text.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Text.java index 6ba6de96..c3ade0b3 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Text.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Text.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Usage.java b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Usage.java similarity index 90% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Usage.java rename to api/src/main/java/team/unnamed/commandflow/annotated/annotation/Usage.java index 0c87377d..632bd16e 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/annotation/Usage.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/annotation/Usage.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.annotation; +package team.unnamed.commandflow.annotated.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/api/src/main/java/team/unnamed/commandflow/annotated/builder/AnnotatedCommandBuilder.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/AnnotatedCommandBuilder.java new file mode 100644 index 00000000..46ef0774 --- /dev/null +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/AnnotatedCommandBuilder.java @@ -0,0 +1,26 @@ +package team.unnamed.commandflow.annotated.builder; + +import team.unnamed.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.command.Action; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.CommandPart; + +public interface AnnotatedCommandBuilder { + + /** + * Creates a new builder to create a {@link Command} instance. + *

+ * While being similar to {@link Command.Builder} it allows to create commands based on annotations, + * that means that the {@link Action} or {@link CommandPart} instances + * for the build command will be created based on a given method. + * + * @param name The name of {@link Command} to build. + * @return A {@link CommandDataNode} which will allow building a complete {@link Command} tree. + */ + CommandDataNode newCommand(String name); + + static AnnotatedCommandBuilder create(PartInjector injector) { + return new AnnotatedCommandBuilderImpl(injector); + } + +} diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/AnnotatedCommandBuilderImpl.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/AnnotatedCommandBuilderImpl.java similarity index 75% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/AnnotatedCommandBuilderImpl.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/AnnotatedCommandBuilderImpl.java index 3524215c..d96d49d3 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/AnnotatedCommandBuilderImpl.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/AnnotatedCommandBuilderImpl.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; -import me.fixeddev.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.annotated.part.PartInjector; final class AnnotatedCommandBuilderImpl implements AnnotatedCommandBuilder { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/Buildable.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/Buildable.java similarity index 66% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/Buildable.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/Buildable.java index b7bd3cf1..cc183796 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/Buildable.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/Buildable.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; -import me.fixeddev.commandflow.command.Command; +import team.unnamed.commandflow.command.Command; public interface Buildable { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandActionNode.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandActionNode.java similarity index 87% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandActionNode.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandActionNode.java index 2c0fd4bb..97174617 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandActionNode.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandActionNode.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; -import me.fixeddev.commandflow.annotated.CommandClass; -import me.fixeddev.commandflow.command.Action; +import team.unnamed.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.command.Action; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Method; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandBuilderNodesImpl.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandBuilderNodesImpl.java similarity index 90% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandBuilderNodesImpl.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandBuilderNodesImpl.java index 3bffad4f..f6b2edce 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandBuilderNodesImpl.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandBuilderNodesImpl.java @@ -1,23 +1,23 @@ -package me.fixeddev.commandflow.annotated.builder; - -import me.fixeddev.commandflow.annotated.CommandClass; -import me.fixeddev.commandflow.annotated.action.ReflectiveAction; -import me.fixeddev.commandflow.annotated.action.ValueGetter; -import me.fixeddev.commandflow.annotated.annotation.Named; -import me.fixeddev.commandflow.annotated.annotation.ParentArg; -import me.fixeddev.commandflow.annotated.modifier.CommandModifierFactory; -import me.fixeddev.commandflow.annotated.part.Key; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.annotated.part.PartInjector; -import me.fixeddev.commandflow.annotated.part.PartModifier; -import me.fixeddev.commandflow.command.Action; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.CommandModifier; -import me.fixeddev.commandflow.command.modifiers.CommandModifiers; -import me.fixeddev.commandflow.command.modifiers.ModifierPhase; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.Parts; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; +package team.unnamed.commandflow.annotated.builder; + +import team.unnamed.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.annotated.action.ReflectiveAction; +import team.unnamed.commandflow.annotated.action.ValueGetter; +import team.unnamed.commandflow.annotated.annotation.Named; +import team.unnamed.commandflow.annotated.annotation.ParentArg; +import team.unnamed.commandflow.annotated.modifier.CommandModifierFactory; +import team.unnamed.commandflow.annotated.part.Key; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.command.Action; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.CommandModifier; +import team.unnamed.commandflow.command.modifiers.CommandModifiers; +import team.unnamed.commandflow.command.modifiers.ModifierPhase; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.Parts; +import team.unnamed.commandflow.part.defaults.SubCommandPart; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandDataNode.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandDataNode.java similarity index 74% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandDataNode.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandDataNode.java index f9dbaad7..3adc2722 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandDataNode.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandDataNode.java @@ -1,7 +1,8 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; +import team.unnamed.commandflow.command.Command; import java.util.Arrays; import java.util.List; @@ -11,14 +12,14 @@ public interface CommandDataNode extends Buildable { /** * @param aliases The command aliases * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#aliases(List) + * @see Command.Builder#aliases(List) */ @NotNull CommandDataNode aliases(@NotNull List aliases); /** * @param aliases The command aliases * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#aliases(String...) + * @see Command.Builder#aliases(String...) */ @NotNull default CommandDataNode aliases(@NotNull String... aliases) { @@ -28,40 +29,40 @@ default CommandDataNode aliases(@NotNull String... aliases) { /** * @param alias The alias to add * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#addAlias(String) + * @see Command.Builder#addAlias(String) */ @NotNull CommandDataNode addAlias(@NotNull String alias); /** * @param component The description component * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#description(Component) + * @see Command.Builder#description(Component) */ @NotNull CommandDataNode description(@NotNull Component component); /** * @param component The usage component * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#usage(Component) + * @see Command.Builder#usage(Component) */ @NotNull CommandDataNode usage(@NotNull Component component); /** * @param permission The permission string for the command. * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#permission(String) + * @see Command.Builder#permission(String) */ @NotNull CommandDataNode permission(@NotNull String permission); /** * @param permissionMessage The component to be sent when the user doesn't have permissions4. * @return The same {@link CommandDataNode} instance. - * @see me.fixeddev.commandflow.command.Command.Builder#permissionMessage(Component) + * @see Command.Builder#permissionMessage(Component) */ @NotNull CommandDataNode permissionMessage(@NotNull Component permissionMessage); /** - * This method gives you the next step of the process of building a {@link me.fixeddev.commandflow.command.Command}. + * This method gives you the next step of the process of building a {@link Command}. * * @return A {@link CommandModifiersNode} instance, which will allow continuing the building process of this command. */ diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandModifiersNode.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandModifiersNode.java similarity index 72% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandModifiersNode.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandModifiersNode.java index 776d1bdc..c6932dfe 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandModifiersNode.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandModifiersNode.java @@ -1,10 +1,12 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; -import me.fixeddev.commandflow.annotated.CommandClass; -import me.fixeddev.commandflow.command.modifiers.CommandModifier; -import me.fixeddev.commandflow.command.modifiers.ModifierPhase; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.command.modifiers.CommandModifier; +import team.unnamed.commandflow.command.modifiers.ModifierPhase; +import team.unnamed.commandflow.part.CommandPart; import org.jetbrains.annotations.NotNull; +import team.unnamed.commandflow.annotated.modifier.CommandModifierFactory; +import team.unnamed.commandflow.command.Command; import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -15,7 +17,7 @@ public interface CommandModifiersNode extends Buildable { /** * Sets the {@link CommandModifier} list of this command to a one created based on a {@link Method} with annotations. * The actual {@link CommandModifier} instances will be created based on the annotations that the method has, those - * are created using a {@link me.fixeddev.commandflow.annotated.modifier.CommandModifierFactory} provided by the PartInjector. + * are created using a {@link CommandModifierFactory} provided by the PartInjector. * * @param method The method which parameters will be converted to the list of {@link CommandPart} instances of the comand. * @param handler The {@link CommandClass} instance in which this method is present. @@ -30,7 +32,7 @@ public interface CommandModifiersNode extends Buildable { @NotNull CommandModifiersNode addModifier(@NotNull ModifierPhase phase, @NotNull CommandModifier modifier); /** - * This method gives you the next step of the process of building a {@link me.fixeddev.commandflow.command.Command}. + * This method gives you the next step of the process of building a {@link Command}. * * @return A {@link CommandPartsNode} instance, which will allow continuing the building process of this command. */ diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandPartsNode.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandPartsNode.java similarity index 65% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandPartsNode.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandPartsNode.java index dc2e2230..23a501bb 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/CommandPartsNode.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/CommandPartsNode.java @@ -1,8 +1,12 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; -import me.fixeddev.commandflow.annotated.CommandClass; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.part.CommandPart; import org.jetbrains.annotations.NotNull; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.command.Command; import java.lang.reflect.Method; @@ -11,8 +15,8 @@ public interface CommandPartsNode extends Buildable { /** * Sets the {@link CommandPart} list of this command to a one created based on a {@link Method} with annotations. * The actual {@link CommandPart} instances will be created based on the type and annotations that the parameter has, - * those are created with a {@link me.fixeddev.commandflow.annotated.part.PartFactory} and after that modified by a {@link me.fixeddev.commandflow.annotated.part.PartModifier} - * which are returned by the {@link me.fixeddev.commandflow.annotated.part.PartInjector} used on the builder. + * those are created with a {@link PartFactory} and after that modified by a {@link PartModifier} + * which are returned by the {@link PartInjector} used on the builder. * * @param method The method which parameters will be converted to the list of {@link CommandPart} instances of the comand. * @param handler The {@link CommandClass} instance in which this method is present. @@ -22,16 +26,16 @@ public interface CommandPartsNode extends Buildable { @NotNull CommandClass handler); /** - * Adds a {@link CommandPart} into the {@link me.fixeddev.commandflow.command.Command} being built. + * Adds a {@link CommandPart} into the {@link Command} being built. * - * @param part The {@link CommandPart} to add into the {@link me.fixeddev.commandflow.command.Command} parts. + * @param part The {@link CommandPart} to add into the {@link Command} parts. * @return A {@link CommandActionNode} instance, which will allow continuing the building process of this command. - * @see me.fixeddev.commandflow.command.Command.Builder#addPart(CommandPart) + * @see Command.Builder#addPart(CommandPart) */ @NotNull CommandPartsNode addPart(@NotNull CommandPart part); /** - * This method gives you the next step of the process of building a {@link me.fixeddev.commandflow.command.Command}. + * This method gives you the next step of the process of building a {@link Command}. * * @return A {@link CommandActionNode} instance, which will allow continuing the building process of this command. */ diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/SubCommandsNode.java b/api/src/main/java/team/unnamed/commandflow/annotated/builder/SubCommandsNode.java similarity index 81% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/SubCommandsNode.java rename to api/src/main/java/team/unnamed/commandflow/annotated/builder/SubCommandsNode.java index 1ae440c8..7e7dee63 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/builder/SubCommandsNode.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/builder/SubCommandsNode.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.annotated.builder; +package team.unnamed.commandflow.annotated.builder; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.defaults.SubCommandPart; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/modifier/CommandModifierFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/modifier/CommandModifierFactory.java similarity index 74% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/modifier/CommandModifierFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/modifier/CommandModifierFactory.java index efe439b6..6b0be280 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/modifier/CommandModifierFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/modifier/CommandModifierFactory.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.annotated.modifier; +package team.unnamed.commandflow.annotated.modifier; -import me.fixeddev.commandflow.command.modifiers.CommandModifier; -import me.fixeddev.commandflow.command.modifiers.CommandModifiers; +import team.unnamed.commandflow.command.modifiers.CommandModifier; +import team.unnamed.commandflow.command.modifiers.CommandModifiers; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/AbstractModule.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/AbstractModule.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/AbstractModule.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/AbstractModule.java index 28dd50bb..8adb17cf 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/AbstractModule.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/AbstractModule.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.lang.reflect.Type; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/DelegatePartModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/DelegatePartModifier.java similarity index 85% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/DelegatePartModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/DelegatePartModifier.java index 721890f4..b684cf90 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/DelegatePartModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/DelegatePartModifier.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/Key.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/Key.java similarity index 95% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/Key.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/Key.java index 36a0b31d..06a24b8a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/Key.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/Key.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/Module.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/Module.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/Module.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/Module.java index 3841e68c..6f61244c 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/Module.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/Module.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; /** * An aggregation of multiple bindings of {@linkplain PartModifier} or {@linkplain PartFactory}, allowing to automatically register diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/PartFactory.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/PartFactory.java index b53501ea..d516e382 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/PartFactory.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartInjector.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/PartInjector.java similarity index 91% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartInjector.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/PartInjector.java index 7bd4e8d2..f3af3b12 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartInjector.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/PartInjector.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; -import me.fixeddev.commandflow.annotated.modifier.CommandModifierFactory; -import me.fixeddev.commandflow.command.modifiers.CommandModifier; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.modifier.CommandModifierFactory; +import team.unnamed.commandflow.command.modifiers.CommandModifier; +import team.unnamed.commandflow.part.CommandPart; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -17,7 +17,7 @@ public interface PartInjector { /** * Gets a {@link PartFactory} for a given {@link Type}. * - * @param type The type of {@link me.fixeddev.commandflow.part.CommandPart} to generate. + * @param type The type of {@link CommandPart} to generate. * @return An {@link PartFactory} for a specific {@link Type} of CommandPart. */ @Nullable @@ -28,7 +28,7 @@ default PartFactory getFactory(Type type) { /** * Gets a {@link PartFactory} for a given {@link Key}. * - * @param key The type of {@link me.fixeddev.commandflow.part.CommandPart} to generate. + * @param key The type of {@link CommandPart} to generate. * @return An {@link PartFactory} for a specific {@link Type} of CommandPart. */ @Nullable PartFactory getFactory(Key key); @@ -36,7 +36,7 @@ default PartFactory getFactory(Type type) { /** * Gets a {@link PartFactory} for a given {@link Key}. * - * @param annotation The type of {@link me.fixeddev.commandflow.part.CommandPart} to generate. + * @param annotation The type of {@link CommandPart} to generate. * @return An {@link PartFactory} for a specific {@link Type} of CommandPart. */ @Nullable PartModifier getModifier(Class annotation); diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/PartModifier.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/PartModifier.java index f210844c..cb21c946 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/PartModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/PartModifier.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/SimplePartInjector.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/SimplePartInjector.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/SimplePartInjector.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/SimplePartInjector.java index 0efc053b..f44050f1 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/SimplePartInjector.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/SimplePartInjector.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.annotated.part; +package team.unnamed.commandflow.annotated.part; -import me.fixeddev.commandflow.annotated.modifier.CommandModifierFactory; +import team.unnamed.commandflow.annotated.modifier.CommandModifierFactory; import org.jetbrains.annotations.Nullable; import java.lang.annotation.Annotation; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/DefaultsModule.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/DefaultsModule.java similarity index 60% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/DefaultsModule.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/DefaultsModule.java index 5c778cd5..7f0d8498 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/DefaultsModule.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/DefaultsModule.java @@ -1,22 +1,22 @@ -package me.fixeddev.commandflow.annotated.part.defaults; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.annotated.annotation.Flag; -import me.fixeddev.commandflow.annotated.annotation.Limit; -import me.fixeddev.commandflow.annotated.annotation.OptArg; -import me.fixeddev.commandflow.annotated.annotation.Rewrites; -import me.fixeddev.commandflow.annotated.annotation.Suggestions; -import me.fixeddev.commandflow.annotated.annotation.Switch; -import me.fixeddev.commandflow.annotated.annotation.Text; -import me.fixeddev.commandflow.annotated.part.AbstractModule; -import me.fixeddev.commandflow.annotated.part.Key; -import me.fixeddev.commandflow.annotated.part.defaults.factory.*; -import me.fixeddev.commandflow.annotated.part.defaults.modifier.LimitModifier; -import me.fixeddev.commandflow.annotated.part.defaults.modifier.OptionalModifier; -import me.fixeddev.commandflow.annotated.part.defaults.modifier.RewritesModifier; -import me.fixeddev.commandflow.annotated.part.defaults.modifier.SuggestionsModifier; -import me.fixeddev.commandflow.annotated.part.defaults.modifier.ValueFlagModifier; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.annotated.part.defaults; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.annotated.annotation.Flag; +import team.unnamed.commandflow.annotated.annotation.Limit; +import team.unnamed.commandflow.annotated.annotation.OptArg; +import team.unnamed.commandflow.annotated.annotation.Rewrites; +import team.unnamed.commandflow.annotated.annotation.Suggestions; +import team.unnamed.commandflow.annotated.annotation.Switch; +import team.unnamed.commandflow.annotated.annotation.Text; +import team.unnamed.commandflow.annotated.part.AbstractModule; +import team.unnamed.commandflow.annotated.part.Key; +import team.unnamed.commandflow.annotated.part.defaults.modifier.LimitModifier; +import team.unnamed.commandflow.annotated.part.defaults.modifier.OptionalModifier; +import team.unnamed.commandflow.annotated.part.defaults.modifier.RewritesModifier; +import team.unnamed.commandflow.annotated.part.defaults.modifier.SuggestionsModifier; +import team.unnamed.commandflow.annotated.part.defaults.modifier.ValueFlagModifier; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.annotated.part.defaults.factory.*; public class DefaultsModule extends AbstractModule { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/ArgumentStackPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/ArgumentStackPartFactory.java similarity index 54% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/ArgumentStackPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/ArgumentStackPartFactory.java index 64a3e9db..3d3acb65 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/ArgumentStackPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/ArgumentStackPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.ArgumentStackPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.ArgumentStackPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/BooleanPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/BooleanPartFactory.java similarity index 53% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/BooleanPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/BooleanPartFactory.java index 724219ae..df8c581f 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/BooleanPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/BooleanPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.BooleanPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.BooleanPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/ContextFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/ContextFactory.java similarity index 53% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/ContextFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/ContextFactory.java index 1c7d3608..a5fad38a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/ContextFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/ContextFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.ContextPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.ContextPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/DoublePartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/DoublePartFactory.java similarity index 59% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/DoublePartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/DoublePartFactory.java index 613457a0..5ed772b4 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/DoublePartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/DoublePartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.annotation.Range; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.DoublePart; +import team.unnamed.commandflow.annotated.annotation.Range; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.DoublePart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/EnumPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/EnumPartFactory.java similarity index 71% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/EnumPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/EnumPartFactory.java index 75421bb0..3ecbba49 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/EnumPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/EnumPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.Parts; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.Parts; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/FloatPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/FloatPartFactory.java similarity index 59% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/FloatPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/FloatPartFactory.java index 5217afcf..516c634f 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/FloatPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/FloatPartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.annotation.Range; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.FloatPart; +import team.unnamed.commandflow.annotated.annotation.Range; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.FloatPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/IntegerPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/IntegerPartFactory.java similarity index 59% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/IntegerPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/IntegerPartFactory.java index de8cc70d..c440b080 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/IntegerPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/IntegerPartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.annotation.Range; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.IntegerPart; +import team.unnamed.commandflow.annotated.annotation.Range; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.IntegerPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/LongPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/LongPartFactory.java similarity index 52% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/LongPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/LongPartFactory.java index cafcfffe..d8e0cc8a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/LongPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/LongPartFactory.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.annotation.Range; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.FloatPart; -import me.fixeddev.commandflow.part.defaults.LongPart; +import team.unnamed.commandflow.annotated.annotation.Range; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.FloatPart; +import team.unnamed.commandflow.part.defaults.LongPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/StringPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/StringPartFactory.java similarity index 52% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/StringPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/StringPartFactory.java index 3b2c26ac..5299b40b 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/StringPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/StringPartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.annotation.ConsumeAll; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.StringPart; +import team.unnamed.commandflow.annotated.annotation.ConsumeAll; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.StringPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/StringTextPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/StringTextPartFactory.java similarity index 55% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/StringTextPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/StringTextPartFactory.java index 1b3e34dd..93d665a2 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/StringTextPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/StringTextPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.StringPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.StringPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/SwitchPartFactory.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/SwitchPartFactory.java similarity index 60% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/SwitchPartFactory.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/SwitchPartFactory.java index 6b7db1c3..8c955b2b 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/factory/SwitchPartFactory.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/factory/SwitchPartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.factory; +package team.unnamed.commandflow.annotated.part.defaults.factory; -import me.fixeddev.commandflow.annotated.annotation.Switch; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.SwitchPart; +import team.unnamed.commandflow.annotated.annotation.Switch; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.SwitchPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/LimitModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/LimitModifier.java similarity index 59% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/LimitModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/LimitModifier.java index aff82921..f7da159d 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/LimitModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/LimitModifier.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.modifier; +package team.unnamed.commandflow.annotated.part.defaults.modifier; -import me.fixeddev.commandflow.annotated.annotation.Limit; -import me.fixeddev.commandflow.annotated.part.PartModifier; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.Parts; +import team.unnamed.commandflow.annotated.annotation.Limit; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.Parts; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/OptionalModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/OptionalModifier.java similarity index 61% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/OptionalModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/OptionalModifier.java index a15bdaec..cf0e239e 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/OptionalModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/OptionalModifier.java @@ -1,11 +1,10 @@ -package me.fixeddev.commandflow.annotated.part.defaults.modifier; +package team.unnamed.commandflow.annotated.part.defaults.modifier; -import me.fixeddev.commandflow.annotated.annotation.OptArg; -import me.fixeddev.commandflow.annotated.annotation.Strict; -import me.fixeddev.commandflow.annotated.part.PartModifier; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.Parts; -import me.fixeddev.commandflow.part.defaults.OptionalPart; +import team.unnamed.commandflow.annotated.annotation.OptArg; +import team.unnamed.commandflow.annotated.annotation.Strict; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.Parts; import java.lang.annotation.Annotation; import java.util.Arrays; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/RewritesModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/RewritesModifier.java similarity index 64% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/RewritesModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/RewritesModifier.java index 0f997211..4f2d12c9 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/RewritesModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/RewritesModifier.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.modifier; +package team.unnamed.commandflow.annotated.part.defaults.modifier; -import me.fixeddev.commandflow.annotated.annotation.Rewrites; -import me.fixeddev.commandflow.annotated.part.PartModifier; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.ArgumentRewriterPart; +import team.unnamed.commandflow.annotated.annotation.Rewrites; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.ArgumentRewriterPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/SuggestionsModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/SuggestionsModifier.java similarity index 58% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/SuggestionsModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/SuggestionsModifier.java index 8a9f30d4..731dedc7 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/SuggestionsModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/SuggestionsModifier.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.modifier; +package team.unnamed.commandflow.annotated.part.defaults.modifier; -import me.fixeddev.commandflow.annotated.annotation.Suggestions; -import me.fixeddev.commandflow.annotated.part.PartModifier; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.SuggestionsModifierPart; +import team.unnamed.commandflow.annotated.annotation.Suggestions; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.SuggestionsModifierPart; import java.lang.annotation.Annotation; import java.util.Arrays; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/ValueFlagModifier.java b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/ValueFlagModifier.java similarity index 61% rename from Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/ValueFlagModifier.java rename to api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/ValueFlagModifier.java index b6729735..d98c2d49 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/annotated/part/defaults/modifier/ValueFlagModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/annotated/part/defaults/modifier/ValueFlagModifier.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.annotated.part.defaults.modifier; +package team.unnamed.commandflow.annotated.part.defaults.modifier; -import me.fixeddev.commandflow.annotated.annotation.Flag; -import me.fixeddev.commandflow.annotated.part.PartModifier; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.ValueFlagPart; +import team.unnamed.commandflow.annotated.annotation.Flag; +import team.unnamed.commandflow.annotated.part.PartModifier; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.ValueFlagPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/Action.java b/api/src/main/java/team/unnamed/commandflow/command/Action.java similarity index 72% rename from Universal/src/main/java/me/fixeddev/commandflow/command/Action.java rename to api/src/main/java/team/unnamed/commandflow/command/Action.java index 5b835f39..9123b67e 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/Action.java +++ b/api/src/main/java/team/unnamed/commandflow/command/Action.java @@ -1,7 +1,8 @@ -package me.fixeddev.commandflow.command; +package team.unnamed.commandflow.command; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.CommandException; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.exception.CommandException; public interface Action { @@ -11,7 +12,7 @@ public interface Action { Action NULL_ACTION = context -> false; /** - * The action to execute when the {@link Command} is being called/run by the {@link me.fixeddev.commandflow.CommandManager}. + * The action to execute when the {@link Command} is being called/run by the {@link CommandManager}. * * @param context The {@link CommandContext} for this executed command. * @return If the action was executed sucessfully or not, if the value is false, the usage will be send to the source. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/Command.java b/api/src/main/java/team/unnamed/commandflow/command/Command.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/command/Command.java rename to api/src/main/java/team/unnamed/commandflow/command/Command.java index 067d25da..33dd66fe 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/Command.java +++ b/api/src/main/java/team/unnamed/commandflow/command/Command.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.command; +package team.unnamed.commandflow.command; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.command.modifiers.CommandModifiers; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.SequentialCommandPart; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.command.modifiers.CommandModifiers; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.SequentialCommandPart; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -73,7 +73,7 @@ public interface Command { CommandPart getPart(); /** - * A utility object, that has all the {@linkplain me.fixeddev.commandflow.command.modifiers.CommandModifiers} for this command, + * A utility object, that has all the {@linkplain CommandModifiers} for this command, * and allows to easily call them at any phase of the execution of the command * * @return The {@link CommandModifiers} for this command. @@ -82,7 +82,7 @@ public interface Command { CommandModifiers getModifiers(); /** - * The {@link Action} executed after the parsing has been finished. The {@link me.fixeddev.commandflow.CommandContext} passed to the action + * The {@link Action} executed after the parsing has been finished. The {@link CommandContext} passed to the action * is the resulting one after the parsing by the {@link CommandPart} returned by {@link Command#getPart()} is done. * * @return The {@link Action} for this command. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/SimpleCommand.java b/api/src/main/java/team/unnamed/commandflow/command/SimpleCommand.java similarity index 95% rename from Universal/src/main/java/me/fixeddev/commandflow/command/SimpleCommand.java rename to api/src/main/java/team/unnamed/commandflow/command/SimpleCommand.java index 3ee6f34b..3f1c3cb2 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/SimpleCommand.java +++ b/api/src/main/java/team/unnamed/commandflow/command/SimpleCommand.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.command; +package team.unnamed.commandflow.command; -import me.fixeddev.commandflow.command.modifiers.CommandModifiers; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.defaults.EmptyPart; -import me.fixeddev.commandflow.part.Parts; +import team.unnamed.commandflow.command.modifiers.CommandModifiers; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.defaults.EmptyPart; +import team.unnamed.commandflow.part.Parts; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/CommandModifier.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/CommandModifier.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/CommandModifier.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/CommandModifier.java index d1fc8aba..a171bee9 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/CommandModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/CommandModifier.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.stack.ArgumentStack; public interface CommandModifier { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/CommandModifiers.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/CommandModifiers.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/CommandModifiers.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/CommandModifiers.java index 30dcb3a3..2c4a4802 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/CommandModifiers.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/CommandModifiers.java @@ -1,11 +1,7 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.stack.ArgumentStack; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.stack.ArgumentStack; /** * This class is used to store all the modifiers of a command, and aid in the process of calling them in the right order at diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/FallbackCommandModifiers.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/FallbackCommandModifiers.java similarity index 98% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/FallbackCommandModifiers.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/FallbackCommandModifiers.java index ccd2d6a4..297ef20e 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/FallbackCommandModifiers.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/FallbackCommandModifiers.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; import java.util.HashMap; import java.util.LinkedList; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/ModifierPhase.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/ModifierPhase.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/ModifierPhase.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/ModifierPhase.java index 7f6fa5a8..2cb503d7 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/ModifierPhase.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/ModifierPhase.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; /** * This enum represents the different phases in which a modifier may be applied. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/ModifierUtils.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/ModifierUtils.java similarity index 96% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/ModifierUtils.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/ModifierUtils.java index aebe9c3f..fc287a42 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/ModifierUtils.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/ModifierUtils.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; import java.util.LinkedList; import java.util.Map; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/SequentialCommandModifier.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/SequentialCommandModifier.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/SequentialCommandModifier.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/SequentialCommandModifier.java index c230aa27..98ddd0e1 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/SequentialCommandModifier.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/SequentialCommandModifier.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.stack.ArgumentStack; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/SimpleCommandModifiers.java b/api/src/main/java/team/unnamed/commandflow/command/modifiers/SimpleCommandModifiers.java similarity index 95% rename from Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/SimpleCommandModifiers.java rename to api/src/main/java/team/unnamed/commandflow/command/modifiers/SimpleCommandModifiers.java index d8b7df92..92f8b4eb 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/command/modifiers/SimpleCommandModifiers.java +++ b/api/src/main/java/team/unnamed/commandflow/command/modifiers/SimpleCommandModifiers.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.command.modifiers; +package team.unnamed.commandflow.command.modifiers; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.stack.ArgumentStack; import java.util.HashMap; import java.util.Iterator; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/ArgumentException.java b/api/src/main/java/team/unnamed/commandflow/exception/ArgumentException.java similarity index 86% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/ArgumentException.java rename to api/src/main/java/team/unnamed/commandflow/exception/ArgumentException.java index 037de0aa..a2e6c812 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/ArgumentException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/ArgumentException.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.CommandPart; import net.kyori.adventure.text.Component; public class ArgumentException extends CommandException { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/ArgumentParseException.java b/api/src/main/java/team/unnamed/commandflow/exception/ArgumentParseException.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/ArgumentParseException.java rename to api/src/main/java/team/unnamed/commandflow/exception/ArgumentParseException.java index 7576893c..645421c7 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/ArgumentParseException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/ArgumentParseException.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; import net.kyori.adventure.text.Component; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/CommandException.java b/api/src/main/java/team/unnamed/commandflow/exception/CommandException.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/CommandException.java rename to api/src/main/java/team/unnamed/commandflow/exception/CommandException.java index 5ceaa30c..af8c1bbc 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/CommandException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/CommandException.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; -import me.fixeddev.commandflow.command.Command; +import team.unnamed.commandflow.command.Command; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TranslatableComponent; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/CommandUsage.java b/api/src/main/java/team/unnamed/commandflow/exception/CommandUsage.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/CommandUsage.java rename to api/src/main/java/team/unnamed/commandflow/exception/CommandUsage.java index f54af75d..c263eaab 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/CommandUsage.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/CommandUsage.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; import net.kyori.adventure.text.Component; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/InvalidSubCommandException.java b/api/src/main/java/team/unnamed/commandflow/exception/InvalidSubCommandException.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/InvalidSubCommandException.java rename to api/src/main/java/team/unnamed/commandflow/exception/InvalidSubCommandException.java index bc1e6f6b..d70cc639 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/InvalidSubCommandException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/InvalidSubCommandException.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; import net.kyori.adventure.text.Component; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/NoMoreArgumentsException.java b/api/src/main/java/team/unnamed/commandflow/exception/NoMoreArgumentsException.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/NoMoreArgumentsException.java rename to api/src/main/java/team/unnamed/commandflow/exception/NoMoreArgumentsException.java index 1192d87b..69c79978 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/NoMoreArgumentsException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/NoMoreArgumentsException.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; import net.kyori.adventure.text.Component; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/NoPermissionsException.java b/api/src/main/java/team/unnamed/commandflow/exception/NoPermissionsException.java similarity index 90% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/NoPermissionsException.java rename to api/src/main/java/team/unnamed/commandflow/exception/NoPermissionsException.java index 422f7898..8aa9cecd 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/NoPermissionsException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/NoPermissionsException.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; import net.kyori.adventure.text.Component; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/exception/StopParseException.java b/api/src/main/java/team/unnamed/commandflow/exception/StopParseException.java similarity index 87% rename from Universal/src/main/java/me/fixeddev/commandflow/exception/StopParseException.java rename to api/src/main/java/team/unnamed/commandflow/exception/StopParseException.java index 69b10341..14a333a0 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/exception/StopParseException.java +++ b/api/src/main/java/team/unnamed/commandflow/exception/StopParseException.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.exception; +package team.unnamed.commandflow.exception; /** * Thrown when we should stop parsing the command, without doing any further processing. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/executor/DefaultExecutor.java b/api/src/main/java/team/unnamed/commandflow/executor/DefaultExecutor.java similarity index 67% rename from Universal/src/main/java/me/fixeddev/commandflow/executor/DefaultExecutor.java rename to api/src/main/java/team/unnamed/commandflow/executor/DefaultExecutor.java index 19870c8c..b7ba7b65 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/executor/DefaultExecutor.java +++ b/api/src/main/java/team/unnamed/commandflow/executor/DefaultExecutor.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.executor; +package team.unnamed.commandflow.executor; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.usage.UsageBuilder; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.exception.CommandUsage; +import team.unnamed.commandflow.usage.UsageBuilder; public class DefaultExecutor implements Executor { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/executor/Executor.java b/api/src/main/java/team/unnamed/commandflow/executor/Executor.java similarity index 71% rename from Universal/src/main/java/me/fixeddev/commandflow/executor/Executor.java rename to api/src/main/java/team/unnamed/commandflow/executor/Executor.java index cce08bf6..cf427ccb 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/executor/Executor.java +++ b/api/src/main/java/team/unnamed/commandflow/executor/Executor.java @@ -1,9 +1,10 @@ -package me.fixeddev.commandflow.executor; +package team.unnamed.commandflow.executor; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.command.Action; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.usage.UsageBuilder; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.command.Action; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.usage.UsageBuilder; /** * This class has the functionality of actually calling the {@link Action} of the command @@ -14,7 +15,7 @@ public interface Executor { /** * Executes the right {@link Action} based on the given {@link CommandContext}. * - * @param commandContext The {@link CommandContext} of the {@link me.fixeddev.commandflow.command.Command} to execute. + * @param commandContext The {@link CommandContext} of the {@link Command} to execute. * @param builder The {@link UsageBuilder} used to generate an usage text if the {@link Action} returns false or if * the command execution fails for a valid reason. * @return If the {@link Action} for the given {@link CommandContext} could be executed. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/input/InputTokenizer.java b/api/src/main/java/team/unnamed/commandflow/input/InputTokenizer.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/input/InputTokenizer.java rename to api/src/main/java/team/unnamed/commandflow/input/InputTokenizer.java index cf622677..c4fddc30 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/input/InputTokenizer.java +++ b/api/src/main/java/team/unnamed/commandflow/input/InputTokenizer.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.input; +package team.unnamed.commandflow.input; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/input/QuotedSpaceTokenizer.java b/api/src/main/java/team/unnamed/commandflow/input/QuotedSpaceTokenizer.java similarity index 98% rename from Universal/src/main/java/me/fixeddev/commandflow/input/QuotedSpaceTokenizer.java rename to api/src/main/java/team/unnamed/commandflow/input/QuotedSpaceTokenizer.java index 0379b943..ede9b6cf 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/input/QuotedSpaceTokenizer.java +++ b/api/src/main/java/team/unnamed/commandflow/input/QuotedSpaceTokenizer.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.input; +package team.unnamed.commandflow.input; import java.util.ArrayList; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/input/StringSpaceTokenizer.java b/api/src/main/java/team/unnamed/commandflow/input/StringSpaceTokenizer.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/input/StringSpaceTokenizer.java rename to api/src/main/java/team/unnamed/commandflow/input/StringSpaceTokenizer.java index e848b359..1a0a0dbd 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/input/StringSpaceTokenizer.java +++ b/api/src/main/java/team/unnamed/commandflow/input/StringSpaceTokenizer.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.input; +package team.unnamed.commandflow.input; import java.util.ArrayList; import java.util.Arrays; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/ArgumentPart.java b/api/src/main/java/team/unnamed/commandflow/part/ArgumentPart.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/part/ArgumentPart.java rename to api/src/main/java/team/unnamed/commandflow/part/ArgumentPart.java index 5c261149..f9f22305 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/ArgumentPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/ArgumentPart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.part; +package team.unnamed.commandflow.part; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/CommandPart.java b/api/src/main/java/team/unnamed/commandflow/part/CommandPart.java similarity index 76% rename from Universal/src/main/java/me/fixeddev/commandflow/part/CommandPart.java rename to api/src/main/java/team/unnamed/commandflow/part/CommandPart.java index f8f01bff..5fda9877 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/CommandPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/CommandPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part; +package team.unnamed.commandflow.part; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/Parts.java b/api/src/main/java/team/unnamed/commandflow/part/Parts.java similarity index 93% rename from Universal/src/main/java/me/fixeddev/commandflow/part/Parts.java rename to api/src/main/java/team/unnamed/commandflow/part/Parts.java index 62cd1ad4..4bd4a8b9 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/Parts.java +++ b/api/src/main/java/team/unnamed/commandflow/part/Parts.java @@ -1,22 +1,22 @@ -package me.fixeddev.commandflow.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.part.defaults.BooleanPart; -import me.fixeddev.commandflow.part.defaults.DoublePart; -import me.fixeddev.commandflow.part.defaults.EnumPart; -import me.fixeddev.commandflow.part.defaults.FirstMatchPart; -import me.fixeddev.commandflow.part.defaults.LongPart; -import me.fixeddev.commandflow.part.defaults.SwitchPart; -import me.fixeddev.commandflow.part.defaults.FloatPart; -import me.fixeddev.commandflow.part.defaults.IntegerPart; -import me.fixeddev.commandflow.part.defaults.LimitingPart; -import me.fixeddev.commandflow.part.defaults.OptionalPart; -import me.fixeddev.commandflow.part.defaults.SequentialCommandPart; -import me.fixeddev.commandflow.part.defaults.StringPart; -import me.fixeddev.commandflow.part.defaults.SubCommandPart; -import me.fixeddev.commandflow.part.defaults.ValueFlagPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.defaults.BooleanPart; +import team.unnamed.commandflow.part.defaults.DoublePart; +import team.unnamed.commandflow.part.defaults.EnumPart; +import team.unnamed.commandflow.part.defaults.FirstMatchPart; +import team.unnamed.commandflow.part.defaults.LongPart; +import team.unnamed.commandflow.part.defaults.SwitchPart; +import team.unnamed.commandflow.part.defaults.FloatPart; +import team.unnamed.commandflow.part.defaults.IntegerPart; +import team.unnamed.commandflow.part.defaults.LimitingPart; +import team.unnamed.commandflow.part.defaults.OptionalPart; +import team.unnamed.commandflow.part.defaults.SequentialCommandPart; +import team.unnamed.commandflow.part.defaults.StringPart; +import team.unnamed.commandflow.part.defaults.SubCommandPart; +import team.unnamed.commandflow.part.defaults.ValueFlagPart; +import team.unnamed.commandflow.stack.ArgumentStack; import java.util.ArrayList; import java.util.Arrays; @@ -127,7 +127,7 @@ public static CommandPart valueFlag(CommandPart part, String shortName, boolean /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * and converts it into an Enum value. * * @param name The name for this part. @@ -140,7 +140,7 @@ public static CommandPart enumPart(String name, Class> enumTyp /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @return A {@link CommandPart} with the given name that takes a {@link String} as argument. @@ -174,7 +174,7 @@ public static CommandPart longPart(String name, long min, long max) { } /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @return A {@link CommandPart} with the given name that takes a {@link Integer} as argument. @@ -184,7 +184,7 @@ public static CommandPart integer(String name) { } /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @param max The maximum number allowed by this part. @@ -196,7 +196,7 @@ public static CommandPart integer(String name, int min, int max) { } /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @return A {@link CommandPart} with the given name that takes a {@link Double} as argument. @@ -206,7 +206,7 @@ public static CommandPart doublePart(String name) { } /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @param max The maximum number allowed by this part. @@ -218,7 +218,7 @@ public static CommandPart doublePart(String name, double min, double max) { } /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @return A {@link CommandPart} with the given name that takes a {@link Float} as argument. @@ -229,7 +229,7 @@ public static CommandPart floatPart(String name) { /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @param max The maximum number allowed by this part. @@ -242,7 +242,7 @@ public static CommandPart floatPart(String name, float min, float max) { /** - * A basic {@link CommandPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A basic {@link CommandPart} that takes a string from the {@link ArgumentStack} * * @param name The name for this part. * @return A {@link CommandPart} with the given name that takes a {@link Boolean} as argument. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/PartsWrapper.java b/api/src/main/java/team/unnamed/commandflow/part/PartsWrapper.java similarity index 85% rename from Universal/src/main/java/me/fixeddev/commandflow/part/PartsWrapper.java rename to api/src/main/java/team/unnamed/commandflow/part/PartsWrapper.java index 18bcd23c..fcc4bbb7 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/PartsWrapper.java +++ b/api/src/main/java/team/unnamed/commandflow/part/PartsWrapper.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.part; +package team.unnamed.commandflow.part; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/SinglePartWrapper.java b/api/src/main/java/team/unnamed/commandflow/part/SinglePartWrapper.java similarity index 84% rename from Universal/src/main/java/me/fixeddev/commandflow/part/SinglePartWrapper.java rename to api/src/main/java/team/unnamed/commandflow/part/SinglePartWrapper.java index 90090485..ba856ed1 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/SinglePartWrapper.java +++ b/api/src/main/java/team/unnamed/commandflow/part/SinglePartWrapper.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.part; +package team.unnamed.commandflow.part; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; /** * An interface to denote the {@link CommandPart} types that are wrappers for other parts, diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ArgumentRewriterPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/ArgumentRewriterPart.java similarity index 84% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ArgumentRewriterPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/ArgumentRewriterPart.java index c49d497f..ad7f25fb 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ArgumentRewriterPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/ArgumentRewriterPart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ArgumentStackPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/ArgumentStackPart.java similarity index 62% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ArgumentStackPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/ArgumentStackPart.java index 00bbe3fa..593c3dc0 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ArgumentStackPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/ArgumentStackPart.java @@ -1,19 +1,19 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.SimpleArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.SimpleArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** - * A {@linkplain me.fixeddev.commandflow.part.CommandPart} that provides direct access to the remaining {@linkplain ArgumentStack}. + * A {@linkplain CommandPart} that provides direct access to the remaining {@linkplain ArgumentStack}. *

* Actually this shouldn't be an {@linkplain ArgumentPart} since it isn't using the arguments directly, but this is the best way to represent it. */ diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/BooleanPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/BooleanPart.java similarity index 74% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/BooleanPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/BooleanPart.java index 20d02f76..19d1cee8 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/BooleanPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/BooleanPart.java @@ -1,16 +1,16 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import java.util.Arrays; import java.util.Collections; import java.util.List; /** - * A {@linkplain me.fixeddev.commandflow.part.CommandPart} that parses one argument as a boolean, with the values true or false being allowed. + * A {@linkplain CommandPart} that parses one argument as a boolean, with the values true or false being allowed. */ public class BooleanPart extends PrimitivePart { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ContextPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/ContextPart.java similarity index 65% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ContextPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/ContextPart.java index 6837e642..f3fbc314 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ContextPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/ContextPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; /** * A {@linkplain CommandPart} that provides direct access to the {@linkplain CommandContext}. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/DoublePart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/DoublePart.java similarity index 77% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/DoublePart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/DoublePart.java index bc845349..73e7b1e4 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/DoublePart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/DoublePart.java @@ -1,18 +1,18 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import java.util.Collections; import java.util.List; /** - * A {@linkplain me.fixeddev.commandflow.part.CommandPart} that parses one argument as a double. + * A {@linkplain CommandPart} that parses one argument as a double. *

- * This {@linkplain me.fixeddev.commandflow.part.CommandPart} also supports having only a permitted range. + * This {@linkplain CommandPart} also supports having only a permitted range. */ public class DoublePart extends PrimitivePart { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/EmptyPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/EmptyPart.java similarity index 62% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/EmptyPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/EmptyPart.java index 10812490..38773493 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/EmptyPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/EmptyPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; /** * A placeholder {@linkplain CommandPart}, it does absolutely nothing. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/EnumPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/EnumPart.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/EnumPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/EnumPart.java index a6ea0c4d..58a8a32c 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/EnumPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/EnumPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import java.util.ArrayList; @@ -13,7 +13,7 @@ import java.util.Map; /** - * A {@linkplain me.fixeddev.commandflow.part.CommandPart} that allows the parsing of every enum type. + * A {@linkplain CommandPart} that allows the parsing of every enum type. *

* This implementation eagerly loads the enum values from the specified class when created, allowing for fast lookup of * enum values when parsing. diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/FirstMatchPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/FirstMatchPart.java similarity index 91% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/FirstMatchPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/FirstMatchPart.java index 49caa651..87d8d385 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/FirstMatchPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/FirstMatchPart.java @@ -1,13 +1,13 @@ -package me.fixeddev.commandflow.part.defaults; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.ContextSnapshot; -import me.fixeddev.commandflow.exception.ArgumentException; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.PartsWrapper; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +package team.unnamed.commandflow.part.defaults; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.ContextSnapshot; +import team.unnamed.commandflow.exception.ArgumentException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.PartsWrapper; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/FloatPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/FloatPart.java similarity index 80% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/FloatPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/FloatPart.java index 668a3f3c..1fd04119 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/FloatPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/FloatPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import java.util.Collections; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/IntegerPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/IntegerPart.java similarity index 80% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/IntegerPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/IntegerPart.java index 89db68cc..a00b7b8a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/IntegerPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/IntegerPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import java.util.Collections; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/LimitingPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/LimitingPart.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/LimitingPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/LimitingPart.java index 480356da..217e0233 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/LimitingPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/LimitingPart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.SinglePartWrapper; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.SinglePartWrapper; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/LongPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/LongPart.java similarity index 80% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/LongPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/LongPart.java index fcd2e23e..7c1eb5fd 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/LongPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/LongPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import java.util.Collections; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/OptionalPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/OptionalPart.java similarity index 82% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/OptionalPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/OptionalPart.java index f05c1292..360327be 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/OptionalPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/OptionalPart.java @@ -1,16 +1,16 @@ -package me.fixeddev.commandflow.part.defaults; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.ContextSnapshot; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.PartsWrapper; -import me.fixeddev.commandflow.part.SinglePartWrapper; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.SimpleArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +package team.unnamed.commandflow.part.defaults; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.ContextSnapshot; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.PartsWrapper; +import team.unnamed.commandflow.part.SinglePartWrapper; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.SimpleArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/PrimitivePart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/PrimitivePart.java similarity index 80% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/PrimitivePart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/PrimitivePart.java index 6df7bbd1..accf4041 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/PrimitivePart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/PrimitivePart.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.stack.ArgumentStack; import java.util.Collections; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SequentialCommandPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/SequentialCommandPart.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SequentialCommandPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/SequentialCommandPart.java index ec29f9f1..883fd918 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SequentialCommandPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/SequentialCommandPart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.PartsWrapper; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.PartsWrapper; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/StringPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/StringPart.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/StringPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/StringPart.java index f66e745f..703daa5a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/StringPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/StringPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import java.util.ArrayList; import java.util.Collections; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SubCommandPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/SubCommandPart.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SubCommandPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/SubCommandPart.java index a03eb7e3..ddda2c9d 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SubCommandPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/SubCommandPart.java @@ -1,25 +1,24 @@ -package me.fixeddev.commandflow.part.defaults; - -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.ContextSnapshot; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.CommandModifiers; -import me.fixeddev.commandflow.command.modifiers.ModifierPhase; -import me.fixeddev.commandflow.exception.ArgumentException; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.InvalidSubCommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.exception.NoPermissionsException; -import me.fixeddev.commandflow.exception.StopParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.visitor.CommandPartVisitor; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +package team.unnamed.commandflow.part.defaults; + +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.ContextSnapshot; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.CommandModifiers; +import team.unnamed.commandflow.command.modifiers.ModifierPhase; +import team.unnamed.commandflow.exception.ArgumentException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.InvalidSubCommandException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.NoPermissionsException; +import team.unnamed.commandflow.exception.StopParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TextComponent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SuggestionsModifierPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/SuggestionsModifierPart.java similarity index 85% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SuggestionsModifierPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/SuggestionsModifierPart.java index ce956fff..d78b8c03 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SuggestionsModifierPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/SuggestionsModifierPart.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SwitchPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/SwitchPart.java similarity index 89% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SwitchPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/SwitchPart.java index 119db9e4..c74eeb66 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/SwitchPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/SwitchPart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.part.defaults; +package team.unnamed.commandflow.part.defaults; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import org.jetbrains.annotations.Nullable; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ValueFlagPart.java b/api/src/main/java/team/unnamed/commandflow/part/defaults/ValueFlagPart.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ValueFlagPart.java rename to api/src/main/java/team/unnamed/commandflow/part/defaults/ValueFlagPart.java index 2b75da8a..760831c2 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/defaults/ValueFlagPart.java +++ b/api/src/main/java/team/unnamed/commandflow/part/defaults/ValueFlagPart.java @@ -1,12 +1,12 @@ -package me.fixeddev.commandflow.part.defaults; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.ContextSnapshot; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.part.SinglePartWrapper; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.stack.StackSnapshot; +package team.unnamed.commandflow.part.defaults; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.ContextSnapshot; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.SinglePartWrapper; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.stack.StackSnapshot; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import org.jetbrains.annotations.Nullable; diff --git a/api/src/main/java/team/unnamed/commandflow/part/visitor/CommandPartVisitor.java b/api/src/main/java/team/unnamed/commandflow/part/visitor/CommandPartVisitor.java new file mode 100644 index 00000000..3063d340 --- /dev/null +++ b/api/src/main/java/team/unnamed/commandflow/part/visitor/CommandPartVisitor.java @@ -0,0 +1,21 @@ +package team.unnamed.commandflow.part.visitor; + +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.PartsWrapper; +import team.unnamed.commandflow.part.SinglePartWrapper; +import team.unnamed.commandflow.part.defaults.SubCommandPart; + +public interface CommandPartVisitor { + + R visit(CommandPart part); + + R visit(ArgumentPart argumentPart); + + R visit(PartsWrapper partsWrapper); + + R visit(SinglePartWrapper singlePartWrapper); + + R visit(SubCommandPart subCommandPart); + +} diff --git a/Universal/src/main/java/me/fixeddev/commandflow/part/visitor/UnwrappedCommandPartVisitor.java b/api/src/main/java/team/unnamed/commandflow/part/visitor/UnwrappedCommandPartVisitor.java similarity index 73% rename from Universal/src/main/java/me/fixeddev/commandflow/part/visitor/UnwrappedCommandPartVisitor.java rename to api/src/main/java/team/unnamed/commandflow/part/visitor/UnwrappedCommandPartVisitor.java index 7c4a5818..f4253394 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/part/visitor/UnwrappedCommandPartVisitor.java +++ b/api/src/main/java/team/unnamed/commandflow/part/visitor/UnwrappedCommandPartVisitor.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.part.visitor; +package team.unnamed.commandflow.part.visitor; -import me.fixeddev.commandflow.part.PartsWrapper; -import me.fixeddev.commandflow.part.defaults.FirstMatchPart; -import me.fixeddev.commandflow.part.defaults.SequentialCommandPart; +import team.unnamed.commandflow.part.PartsWrapper; +import team.unnamed.commandflow.part.defaults.FirstMatchPart; +import team.unnamed.commandflow.part.defaults.SequentialCommandPart; public interface UnwrappedCommandPartVisitor extends CommandPartVisitor { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/stack/ArgumentStack.java b/api/src/main/java/team/unnamed/commandflow/stack/ArgumentStack.java similarity index 88% rename from Universal/src/main/java/me/fixeddev/commandflow/stack/ArgumentStack.java rename to api/src/main/java/team/unnamed/commandflow/stack/ArgumentStack.java index 98f2f4dd..9e2ecd91 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/stack/ArgumentStack.java +++ b/api/src/main/java/team/unnamed/commandflow/stack/ArgumentStack.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.stack; +package team.unnamed.commandflow.stack; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/stack/SimpleArgumentStack.java b/api/src/main/java/team/unnamed/commandflow/stack/SimpleArgumentStack.java similarity index 97% rename from Universal/src/main/java/me/fixeddev/commandflow/stack/SimpleArgumentStack.java rename to api/src/main/java/team/unnamed/commandflow/stack/SimpleArgumentStack.java index 740af216..15449196 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/stack/SimpleArgumentStack.java +++ b/api/src/main/java/team/unnamed/commandflow/stack/SimpleArgumentStack.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.stack; +package team.unnamed.commandflow.stack; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; import net.kyori.adventure.text.Component; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/stack/StackSnapshot.java b/api/src/main/java/team/unnamed/commandflow/stack/StackSnapshot.java similarity index 96% rename from Universal/src/main/java/me/fixeddev/commandflow/stack/StackSnapshot.java rename to api/src/main/java/team/unnamed/commandflow/stack/StackSnapshot.java index ba2d18f7..fb36e939 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/stack/StackSnapshot.java +++ b/api/src/main/java/team/unnamed/commandflow/stack/StackSnapshot.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.stack; +package team.unnamed.commandflow.stack; import java.util.ArrayList; import java.util.List; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/translator/ComponentRendererTranslator.java b/api/src/main/java/team/unnamed/commandflow/translator/ComponentRendererTranslator.java similarity index 92% rename from Universal/src/main/java/me/fixeddev/commandflow/translator/ComponentRendererTranslator.java rename to api/src/main/java/team/unnamed/commandflow/translator/ComponentRendererTranslator.java index b871264d..1c2e16ce 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/translator/ComponentRendererTranslator.java +++ b/api/src/main/java/team/unnamed/commandflow/translator/ComponentRendererTranslator.java @@ -1,8 +1,7 @@ -package me.fixeddev.commandflow.translator; +package team.unnamed.commandflow.translator; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Namespace; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.renderer.ComponentRenderer; import net.kyori.adventure.text.renderer.TranslatableComponentRenderer; import org.jetbrains.annotations.NotNull; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/translator/DefaultMapTranslationProvider.java b/api/src/main/java/team/unnamed/commandflow/translator/DefaultMapTranslationProvider.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/translator/DefaultMapTranslationProvider.java rename to api/src/main/java/team/unnamed/commandflow/translator/DefaultMapTranslationProvider.java index 147e3d75..a80ee159 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/translator/DefaultMapTranslationProvider.java +++ b/api/src/main/java/team/unnamed/commandflow/translator/DefaultMapTranslationProvider.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.translator; +package team.unnamed.commandflow.translator; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Namespace; import java.util.HashMap; import java.util.Map; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/translator/DefaultTranslator.java b/api/src/main/java/team/unnamed/commandflow/translator/DefaultTranslator.java similarity index 97% rename from Universal/src/main/java/me/fixeddev/commandflow/translator/DefaultTranslator.java rename to api/src/main/java/team/unnamed/commandflow/translator/DefaultTranslator.java index 3232f7bd..c2df6207 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/translator/DefaultTranslator.java +++ b/api/src/main/java/team/unnamed/commandflow/translator/DefaultTranslator.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.translator; +package team.unnamed.commandflow.translator; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Namespace; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TranslatableComponent; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/translator/TranslationProvider.java b/api/src/main/java/team/unnamed/commandflow/translator/TranslationProvider.java similarity index 54% rename from Universal/src/main/java/me/fixeddev/commandflow/translator/TranslationProvider.java rename to api/src/main/java/team/unnamed/commandflow/translator/TranslationProvider.java index e18d4d9f..f2c8e363 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/translator/TranslationProvider.java +++ b/api/src/main/java/team/unnamed/commandflow/translator/TranslationProvider.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.translator; +package team.unnamed.commandflow.translator; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Namespace; public interface TranslationProvider { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/translator/Translator.java b/api/src/main/java/team/unnamed/commandflow/translator/Translator.java similarity index 94% rename from Universal/src/main/java/me/fixeddev/commandflow/translator/Translator.java rename to api/src/main/java/team/unnamed/commandflow/translator/Translator.java index 58dc1c80..80cbd0f6 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/translator/Translator.java +++ b/api/src/main/java/team/unnamed/commandflow/translator/Translator.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.translator; +package team.unnamed.commandflow.translator; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Namespace; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; diff --git a/Universal/src/main/java/me/fixeddev/commandflow/usage/DefaultUsageBuilder.java b/api/src/main/java/team/unnamed/commandflow/usage/DefaultUsageBuilder.java similarity index 85% rename from Universal/src/main/java/me/fixeddev/commandflow/usage/DefaultUsageBuilder.java rename to api/src/main/java/team/unnamed/commandflow/usage/DefaultUsageBuilder.java index 54b7f07a..902dd65a 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/usage/DefaultUsageBuilder.java +++ b/api/src/main/java/team/unnamed/commandflow/usage/DefaultUsageBuilder.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.usage; +package team.unnamed.commandflow.usage; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.command.Command; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.command.Command; import net.kyori.adventure.text.Component; public class DefaultUsageBuilder implements UsageBuilder { diff --git a/Universal/src/main/java/me/fixeddev/commandflow/usage/UsageBuilder.java b/api/src/main/java/team/unnamed/commandflow/usage/UsageBuilder.java similarity index 73% rename from Universal/src/main/java/me/fixeddev/commandflow/usage/UsageBuilder.java rename to api/src/main/java/team/unnamed/commandflow/usage/UsageBuilder.java index 199b97ef..5d50575f 100644 --- a/Universal/src/main/java/me/fixeddev/commandflow/usage/UsageBuilder.java +++ b/api/src/main/java/team/unnamed/commandflow/usage/UsageBuilder.java @@ -1,7 +1,8 @@ -package me.fixeddev.commandflow.usage; +package team.unnamed.commandflow.usage; -import me.fixeddev.commandflow.CommandContext; +import team.unnamed.commandflow.CommandContext; import net.kyori.adventure.text.Component; +import team.unnamed.commandflow.translator.Translator; /** * Creates a usage based on the CommandContext that you give to this class. @@ -14,7 +15,7 @@ public interface UsageBuilder { * * @param commandContext The {@link CommandContext} used to create a usage. * @return A {@link Component} containing the usage for this command, shouldn't be sent directly to the - * any executor without being translated first by a {@link me.fixeddev.commandflow.translator.Translator}. + * any executor without being translated first by a {@link Translator}. */ Component getUsage(CommandContext commandContext); diff --git a/Universal/src/test/java/me/fixeddev/commandflow/InputTokenizerTest.java b/api/src/test/java/team/unnamed/commandflow/InputTokenizerTest.java similarity index 86% rename from Universal/src/test/java/me/fixeddev/commandflow/InputTokenizerTest.java rename to api/src/test/java/team/unnamed/commandflow/InputTokenizerTest.java index 0d93d41e..1434d8e8 100644 --- a/Universal/src/test/java/me/fixeddev/commandflow/InputTokenizerTest.java +++ b/api/src/test/java/team/unnamed/commandflow/InputTokenizerTest.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow; +package team.unnamed.commandflow; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.input.QuotedSpaceTokenizer; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.input.QuotedSpaceTokenizer; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/Universal/src/test/java/me/fixeddev/commandflow/ParameterizedPartTest.java b/api/src/test/java/team/unnamed/commandflow/ParameterizedPartTest.java similarity index 78% rename from Universal/src/test/java/me/fixeddev/commandflow/ParameterizedPartTest.java rename to api/src/test/java/team/unnamed/commandflow/ParameterizedPartTest.java index d35f440f..e0eb2d43 100644 --- a/Universal/src/test/java/me/fixeddev/commandflow/ParameterizedPartTest.java +++ b/api/src/test/java/team/unnamed/commandflow/ParameterizedPartTest.java @@ -1,15 +1,14 @@ -package me.fixeddev.commandflow; - -import me.fixeddev.commandflow.annotated.AnnotatedCommandTreeBuilder; -import me.fixeddev.commandflow.annotated.CommandClass; -import me.fixeddev.commandflow.annotated.annotation.Command; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.annotated.part.PartInjector; -import me.fixeddev.commandflow.annotated.part.defaults.DefaultsModule; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow; + +import team.unnamed.commandflow.annotated.AnnotatedCommandTreeBuilder; +import team.unnamed.commandflow.annotated.CommandClass; +import team.unnamed.commandflow.annotated.annotation.Command; +import team.unnamed.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.annotated.part.defaults.DefaultsModule; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import org.junit.jupiter.api.Test; import java.util.Collections; diff --git a/Universal/src/test/java/me/fixeddev/commandflow/annotated/CustomComponentParserTest.java b/api/src/test/java/team/unnamed/commandflow/annotated/CustomComponentParserTest.java similarity index 76% rename from Universal/src/test/java/me/fixeddev/commandflow/annotated/CustomComponentParserTest.java rename to api/src/test/java/team/unnamed/commandflow/annotated/CustomComponentParserTest.java index 24c098e9..92f33089 100644 --- a/Universal/src/test/java/me/fixeddev/commandflow/annotated/CustomComponentParserTest.java +++ b/api/src/test/java/team/unnamed/commandflow/annotated/CustomComponentParserTest.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.annotated; +package team.unnamed.commandflow.annotated; -import me.fixeddev.commandflow.annotated.annotation.Command; -import me.fixeddev.commandflow.annotated.annotation.Usage; -import me.fixeddev.commandflow.annotated.part.PartInjector; +import team.unnamed.commandflow.annotated.annotation.Command; +import team.unnamed.commandflow.annotated.annotation.Usage; +import team.unnamed.commandflow.annotated.part.PartInjector; import net.kyori.adventure.text.Component; import org.junit.jupiter.api.Test; @@ -20,9 +20,9 @@ void test() { // a component parser that always creates plain text components with "Hello " as the prefix builder.setComponentParser(string -> Component.text("Hello, " + string.toLowerCase(Locale.ROOT))); - List commands = builder.fromClass(new TestCommand()); + List commands = builder.fromClass(new TestCommand()); assertEquals(1, commands.size(), "Expected one command only"); - me.fixeddev.commandflow.command.Command command = commands.get(0); + team.unnamed.commandflow.command.Command command = commands.get(0); assertEquals("test", command.getName()); assertEquals("admin", command.getPermission()); assertEquals(Component.text("Hello, you don't have permission to do this!"), command.getPermissionMessage()); diff --git a/brigadier/common/pom.xml b/brigadier/common/pom.xml new file mode 100644 index 00000000..b14b7aa3 --- /dev/null +++ b/brigadier/common/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + team.unnamed + commandflow-brigadier + 0.7.0 + ../pom.xml + + + commandflow-brigadier-common + jar + + \ No newline at end of file diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/BrigadierCommandManager.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/BrigadierCommandManager.java new file mode 100644 index 00000000..50ff3d83 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/BrigadierCommandManager.java @@ -0,0 +1,218 @@ +package team.unnamed.commandflow.brigadier; + +import com.mojang.brigadier.tree.LiteralCommandNode; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.ErrorHandler; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.ParseResult; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.UsageBuilder; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.function.BiConsumer; + +public class BrigadierCommandManager implements CommandManager { + private final CommandManager delegate; + private final CommandBrigadierConverter commandBrigadierConverter; + private final BiConsumer>, Command> onRegister; + private final BiConsumer>, Command> onUnregister; + + private final Map>> brigadierNodes; + + public BrigadierCommandManager(CommandManager delegate, + CommandBrigadierConverter commandBrigadierConverter, + BiConsumer>, Command> onRegister, + BiConsumer>, Command> onUnregister + ) { + this.delegate = delegate; + this.commandBrigadierConverter = commandBrigadierConverter; + this.onRegister = onRegister; + this.onUnregister = onUnregister; + + brigadierNodes = new HashMap<>(); + } + + public Map>> getBrigadierNodes() { + return brigadierNodes; + } + + @Override + public void registerCommand(Command command) { + delegate.registerCommand(command); + + List> nodes = commandBrigadierConverter.getBrigadierCommand(command); + brigadierNodes.put(command, nodes); + onRegister.accept(nodes, command); + } + + @Override + public void registerCommand(String label, Command command) { + delegate.registerCommand(label, command); + + List> nodes = commandBrigadierConverter.getBrigadierCommand(command); + brigadierNodes.put(command, nodes); + onRegister.accept(nodes, command); + } + + @Override + public void registerCommands(List commandList) { + for (Command command : commandList) { + registerCommand(command); + } + } + + @Override + public void unregisterCommand(Command command) { + delegate.unregisterCommand(command); + List> nodes = brigadierNodes.get(command); + + if (nodes == null) { + return; + } + + onUnregister.accept(nodes, command); + } + + @Override + public void unregisterCommands(List commands) { + for (Command command : commands) { + unregisterCommand(command); + } + } + + @Override + public void unregisterAll() { + Set commands = new HashSet<>(brigadierNodes.keySet()); + + for (Command command : commands) { + unregisterCommand(command); + } + } + + @Override + public Set getCommands() { + return delegate.getCommands(); + } + + @Override + public boolean exists(String commandName) { + return delegate.exists(commandName); + } + + @Override + public Authorizer getAuthorizer() { + return delegate.getAuthorizer(); + } + + @Override + public void setAuthorizer(Authorizer authorizer) { + delegate.setAuthorizer(authorizer); + } + + @Override + public InputTokenizer getInputTokenizer() { + return delegate.getInputTokenizer(); + } + + @Override + public void setInputTokenizer(InputTokenizer tokenizer) { + delegate.setInputTokenizer(tokenizer); + } + + @Override + public Executor getExecutor() { + return delegate.getExecutor(); + } + + @Override + public void setExecutor(Executor executor) { + delegate.setExecutor(executor); + } + + @Override + public Translator getTranslator() { + return delegate.getTranslator(); + } + + @Override + public void setTranslator(Translator translator) { + delegate.setTranslator(translator); + } + + @Override + public UsageBuilder getUsageBuilder() { + return delegate.getUsageBuilder(); + } + + @Override + public void setUsageBuilder(UsageBuilder usageBuilder) { + delegate.setUsageBuilder(usageBuilder); + } + + @Override + public ErrorHandler getErrorHandler() { + return delegate.getErrorHandler(); + } + + @Override + public void setErrorHandler(ErrorHandler errorHandler) { + delegate.setErrorHandler(errorHandler); + } + + @Override + public FallbackCommandModifiers getCommandModifiers() { + return delegate.getCommandModifiers(); + } + + @Override + public Optional getCommand(String commandName) { + return delegate.getCommand(commandName); + } + + @Override + public boolean execute(CommandContext commandContext) throws CommandException { + return delegate.execute(commandContext); + } + + @Override + public boolean execute(Namespace accessor, List arguments) throws CommandException { + return delegate.execute(accessor, arguments); + } + + @Override + public ParseResult parse(Namespace accessor, List arguments) throws CommandException { + return delegate.parse(accessor, arguments); + } + + @Override + public List getSuggestions(Namespace accessor, List arguments) { + return delegate.getSuggestions(accessor, arguments); + } + + @Override + public boolean execute(Namespace accessor, String line) throws CommandException { + return delegate.execute(accessor, line); + } + + @Override + public List getSuggestions(Namespace accessor, String line) { + return delegate.getSuggestions(accessor, line); + } + + @Override + public ParseResult parse(Namespace accessor, String line) throws CommandException { + return delegate.parse(accessor, line); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/CommandBrigadierConverter.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/CommandBrigadierConverter.java new file mode 100644 index 00000000..96ed65e1 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/CommandBrigadierConverter.java @@ -0,0 +1,376 @@ +package team.unnamed.commandflow.brigadier; + +import com.mojang.brigadier.builder.ArgumentBuilder; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import com.mojang.brigadier.tree.LiteralCommandNode; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.brigadier.mappings.BrigadierCommandNodeMappings; +import team.unnamed.commandflow.brigadier.mappings.defaults.GeneralMapping; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.PartsWrapper; +import team.unnamed.commandflow.part.SinglePartWrapper; +import team.unnamed.commandflow.part.defaults.FirstMatchPart; +import team.unnamed.commandflow.part.defaults.OptionalPart; +import team.unnamed.commandflow.part.defaults.SubCommandPart; +import team.unnamed.commandflow.part.defaults.SwitchPart; +import team.unnamed.commandflow.part.defaults.ValueFlagPart; +import team.unnamed.commandflow.part.visitor.CommandPartVisitor; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.function.Function; + +public class CommandBrigadierConverter { + + private final BrigadierCommandNodeMappings commandNodeMappings; + private final Authorizer authorizer; + private final Function senderMapping; + + public CommandBrigadierConverter(Function senderMapping, + BrigadierCommandNodeMappings commandNodeMappings, + Authorizer authorizer) { + this.commandNodeMappings = commandNodeMappings; + this.senderMapping = senderMapping; + this.authorizer = authorizer; + } + + public List> getBrigadierCommand(Command command) { + return getBrigadierCommand(command, false); + } + + public List> getBrigadierCommand(Command command, boolean optional) { + LiteralArgumentBuilder argumentBuilder = LiteralArgumentBuilder.literal(command.getName()) + .requires(new PermissionRequirement<>(command.getPermission(), authorizer, senderMapping)); + + if (isFirstPartOptional(command.getPart())) { + argumentBuilder.executes(context -> 1); + } + + LiteralCommandNode mainNode = argumentBuilder.build(); + + CommandNode node = convertToNodes(command); + + if (node != null) { + if (node instanceof LiteralCommandNode && (node.getName().equals("valueFlag") || node.getName().equals("Wrapper"))) { + for (CommandNode child : node.getChildren()) { + mainNode.addChild(child); + } + } else { + mainNode.addChild(node); + } + } + + + List> argumentBuilders = new ArrayList<>(); + + argumentBuilders.add(mainNode); + + for (String alias : command.getAliases()) { + LiteralArgumentBuilder aliasBuilder = LiteralArgumentBuilder + .literal(alias) + .redirect(mainNode) + .requires(new PermissionRequirement<>(command.getPermission(), authorizer, senderMapping)); + + if (optional) { + aliasBuilder = aliasBuilder.executes(context -> 1); + } + + argumentBuilders.add(aliasBuilder.build()); + } + + return argumentBuilders; + } + + private CommandNode convertToNodes(Command command) { + return command.getPart().acceptVisitor(new CommandPartVisitor>() { + @Override + public CommandNode visit(CommandPart part) { + if (part instanceof SwitchPart) { + SwitchPart switchPart = (SwitchPart) part; + + LiteralCommandNode shortName = LiteralArgumentBuilder.literal("-" + switchPart.getShortName()).build(); + LiteralCommandNode fullName = LiteralArgumentBuilder.literal("--" + switchPart.getName()).build(); + + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("valueFlag"); + + builder.then(shortName); + + if (switchPart.allowsFullName()) { + builder.then(fullName); + } + + return builder.build(); + } + + return null; + } + + @Override + public CommandNode visit(ArgumentPart argumentPart) { + return CommandBrigadierConverter.this.visit(argumentPart); + } + + @Override + public CommandNode visit(PartsWrapper partsWrapper) { + return CommandBrigadierConverter.this.visit(partsWrapper, this); + } + + @Override + public CommandNode visit(SinglePartWrapper singlePartWrapper) { + return CommandBrigadierConverter.this.visit(singlePartWrapper, this); + } + + @Override + public CommandNode visit(SubCommandPart subCommand) { + return CommandBrigadierConverter.this.visit(subCommand, this); + } + }); + } + + private void handleSimpleWrapperAdd(MultipleHeadNode nodeBuilder, CommandNode node, boolean nextOptional) { + if (nextOptional) { + for (CommandNode child : node.getChildren()) { + ArgumentBuilder childBuilder = child.createBuilder(); + childBuilder.executes(context -> 1); + + nodeBuilder.addChild(childBuilder.build()); + } + } else { + nodeBuilder.addChild(node.getChildren()); + } + } + + private boolean handleValueFlagAdd(MultipleHeadNode nodeBuilder, CommandNode node, boolean shouldAddNextToTail) { + nodeBuilder.addChild(node.getChildren()); + + if (shouldAddNextToTail) { + for (CommandNode child : node.getChildren()) { + nodeBuilder.addTailPointer(child); + } + } + + Iterator> iterator = node.getChildren().iterator(); + + // at least one is present + CommandNode mainNode = iterator.next(); + shouldAddNextToTail = true; + + // check if it is a SwitchPart, lol + if (!mainNode.getChildren().isEmpty()) { + // it isn't + nodeBuilder.setHeadPointer(0, mainNode.getChildren().iterator().next()); + } + + return shouldAddNextToTail; + } + + private boolean handleSimplePartAdding(MultipleHeadNode nodeBuilder, boolean shouldAddNextToTail, CommandNode node, boolean nextOptional) { + if (nextOptional) { + ArgumentBuilder childBuilder = node.createBuilder(); + + childBuilder.executes(context -> 1); + node = childBuilder.build(); + } + + nodeBuilder.addChild(node); + + if (shouldAddNextToTail) { + nodeBuilder.addTailPointer(node); + shouldAddNextToTail = false; + } + return shouldAddNextToTail; + } + + private boolean isFirstPartOptional(CommandPart part) { + if (part instanceof PartsWrapper) { + for (CommandPart commandPart : ((PartsWrapper) part).getParts()) { + if (!(commandPart instanceof ArgumentPart) && !(commandPart instanceof OptionalPart)) { + continue; + } + + return isFirstPartOptional(commandPart); + } + } + + if (part instanceof SinglePartWrapper) { + if (part instanceof OptionalPart) { + return true; + } + + return isFirstPartOptional(((SinglePartWrapper) part).getPart()); + } + + if (part instanceof SubCommandPart) { + return ((SubCommandPart) part).isOptional(); + } + + return false; + } + + private CommandNode toArgumentBuilder(ArgumentPart part) { + + return commandNodeMappings.getMappingByClass(part.getClass()) + .map(map -> map.convert(part)) + .orElseGet(() -> new GeneralMapping<>(senderMapping).convert(part)); + + /*if (part instanceof PlayerPart || part instanceof OfflinePlayerPart) { + return RequiredArgumentBuilder.argument(part.getName(), + constructMinecraftArgumentType(NamespacedKey.minecraft("entity"), + new Class[]{boolean.class, boolean.class}, true, true)).build(); + }*/ + } + + public CommandNode visit(ArgumentPart argumentPart) { + return toArgumentBuilder(argumentPart); + } + + public CommandNode visit(PartsWrapper partsWrapper, CommandPartVisitor> visitor) { + if (partsWrapper instanceof FirstMatchPart) { + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("Wrapper"); + + FirstMatchPart firstMatchPart = (FirstMatchPart) partsWrapper; + + for (CommandPart part : firstMatchPart.getParts()) { + CommandNode argumentNode = part.acceptVisitor(visitor); + + if (argumentNode == null) { + continue; // not available for brigadier completition. + } + + if (argumentNode instanceof LiteralCommandNode) { + if (argumentNode.getName().equals("Wrapper") || argumentNode.getName().equals("valueFlag")) { + // we can't do a lot more lol. + argumentNode.getChildren().forEach(builder::then); + + continue; + } + } + + builder.then(argumentNode); + } + + return builder.build(); + } + + MultipleHeadNode nodeBuilder = new MultipleHeadNode<>(); + boolean shouldAddNextToTail = false; + + ListIterator partsIterator = partsWrapper.getParts().listIterator(); + + while (partsIterator.hasNext()) { + CommandPart part = partsIterator.next(); + + CommandNode node = part.acceptVisitor(visitor); + + if (node == null) { + continue; // ignore this part, it's not available to be completed in brigadier. + } + + boolean nextOptional = false; + + if (partsIterator.hasNext()) { + CommandPart next = partsIterator.next(); + + if (isFirstPartOptional(next)) { + nextOptional = true; + } + + partsIterator.previous(); + } + + if (nodeBuilder.getHeadsSize() > 0) { + if (node instanceof LiteralCommandNode) { + if (node.getName().equals("Wrapper")) { + handleSimpleWrapperAdd(nodeBuilder, node, nextOptional); + } else if (node.getName().equals("valueFlag")) { + shouldAddNextToTail = handleValueFlagAdd(nodeBuilder, node, shouldAddNextToTail); + } else { + if (nextOptional) { + ArgumentBuilder childBuilder = node.createBuilder(); + + childBuilder.executes(context -> 1); + node = childBuilder.build(); + } + + nodeBuilder.addChild(node); + } + } else { + shouldAddNextToTail = handleSimplePartAdding(nodeBuilder, shouldAddNextToTail, node, nextOptional); + } + } else { + if (node.getName().equals("valueFlag")) { + shouldAddNextToTail = handleValueFlagAdd(nodeBuilder, node, shouldAddNextToTail); + + continue; + } + + shouldAddNextToTail = handleSimplePartAdding(nodeBuilder, shouldAddNextToTail, node, nextOptional); + } + } + + return nodeBuilder.getWrappedTail("Wrapper"); + } + + public CommandNode visit(SinglePartWrapper singlePartWrapper, CommandPartVisitor> visitor) { + if (singlePartWrapper instanceof ValueFlagPart) { + ValueFlagPart valueFlagPart = (ValueFlagPart) singlePartWrapper; + CommandNode node = singlePartWrapper.getPart().acceptVisitor(visitor); + + LiteralCommandNode shortName = LiteralArgumentBuilder.literal("-" + valueFlagPart.getShortName()).then(node).build(); + LiteralCommandNode fullName = LiteralArgumentBuilder.literal("--" + valueFlagPart.getName()).redirect(shortName).build(); + + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("valueFlag"); + + builder.then(shortName); + + if (valueFlagPart.allowsFullName()) { + builder.then(fullName); + } + + return builder.build(); + } + + return singlePartWrapper.getPart().acceptVisitor(visitor); + } + + public CommandNode visit(SubCommandPart subCommand, CommandPartVisitor> visitor) { + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal("Wrapper"); + + for (Command command : subCommand.getSubCommands()) { + CommandNode node = command.getPart().acceptVisitor(visitor); + + LiteralArgumentBuilder literalNodeBuilder = LiteralArgumentBuilder.literal(command.getName()); + + if (command.getPermission() != null) { + literalNodeBuilder.requires(new PermissionRequirement<>(command.getPermission(), authorizer, senderMapping)); + } + + if (node != null) { + if (node instanceof LiteralCommandNode && (node.getName().equals("valueFlag") || node.getName().equals("Wrapper"))) { + for (CommandNode child : node.getChildren()) { + literalNodeBuilder.then(child); + } + } else { + literalNodeBuilder.then(node); + } + } + + LiteralCommandNode literalNode = literalNodeBuilder.build(); + + builder = builder.then(literalNode); + + for (String alias : command.getAliases()) { + LiteralCommandNode aliasNode = LiteralArgumentBuilder.literal(alias).redirect(literalNode).build(); + + builder = builder.then(aliasNode); + } + } + + return builder.build(); + } +} diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/MultipleHeadNode.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/MultipleHeadNode.java similarity index 99% rename from Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/MultipleHeadNode.java rename to brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/MultipleHeadNode.java index 3f6f1b5f..98c0c670 100644 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/MultipleHeadNode.java +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/MultipleHeadNode.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.brigadier; +package team.unnamed.commandflow.brigadier; import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder; diff --git a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/MultipleHeadNodeBuilder.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/MultipleHeadNodeBuilder.java similarity index 99% rename from Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/MultipleHeadNodeBuilder.java rename to brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/MultipleHeadNodeBuilder.java index 69c1b9b0..5cb93c01 100644 --- a/Brigadier/src/main/java/me/fixeddev/commandflow/brigadier/MultipleHeadNodeBuilder.java +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/MultipleHeadNodeBuilder.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.brigadier; +package team.unnamed.commandflow.brigadier; import com.mojang.brigadier.Command; import com.mojang.brigadier.RedirectModifier; diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/PermissionRequirement.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/PermissionRequirement.java new file mode 100644 index 00000000..c23feec8 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/PermissionRequirement.java @@ -0,0 +1,32 @@ +package team.unnamed.commandflow.brigadier; + +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.Namespace; + +import java.util.function.Function; +import java.util.function.Predicate; + +public class PermissionRequirement implements Predicate { + + private final String permission; + private final Authorizer authorizer; + private final Function senderMapping; + + public PermissionRequirement(String permission, Authorizer authorizer, Function senderMapping) { + this.permission = permission; + this.authorizer = authorizer; + this.senderMapping = senderMapping; + } + + @Override + public boolean test(T o) { + V sender = senderMapping.apply(o); + + Namespace namespace = Namespace.create(); + //noinspection unchecked + namespace.setObject((Class) sender.getClass(), "sender", sender); + + return authorizer.isAuthorized(namespace, permission); + } + +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/BrigadierCommandNodeMappings.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/BrigadierCommandNodeMappings.java new file mode 100644 index 00000000..d18670b8 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/BrigadierCommandNodeMappings.java @@ -0,0 +1,67 @@ +package team.unnamed.commandflow.brigadier.mappings; + +import team.unnamed.commandflow.brigadier.mappings.defaults.BooleanMapping; +import team.unnamed.commandflow.brigadier.mappings.defaults.DoubleMapping; +import team.unnamed.commandflow.brigadier.mappings.defaults.IntegerMapping; +import team.unnamed.commandflow.brigadier.mappings.defaults.LongMapping; +import team.unnamed.commandflow.brigadier.mappings.defaults.StringMapping; +import team.unnamed.commandflow.part.defaults.BooleanPart; +import team.unnamed.commandflow.part.defaults.DoublePart; +import team.unnamed.commandflow.part.defaults.IntegerPart; +import team.unnamed.commandflow.part.defaults.LongPart; +import team.unnamed.commandflow.part.defaults.StringPart; + +import java.lang.reflect.Type; +import java.util.Optional; + +public interface BrigadierCommandNodeMappings { + + /** + * Obtains the {@link CommandNodeMapping} for the specified type. + * + * @param type The type to get a conversion mapping for. + * @return A {@link CommandNodeMapping}, if it exists, suitable for converting a {@linkplain team.unnamed.commandflow.part.ArgumentPart} of the specified type. + */ + default Optional> getMappingByClass(Class type) { + return getMapping(type); + } + + /** + * Obtains the {@link CommandNodeMapping} for the specified type. + * + * @param type The type to get a conversion mapping for. + * @return A {@link CommandNodeMapping}, if it exists, suitable for converting a {@linkplain team.unnamed.commandflow.part.ArgumentPart} of the specified type. + */ + Optional> getMapping(Type type); + + /** + * Converts this Mappings instance into a builder, allowing for more mappings to be added. + * + * @return A new builder for a {@linkplain BrigadierCommandNodeMappings} instance, with the mappings of this instance already added. + */ + Builder toBuilder(); + + static BrigadierCommandNodeMappings.Builder defaultMappings() { + return BrigadierCommandNodeMappings.builder() + .addMappingByClass(BooleanPart.class, new BooleanMapping<>()) + .addMappingByClass(DoublePart.class, new DoubleMapping<>()) + .addMappingByClass(IntegerPart.class, new IntegerMapping<>()) + .addMappingByClass(LongPart.class, new LongMapping<>()) + .addMappingByClass(StringPart.class, new StringMapping<>()); + } + + + static Builder builder() { + return new BrigadierCommandNodeMappingsImpl.Builder<>(); + } + + interface Builder { + default Builder addMappingByClass(Class type, CommandNodeMapping mapping) { + return addMapping(type, mapping); + } + + Builder addMapping(Type type, CommandNodeMapping mapping); + + BrigadierCommandNodeMappings build(); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/BrigadierCommandNodeMappingsImpl.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/BrigadierCommandNodeMappingsImpl.java new file mode 100644 index 00000000..9ca7b818 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/BrigadierCommandNodeMappingsImpl.java @@ -0,0 +1,49 @@ +package team.unnamed.commandflow.brigadier.mappings; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +final class BrigadierCommandNodeMappingsImpl implements BrigadierCommandNodeMappings { + + private final Map> mappingMap; + + BrigadierCommandNodeMappingsImpl(Map> mappingMap) { + this.mappingMap = mappingMap; + } + + @Override + public Optional> getMapping(Type type) { + return Optional.ofNullable(mappingMap.get(type)); + } + + @Override + public BrigadierCommandNodeMappings.Builder toBuilder() { + return new Builder<>(mappingMap); + } + + final static class Builder implements BrigadierCommandNodeMappings.Builder { + + private final Map> mappingMap; + + Builder() { + mappingMap = new HashMap<>(); + } + + Builder(Map> mappingMap) { + this.mappingMap = new HashMap<>(mappingMap); + } + + @Override + public BrigadierCommandNodeMappings.Builder addMapping(Type type, CommandNodeMapping mapping) { + mappingMap.put(type, mapping); + return this; + } + + @Override + public BrigadierCommandNodeMappings build() { + return new BrigadierCommandNodeMappingsImpl<>(mappingMap); + } + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/CommandNodeMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/CommandNodeMapping.java new file mode 100644 index 00000000..c7dbf824 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/CommandNodeMapping.java @@ -0,0 +1,17 @@ +package team.unnamed.commandflow.brigadier.mappings; + +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.part.ArgumentPart; + +/** + * Represents the mapping between a command-flow's {@link ArgumentPart} type into a brigadier's {@link CommandNode}. + * @param The type of the command executor. + */ +public interface CommandNodeMapping { + /** + * Converts a specified {@link team.unnamed.commandflow.part.CommandPart} into a {@link CommandNode}. + * @param argumentPart The {@linkplain ArgumentPart} to convert. + * @return A non null {@linkplain CommandNode} + */ + CommandNode convert(ArgumentPart argumentPart); +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/BooleanMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/BooleanMapping.java new file mode 100644 index 00000000..ac6cce66 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/BooleanMapping.java @@ -0,0 +1,14 @@ +package team.unnamed.commandflow.brigadier.mappings.defaults; + +import com.mojang.brigadier.arguments.BoolArgumentType; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.brigadier.mappings.CommandNodeMapping; +import team.unnamed.commandflow.part.ArgumentPart; + +public class BooleanMapping implements CommandNodeMapping { + @Override + public CommandNode convert(ArgumentPart part) { + return RequiredArgumentBuilder.argument(part.getName(), BoolArgumentType.bool()).build(); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/DoubleMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/DoubleMapping.java new file mode 100644 index 00000000..09bae59c --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/DoubleMapping.java @@ -0,0 +1,14 @@ +package team.unnamed.commandflow.brigadier.mappings.defaults; + +import team.unnamed.commandflow.brigadier.mappings.CommandNodeMapping; +import com.mojang.brigadier.arguments.DoubleArgumentType; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.part.ArgumentPart; + +public class DoubleMapping implements CommandNodeMapping { + @Override + public CommandNode convert(ArgumentPart part) { + return RequiredArgumentBuilder.argument(part.getName(), DoubleArgumentType.doubleArg()).build(); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/GeneralMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/GeneralMapping.java new file mode 100644 index 00000000..33de2045 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/GeneralMapping.java @@ -0,0 +1,49 @@ +package team.unnamed.commandflow.brigadier.mappings.defaults; + +import team.unnamed.commandflow.brigadier.mappings.CommandNodeMapping; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.SimpleCommandContext; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.stack.SimpleArgumentStack; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.function.Function; + +public class GeneralMapping implements CommandNodeMapping { + private final Function senderMapping; + + public GeneralMapping(Function senderMapping) { + this.senderMapping = senderMapping; + } + + @Override + public CommandNode convert(ArgumentPart part) { + return RequiredArgumentBuilder.argument(part.getName(), StringArgumentType.word()) + .suggests((context, builder) -> { + T sender = context.getSource(); + V platformSender = senderMapping.apply(sender); + + Namespace namespace = Namespace.create(); + //noinspection unchecked + namespace.setObject((Class) platformSender.getClass(), "sender", platformSender); + + CommandContext commandContext = new SimpleCommandContext(namespace, new ArrayList<>()); + + List suggestions = part.getSuggestions(commandContext, new SimpleArgumentStack(Collections.singletonList(""))); + + if (suggestions != null) { + for (String suggestion : suggestions) { + builder.suggest(suggestion); + } + } + + return builder.buildFuture(); + }).build(); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/IntegerMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/IntegerMapping.java new file mode 100644 index 00000000..a1ce3629 --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/IntegerMapping.java @@ -0,0 +1,14 @@ +package team.unnamed.commandflow.brigadier.mappings.defaults; + +import team.unnamed.commandflow.brigadier.mappings.CommandNodeMapping; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.part.ArgumentPart; + +public class IntegerMapping implements CommandNodeMapping { + @Override + public CommandNode convert(ArgumentPart part) { + return RequiredArgumentBuilder.argument(part.getName(), IntegerArgumentType.integer()).build(); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/LongMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/LongMapping.java new file mode 100644 index 00000000..efc4e82b --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/LongMapping.java @@ -0,0 +1,14 @@ +package team.unnamed.commandflow.brigadier.mappings.defaults; + +import team.unnamed.commandflow.brigadier.mappings.CommandNodeMapping; +import com.mojang.brigadier.arguments.LongArgumentType; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.part.ArgumentPart; + +public class LongMapping implements CommandNodeMapping { + @Override + public CommandNode convert(ArgumentPart part) { + return RequiredArgumentBuilder.argument(part.getName(), LongArgumentType.longArg()).build(); + } +} diff --git a/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/StringMapping.java b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/StringMapping.java new file mode 100644 index 00000000..bd47ee8a --- /dev/null +++ b/brigadier/common/src/main/java/team/unnamed/commandflow/brigadier/mappings/defaults/StringMapping.java @@ -0,0 +1,21 @@ +package team.unnamed.commandflow.brigadier.mappings.defaults; + +import team.unnamed.commandflow.brigadier.mappings.CommandNodeMapping; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.tree.CommandNode; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.defaults.StringPart; + +public class StringMapping implements CommandNodeMapping { + @Override + public CommandNode convert(ArgumentPart part) { + StringPart stringPart = (StringPart) part; + + if (stringPart.isConsumeAll()) { + return RequiredArgumentBuilder.argument(part.getName(), StringArgumentType.greedyString()).build(); + } else { + return RequiredArgumentBuilder.argument(part.getName(), StringArgumentType.word()).build(); + } + } +} diff --git a/brigadier/paper/.gitignore b/brigadier/paper/.gitignore new file mode 100644 index 00000000..5ff6309b --- /dev/null +++ b/brigadier/paper/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/brigadier/paper/pom.xml b/brigadier/paper/pom.xml new file mode 100644 index 00000000..15456c19 --- /dev/null +++ b/brigadier/paper/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + team.unnamed + commandflow-brigadier + 0.7.0 + ../pom.xml + + + commandflow-brigadier-paper + jar + + + + team.unnamed + commandflow-bukkit-common + ${project.version} + provided + + + team.unnamed + commandflow-brigadier-common + ${project.version} + provided + + + io.papermc.paper + paper-api + 1.19.1-R0.1-SNAPSHOT + provided + + + io.papermc.paper + paper-mojangapi + 1.19.1-R0.1-SNAPSHOT + provided + + + \ No newline at end of file diff --git a/brigadier/paper/src/main/java/team/unnamed/commandflow/brigadier/BrigaderProvider.java b/brigadier/paper/src/main/java/team/unnamed/commandflow/brigadier/BrigaderProvider.java new file mode 100644 index 00000000..2624d340 --- /dev/null +++ b/brigadier/paper/src/main/java/team/unnamed/commandflow/brigadier/BrigaderProvider.java @@ -0,0 +1,88 @@ +package team.unnamed.commandflow.brigadier; + +import com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource; +import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent; +import com.mojang.brigadier.tree.LiteralCommandNode; +import com.mojang.brigadier.tree.RootCommandNode; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.plugin.Plugin; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.brigadier.mappings.BrigadierCommandNodeMappings; +import team.unnamed.commandflow.bukkit.BukkitCommandManager; +import team.unnamed.commandflow.command.Command; + +import java.util.AbstractMap; +import java.util.List; +import java.util.Map; +import java.util.function.BiConsumer; + + +public abstract class BrigaderProvider { + + public static CommandBrigadierConverter obtain(Authorizer authorizer) { + return new CommandBrigadierConverter<>( + BukkitBrigadierCommandSource::getBukkitSender, + BrigadierCommandNodeMappings.defaultMappings().build(), + authorizer + ); + } + + public static Map.Entry, SendDataListener> obtain( + BukkitCommandManager delegate, + Authorizer authorizer) { + + BiConsumer>, Command> empty = (literalCommandNodes, command) -> { + }; + + BrigadierCommandManager commandManager = + new BrigadierCommandManager<>(delegate, obtain(authorizer), empty, empty); + + SendDataListener listener = new SendDataListener(commandManager); + + return new AbstractMap.SimpleEntry<>(commandManager, listener); + } + + public static BrigadierCommandManager obtainAndRegister( + BukkitCommandManager delegate, + Plugin plugin, + Authorizer authorizer) { + + Map.Entry, SendDataListener> entry = obtain(delegate, authorizer); + + Bukkit.getPluginManager().registerEvents(entry.getValue(), plugin); + + return entry.getKey(); + } + + public static class SendDataListener implements Listener { + + private final BrigadierCommandManager commandManager; + + public SendDataListener(BrigadierCommandManager commandManager) { + this.commandManager = commandManager; + } + + @EventHandler + @SuppressWarnings("deprecation") + public void onData(AsyncPlayerSendCommandsEvent event) { + if (event.isAsynchronous() || !event.hasFiredAsync()) { + commandManager.getBrigadierNodes().forEach((command, literalCommandNodes) -> { + for (LiteralCommandNode node : literalCommandNodes) { + register(node, event.getCommandNode()); + } + }); + } + } + + private void register(LiteralCommandNode node, RootCommandNode root) { + root.getChildren().removeIf(tCommandNode -> + tCommandNode.getName().equals(node.getName()) + ); // remove the original + + root.addChild(node); // register + } + } +} diff --git a/Brigadier/pom.xml b/brigadier/pom.xml similarity index 51% rename from Brigadier/pom.xml rename to brigadier/pom.xml index e7e82608..20663038 100644 --- a/Brigadier/pom.xml +++ b/brigadier/pom.xml @@ -2,16 +2,21 @@ + 4.0.0 + team.unnamed commandflow - me.fixeddev - 0.6.0 + 0.7.0 + ../pom.xml - 4.0.0 - ${version.brigadier} commandflow-brigadier - jar + pom + + + common + paper + @@ -22,38 +27,29 @@ spigotmc-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + - - me.fixeddev - commandflow-universal - ${version.universal} + team.unnamed + commandflow-api + ${project.version} compile - me.fixeddev - commandflow-bukkit - ${version.bukkit} + com.mojang + brigadier + 1.0.17 compile - org.spigotmc - spigot-api + com.google.guava + guava - - org.spigotmc - spigot-api - 1.13.2-R0.1-SNAPSHOT - provided - - - me.lucko - commodore - 1.10 - compile - - + \ No newline at end of file diff --git a/bukkit/commandmap/pom.xml b/bukkit/commandmap/pom.xml new file mode 100644 index 00000000..60748d18 --- /dev/null +++ b/bukkit/commandmap/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + team.unnamed + commandflow-bukkit + 0.7.0 + ../pom.xml + + + commandflow-bukkit-commandmap + jar + + + + team.unnamed + commandflow-bukkit-common + ${project.version} + + + \ No newline at end of file diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitCommandWrapper.java b/bukkit/commandmap/src/main/java/bukkit/BukkitCommandWrapper.java similarity index 65% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitCommandWrapper.java rename to bukkit/commandmap/src/main/java/bukkit/BukkitCommandWrapper.java index 2f56cd91..4404010a 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitCommandWrapper.java +++ b/bukkit/commandmap/src/main/java/bukkit/BukkitCommandWrapper.java @@ -1,16 +1,16 @@ -package me.fixeddev.commandflow.bukkit; +package bukkit; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.SimpleCommandContext; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.translator.Translator; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.SimpleCommandContext; +import team.unnamed.commandflow.bukkit.BukkitCommandManager; +import team.unnamed.commandflow.bukkit.BukkitCommonConstants; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.translator.Translator; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; @@ -20,12 +20,12 @@ import java.util.List; public class BukkitCommandWrapper extends Command { - protected final CommandManager commandManager; + protected final BukkitCommandManager commandManager; protected final Component permissionMessage; protected final Translator translator; - public BukkitCommandWrapper(me.fixeddev.commandflow.command.Command command, - CommandManager dispatcher, + public BukkitCommandWrapper(team.unnamed.commandflow.command.Command command, + BukkitCommandManager dispatcher, Translator translator) { super(command.getName()); @@ -60,7 +60,7 @@ public boolean execute(CommandSender commandSender, String label, String[] args) Namespace namespace = Namespace.create(); - namespace.setObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE, commandSender); + namespace.setObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE, commandSender); namespace.setObject(String.class, "label", label); @@ -89,7 +89,7 @@ public List tabComplete(CommandSender sender, String alias, String[] arg argumentLine.add(0, alias); Namespace namespace = Namespace.create(); - namespace.setObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE, sender); + namespace.setObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE, sender); return commandManager.getSuggestions(namespace, argumentLine); } @@ -98,12 +98,11 @@ public List tabComplete(CommandSender sender, String alias, String[] arg public boolean testPermission(@NotNull CommandSender target) { if (!testPermissionSilent(target)) { Namespace namespace = Namespace.create(); - namespace.setObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE, target); + namespace.setObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE, target); Component translatedPermissionMessage = translator.translate(permissionMessage, namespace); - BaseComponent[] components = MessageUtils.kyoriToBungee(translatedPermissionMessage); - MessageUtils.sendMessage(target, components); + commandManager.getMessageSender().sendMessage(target, translatedPermissionMessage); return false; } @@ -117,20 +116,8 @@ public boolean testPermissionSilent(CommandSender target) { Authorizer authorizer = commandManager.getAuthorizer(); Namespace namespace = Namespace.create(); - namespace.setObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE, target); + namespace.setObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE, target); return authorizer.isAuthorized(namespace, getPermission()); } - - protected static void sendMessageToSender(CommandException exception, Namespace namespace) { - CommandManager commandManager = namespace.getObject(CommandManager.class, "commandManager"); - CommandSender sender = namespace.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); - - Component component = exception.getMessageComponent(); - Component translatedComponent = commandManager.getTranslator().translate(component, namespace); - - BaseComponent[] components = MessageUtils.kyoriToBungee(translatedComponent); - - MessageUtils.sendMessage(sender, components); - } } diff --git a/bukkit/commandmap/src/main/java/bukkit/BukkitMapCommandManager.java b/bukkit/commandmap/src/main/java/bukkit/BukkitMapCommandManager.java new file mode 100644 index 00000000..8cec3c2e --- /dev/null +++ b/bukkit/commandmap/src/main/java/bukkit/BukkitMapCommandManager.java @@ -0,0 +1,93 @@ +package bukkit; + +import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.SimpleCommandManager; +import team.unnamed.commandflow.bukkit.BukkitAuthorizer; +import team.unnamed.commandflow.bukkit.BukkitCommandManager; +import team.unnamed.commandflow.bukkit.BukkitDefaultTranslationProvider; +import team.unnamed.commandflow.command.Command; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandMap; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; + +public class BukkitMapCommandManager extends BukkitCommandManager { + + protected CommandMap bukkitCommandMap; + @NotNull + protected final String fallbackPrefix; + + protected Plugin plugin; + + protected boolean usePluginCommands = false; + + protected final Map wrapperMap; + + public BukkitMapCommandManager(CommandManager delegate, Plugin plugin) { + this(delegate, plugin.getName()); + + this.plugin = plugin; + usePluginCommands = true; + } + + public BukkitMapCommandManager(CommandManager delegate, @NotNull String fallbackPrefix) { + super(delegate); + this.fallbackPrefix = fallbackPrefix; + wrapperMap = new HashMap<>(); + + try { + Field commandMapField = Bukkit.getServer().getClass().getDeclaredField("commandMap"); + commandMapField.setAccessible(true); + + bukkitCommandMap = (CommandMap) commandMapField.get(Bukkit.getServer()); + } catch (NoSuchFieldException | IllegalAccessException ex) { + Bukkit.getLogger().log(Level.SEVERE, "Failed to get command map: ", ex); + } + } + + public BukkitMapCommandManager(Plugin plugin) { + this(plugin.getName()); + this.plugin = plugin; + this.usePluginCommands = true; + } + + + public BukkitMapCommandManager(String fallbackPrefix) { + this(new SimpleCommandManager(), fallbackPrefix); + + setAuthorizer(new BukkitAuthorizer()); + getTranslator().setProvider(new BukkitDefaultTranslationProvider()); + getTranslator().setConverterFunction(LegacyComponentSerializer.legacyAmpersand()::deserialize); + } + + @Override + protected void _register(Command command) { + BukkitCommandWrapper bukkitCommand = usePluginCommands ? + new PluginBukkitCommandWrapper(command, this, getTranslator(), plugin) : + new BukkitCommandWrapper(command, this, getTranslator()); + + for (String alias : command.getAliases()) { + registerCommand(fallbackPrefix + ":" + alias, command); + } + + registerCommand(fallbackPrefix + ":" + command.getName(), command); + + wrapperMap.put(command.getName(), bukkitCommand); + bukkitCommandMap.register(fallbackPrefix, bukkitCommand); + } + + @Override + protected void _unregister(Command command) { + BukkitCommandWrapper wrapper = wrapperMap.get(command.getName()); + if (wrapper != null) { + wrapper.unregister(bukkitCommandMap); + } + } + +} diff --git a/bukkit/commandmap/src/main/java/bukkit/PluginBukkitCommandWrapper.java b/bukkit/commandmap/src/main/java/bukkit/PluginBukkitCommandWrapper.java new file mode 100644 index 00000000..c8c3dc12 --- /dev/null +++ b/bukkit/commandmap/src/main/java/bukkit/PluginBukkitCommandWrapper.java @@ -0,0 +1,26 @@ +package bukkit; + +import org.bukkit.command.PluginIdentifiableCommand; +import org.bukkit.plugin.Plugin; +import team.unnamed.commandflow.bukkit.BukkitCommandManager; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.translator.Translator; + +public class PluginBukkitCommandWrapper extends BukkitCommandWrapper implements PluginIdentifiableCommand { + + private final Plugin plugin; + + public PluginBukkitCommandWrapper(Command command, + BukkitCommandManager dispatcher, + Translator translator, + Plugin plugin) { + super(command, dispatcher, translator); + + this.plugin = plugin; + } + + @Override + public Plugin getPlugin() { + return plugin; + } +} diff --git a/bukkit/common/pom.xml b/bukkit/common/pom.xml new file mode 100644 index 00000000..c0e5ff50 --- /dev/null +++ b/bukkit/common/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + team.unnamed + commandflow-bukkit + 0.7.0 + ../pom.xml + + + commandflow-bukkit-common + jar + + \ No newline at end of file diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitAuthorizer.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitAuthorizer.java similarity index 68% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitAuthorizer.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitAuthorizer.java index e6ed4af5..3d5a8840 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitAuthorizer.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitAuthorizer.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.bukkit; +package team.unnamed.commandflow.bukkit; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.Namespace; import org.bukkit.command.CommandSender; public class BukkitAuthorizer implements Authorizer { @@ -12,7 +12,7 @@ public boolean isAuthorized(Namespace namespace, String permission) { return true; } - CommandSender sender = namespace.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); + CommandSender sender = namespace.getObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE); return sender.hasPermission(permission); } diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitCommandManager.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitCommandManager.java similarity index 63% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitCommandManager.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitCommandManager.java index 011976c1..822e0745 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitCommandManager.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitCommandManager.java @@ -1,60 +1,43 @@ -package me.fixeddev.commandflow.bukkit; - -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.ErrorHandler; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.ParseResult; -import me.fixeddev.commandflow.SimpleCommandManager; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.exception.ArgumentException; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.exception.InvalidSubCommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.exception.NoPermissionsException; -import me.fixeddev.commandflow.executor.Executor; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.translator.Translator; -import me.fixeddev.commandflow.usage.UsageBuilder; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandMap; - -import java.lang.reflect.Field; -import java.util.HashMap; +package team.unnamed.commandflow.bukkit; + +import net.kyori.adventure.text.Component; +import net.md_5.bungee.api.chat.BaseComponent; +import org.bukkit.command.CommandSender; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.ErrorHandler; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.ParseResult; +import team.unnamed.commandflow.bukkit.sender.DefaultMessageSender; +import team.unnamed.commandflow.bukkit.sender.MessageSender; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.exception.ArgumentException; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.CommandUsage; +import team.unnamed.commandflow.exception.InvalidSubCommandException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.NoPermissionsException; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.UsageBuilder; + import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.logging.Level; - -public class BukkitCommandManager implements CommandManager { - public static final String SENDER_NAMESPACE = "SENDER"; +import static team.unnamed.commandflow.bukkit.BukkitCommonConstants.COMMAND_MANAGER_NAMESPACE; +public abstract class BukkitCommandManager implements CommandManager { protected CommandManager manager; - protected CommandMap bukkitCommandMap; - protected final String fallbackPrefix; + private MessageSender messageSender; - protected final Map wrapperMap; - - public BukkitCommandManager(CommandManager delegate, String fallbackPrefix) { + public BukkitCommandManager(CommandManager delegate) { this.manager = delegate; - this.fallbackPrefix = fallbackPrefix; - wrapperMap = new HashMap<>(); - - try { - Field commandMapField = Bukkit.getServer().getClass().getDeclaredField("commandMap"); - commandMapField.setAccessible(true); - - bukkitCommandMap = (CommandMap) commandMapField.get(Bukkit.getServer()); - } catch (NoSuchFieldException | IllegalAccessException ex) { - Bukkit.getLogger().log(Level.SEVERE, "Failed to get command map: ", ex); - } + this.messageSender = new DefaultMessageSender(); this.getErrorHandler().addExceptionHandler(CommandUsage.class, (namespace, ex) -> { CommandException exceptionToSend = ex; @@ -62,13 +45,13 @@ public BukkitCommandManager(CommandManager delegate, String fallbackPrefix) { exceptionToSend = (ArgumentParseException) ex.getCause(); } - BukkitCommandWrapper.sendMessageToSender(exceptionToSend, namespace); + sendMessageToSender(exceptionToSend, namespace); return true; }); ErrorHandler.ErrorConsumer commonArgumentExceptionConsumer = (namespace, ex) -> { - BukkitCommandWrapper.sendMessageToSender(ex, namespace); + sendMessageToSender(ex, namespace); return false; }; @@ -77,7 +60,7 @@ public BukkitCommandManager(CommandManager delegate, String fallbackPrefix) { this.getErrorHandler().addExceptionHandler(ArgumentParseException.class, commonArgumentExceptionConsumer); this.getErrorHandler().addExceptionHandler(NoMoreArgumentsException.class, commonArgumentExceptionConsumer); this.getErrorHandler().addExceptionHandler(NoPermissionsException.class, (namespace, throwable) -> { - BukkitCommandWrapper.sendMessageToSender(throwable, namespace); + sendMessageToSender(throwable, namespace); return true; }); @@ -91,7 +74,7 @@ public BukkitCommandManager(CommandManager delegate, String fallbackPrefix) { exceptionToSend = throwable.getCause(); } - BukkitCommandWrapper.sendMessageToSender(throwable, namespace); + sendMessageToSender(throwable, namespace); String label = namespace.getObject(String.class, "label"); throw new org.bukkit.command.CommandException("An unexpected exception occurred while executing the command " + label, exceptionToSend); @@ -105,28 +88,14 @@ public BukkitCommandManager(CommandManager delegate, String fallbackPrefix) { }); } - public BukkitCommandManager(String fallbackPrefix) { - this(new SimpleCommandManager(), fallbackPrefix); + protected abstract void _register(Command command); - setAuthorizer(new BukkitAuthorizer()); - getTranslator().setProvider(new BukkitDefaultTranslationProvider()); - getTranslator().setConverterFunction(LegacyComponentSerializer.legacyAmpersand()::deserialize); - } + protected abstract void _unregister(Command command); public void registerCommand(Command command) { manager.registerCommand(command); - BukkitCommandWrapper bukkitCommand = new BukkitCommandWrapper(command, - this, getTranslator()); - - for (String alias : command.getAliases()) { - registerCommand(fallbackPrefix + ":" + alias, command); - } - - registerCommand(fallbackPrefix + ":" + command.getName(), command); - - wrapperMap.put(command.getName(), bukkitCommand); - bukkitCommandMap.register(fallbackPrefix, bukkitCommand); + _register(command); } @Override @@ -144,12 +113,10 @@ public void registerCommands(List commandList) { public void unregisterCommand(Command command) { manager.unregisterCommand(command); - BukkitCommandWrapper wrapper = wrapperMap.get(command.getName()); - if (wrapper != null) { - wrapper.unregister(bukkitCommandMap); - } + _unregister(command); } + @Override public void unregisterCommands(List commands) { for (Command command : commands) { @@ -241,6 +208,14 @@ public FallbackCommandModifiers getCommandModifiers() { return manager.getCommandModifiers(); } + public MessageSender getMessageSender() { + return this.messageSender; + } + + public void setMessageSender(MessageSender messageSender) { + this.messageSender = messageSender; + } + @Override public Optional getCommand(String commandName) { return manager.getCommand(commandName); @@ -248,6 +223,8 @@ public Optional getCommand(String commandName) { @Override public boolean execute(Namespace accessor, List arguments) throws CommandException { + accessor.setObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE, this); + return manager.execute(accessor, arguments); } @@ -258,27 +235,46 @@ public List getSuggestions(Namespace accessor, List arguments) { @Override public boolean execute(Namespace accessor, String line) throws CommandException { + accessor.setObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE, this); + return manager.execute(accessor, line); } @Override public List getSuggestions(Namespace accessor, String line) { + accessor.setObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE, this); + return manager.getSuggestions(accessor, line); } @Override public boolean execute(CommandContext commandContext) throws CommandException { + commandContext.setObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE, this); + return manager.execute(commandContext); } @Override public ParseResult parse(Namespace accessor, List arguments) throws CommandException { + accessor.setObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE, this); + return manager.parse(accessor, arguments); } @Override public ParseResult parse(Namespace accessor, String line) throws CommandException { + accessor.setObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE, this); + return manager.parse(accessor, line); } + public static void sendMessageToSender(CommandException exception, Namespace namespace) { + BukkitCommandManager commandManager = namespace.getObject(BukkitCommandManager.class, COMMAND_MANAGER_NAMESPACE); // should be, lol + CommandSender sender = namespace.getObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE); + + Component component = exception.getMessageComponent(); + Component translatedComponent = commandManager.getTranslator().translate(component, namespace); + + commandManager.getMessageSender().sendMessage(sender, translatedComponent); + } } diff --git a/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitCommonConstants.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitCommonConstants.java new file mode 100644 index 00000000..28afd484 --- /dev/null +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitCommonConstants.java @@ -0,0 +1,6 @@ +package team.unnamed.commandflow.bukkit; + +public final class BukkitCommonConstants { + public static final String SENDER_NAMESPACE = "sender"; + public static final String COMMAND_MANAGER_NAMESPACE = "commandManager"; +} diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitDefaultTranslationProvider.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitDefaultTranslationProvider.java similarity index 80% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitDefaultTranslationProvider.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitDefaultTranslationProvider.java index 323d4320..c2930765 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/BukkitDefaultTranslationProvider.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/BukkitDefaultTranslationProvider.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.bukkit; +package team.unnamed.commandflow.bukkit; -import me.fixeddev.commandflow.translator.DefaultMapTranslationProvider; +import team.unnamed.commandflow.translator.DefaultMapTranslationProvider; public class BukkitDefaultTranslationProvider extends DefaultMapTranslationProvider { diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/Exact.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/annotation/Exact.java similarity index 83% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/Exact.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/annotation/Exact.java index ca110742..e73924ee 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/Exact.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/annotation/Exact.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.bukkit.annotation; +package team.unnamed.commandflow.bukkit.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/PlayerOrSource.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/annotation/PlayerOrSource.java similarity index 83% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/PlayerOrSource.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/annotation/PlayerOrSource.java index d5ac64c8..942d93de 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/annotation/PlayerOrSource.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/annotation/PlayerOrSource.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.bukkit.annotation; +package team.unnamed.commandflow.bukkit.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/BukkitModule.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/BukkitModule.java similarity index 74% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/BukkitModule.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/BukkitModule.java index d8c6bc5e..19050450 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/BukkitModule.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/BukkitModule.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.AbstractModule; -import me.fixeddev.commandflow.annotated.part.Key; -import me.fixeddev.commandflow.bukkit.annotation.Sender; +import team.unnamed.commandflow.annotated.part.AbstractModule; +import team.unnamed.commandflow.annotated.part.Key; +import team.unnamed.commandflow.annotated.annotation.Sender; import org.bukkit.GameMode; import org.bukkit.OfflinePlayer; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/CommandSenderFactory.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/CommandSenderFactory.java similarity index 55% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/CommandSenderFactory.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/CommandSenderFactory.java index 5f5121e5..d76bba0e 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/CommandSenderFactory.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/CommandSenderFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bukkit.part.CommandSenderPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bukkit.part.CommandSenderPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/GameModeFactory.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/GameModeFactory.java similarity index 55% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/GameModeFactory.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/GameModeFactory.java index 7cf67d6d..1c937ee6 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/GameModeFactory.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/GameModeFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bukkit.part.GameModePart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bukkit.part.GameModePart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/OfflinePlayerPartFactory.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/OfflinePlayerPartFactory.java similarity index 56% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/OfflinePlayerPartFactory.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/OfflinePlayerPartFactory.java index da422445..db9a76c7 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/OfflinePlayerPartFactory.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/OfflinePlayerPartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bukkit.annotation.PlayerOrSource; -import me.fixeddev.commandflow.bukkit.part.OfflinePlayerPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bukkit.annotation.PlayerOrSource; +import team.unnamed.commandflow.bukkit.part.OfflinePlayerPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/PlayerPartFactory.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/PlayerPartFactory.java similarity index 56% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/PlayerPartFactory.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/PlayerPartFactory.java index 89f0cfe2..8bbbbbea 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/PlayerPartFactory.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/PlayerPartFactory.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bukkit.annotation.Exact; -import me.fixeddev.commandflow.bukkit.annotation.PlayerOrSource; -import me.fixeddev.commandflow.bukkit.part.PlayerPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bukkit.annotation.Exact; +import team.unnamed.commandflow.bukkit.annotation.PlayerOrSource; +import team.unnamed.commandflow.bukkit.part.PlayerPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/PlayerSenderFactory.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/PlayerSenderFactory.java similarity index 55% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/PlayerSenderFactory.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/PlayerSenderFactory.java index 9a2cf991..e92430c1 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/PlayerSenderFactory.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/PlayerSenderFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bukkit.part.PlayerSenderPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bukkit.part.PlayerSenderPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/WorldFactory.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/WorldFactory.java similarity index 55% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/WorldFactory.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/WorldFactory.java index 517ef383..6b47acbb 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/factory/WorldFactory.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/factory/WorldFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bukkit.factory; +package team.unnamed.commandflow.bukkit.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bukkit.part.WorldPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bukkit.part.WorldPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/BukkitParts.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/BukkitParts.java similarity index 67% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/BukkitParts.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/BukkitParts.java index f2a92f2b..577984c1 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/BukkitParts.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/BukkitParts.java @@ -1,25 +1,27 @@ -package me.fixeddev.commandflow.bukkit.part; +package team.unnamed.commandflow.bukkit.part; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.stack.ArgumentStack; /** - * An utility class to ease the use of some {@link me.fixeddev.commandflow.part.CommandPart} specific instances for bukkit. + * An utility class to ease the use of some {@link CommandPart} specific instances for bukkit. */ public final class BukkitParts { /** - * A basic {@link me.fixeddev.commandflow.part.CommandPart} that provides the {@link org.bukkit.command.CommandSender} of the command from + * A basic {@link CommandPart} that provides the {@link org.bukkit.command.CommandSender} of the command from * the namespace. * * @param name The name for this part. - * @return A {@link me.fixeddev.commandflow.part.CommandPart} with a given name that returns the {@link org.bukkit.command.CommandSender} as argument. + * @return A {@link CommandPart} with a given name that returns the {@link org.bukkit.command.CommandSender} as argument. */ public static CommandSenderPart commandSender(String name) { return new CommandSenderPart(name); } /** - * A basic {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} and parses it into + * A basic {@link ArgumentPart} that takes a string from the {@link ArgumentStack} and parses it into * a bukkit's {@link org.bukkit.GameMode} * * @param name The name for this part. @@ -30,7 +32,7 @@ public static GameModePart gameMode(String name) { } /** - * A basic {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} and parses it into + * A basic {@link ArgumentPart} that takes a string from the {@link ArgumentStack} and parses it into * a bukkit's {@link org.bukkit.OfflinePlayer} * * @param name The name for this part. @@ -41,7 +43,7 @@ public static OfflinePlayerPart offlinePlayer(String name) { } /** - * A {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A {@link ArgumentPart} that takes a string from the {@link ArgumentStack} * and tries to parse it into an {@link org.bukkit.OfflinePlayer}, if it is not available or the parsed player isn't * valid, then tries to parse the CommandSender as an OfflinePlayer. * @@ -54,7 +56,7 @@ public static OfflinePlayerPart offlinePlayerOrSource(String name) { } /** - * A basic {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string as nick or uuid from the {@link me.fixeddev.commandflow.stack.ArgumentStack} and parses it into + * A basic {@link ArgumentPart} that takes a string as nick or uuid from the {@link ArgumentStack} and parses it into * a bukkit's {@link org.bukkit.entity.Player} using the method {@link org.bukkit.Bukkit#getPlayer(String)} * * @param name The name for this part. @@ -65,7 +67,7 @@ public static PlayerPart player(String name) { } /** - * A basic {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string as nick from the {@link me.fixeddev.commandflow.stack.ArgumentStack} and parses it into + * A basic {@link ArgumentPart} that takes a string as nick from the {@link ArgumentStack} and parses it into * a bukkit's {@link org.bukkit.entity.Player} using the method {@link org.bukkit.Bukkit#getPlayerExact(String)} * * @param name The name for this part. @@ -76,7 +78,7 @@ public static PlayerPart exactPlayer(String name) { } /** - * A {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string as nick or as uuid from the {@link me.fixeddev.commandflow.stack.ArgumentStack} + * A {@link ArgumentPart} that takes a string as nick or as uuid from the {@link ArgumentStack} * and tries to parse it into an {@link org.bukkit.entity.Player}, if it is not available or the parsed player isn't * valid, then tries to parse the CommandSender as an Player. * @@ -89,8 +91,8 @@ public static PlayerPart playerOrSource(String name) { } /** - * A {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string as nick or as uuid (if exact mode is not enabled) - * from the {@link me.fixeddev.commandflow.stack.ArgumentStack} and tries to parse it into an {@link org.bukkit.entity.Player}. + * A {@link ArgumentPart} that takes a string as nick or as uuid (if exact mode is not enabled) + * from the {@link ArgumentStack} and tries to parse it into an {@link org.bukkit.entity.Player}. * * @param name The name for this part. * @param exact If we should use {@link org.bukkit.Bukkit#getPlayerExact(String)} instead of {@link org.bukkit.Bukkit#getPlayer(String)} @@ -102,7 +104,7 @@ public static PlayerPart player(String name, boolean exact, boolean orSource) { } /** - * A {@link me.fixeddev.commandflow.part.CommandPart} that tries parsing the CommandSender as a {@link org.bukkit.entity.Player}. + * A {@link CommandPart} that tries parsing the CommandSender as a {@link org.bukkit.entity.Player}. * * @param name The name for this part. * @return a {@link CommandPart} with the given name that tries to parse the command sender as a {@link org.bukkit.entity.Player}. @@ -112,7 +114,7 @@ public static PlayerSenderPart playerAsSender(String name) { } /** - * A {@link me.fixeddev.commandflow.part.ArgumentPart} that takes a string as world name and tries to parse it into a + * A {@link ArgumentPart} that takes a string as world name and tries to parse it into a * bukkit's {@link org.bukkit.World}. * * @param name The name for this part. diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/CommandSenderPart.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/CommandSenderPart.java similarity index 71% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/CommandSenderPart.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/CommandSenderPart.java index debd36e9..9da3ae60 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/CommandSenderPart.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/CommandSenderPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bukkit.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bukkit.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bukkit.BukkitCommonConstants; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -26,7 +26,7 @@ public String getName() { @Override public void parse(CommandContext context, ArgumentStack stack, CommandPart parent) throws ArgumentParseException { - CommandSender sender = context.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); + CommandSender sender = context.getObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE); if (sender != null) { context.setValue(this, sender); diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/GameModePart.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/GameModePart.java similarity index 87% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/GameModePart.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/GameModePart.java index ac0e08f4..39b97830 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/GameModePart.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/GameModePart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.bukkit.part; +package team.unnamed.commandflow.bukkit.part; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/OfflinePlayerPart.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/OfflinePlayerPart.java similarity index 87% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/OfflinePlayerPart.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/OfflinePlayerPart.java index 9f29b765..d3343d34 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/OfflinePlayerPart.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/OfflinePlayerPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bukkit.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bukkit.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bukkit.BukkitCommonConstants; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; @@ -64,7 +64,7 @@ public List parseValue(CommandContext context, Argument } private Player tryGetSender(CommandContext context) { - CommandSender sender = context.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); + CommandSender sender = context.getObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE); if (sender instanceof Player) { return (Player) sender; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/PlayerPart.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/PlayerPart.java similarity index 84% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/PlayerPart.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/PlayerPart.java index d7667ee9..7a9b1b6d 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/PlayerPart.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/PlayerPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bukkit.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bukkit.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bukkit.BukkitCommonConstants; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -17,7 +17,7 @@ import java.util.Objects; import java.util.UUID; -import static me.fixeddev.commandflow.bukkit.part.OfflinePlayerPart.getStrings; +import static team.unnamed.commandflow.bukkit.part.OfflinePlayerPart.getStrings; public class PlayerPart implements ArgumentPart { @@ -78,7 +78,7 @@ public List parseValue(CommandContext context, ArgumentStack stack, Comm } private Player tryGetSender(CommandContext context) { - CommandSender sender = context.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); + CommandSender sender = context.getObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE); if (sender instanceof Player) { return (Player) sender; diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/PlayerSenderPart.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/PlayerSenderPart.java similarity index 74% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/PlayerSenderPart.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/PlayerSenderPart.java index 7996d114..565fccfe 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/PlayerSenderPart.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/PlayerSenderPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bukkit.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bukkit.BukkitCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bukkit.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bukkit.BukkitCommonConstants; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -27,7 +27,7 @@ public String getName() { @Override public void parse(CommandContext context, ArgumentStack stack, CommandPart parent) throws ArgumentParseException { - CommandSender sender = context.getObject(CommandSender.class, BukkitCommandManager.SENDER_NAMESPACE); + CommandSender sender = context.getObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE); if (sender != null) { if (sender instanceof Player) { diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/WorldPart.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/WorldPart.java similarity index 82% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/WorldPart.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/WorldPart.java index 52bf0db3..7bc16b13 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/part/WorldPart.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/part/WorldPart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.bukkit.part; +package team.unnamed.commandflow.bukkit.part; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/DefaultMessageSender.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/DefaultMessageSender.java new file mode 100644 index 00000000..85f45cfa --- /dev/null +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/DefaultMessageSender.java @@ -0,0 +1,14 @@ +package team.unnamed.commandflow.bukkit.sender; + +import net.kyori.adventure.text.Component; +import net.md_5.bungee.api.chat.BaseComponent; +import org.bukkit.command.CommandSender; + +public class DefaultMessageSender implements MessageSender { + @Override + public void sendMessage(CommandSender sender, Component component) { + BaseComponent[] components = MessageUtils.kyoriToBungee(component); + + MessageUtils.sendMessage(sender, components); + } +} diff --git a/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/MessageSender.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/MessageSender.java new file mode 100644 index 00000000..407bde54 --- /dev/null +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/MessageSender.java @@ -0,0 +1,8 @@ +package team.unnamed.commandflow.bukkit.sender; + +import net.kyori.adventure.text.Component; +import org.bukkit.command.CommandSender; + +public interface MessageSender { + void sendMessage(CommandSender sender, Component component); +} diff --git a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/MessageUtils.java b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/MessageUtils.java similarity index 95% rename from Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/MessageUtils.java rename to bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/MessageUtils.java index ee19e212..9e32f9c1 100644 --- a/Bukkit/src/main/java/me/fixeddev/commandflow/bukkit/MessageUtils.java +++ b/bukkit/common/src/main/java/team/unnamed/commandflow/bukkit/sender/MessageUtils.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.bukkit; +package team.unnamed.commandflow.bukkit.sender; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; diff --git a/bukkit/paper/.gitignore b/bukkit/paper/.gitignore new file mode 100644 index 00000000..5ff6309b --- /dev/null +++ b/bukkit/paper/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/bukkit/paper/pom.xml b/bukkit/paper/pom.xml new file mode 100644 index 00000000..5ca6b266 --- /dev/null +++ b/bukkit/paper/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + team.unnamed + commandflow-bukkit + 0.7.0 + ../pom.xml + + + commandflow-bukkit-paper + jar + + + 17 + 17 + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + + + + io.papermc.paper + paper-api + 1.18.2-R0.1-SNAPSHOT + provided + + + team.unnamed + commandflow-bukkit-common + ${project.version} + + + + \ No newline at end of file diff --git a/bukkit/paper/src/main/java/team/unnamed/commandflow/bukkit/paper/PaperMessageSender.java b/bukkit/paper/src/main/java/team/unnamed/commandflow/bukkit/paper/PaperMessageSender.java new file mode 100644 index 00000000..abb5c631 --- /dev/null +++ b/bukkit/paper/src/main/java/team/unnamed/commandflow/bukkit/paper/PaperMessageSender.java @@ -0,0 +1,12 @@ +package team.unnamed.commandflow.bukkit.paper; + +import net.kyori.adventure.text.Component; +import org.bukkit.command.CommandSender; +import team.unnamed.commandflow.bukkit.sender.MessageSender; + +public class PaperMessageSender implements MessageSender { + @Override + public void sendMessage(CommandSender sender, Component component) { + sender.sendMessage(component); + } +} diff --git a/bukkit/plugin/pom.xml b/bukkit/plugin/pom.xml new file mode 100644 index 00000000..ec4d7128 --- /dev/null +++ b/bukkit/plugin/pom.xml @@ -0,0 +1,24 @@ + + + 4.0.0 + + team.unnamed + commandflow-bukkit + 0.7.0 + ../pom.xml + + + commandflow-bukkit-plugin + jar + + + + team.unnamed + commandflow-bukkit-common + ${project.version} + + + + \ No newline at end of file diff --git a/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/BukkitCommandExecutor.java b/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/BukkitCommandExecutor.java new file mode 100644 index 00000000..d78d180e --- /dev/null +++ b/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/BukkitCommandExecutor.java @@ -0,0 +1,60 @@ +package team.unnamed.commandflow.bukkit; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.exception.CommandException; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public interface BukkitCommandExecutor extends CommandExecutor, TabCompleter { + @Override + default boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + List argumentLine = new ArrayList<>(); + + argumentLine.add(label); + argumentLine.addAll(Arrays.asList(args)); + + Namespace namespace = Namespace.create(); + + namespace.setObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE, sender); + namespace.setObject(String.class, "label", label); + + try { + return commandManager().execute(namespace, argumentLine); + } catch (CommandException e) { + Throwable exceptionToSend = e; + + Throwable cause = e.getCause(); + + if (cause instanceof org.bukkit.command.CommandException) { + throw (org.bukkit.command.CommandException) cause; + } + + if (cause != null) { + exceptionToSend = cause; + } + + throw new org.bukkit.command.CommandException("An unexpected exception occurred while executing the command " + label, exceptionToSend); + } + } + + @Override + default List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + List argumentLine = new ArrayList<>(Arrays.asList(args)); + argumentLine.add(0, alias); + + Namespace namespace = Namespace.create(); + namespace.setObject(CommandSender.class, BukkitCommonConstants.SENDER_NAMESPACE, sender); + + return commandManager().getSuggestions(namespace, argumentLine); + } + + CommandManager commandManager(); + +} diff --git a/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/BukkitPluginCommandManager.java b/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/BukkitPluginCommandManager.java new file mode 100644 index 00000000..8cafcd0c --- /dev/null +++ b/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/BukkitPluginCommandManager.java @@ -0,0 +1,62 @@ +package team.unnamed.commandflow.bukkit; + +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandMap; +import org.bukkit.command.PluginCommand; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; +import org.jetbrains.annotations.NotNull; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.SimpleCommandManager; +import team.unnamed.commandflow.command.Command; + +public class BukkitPluginCommandManager extends BukkitCommandManager { + + protected final String fallbackPrefix; + + protected BukkitCommandExecutor commandExecutor; + + public BukkitPluginCommandManager(CommandManager delegate, @NotNull BukkitCommandExecutor commandExecutor, String fallbackPrefix) { + super(delegate); + this.fallbackPrefix = fallbackPrefix; + this.commandExecutor = commandExecutor; + } + + public BukkitPluginCommandManager(String fallbackPrefix) { + //noinspection DataFlowIssue + this(new SimpleCommandManager(), null, fallbackPrefix); + + commandExecutor = new DefaultBukkitCommandExecutor(this); + setAuthorizer(new BukkitAuthorizer()); + getTranslator().setProvider(new BukkitDefaultTranslationProvider()); + getTranslator().setConverterFunction(LegacyComponentSerializer.legacyAmpersand()::deserialize); + } + + @Override + protected void _register(Command command) { + PluginCommand pluginCommand = Bukkit.getPluginCommand(command.getName()); + + if (pluginCommand != null) { + pluginCommand.setExecutor(commandExecutor); + pluginCommand.setTabCompleter(commandExecutor); + } + + for (String alias : command.getAliases()) { + registerCommand(fallbackPrefix + ":" + alias, command); + } + + registerCommand(fallbackPrefix + ":" + command.getName(), command); + } + + @Override + protected void _unregister(Command command) { + PluginCommand pluginCommand = Bukkit.getPluginCommand(command.getName()); + + if (pluginCommand != null) { + pluginCommand.setExecutor(null); + pluginCommand.setTabCompleter(null); + } + } + +} diff --git a/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/DefaultBukkitCommandExecutor.java b/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/DefaultBukkitCommandExecutor.java new file mode 100644 index 00000000..01cd9399 --- /dev/null +++ b/bukkit/plugin/src/main/java/team.unnamed.commandflow.bukkit/DefaultBukkitCommandExecutor.java @@ -0,0 +1,17 @@ +package team.unnamed.commandflow.bukkit; + +import team.unnamed.commandflow.CommandManager; + +public class DefaultBukkitCommandExecutor implements BukkitCommandExecutor { + + private final CommandManager commandManager; + + public DefaultBukkitCommandExecutor(CommandManager commandManager) { + this.commandManager = commandManager; + } + + @Override + public CommandManager commandManager() { + return commandManager; + } +} diff --git a/Bukkit/pom.xml b/bukkit/pom.xml similarity index 67% rename from Bukkit/pom.xml rename to bukkit/pom.xml index 1f416ed3..38b030e6 100644 --- a/Bukkit/pom.xml +++ b/bukkit/pom.xml @@ -3,16 +3,22 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - + team.unnamed commandflow - me.fixeddev - 0.6.0 + 0.7.0 + ../pom.xml - ${version.bukkit} commandflow-bukkit - jar + pom + + + commandmap + common + paper + plugin + @@ -29,10 +35,10 @@ provided - me.fixeddev - commandflow-universal - ${version.universal} + team.unnamed + commandflow-api + ${project.version} compile - + \ No newline at end of file diff --git a/Bungee/pom.xml b/bungee/pom.xml similarity index 78% rename from Bungee/pom.xml rename to bungee/pom.xml index f73e62f6..84c13f5a 100644 --- a/Bungee/pom.xml +++ b/bungee/pom.xml @@ -2,15 +2,15 @@ + 4.0.0 - me.fixeddev + team.unnamed commandflow - 0.6.0 + 0.7.0 - 4.0.0 - ${version.bungee} commandflow-bungee + jar @@ -21,9 +21,9 @@ - me.fixeddev - commandflow-universal - ${version.universal} + team.unnamed + commandflow-api + ${project.version} compile diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeAuthorizer.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeAuthorizer.java similarity index 77% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeAuthorizer.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeAuthorizer.java index f4f3c71c..f1397a83 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeAuthorizer.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeAuthorizer.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.bungee; +package team.unnamed.commandflow.bungee; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.Namespace; import net.md_5.bungee.api.CommandSender; public class BungeeAuthorizer implements Authorizer { diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeCommandManager.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeCommandManager.java similarity index 86% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeCommandManager.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeCommandManager.java index c9d4139e..45744791 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeCommandManager.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeCommandManager.java @@ -1,24 +1,24 @@ -package me.fixeddev.commandflow.bungee; - -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.ErrorHandler; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.ParseResult; -import me.fixeddev.commandflow.SimpleCommandManager; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.exception.InvalidSubCommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.exception.NoPermissionsException; -import me.fixeddev.commandflow.executor.Executor; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.translator.Translator; -import me.fixeddev.commandflow.usage.UsageBuilder; +package team.unnamed.commandflow.bungee; + +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.ErrorHandler; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.ParseResult; +import team.unnamed.commandflow.SimpleCommandManager; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.CommandUsage; +import team.unnamed.commandflow.exception.InvalidSubCommandException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.NoPermissionsException; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.UsageBuilder; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.md_5.bungee.api.plugin.Plugin; @@ -30,7 +30,7 @@ public class BungeeCommandManager implements CommandManager { - public static final String SENDER_NAMESPACE = "SENDER"; + public static final String SENDER_NAMESPACE = "sender"; protected final CommandManager commandManager; protected final Plugin plugin; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeCommandWrapper.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeCommandWrapper.java similarity index 89% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeCommandWrapper.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeCommandWrapper.java index 6384aa19..4af1d693 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeCommandWrapper.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeCommandWrapper.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.bungee; +package team.unnamed.commandflow.bungee; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.translator.Translator; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.translator.Translator; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.chat.BaseComponent; @@ -22,7 +22,7 @@ public class BungeeCommandWrapper extends Command implements TabExecutor { protected final String[] aliases; protected final String permission; - public BungeeCommandWrapper(me.fixeddev.commandflow.command.Command command, CommandManager commandManager, + public BungeeCommandWrapper(team.unnamed.commandflow.command.Command command, CommandManager commandManager, Translator translator) { super(command.getName()); diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeDefaultTranslationProvider.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeDefaultTranslationProvider.java similarity index 77% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeDefaultTranslationProvider.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeDefaultTranslationProvider.java index 5361134d..4ce0bb32 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/BungeeDefaultTranslationProvider.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/BungeeDefaultTranslationProvider.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.bungee; +package team.unnamed.commandflow.bungee; -import me.fixeddev.commandflow.translator.DefaultMapTranslationProvider; +import team.unnamed.commandflow.translator.DefaultMapTranslationProvider; public class BungeeDefaultTranslationProvider extends DefaultMapTranslationProvider { diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/MessageUtils.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/MessageUtils.java similarity index 93% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/MessageUtils.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/MessageUtils.java index 7b617541..93538150 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/MessageUtils.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/MessageUtils.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.bungee; +package team.unnamed.commandflow.bungee; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/annotation/ProxiedPlayerOrSource.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/annotation/ProxiedPlayerOrSource.java similarity index 84% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/annotation/ProxiedPlayerOrSource.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/annotation/ProxiedPlayerOrSource.java index 4e15f2d7..aae483fc 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/annotation/ProxiedPlayerOrSource.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/annotation/ProxiedPlayerOrSource.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.bungee.annotation; +package team.unnamed.commandflow.bungee.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/BungeeModule.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/BungeeModule.java similarity index 66% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/BungeeModule.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/factory/BungeeModule.java index fae33a33..4a9406b5 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/BungeeModule.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/BungeeModule.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bungee.factory; +package team.unnamed.commandflow.bungee.factory; -import me.fixeddev.commandflow.annotated.part.AbstractModule; -import me.fixeddev.commandflow.annotated.part.Key; -import me.fixeddev.commandflow.bungee.annotation.Sender; +import team.unnamed.commandflow.annotated.part.AbstractModule; +import team.unnamed.commandflow.annotated.part.Key; +import team.unnamed.commandflow.annotated.annotation.Sender; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/CommandSenderPartFactory.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/CommandSenderPartFactory.java similarity index 56% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/CommandSenderPartFactory.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/factory/CommandSenderPartFactory.java index d27cef6d..a6b3c831 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/CommandSenderPartFactory.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/CommandSenderPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bungee.factory; +package team.unnamed.commandflow.bungee.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bungee.part.CommandSenderPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bungee.part.CommandSenderPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/ProxiedPlayerPartFactory.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/ProxiedPlayerPartFactory.java similarity index 56% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/ProxiedPlayerPartFactory.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/factory/ProxiedPlayerPartFactory.java index a0523717..1fc9f557 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/ProxiedPlayerPartFactory.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/ProxiedPlayerPartFactory.java @@ -1,9 +1,9 @@ -package me.fixeddev.commandflow.bungee.factory; +package team.unnamed.commandflow.bungee.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bungee.annotation.ProxiedPlayerOrSource; -import me.fixeddev.commandflow.bungee.part.ProxiedPlayerPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bungee.annotation.ProxiedPlayerOrSource; +import team.unnamed.commandflow.bungee.part.ProxiedPlayerPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/ProxiedPlayerSenderPartFactory.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/ProxiedPlayerSenderPartFactory.java similarity index 56% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/ProxiedPlayerSenderPartFactory.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/factory/ProxiedPlayerSenderPartFactory.java index e607a1d3..1bf40125 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/factory/ProxiedPlayerSenderPartFactory.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/factory/ProxiedPlayerSenderPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.bungee.factory; +package team.unnamed.commandflow.bungee.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.bungee.part.ProxiedPlayerSenderPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.bungee.part.ProxiedPlayerSenderPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/CommandSenderPart.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/part/CommandSenderPart.java similarity index 74% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/CommandSenderPart.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/part/CommandSenderPart.java index 6c19b727..fbfcbaad 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/CommandSenderPart.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/part/CommandSenderPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bungee.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bungee.BungeeCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bungee.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bungee.BungeeCommandManager; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.CommandSender; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/ProxiedPlayerPart.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/part/ProxiedPlayerPart.java similarity index 88% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/ProxiedPlayerPart.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/part/ProxiedPlayerPart.java index 56feca71..1ba83dc8 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/ProxiedPlayerPart.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/part/ProxiedPlayerPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bungee.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bungee.BungeeCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bungee.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bungee.BungeeCommandManager; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; diff --git a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/ProxiedPlayerSenderPart.java b/bungee/src/main/java/team/unnamed/commandflow/bungee/part/ProxiedPlayerSenderPart.java similarity index 78% rename from Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/ProxiedPlayerSenderPart.java rename to bungee/src/main/java/team/unnamed/commandflow/bungee/part/ProxiedPlayerSenderPart.java index 4014f594..d8b9f0c4 100644 --- a/Bungee/src/main/java/me/fixeddev/commandflow/bungee/part/ProxiedPlayerSenderPart.java +++ b/bungee/src/main/java/team/unnamed/commandflow/bungee/part/ProxiedPlayerSenderPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.bungee.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.bungee.BungeeCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.bungee.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.bungee.BungeeCommandManager; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.connection.ProxiedPlayer; diff --git a/Discord/pom.xml b/discord/pom.xml similarity index 78% rename from Discord/pom.xml rename to discord/pom.xml index ccf459a3..d2b2d406 100644 --- a/Discord/pom.xml +++ b/discord/pom.xml @@ -2,14 +2,13 @@ + 4.0.0 + team.unnamed commandflow - me.fixeddev - 0.6.0 + 0.7.0 + ../pom.xml - 4.0.0 - - ${version.discord} commandflow-discord jar @@ -28,9 +27,9 @@ 5.0.0-beta.17 - me.fixeddev - commandflow-universal - ${version.universal} + team.unnamed + commandflow-api + ${project.version} compile diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordAuthorizer.java b/discord/src/main/java/team/unnamed/commandflow/discord/DiscordAuthorizer.java similarity index 89% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordAuthorizer.java rename to discord/src/main/java/team/unnamed/commandflow/discord/DiscordAuthorizer.java index ec5c0f98..98550031 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordAuthorizer.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/DiscordAuthorizer.java @@ -1,7 +1,7 @@ -package me.fixeddev.commandflow.discord; +package team.unnamed.commandflow.discord; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.Namespace; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordCommandManager.java b/discord/src/main/java/team/unnamed/commandflow/discord/DiscordCommandManager.java similarity index 85% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordCommandManager.java rename to discord/src/main/java/team/unnamed/commandflow/discord/DiscordCommandManager.java index b0067033..d4f29d87 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordCommandManager.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/DiscordCommandManager.java @@ -1,27 +1,26 @@ -package me.fixeddev.commandflow.discord; - -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.ErrorHandler; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.ParseResult; -import me.fixeddev.commandflow.SimpleCommandManager; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.exception.InvalidSubCommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.exception.NoPermissionsException; -import me.fixeddev.commandflow.executor.Executor; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.translator.Translator; -import me.fixeddev.commandflow.usage.UsageBuilder; +package team.unnamed.commandflow.discord; + +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.ErrorHandler; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.ParseResult; +import team.unnamed.commandflow.SimpleCommandManager; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.CommandUsage; +import team.unnamed.commandflow.exception.InvalidSubCommandException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.NoPermissionsException; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.UsageBuilder; import net.dv8tion.jda.api.JDA; -import java.security.MessageDigest; import java.util.List; import java.util.Optional; import java.util.Set; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordDefaultTranslationProvider.java b/discord/src/main/java/team/unnamed/commandflow/discord/DiscordDefaultTranslationProvider.java similarity index 75% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordDefaultTranslationProvider.java rename to discord/src/main/java/team/unnamed/commandflow/discord/DiscordDefaultTranslationProvider.java index 13f8a72a..31c33b31 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/DiscordDefaultTranslationProvider.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/DiscordDefaultTranslationProvider.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.discord; +package team.unnamed.commandflow.discord; -import me.fixeddev.commandflow.translator.DefaultMapTranslationProvider; +import team.unnamed.commandflow.translator.DefaultMapTranslationProvider; public class DiscordDefaultTranslationProvider extends DefaultMapTranslationProvider { diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/MessageListener.java b/discord/src/main/java/team/unnamed/commandflow/discord/MessageListener.java similarity index 84% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/MessageListener.java rename to discord/src/main/java/team/unnamed/commandflow/discord/MessageListener.java index 96f44d2d..a8f09de9 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/MessageListener.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/MessageListener.java @@ -1,14 +1,9 @@ -package me.fixeddev.commandflow.discord; - -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.discord.utils.MessageUtils; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.exception.InvalidSubCommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.exception.NoPermissionsException; +package team.unnamed.commandflow.discord; + +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.discord.utils.MessageUtils; +import team.unnamed.commandflow.exception.CommandException; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/DiscordModule.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/DiscordModule.java similarity index 76% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/DiscordModule.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/DiscordModule.java index 531564cd..f32dfb2d 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/DiscordModule.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/DiscordModule.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.AbstractModule; -import me.fixeddev.commandflow.annotated.part.Key; -import me.fixeddev.commandflow.discord.annotation.Sender; +import team.unnamed.commandflow.annotated.part.AbstractModule; +import team.unnamed.commandflow.annotated.part.Key; +import team.unnamed.commandflow.annotated.annotation.Sender; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MemberPartFactory.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/MemberPartFactory.java similarity index 55% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MemberPartFactory.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/MemberPartFactory.java index 918dd3e6..5e827bf8 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MemberPartFactory.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/MemberPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.discord.part.MemberPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.discord.part.MemberPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MemberSenderPartFactory.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/MemberSenderPartFactory.java similarity index 55% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MemberSenderPartFactory.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/MemberSenderPartFactory.java index f302c1f2..71c09b7c 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MemberSenderPartFactory.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/MemberSenderPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.discord.part.MemberSenderPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.discord.part.MemberSenderPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MessagePartFactory.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/MessagePartFactory.java similarity index 55% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MessagePartFactory.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/MessagePartFactory.java index c6de5af3..9673c10b 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/MessagePartFactory.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/MessagePartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.discord.part.MessagePart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.discord.part.MessagePart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/TextChannelPartFactory.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/TextChannelPartFactory.java similarity index 55% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/TextChannelPartFactory.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/TextChannelPartFactory.java index 741141e1..0d4b94b2 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/TextChannelPartFactory.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/TextChannelPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.discord.part.TextChannelPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.discord.part.TextChannelPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/UserPartFactory.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/UserPartFactory.java similarity index 55% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/UserPartFactory.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/UserPartFactory.java index e4098a7e..6245b5fc 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/UserPartFactory.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/UserPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.discord.part.UserPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.discord.part.UserPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/UserSenderPartFactory.java b/discord/src/main/java/team/unnamed/commandflow/discord/factory/UserSenderPartFactory.java similarity index 55% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/factory/UserSenderPartFactory.java rename to discord/src/main/java/team/unnamed/commandflow/discord/factory/UserSenderPartFactory.java index c7a5bcb5..ffb5bcb4 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/factory/UserSenderPartFactory.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/factory/UserSenderPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.discord.factory; +package team.unnamed.commandflow.discord.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.discord.part.UserSenderPart; -import me.fixeddev.commandflow.part.CommandPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.discord.part.UserSenderPart; +import team.unnamed.commandflow.part.CommandPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/MemberPart.java b/discord/src/main/java/team/unnamed/commandflow/discord/part/MemberPart.java similarity index 80% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/part/MemberPart.java rename to discord/src/main/java/team/unnamed/commandflow/discord/part/MemberPart.java index 27360bf3..7b7d6e18 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/MemberPart.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/part/MemberPart.java @@ -1,12 +1,12 @@ -package me.fixeddev.commandflow.discord.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.discord.DiscordCommandManager; -import me.fixeddev.commandflow.discord.utils.ArgumentsUtils; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.discord.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.discord.DiscordCommandManager; +import team.unnamed.commandflow.discord.utils.ArgumentsUtils; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/MemberSenderPart.java b/discord/src/main/java/team/unnamed/commandflow/discord/part/MemberSenderPart.java similarity index 74% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/part/MemberSenderPart.java rename to discord/src/main/java/team/unnamed/commandflow/discord/part/MemberSenderPart.java index b1f36cbb..1b15fc91 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/MemberSenderPart.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/part/MemberSenderPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.discord.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.discord.DiscordCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.discord.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.discord.DiscordCommandManager; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.dv8tion.jda.api.entities.Member; import net.kyori.adventure.text.Component; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/MessagePart.java b/discord/src/main/java/team/unnamed/commandflow/discord/part/MessagePart.java similarity index 73% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/part/MessagePart.java rename to discord/src/main/java/team/unnamed/commandflow/discord/part/MessagePart.java index 020b77b1..e7fcea19 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/MessagePart.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/part/MessagePart.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.discord.part; +package team.unnamed.commandflow.discord.part; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.discord.DiscordCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.discord.DiscordCommandManager; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.dv8tion.jda.api.entities.Message; import java.util.Objects; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/TextChannelPart.java b/discord/src/main/java/team/unnamed/commandflow/discord/part/TextChannelPart.java similarity index 79% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/part/TextChannelPart.java rename to discord/src/main/java/team/unnamed/commandflow/discord/part/TextChannelPart.java index d0448d95..45f1039f 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/TextChannelPart.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/part/TextChannelPart.java @@ -1,12 +1,12 @@ -package me.fixeddev.commandflow.discord.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.discord.DiscordCommandManager; -import me.fixeddev.commandflow.discord.utils.ArgumentsUtils; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.discord.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.discord.DiscordCommandManager; +import team.unnamed.commandflow.discord.utils.ArgumentsUtils; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.kyori.adventure.text.Component; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/UserPart.java b/discord/src/main/java/team/unnamed/commandflow/discord/part/UserPart.java similarity index 77% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/part/UserPart.java rename to discord/src/main/java/team/unnamed/commandflow/discord/part/UserPart.java index c7f65eec..a9cd4816 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/UserPart.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/part/UserPart.java @@ -1,12 +1,12 @@ -package me.fixeddev.commandflow.discord.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.discord.DiscordCommandManager; -import me.fixeddev.commandflow.discord.utils.ArgumentsUtils; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.discord.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.discord.DiscordCommandManager; +import team.unnamed.commandflow.discord.utils.ArgumentsUtils; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.User; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/UserSenderPart.java b/discord/src/main/java/team/unnamed/commandflow/discord/part/UserSenderPart.java similarity index 65% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/part/UserSenderPart.java rename to discord/src/main/java/team/unnamed/commandflow/discord/part/UserSenderPart.java index e151e34f..8645b852 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/part/UserSenderPart.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/part/UserSenderPart.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.discord.part; - -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.discord.DiscordCommandManager; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; +package team.unnamed.commandflow.discord.part; + +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.discord.DiscordCommandManager; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; import net.dv8tion.jda.api.entities.User; import net.kyori.adventure.text.Component; diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/utils/ArgumentsUtils.java b/discord/src/main/java/team/unnamed/commandflow/discord/utils/ArgumentsUtils.java similarity index 96% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/utils/ArgumentsUtils.java rename to discord/src/main/java/team/unnamed/commandflow/discord/utils/ArgumentsUtils.java index 160d6e4e..87b997bf 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/utils/ArgumentsUtils.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/utils/ArgumentsUtils.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.discord.utils; +package team.unnamed.commandflow.discord.utils; public final class ArgumentsUtils { diff --git a/Discord/src/main/java/me/fixeddev/commandflow/discord/utils/MessageUtils.java b/discord/src/main/java/team/unnamed/commandflow/discord/utils/MessageUtils.java similarity index 88% rename from Discord/src/main/java/me/fixeddev/commandflow/discord/utils/MessageUtils.java rename to discord/src/main/java/team/unnamed/commandflow/discord/utils/MessageUtils.java index 9280b82b..f76be656 100644 --- a/Discord/src/main/java/me/fixeddev/commandflow/discord/utils/MessageUtils.java +++ b/discord/src/main/java/team/unnamed/commandflow/discord/utils/MessageUtils.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.discord.utils; +package team.unnamed.commandflow.discord.utils; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; diff --git a/docs/imperatively/argument.md b/docs/imperatively/argument.md index 81fa8941..066aba11 100644 --- a/docs/imperatively/argument.md +++ b/docs/imperatively/argument.md @@ -4,7 +4,7 @@ Check this command example with a single argument: ```java -import static me.fixeddev.commandflow.part.Parts.*; + //... diff --git a/docs/installation.md b/docs/installation.md index 1c21ea84..8b4fc1bd 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -11,7 +11,7 @@ repositories { ``` ```kotlin dependencies { - implementation("me.fixeddev:commandflow-universal:%%REPLACE_latestReleaseOrSnapshot{me.fixeddev:commandflow-universal}%%") + implementation("team.unnamed:commandflow-api:%%REPLACE_latestReleaseOrSnapshot{team.unnamed:commandflow-api}%%") } ``` @@ -24,8 +24,8 @@ dependencies { ``` ```xml - me.fixeddev - commandflow-universal - %%REPLACE_latestReleaseOrSnapshot{me.fixeddev:commandflow-universal}%% + team.unnamed + commandflow-api + %%REPLACE_latestReleaseOrSnapshot{team.unnamed:commandflow-api}%% ``` diff --git a/docs/platforms/bukkit.md b/docs/platforms/bukkit.md index fb5a46b2..1c5e9138 100644 --- a/docs/platforms/bukkit.md +++ b/docs/platforms/bukkit.md @@ -8,7 +8,7 @@ subproject that can be included in your project by doing the following: ```kotlin dependencies { // ... - implementation("me.fixeddev:commandflow-bukkit:%%REPLACE_latestReleaseOrSnapshot{me.fixeddev:commandflow-bukkit}%%") + implementation("team.unnamed:commandflow-bukkit:%%REPLACE_latestReleaseOrSnapshot{team.unnamed:commandflow-bukkit}%%") } ``` @@ -17,9 +17,9 @@ dependencies { - me.fixeddev + team.unnamed commandflow-bukkit - %%REPLACE_latestReleaseOrSnapshot{me.fixeddev:commandflow-bukkit}%% + %%REPLACE_latestReleaseOrSnapshot{team.unnamed:commandflow-bukkit}%% ``` diff --git a/pom.xml b/pom.xml index b94cef60..2724a8ad 100644 --- a/pom.xml +++ b/pom.xml @@ -4,16 +4,16 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - me.fixeddev + team.unnamed commandflow - 0.6.0 + 0.7.0 - Universal - Bukkit - Discord - Bungee - Velocity - Brigadier + api + discord + bungee + velocity + bukkit + brigadier pom @@ -42,14 +42,7 @@ UTF-8 - - 0.6.0 - 0.6.0 - 0.6.0 - 0.6.0 - 0.6.0 - 0.6.0 - 0.6.0 + 0.7.0 diff --git a/Velocity/pom.xml b/velocity/pom.xml similarity index 76% rename from Velocity/pom.xml rename to velocity/pom.xml index 8a2d24d1..c3a41267 100644 --- a/Velocity/pom.xml +++ b/velocity/pom.xml @@ -2,15 +2,15 @@ + 4.0.0 - me.fixeddev + team.unnamed commandflow - 0.6.0 + 0.7.0 + ../pom.xml - 4.0.0 - - ${version.velocity} commandflow-velocity + jar @@ -21,9 +21,9 @@ - me.fixeddev - commandflow-universal - ${version.universal} + team.unnamed + commandflow-api + ${project.version} compile diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityAuthorizer.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityAuthorizer.java similarity index 77% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityAuthorizer.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityAuthorizer.java index d19f4f5a..c2ea6783 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityAuthorizer.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityAuthorizer.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.velocity; +package team.unnamed.commandflow.velocity; import com.velocitypowered.api.command.CommandSource; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.Namespace; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.Namespace; public class VelocityAuthorizer implements Authorizer { diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityCommandManager.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityCommandManager.java similarity index 86% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityCommandManager.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityCommandManager.java index 67f1242b..0d76fa53 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityCommandManager.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityCommandManager.java @@ -1,33 +1,33 @@ -package me.fixeddev.commandflow.velocity; +package team.unnamed.commandflow.velocity; import com.velocitypowered.api.command.CommandMeta; import com.velocitypowered.api.proxy.ProxyServer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.ErrorHandler; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.SimpleCommandManager; -import me.fixeddev.commandflow.Authorizer; -import me.fixeddev.commandflow.ParseResult; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.command.modifiers.FallbackCommandModifiers; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.exception.CommandUsage; -import me.fixeddev.commandflow.exception.InvalidSubCommandException; -import me.fixeddev.commandflow.exception.NoMoreArgumentsException; -import me.fixeddev.commandflow.exception.NoPermissionsException; -import me.fixeddev.commandflow.executor.Executor; -import me.fixeddev.commandflow.input.InputTokenizer; -import me.fixeddev.commandflow.translator.Translator; -import me.fixeddev.commandflow.usage.UsageBuilder; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.ErrorHandler; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.SimpleCommandManager; +import team.unnamed.commandflow.Authorizer; +import team.unnamed.commandflow.ParseResult; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.command.modifiers.FallbackCommandModifiers; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.exception.CommandUsage; +import team.unnamed.commandflow.exception.InvalidSubCommandException; +import team.unnamed.commandflow.exception.NoMoreArgumentsException; +import team.unnamed.commandflow.exception.NoPermissionsException; +import team.unnamed.commandflow.executor.Executor; +import team.unnamed.commandflow.input.InputTokenizer; +import team.unnamed.commandflow.translator.Translator; +import team.unnamed.commandflow.usage.UsageBuilder; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import java.util.*; public class VelocityCommandManager implements CommandManager { - public static final String SENDER_NAMESPACE = "SENDER"; + public static final String SENDER_NAMESPACE = "sender"; protected final ProxyServer proxyServer; protected final CommandManager commandManager; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityCommandWrapper.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityCommandWrapper.java similarity index 91% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityCommandWrapper.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityCommandWrapper.java index b8bd7b23..1bad017f 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityCommandWrapper.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityCommandWrapper.java @@ -1,12 +1,12 @@ -package me.fixeddev.commandflow.velocity; +package team.unnamed.commandflow.velocity; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.RawCommand; -import me.fixeddev.commandflow.CommandManager; -import me.fixeddev.commandflow.Namespace; -import me.fixeddev.commandflow.command.Command; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.translator.Translator; +import team.unnamed.commandflow.CommandManager; +import team.unnamed.commandflow.Namespace; +import team.unnamed.commandflow.command.Command; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.translator.Translator; import net.kyori.adventure.text.Component; import java.util.List; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityDefaultTranslationProvider.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityDefaultTranslationProvider.java similarity index 77% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityDefaultTranslationProvider.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityDefaultTranslationProvider.java index bac51eb0..b1ed86f8 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/VelocityDefaultTranslationProvider.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/VelocityDefaultTranslationProvider.java @@ -1,6 +1,6 @@ -package me.fixeddev.commandflow.velocity; +package team.unnamed.commandflow.velocity; -import me.fixeddev.commandflow.translator.DefaultMapTranslationProvider; +import team.unnamed.commandflow.translator.DefaultMapTranslationProvider; public class VelocityDefaultTranslationProvider extends DefaultMapTranslationProvider { diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/annotation/PlayerOrSource.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/annotation/PlayerOrSource.java similarity index 83% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/annotation/PlayerOrSource.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/annotation/PlayerOrSource.java index 393c641b..7fcd5df3 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/annotation/PlayerOrSource.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/annotation/PlayerOrSource.java @@ -1,4 +1,4 @@ -package me.fixeddev.commandflow.velocity.annotation; +package team.unnamed.commandflow.velocity.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/CommandSourcePartFactory.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/CommandSourcePartFactory.java similarity index 55% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/CommandSourcePartFactory.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/factory/CommandSourcePartFactory.java index 8a7d88da..cbf06c96 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/CommandSourcePartFactory.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/CommandSourcePartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.velocity.factory; +package team.unnamed.commandflow.velocity.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.velocity.part.CommandSenderPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.velocity.part.CommandSenderPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/PlayerPartFactory.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/PlayerPartFactory.java similarity index 66% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/PlayerPartFactory.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/factory/PlayerPartFactory.java index c81814ba..dee55930 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/PlayerPartFactory.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/PlayerPartFactory.java @@ -1,10 +1,10 @@ -package me.fixeddev.commandflow.velocity.factory; +package team.unnamed.commandflow.velocity.factory; import com.velocitypowered.api.proxy.ProxyServer; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.velocity.annotation.PlayerOrSource; -import me.fixeddev.commandflow.velocity.part.PlayerPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.velocity.annotation.PlayerOrSource; +import team.unnamed.commandflow.velocity.part.PlayerPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/PlayerSenderPartFactory.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/PlayerSenderPartFactory.java similarity index 55% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/PlayerSenderPartFactory.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/factory/PlayerSenderPartFactory.java index 6fb95ae2..079f5d00 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/PlayerSenderPartFactory.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/PlayerSenderPartFactory.java @@ -1,8 +1,8 @@ -package me.fixeddev.commandflow.velocity.factory; +package team.unnamed.commandflow.velocity.factory; -import me.fixeddev.commandflow.annotated.part.PartFactory; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.velocity.part.PlayerSenderPart; +import team.unnamed.commandflow.annotated.part.PartFactory; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.velocity.part.PlayerSenderPart; import java.lang.annotation.Annotation; import java.util.List; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/VelocityModule.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/VelocityModule.java similarity index 73% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/VelocityModule.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/factory/VelocityModule.java index 92371d24..21372c37 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/factory/VelocityModule.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/factory/VelocityModule.java @@ -1,11 +1,11 @@ -package me.fixeddev.commandflow.velocity.factory; +package team.unnamed.commandflow.velocity.factory; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ProxyServer; -import me.fixeddev.commandflow.annotated.part.AbstractModule; -import me.fixeddev.commandflow.annotated.part.Key; -import me.fixeddev.commandflow.velocity.annotation.Sender; +import team.unnamed.commandflow.annotated.part.AbstractModule; +import team.unnamed.commandflow.annotated.part.Key; +import team.unnamed.commandflow.annotated.annotation.Sender; public class VelocityModule extends AbstractModule { diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/CommandSenderPart.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/part/CommandSenderPart.java similarity index 74% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/CommandSenderPart.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/part/CommandSenderPart.java index 8ee0eece..2641b471 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/CommandSenderPart.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/part/CommandSenderPart.java @@ -1,12 +1,12 @@ -package me.fixeddev.commandflow.velocity.part; +package team.unnamed.commandflow.velocity.part; import com.velocitypowered.api.command.CommandSource; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.velocity.VelocityCommandManager; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.velocity.VelocityCommandManager; import net.kyori.adventure.text.Component; import java.util.Objects; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/PlayerPart.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/part/PlayerPart.java similarity index 84% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/PlayerPart.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/part/PlayerPart.java index 28f30bcc..b00a3018 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/PlayerPart.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/part/PlayerPart.java @@ -1,14 +1,14 @@ -package me.fixeddev.commandflow.velocity.part; +package team.unnamed.commandflow.velocity.part; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ProxyServer; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.part.ArgumentPart; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.velocity.VelocityCommandManager; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.part.ArgumentPart; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.velocity.VelocityCommandManager; import net.kyori.adventure.text.Component; diff --git a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/PlayerSenderPart.java b/velocity/src/main/java/team/unnamed/commandflow/velocity/part/PlayerSenderPart.java similarity index 77% rename from Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/PlayerSenderPart.java rename to velocity/src/main/java/team/unnamed/commandflow/velocity/part/PlayerSenderPart.java index b13041f3..ebec0caf 100644 --- a/Velocity/src/main/java/me/fixeddev/commandflow/velocity/part/PlayerSenderPart.java +++ b/velocity/src/main/java/team/unnamed/commandflow/velocity/part/PlayerSenderPart.java @@ -1,13 +1,13 @@ -package me.fixeddev.commandflow.velocity.part; +package team.unnamed.commandflow.velocity.part; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; -import me.fixeddev.commandflow.CommandContext; -import me.fixeddev.commandflow.exception.ArgumentParseException; -import me.fixeddev.commandflow.exception.CommandException; -import me.fixeddev.commandflow.part.CommandPart; -import me.fixeddev.commandflow.stack.ArgumentStack; -import me.fixeddev.commandflow.velocity.VelocityCommandManager; +import team.unnamed.commandflow.CommandContext; +import team.unnamed.commandflow.exception.ArgumentParseException; +import team.unnamed.commandflow.exception.CommandException; +import team.unnamed.commandflow.part.CommandPart; +import team.unnamed.commandflow.stack.ArgumentStack; +import team.unnamed.commandflow.velocity.VelocityCommandManager; import net.kyori.adventure.text.Component; import java.util.Objects;