diff --git a/README.md b/README.md
index 8136d606..a717fa1f 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ dependencies {
```xml
- dev.velix
+ dev.velix.imperat
Imperat-PLATFORM
VERSION
diff --git a/adventure/src/main/java/dev/velix/adventure/AdventureProvider.java b/adventure/src/main/java/dev/velix/imperat/adventure/AdventureProvider.java
similarity index 97%
rename from adventure/src/main/java/dev/velix/adventure/AdventureProvider.java
rename to adventure/src/main/java/dev/velix/imperat/adventure/AdventureProvider.java
index 138cfb4f..a4960d06 100644
--- a/adventure/src/main/java/dev/velix/adventure/AdventureProvider.java
+++ b/adventure/src/main/java/dev/velix/imperat/adventure/AdventureProvider.java
@@ -1,6 +1,6 @@
-package dev.velix.adventure;
+package dev.velix.imperat.adventure;
-import dev.velix.context.Source;
+import dev.velix.imperat.context.Source;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.ComponentLike;
diff --git a/adventure/src/main/java/dev/velix/adventure/CastingAdventure.java b/adventure/src/main/java/dev/velix/imperat/adventure/CastingAdventure.java
similarity index 85%
rename from adventure/src/main/java/dev/velix/adventure/CastingAdventure.java
rename to adventure/src/main/java/dev/velix/imperat/adventure/CastingAdventure.java
index 5d914517..aa213f4b 100644
--- a/adventure/src/main/java/dev/velix/adventure/CastingAdventure.java
+++ b/adventure/src/main/java/dev/velix/imperat/adventure/CastingAdventure.java
@@ -1,4 +1,4 @@
-package dev.velix.adventure;
+package dev.velix.imperat.adventure;
import net.kyori.adventure.audience.Audience;
diff --git a/adventure/src/main/java/dev/velix/adventure/EmptyAdventure.java b/adventure/src/main/java/dev/velix/imperat/adventure/EmptyAdventure.java
similarity index 88%
rename from adventure/src/main/java/dev/velix/adventure/EmptyAdventure.java
rename to adventure/src/main/java/dev/velix/imperat/adventure/EmptyAdventure.java
index f1f9d94c..f0e0eabf 100644
--- a/adventure/src/main/java/dev/velix/adventure/EmptyAdventure.java
+++ b/adventure/src/main/java/dev/velix/imperat/adventure/EmptyAdventure.java
@@ -1,6 +1,6 @@
-package dev.velix.adventure;
+package dev.velix.imperat.adventure;
-import dev.velix.context.Source;
+import dev.velix.imperat.context.Source;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.ComponentLike;
diff --git a/brigadier/src/main/java/dev/velix/ArgumentTypeResolver.java b/brigadier/src/main/java/dev/velix/imperat/ArgumentTypeResolver.java
similarity index 93%
rename from brigadier/src/main/java/dev/velix/ArgumentTypeResolver.java
rename to brigadier/src/main/java/dev/velix/imperat/ArgumentTypeResolver.java
index bcaaaace..5eb1f578 100644
--- a/brigadier/src/main/java/dev/velix/ArgumentTypeResolver.java
+++ b/brigadier/src/main/java/dev/velix/imperat/ArgumentTypeResolver.java
@@ -1,8 +1,8 @@
-package dev.velix;
+package dev.velix.imperat;
import com.mojang.brigadier.arguments.ArgumentType;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/brigadier/src/main/java/dev/velix/BrigadierManager.java b/brigadier/src/main/java/dev/velix/imperat/BrigadierManager.java
similarity index 90%
rename from brigadier/src/main/java/dev/velix/BrigadierManager.java
rename to brigadier/src/main/java/dev/velix/imperat/BrigadierManager.java
index 83667f12..295d0007 100644
--- a/brigadier/src/main/java/dev/velix/BrigadierManager.java
+++ b/brigadier/src/main/java/dev/velix/imperat/BrigadierManager.java
@@ -1,9 +1,9 @@
-package dev.velix;
+package dev.velix.imperat;
import com.mojang.brigadier.arguments.ArgumentType;
-import dev.velix.command.Command;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/brigadier/src/main/java/dev/velix/BrigadierNode.java b/brigadier/src/main/java/dev/velix/imperat/BrigadierNode.java
similarity index 97%
rename from brigadier/src/main/java/dev/velix/BrigadierNode.java
rename to brigadier/src/main/java/dev/velix/imperat/BrigadierNode.java
index f3ded786..bc423c2d 100644
--- a/brigadier/src/main/java/dev/velix/BrigadierNode.java
+++ b/brigadier/src/main/java/dev/velix/imperat/BrigadierNode.java
@@ -1,11 +1,11 @@
-package dev.velix;
+package dev.velix.imperat;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.builder.ArgumentBuilder;
import com.mojang.brigadier.suggestion.SuggestionProvider;
import com.mojang.brigadier.tree.ArgumentCommandNode;
import com.mojang.brigadier.tree.CommandNode;
-import dev.velix.context.Source;
+import dev.velix.imperat.context.Source;
import java.util.function.Predicate;
diff --git a/brigadier/src/main/java/dev/velix/NodeModifier.java b/brigadier/src/main/java/dev/velix/imperat/NodeModifier.java
similarity index 98%
rename from brigadier/src/main/java/dev/velix/NodeModifier.java
rename to brigadier/src/main/java/dev/velix/imperat/NodeModifier.java
index ad56a9e0..0c7ab25e 100644
--- a/brigadier/src/main/java/dev/velix/NodeModifier.java
+++ b/brigadier/src/main/java/dev/velix/imperat/NodeModifier.java
@@ -1,4 +1,4 @@
-package dev.velix;
+package dev.velix.imperat;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.suggestion.SuggestionProvider;
diff --git a/bukkit/src/main/java/dev/velix/BukkitCommand.java b/bukkit/src/main/java/dev/velix/imperat/BukkitCommand.java
similarity index 68%
rename from bukkit/src/main/java/dev/velix/BukkitCommand.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitCommand.java
index 00b8d399..f46778c6 100644
--- a/bukkit/src/main/java/dev/velix/BukkitCommand.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitCommand.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.Command;
public interface BukkitCommand {
diff --git a/bukkit/src/main/java/dev/velix/BukkitContextResolverFactory.java b/bukkit/src/main/java/dev/velix/imperat/BukkitContextResolverFactory.java
similarity index 54%
rename from bukkit/src/main/java/dev/velix/BukkitContextResolverFactory.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitContextResolverFactory.java
index 44be7f16..fc58873f 100644
--- a/bukkit/src/main/java/dev/velix/BukkitContextResolverFactory.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitContextResolverFactory.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.ContextResolverFactory;
+import dev.velix.imperat.command.ContextResolverFactory;
public interface BukkitContextResolverFactory extends ContextResolverFactory {
diff --git a/bukkit/src/main/java/dev/velix/BukkitImperat.java b/bukkit/src/main/java/dev/velix/imperat/BukkitImperat.java
similarity index 90%
rename from bukkit/src/main/java/dev/velix/BukkitImperat.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitImperat.java
index f5507545..16f6bec3 100644
--- a/bukkit/src/main/java/dev/velix/BukkitImperat.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitImperat.java
@@ -1,22 +1,22 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.adventure.AdventureProvider;
-import dev.velix.adventure.BukkitAdventure;
-import dev.velix.adventure.CastingAdventure;
-import dev.velix.adventure.EmptyAdventure;
-import dev.velix.brigadier.BukkitBrigadierManager;
-import dev.velix.command.BaseImperat;
-import dev.velix.command.Command;
-import dev.velix.exception.InvalidUUIDException;
-import dev.velix.exception.UnknownOfflinePlayerException;
-import dev.velix.exception.UnknownPlayerException;
-import dev.velix.exception.UnknownWorldException;
-import dev.velix.resolvers.BukkitPermissionResolver;
-import dev.velix.resolvers.PermissionResolver;
-import dev.velix.util.ImperatDebugger;
-import dev.velix.util.Preconditions;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.reflection.Reflections;
+import dev.velix.imperat.adventure.AdventureProvider;
+import dev.velix.imperat.adventure.BukkitAdventure;
+import dev.velix.imperat.adventure.CastingAdventure;
+import dev.velix.imperat.adventure.EmptyAdventure;
+import dev.velix.imperat.brigadier.BukkitBrigadierManager;
+import dev.velix.imperat.command.BaseImperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.exception.InvalidUUIDException;
+import dev.velix.imperat.exception.UnknownOfflinePlayerException;
+import dev.velix.imperat.exception.UnknownPlayerException;
+import dev.velix.imperat.exception.UnknownWorldException;
+import dev.velix.imperat.resolvers.BukkitPermissionResolver;
+import dev.velix.imperat.resolvers.PermissionResolver;
+import dev.velix.imperat.util.ImperatDebugger;
+import dev.velix.imperat.util.Preconditions;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.reflection.Reflections;
import net.kyori.adventure.audience.Audience;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
diff --git a/bukkit/src/main/java/dev/velix/BukkitSource.java b/bukkit/src/main/java/dev/velix/imperat/BukkitSource.java
similarity index 94%
rename from bukkit/src/main/java/dev/velix/BukkitSource.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitSource.java
index 8e243286..49edd89a 100644
--- a/bukkit/src/main/java/dev/velix/BukkitSource.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitSource.java
@@ -1,7 +1,7 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.adventure.AdventureProvider;
-import dev.velix.context.Source;
+import dev.velix.imperat.adventure.AdventureProvider;
+import dev.velix.imperat.context.Source;
import net.kyori.adventure.text.ComponentLike;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
diff --git a/bukkit/src/main/java/dev/velix/BukkitSuggestionResolvers.java b/bukkit/src/main/java/dev/velix/imperat/BukkitSuggestionResolvers.java
similarity index 83%
rename from bukkit/src/main/java/dev/velix/BukkitSuggestionResolvers.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitSuggestionResolvers.java
index e13114ef..be5b4f46 100644
--- a/bukkit/src/main/java/dev/velix/BukkitSuggestionResolvers.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitSuggestionResolvers.java
@@ -1,10 +1,10 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.BukkitSuggestionResolver;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.BukkitSuggestionResolver;
+import dev.velix.imperat.util.TypeWrap;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
diff --git a/bukkit/src/main/java/dev/velix/BukkitUsage.java b/bukkit/src/main/java/dev/velix/imperat/BukkitUsage.java
similarity index 66%
rename from bukkit/src/main/java/dev/velix/BukkitUsage.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitUsage.java
index 65900019..af10a8da 100644
--- a/bukkit/src/main/java/dev/velix/BukkitUsage.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitUsage.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.CommandUsage;
+import dev.velix.imperat.command.CommandUsage;
public interface BukkitUsage {
diff --git a/bukkit/src/main/java/dev/velix/BukkitUtil.java b/bukkit/src/main/java/dev/velix/imperat/BukkitUtil.java
similarity index 95%
rename from bukkit/src/main/java/dev/velix/BukkitUtil.java
rename to bukkit/src/main/java/dev/velix/imperat/BukkitUtil.java
index 436f321e..2786fae4 100644
--- a/bukkit/src/main/java/dev/velix/BukkitUtil.java
+++ b/bukkit/src/main/java/dev/velix/imperat/BukkitUtil.java
@@ -1,8 +1,8 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.util.ImperatDebugger;
-import dev.velix.util.reflection.FieldAccessor;
-import dev.velix.util.reflection.Reflections;
+import dev.velix.imperat.util.ImperatDebugger;
+import dev.velix.imperat.util.reflection.FieldAccessor;
+import dev.velix.imperat.util.reflection.Reflections;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandMap;
import org.bukkit.command.SimpleCommandMap;
diff --git a/bukkit/src/main/java/dev/velix/InternalBukkitCommand.java b/bukkit/src/main/java/dev/velix/imperat/InternalBukkitCommand.java
similarity index 93%
rename from bukkit/src/main/java/dev/velix/InternalBukkitCommand.java
rename to bukkit/src/main/java/dev/velix/imperat/InternalBukkitCommand.java
index e297bc16..a20cbc7f 100644
--- a/bukkit/src/main/java/dev/velix/InternalBukkitCommand.java
+++ b/bukkit/src/main/java/dev/velix/imperat/InternalBukkitCommand.java
@@ -1,8 +1,8 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.util.ImperatDebugger;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.util.ImperatDebugger;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginIdentifiableCommand;
import org.bukkit.plugin.Plugin;
diff --git a/bukkit/src/main/java/dev/velix/adventure/BukkitAdventure.java b/bukkit/src/main/java/dev/velix/imperat/adventure/BukkitAdventure.java
similarity index 94%
rename from bukkit/src/main/java/dev/velix/adventure/BukkitAdventure.java
rename to bukkit/src/main/java/dev/velix/imperat/adventure/BukkitAdventure.java
index 71173e49..3386e2cc 100644
--- a/bukkit/src/main/java/dev/velix/adventure/BukkitAdventure.java
+++ b/bukkit/src/main/java/dev/velix/imperat/adventure/BukkitAdventure.java
@@ -1,4 +1,4 @@
-package dev.velix.adventure;
+package dev.velix.imperat.adventure;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
diff --git a/bukkit/src/main/java/dev/velix/brigadier/BukkitBrigadierManager.java b/bukkit/src/main/java/dev/velix/imperat/brigadier/BukkitBrigadierManager.java
similarity index 93%
rename from bukkit/src/main/java/dev/velix/brigadier/BukkitBrigadierManager.java
rename to bukkit/src/main/java/dev/velix/imperat/brigadier/BukkitBrigadierManager.java
index ee47af2e..fd4d3074 100644
--- a/bukkit/src/main/java/dev/velix/brigadier/BukkitBrigadierManager.java
+++ b/bukkit/src/main/java/dev/velix/imperat/brigadier/BukkitBrigadierManager.java
@@ -1,23 +1,23 @@
-package dev.velix.brigadier;
+package dev.velix.imperat.brigadier;
import com.mojang.brigadier.LiteralMessage;
import com.mojang.brigadier.Message;
import com.mojang.brigadier.arguments.ArgumentType;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.suggestion.SuggestionProvider;
-import dev.velix.*;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.Description;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.FlagParameter;
-import dev.velix.command.suggestions.CompletionArg;
-import dev.velix.commodore.Commodore;
-import dev.velix.commodore.CommodoreProvider;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.SuggestionResolver;
+import dev.velix.imperat.*;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.Description;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.FlagParameter;
+import dev.velix.imperat.command.suggestions.CompletionArg;
+import dev.velix.imperat.commodore.Commodore;
+import dev.velix.imperat.commodore.CommodoreProvider;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.SuggestionResolver;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
@@ -27,7 +27,7 @@
import static com.mojang.brigadier.builder.LiteralArgumentBuilder.literal;
import static com.mojang.brigadier.builder.RequiredArgumentBuilder.argument;
-import static dev.velix.commodore.CommodoreProvider.isSupported;
+import static dev.velix.imperat.commodore.CommodoreProvider.isSupported;
public final class BukkitBrigadierManager implements BrigadierManager {
diff --git a/bukkit/src/main/java/dev/velix/brigadier/DefaultArgTypeResolvers.java b/bukkit/src/main/java/dev/velix/imperat/brigadier/DefaultArgTypeResolvers.java
similarity index 93%
rename from bukkit/src/main/java/dev/velix/brigadier/DefaultArgTypeResolvers.java
rename to bukkit/src/main/java/dev/velix/imperat/brigadier/DefaultArgTypeResolvers.java
index b334f97b..e0c8197e 100644
--- a/bukkit/src/main/java/dev/velix/brigadier/DefaultArgTypeResolvers.java
+++ b/bukkit/src/main/java/dev/velix/imperat/brigadier/DefaultArgTypeResolvers.java
@@ -1,9 +1,9 @@
-package dev.velix.brigadier;
+package dev.velix.imperat.brigadier;
import com.mojang.brigadier.arguments.*;
-import dev.velix.ArgumentTypeResolver;
-import dev.velix.command.parameters.NumericRange;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.ArgumentTypeResolver;
+import dev.velix.imperat.command.parameters.NumericRange;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.Nullable;
import java.lang.reflect.Type;
diff --git a/bukkit/src/main/java/dev/velix/brigadier/MinecraftArgumentType.java b/bukkit/src/main/java/dev/velix/imperat/brigadier/MinecraftArgumentType.java
similarity index 99%
rename from bukkit/src/main/java/dev/velix/brigadier/MinecraftArgumentType.java
rename to bukkit/src/main/java/dev/velix/imperat/brigadier/MinecraftArgumentType.java
index cc972900..5fd0df61 100644
--- a/bukkit/src/main/java/dev/velix/brigadier/MinecraftArgumentType.java
+++ b/bukkit/src/main/java/dev/velix/imperat/brigadier/MinecraftArgumentType.java
@@ -1,7 +1,7 @@
-package dev.velix.brigadier;
+package dev.velix.imperat.brigadier;
import com.mojang.brigadier.arguments.ArgumentType;
-import dev.velix.BukkitUtil;
+import dev.velix.imperat.BukkitUtil;
import lombok.SneakyThrows;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/main/java/dev/velix/commodore/AbstractCommodore.java b/bukkit/src/main/java/dev/velix/imperat/commodore/AbstractCommodore.java
similarity index 98%
rename from bukkit/src/main/java/dev/velix/commodore/AbstractCommodore.java
rename to bukkit/src/main/java/dev/velix/imperat/commodore/AbstractCommodore.java
index 099df674..5afe7126 100644
--- a/bukkit/src/main/java/dev/velix/commodore/AbstractCommodore.java
+++ b/bukkit/src/main/java/dev/velix/imperat/commodore/AbstractCommodore.java
@@ -23,15 +23,15 @@
* SOFTWARE.
*/
-package dev.velix.commodore;
+package dev.velix.imperat.commodore;
import com.mojang.brigadier.suggestion.SuggestionProvider;
import com.mojang.brigadier.tree.ArgumentCommandNode;
import com.mojang.brigadier.tree.CommandNode;
import com.mojang.brigadier.tree.LiteralCommandNode;
import com.mojang.brigadier.tree.RootCommandNode;
-import dev.velix.BukkitUtil;
-import dev.velix.util.Preconditions;
+import dev.velix.imperat.BukkitUtil;
+import dev.velix.imperat.util.Preconditions;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
diff --git a/bukkit/src/main/java/dev/velix/commodore/BrigadierUnsupportedException.java b/bukkit/src/main/java/dev/velix/imperat/commodore/BrigadierUnsupportedException.java
similarity index 97%
rename from bukkit/src/main/java/dev/velix/commodore/BrigadierUnsupportedException.java
rename to bukkit/src/main/java/dev/velix/imperat/commodore/BrigadierUnsupportedException.java
index 252d5cae..988543c6 100644
--- a/bukkit/src/main/java/dev/velix/commodore/BrigadierUnsupportedException.java
+++ b/bukkit/src/main/java/dev/velix/imperat/commodore/BrigadierUnsupportedException.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package dev.velix.commodore;
+package dev.velix.imperat.commodore;
/**
* Exception thrown when the server does not support Brigadier.
diff --git a/bukkit/src/main/java/dev/velix/commodore/Commodore.java b/bukkit/src/main/java/dev/velix/imperat/commodore/Commodore.java
similarity index 99%
rename from bukkit/src/main/java/dev/velix/commodore/Commodore.java
rename to bukkit/src/main/java/dev/velix/imperat/commodore/Commodore.java
index e39efa9d..0790be24 100644
--- a/bukkit/src/main/java/dev/velix/commodore/Commodore.java
+++ b/bukkit/src/main/java/dev/velix/imperat/commodore/Commodore.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package dev.velix.commodore;
+package dev.velix.imperat.commodore;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
diff --git a/bukkit/src/main/java/dev/velix/commodore/CommodoreProvider.java b/bukkit/src/main/java/dev/velix/imperat/commodore/CommodoreProvider.java
similarity index 97%
rename from bukkit/src/main/java/dev/velix/commodore/CommodoreProvider.java
rename to bukkit/src/main/java/dev/velix/imperat/commodore/CommodoreProvider.java
index 40cc02ad..28a12bb9 100644
--- a/bukkit/src/main/java/dev/velix/commodore/CommodoreProvider.java
+++ b/bukkit/src/main/java/dev/velix/imperat/commodore/CommodoreProvider.java
@@ -23,9 +23,9 @@
* SOFTWARE.
*/
-package dev.velix.commodore;
+package dev.velix.imperat.commodore;
-import dev.velix.util.ImperatDebugger;
+import dev.velix.imperat.util.ImperatDebugger;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/main/java/dev/velix/commodore/PaperCommodore.java b/bukkit/src/main/java/dev/velix/imperat/commodore/PaperCommodore.java
similarity index 99%
rename from bukkit/src/main/java/dev/velix/commodore/PaperCommodore.java
rename to bukkit/src/main/java/dev/velix/imperat/commodore/PaperCommodore.java
index 960e5798..dcaf8ed9 100644
--- a/bukkit/src/main/java/dev/velix/commodore/PaperCommodore.java
+++ b/bukkit/src/main/java/dev/velix/imperat/commodore/PaperCommodore.java
@@ -23,7 +23,7 @@
* SOFTWARE.
*/
-package dev.velix.commodore;
+package dev.velix.imperat.commodore;
import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
diff --git a/bukkit/src/main/java/dev/velix/commodore/ReflectionCommodore.java b/bukkit/src/main/java/dev/velix/imperat/commodore/ReflectionCommodore.java
similarity index 99%
rename from bukkit/src/main/java/dev/velix/commodore/ReflectionCommodore.java
rename to bukkit/src/main/java/dev/velix/imperat/commodore/ReflectionCommodore.java
index 42e83934..5ea8bdcd 100644
--- a/bukkit/src/main/java/dev/velix/commodore/ReflectionCommodore.java
+++ b/bukkit/src/main/java/dev/velix/imperat/commodore/ReflectionCommodore.java
@@ -23,14 +23,14 @@
* SOFTWARE.
*/
-package dev.velix.commodore;
+package dev.velix.imperat.commodore;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.suggestion.SuggestionProvider;
import com.mojang.brigadier.tree.LiteralCommandNode;
import com.mojang.brigadier.tree.RootCommandNode;
-import dev.velix.BukkitUtil;
+import dev.velix.imperat.BukkitUtil;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
diff --git a/bukkit/src/main/java/dev/velix/exception/InvalidUUIDException.java b/bukkit/src/main/java/dev/velix/imperat/exception/InvalidUUIDException.java
similarity index 65%
rename from bukkit/src/main/java/dev/velix/exception/InvalidUUIDException.java
rename to bukkit/src/main/java/dev/velix/imperat/exception/InvalidUUIDException.java
index be399943..6781a644 100644
--- a/bukkit/src/main/java/dev/velix/exception/InvalidUUIDException.java
+++ b/bukkit/src/main/java/dev/velix/imperat/exception/InvalidUUIDException.java
@@ -1,8 +1,5 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import lombok.Getter;
-
-@Getter
public class InvalidUUIDException extends ImperatException {
private final String raw;
@@ -10,5 +7,9 @@ public class InvalidUUIDException extends ImperatException {
public InvalidUUIDException(final String raw) {
this.raw = raw;
}
-
+
+ public String getRaw() {
+ return raw;
+ }
+
}
diff --git a/bukkit/src/main/java/dev/velix/exception/UnknownOfflinePlayerException.java b/bukkit/src/main/java/dev/velix/imperat/exception/UnknownOfflinePlayerException.java
similarity index 67%
rename from bukkit/src/main/java/dev/velix/exception/UnknownOfflinePlayerException.java
rename to bukkit/src/main/java/dev/velix/imperat/exception/UnknownOfflinePlayerException.java
index 0e2a4f46..9e83bfe3 100644
--- a/bukkit/src/main/java/dev/velix/exception/UnknownOfflinePlayerException.java
+++ b/bukkit/src/main/java/dev/velix/imperat/exception/UnknownOfflinePlayerException.java
@@ -1,8 +1,5 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import lombok.Getter;
-
-@Getter
public class UnknownOfflinePlayerException extends ImperatException {
private final String name;
@@ -10,5 +7,9 @@ public class UnknownOfflinePlayerException extends ImperatException {
public UnknownOfflinePlayerException(final String name) {
this.name = name;
}
-
+
+ public String getName() {
+ return name;
+ }
+
}
diff --git a/bukkit/src/main/java/dev/velix/exception/UnknownPlayerException.java b/bukkit/src/main/java/dev/velix/imperat/exception/UnknownPlayerException.java
similarity index 66%
rename from bukkit/src/main/java/dev/velix/exception/UnknownPlayerException.java
rename to bukkit/src/main/java/dev/velix/imperat/exception/UnknownPlayerException.java
index c2b09124..5fdf8e6f 100644
--- a/bukkit/src/main/java/dev/velix/exception/UnknownPlayerException.java
+++ b/bukkit/src/main/java/dev/velix/imperat/exception/UnknownPlayerException.java
@@ -1,8 +1,5 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import lombok.Getter;
-
-@Getter
public class UnknownPlayerException extends ImperatException {
private final String name;
@@ -10,5 +7,9 @@ public class UnknownPlayerException extends ImperatException {
public UnknownPlayerException(final String name) {
this.name = name;
}
-
+
+ public String getName() {
+ return name;
+ }
+
}
diff --git a/bukkit/src/main/java/dev/velix/exception/UnknownWorldException.java b/bukkit/src/main/java/dev/velix/imperat/exception/UnknownWorldException.java
similarity index 66%
rename from bukkit/src/main/java/dev/velix/exception/UnknownWorldException.java
rename to bukkit/src/main/java/dev/velix/imperat/exception/UnknownWorldException.java
index c7b6ed46..e15fe596 100644
--- a/bukkit/src/main/java/dev/velix/exception/UnknownWorldException.java
+++ b/bukkit/src/main/java/dev/velix/imperat/exception/UnknownWorldException.java
@@ -1,8 +1,5 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import lombok.Getter;
-
-@Getter
public class UnknownWorldException extends ImperatException {
private final String name;
@@ -10,5 +7,9 @@ public class UnknownWorldException extends ImperatException {
public UnknownWorldException(final String name) {
this.name = name;
}
-
+
+ public String getName() {
+ return name;
+ }
+
}
diff --git a/bukkit/src/main/java/dev/velix/imperat/processors/BukkitPostProcessor.java b/bukkit/src/main/java/dev/velix/imperat/processors/BukkitPostProcessor.java
new file mode 100644
index 00000000..c257a715
--- /dev/null
+++ b/bukkit/src/main/java/dev/velix/imperat/processors/BukkitPostProcessor.java
@@ -0,0 +1,8 @@
+package dev.velix.imperat.processors;
+
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+
+public interface BukkitPostProcessor extends CommandPostProcessor {
+
+}
diff --git a/bukkit/src/main/java/dev/velix/imperat/processors/BukkitPreProcessor.java b/bukkit/src/main/java/dev/velix/imperat/processors/BukkitPreProcessor.java
new file mode 100644
index 00000000..92d1de54
--- /dev/null
+++ b/bukkit/src/main/java/dev/velix/imperat/processors/BukkitPreProcessor.java
@@ -0,0 +1,8 @@
+package dev.velix.imperat.processors;
+
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+
+public interface BukkitPreProcessor extends CommandPreProcessor {
+
+}
diff --git a/bukkit/src/main/java/dev/velix/resolvers/BukkitContextResolver.java b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitContextResolver.java
similarity index 54%
rename from bukkit/src/main/java/dev/velix/resolvers/BukkitContextResolver.java
rename to bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitContextResolver.java
index bbf129a3..91b4bb5c 100644
--- a/bukkit/src/main/java/dev/velix/resolvers/BukkitContextResolver.java
+++ b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitContextResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BukkitSource;
+import dev.velix.imperat.BukkitSource;
public interface BukkitContextResolver extends ContextResolver {
diff --git a/bukkit/src/main/java/dev/velix/resolvers/BukkitPermissionResolver.java b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitPermissionResolver.java
similarity index 89%
rename from bukkit/src/main/java/dev/velix/resolvers/BukkitPermissionResolver.java
rename to bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitPermissionResolver.java
index bf3eaf7d..3e435ff1 100644
--- a/bukkit/src/main/java/dev/velix/resolvers/BukkitPermissionResolver.java
+++ b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitPermissionResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BukkitSource;
+import dev.velix.imperat.BukkitSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/main/java/dev/velix/resolvers/BukkitSuggestionResolver.java b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitSuggestionResolver.java
similarity index 55%
rename from bukkit/src/main/java/dev/velix/resolvers/BukkitSuggestionResolver.java
rename to bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitSuggestionResolver.java
index 86917893..cd18146c 100644
--- a/bukkit/src/main/java/dev/velix/resolvers/BukkitSuggestionResolver.java
+++ b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitSuggestionResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BukkitSource;
+import dev.velix.imperat.BukkitSource;
public interface BukkitSuggestionResolver extends SuggestionResolver {
}
diff --git a/bukkit/src/main/java/dev/velix/resolvers/BukkitValueResolver.java b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitValueResolver.java
similarity index 53%
rename from bukkit/src/main/java/dev/velix/resolvers/BukkitValueResolver.java
rename to bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitValueResolver.java
index 6fee96a8..2a914029 100644
--- a/bukkit/src/main/java/dev/velix/resolvers/BukkitValueResolver.java
+++ b/bukkit/src/main/java/dev/velix/imperat/resolvers/BukkitValueResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BukkitSource;
+import dev.velix.imperat.BukkitSource;
public interface BukkitValueResolver extends ValueResolver {
diff --git a/bukkit/src/main/java/dev/velix/processors/BukkitPostProcessor.java b/bukkit/src/main/java/dev/velix/processors/BukkitPostProcessor.java
deleted file mode 100644
index 355269d4..00000000
--- a/bukkit/src/main/java/dev/velix/processors/BukkitPostProcessor.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package dev.velix.processors;
-
-import dev.velix.BukkitSource;
-import dev.velix.command.processors.CommandPostProcessor;
-
-public interface BukkitPostProcessor extends CommandPostProcessor {
-
-}
diff --git a/bukkit/src/main/java/dev/velix/processors/BukkitPreProcessor.java b/bukkit/src/main/java/dev/velix/processors/BukkitPreProcessor.java
deleted file mode 100644
index bab4c08c..00000000
--- a/bukkit/src/main/java/dev/velix/processors/BukkitPreProcessor.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package dev.velix.processors;
-
-import dev.velix.BukkitSource;
-import dev.velix.command.processors.CommandPreProcessor;
-
-public interface BukkitPreProcessor extends CommandPreProcessor {
-
-}
diff --git a/bukkit/src/test/java/dev/velix/Test.java b/bukkit/src/test/java/dev/velix/imperat/Test.java
similarity index 86%
rename from bukkit/src/test/java/dev/velix/Test.java
rename to bukkit/src/test/java/dev/velix/imperat/Test.java
index 441a7257..d956f4a6 100644
--- a/bukkit/src/test/java/dev/velix/Test.java
+++ b/bukkit/src/test/java/dev/velix/imperat/Test.java
@@ -1,24 +1,24 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.annotations.Command;
-import dev.velix.annotations.Description;
-import dev.velix.annotations.Permission;
-import dev.velix.annotations.base.AnnotationFactory;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.examples.BanCommand;
-import dev.velix.examples.ExampleCommand;
-import dev.velix.examples.GroupCommand;
-import dev.velix.examples.GuildCommand;
-import dev.velix.examples.custom_annotations.MyCommand;
-import dev.velix.exception.SourceException;
-import dev.velix.help.CommandHelp;
-import dev.velix.test.Group;
-import dev.velix.test.GroupRegistry;
-import dev.velix.test.GroupSuggestionResolver;
-import dev.velix.test.guild.Guild;
-import dev.velix.test.guild.GuildContextResolver;
+import dev.velix.imperat.annotations.Description;
+import dev.velix.imperat.annotations.Permission;
+import dev.velix.imperat.annotations.base.AnnotationFactory;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.examples.BanCommand;
+import dev.velix.imperat.examples.ExampleCommand;
+import dev.velix.imperat.examples.GroupCommand;
+import dev.velix.imperat.examples.GuildCommand;
+import dev.velix.imperat.examples.custom_annotations.MyCommand;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.help.CommandHelp;
+import dev.velix.imperat.test.Group;
+import dev.velix.imperat.test.GroupRegistry;
+import dev.velix.imperat.test.GroupSuggestionResolver;
+import dev.velix.imperat.test.guild.Guild;
+import dev.velix.imperat.test.guild.GuildContextResolver;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.event.EventHandler;
@@ -72,7 +72,7 @@ private void testImperat() {
dispatcher.registerAnnotationReplacer(MyCommand.class, (annotation) -> {
var cmd = AnnotationFactory.create(
- Command.class,
+ dev.velix.imperat.annotations.Command.class,
"value", new String[]{"name", "alias"});
var permission = AnnotationFactory.create(Permission.class, "value", "command.group");
var desc = AnnotationFactory.create(Description.class, "value",
@@ -96,7 +96,7 @@ private void testImperat() {
private void classicExample() {
- dev.velix.command.Command example = dev.velix.command.Command.create("example")
+ Command example = Command.create("example")
.usage(CommandUsage.builder()
.parameters(CommandParameter.requiredInt("firstArg"))
.execute((source, context) -> {
@@ -112,7 +112,7 @@ private void classicExample() {
private void classicBanExample() {
final String defaultReason = "Breaking Server Laws";
- dev.velix.command.Command command = BukkitCommand.create("ban")
+ Command command = BukkitCommand.create("ban")
.permission("command.ban")
.description("Main command for banning players")
.defaultExecution((source, context) -> {
@@ -155,7 +155,7 @@ private void classicBanExample() {
private void classicGroupCmd() {
- dev.velix.command.Command senderCommand = BukkitCommand.create("group")
+ Command senderCommand = BukkitCommand.create("group")
.defaultExecution((source, context) -> {
source.reply("/group ");
})
@@ -173,7 +173,7 @@ private void classicGroupCmd() {
}
private void classicGuildCmd() {
- dev.velix.command.Command guildCmd = BukkitCommand.create("guild")
+ Command guildCmd = BukkitCommand.create("guild")
.subCommand(
BukkitCommand.create("disband")
.usage(
diff --git a/bukkit/src/test/java/dev/velix/examples/BanCommand.java b/bukkit/src/test/java/dev/velix/imperat/examples/BanCommand.java
similarity index 90%
rename from bukkit/src/test/java/dev/velix/examples/BanCommand.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/BanCommand.java
index 9eb0eaef..b7fac79b 100644
--- a/bukkit/src/test/java/dev/velix/examples/BanCommand.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/BanCommand.java
@@ -1,7 +1,7 @@
-package dev.velix.examples;
+package dev.velix.imperat.examples;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.*;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.*;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/test/java/dev/velix/examples/BroadcastCommand.java b/bukkit/src/test/java/dev/velix/imperat/examples/BroadcastCommand.java
similarity index 84%
rename from bukkit/src/test/java/dev/velix/examples/BroadcastCommand.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/BroadcastCommand.java
index 4bb3c9ef..8016d3ee 100644
--- a/bukkit/src/test/java/dev/velix/examples/BroadcastCommand.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/BroadcastCommand.java
@@ -1,7 +1,7 @@
-package dev.velix.examples;
+package dev.velix.imperat.examples;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.*;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.*;
import org.bukkit.Bukkit;
@Command("broadcast")
diff --git a/bukkit/src/test/java/dev/velix/examples/ExampleCommand.java b/bukkit/src/test/java/dev/velix/imperat/examples/ExampleCommand.java
similarity index 61%
rename from bukkit/src/test/java/dev/velix/examples/ExampleCommand.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/ExampleCommand.java
index 2f08efea..abd6cdb2 100644
--- a/bukkit/src/test/java/dev/velix/examples/ExampleCommand.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/ExampleCommand.java
@@ -1,10 +1,10 @@
-package dev.velix.examples;
+package dev.velix.imperat.examples;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.Command;
-import dev.velix.annotations.Named;
-import dev.velix.annotations.Range;
-import dev.velix.annotations.Usage;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.Command;
+import dev.velix.imperat.annotations.Named;
+import dev.velix.imperat.annotations.Range;
+import dev.velix.imperat.annotations.Usage;
@Command("example")
public final class ExampleCommand {
diff --git a/bukkit/src/test/java/dev/velix/examples/GroupCommand.java b/bukkit/src/test/java/dev/velix/imperat/examples/GroupCommand.java
similarity index 88%
rename from bukkit/src/test/java/dev/velix/examples/GroupCommand.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/GroupCommand.java
index 9007eca3..a98b35e6 100644
--- a/bukkit/src/test/java/dev/velix/examples/GroupCommand.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/GroupCommand.java
@@ -1,9 +1,9 @@
-package dev.velix.examples;
+package dev.velix.imperat.examples;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.*;
-import dev.velix.help.CommandHelp;
-import dev.velix.test.Group;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.*;
+import dev.velix.imperat.help.CommandHelp;
+import dev.velix.imperat.test.Group;
@Command("group")
public final class GroupCommand {
diff --git a/bukkit/src/test/java/dev/velix/examples/GuildCommand.java b/bukkit/src/test/java/dev/velix/imperat/examples/GuildCommand.java
similarity index 89%
rename from bukkit/src/test/java/dev/velix/examples/GuildCommand.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/GuildCommand.java
index 58a34f27..111dd1b3 100644
--- a/bukkit/src/test/java/dev/velix/examples/GuildCommand.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/GuildCommand.java
@@ -1,13 +1,13 @@
-package dev.velix.examples;
+package dev.velix.imperat.examples;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.Command;
-import dev.velix.annotations.Named;
-import dev.velix.annotations.SubCommand;
-import dev.velix.annotations.Usage;
-import dev.velix.test.guild.Guild;
-import dev.velix.test.guild.GuildInvite;
-import dev.velix.test.guild.GuildRegistry;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.Command;
+import dev.velix.imperat.annotations.Named;
+import dev.velix.imperat.annotations.SubCommand;
+import dev.velix.imperat.annotations.Usage;
+import dev.velix.imperat.test.guild.Guild;
+import dev.velix.imperat.test.guild.GuildInvite;
+import dev.velix.imperat.test.guild.GuildRegistry;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/test/java/dev/velix/examples/MyContextResolverFactory.java b/bukkit/src/test/java/dev/velix/imperat/examples/MyContextResolverFactory.java
similarity index 70%
rename from bukkit/src/test/java/dev/velix/examples/MyContextResolverFactory.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/MyContextResolverFactory.java
index 4171cb17..430bed74 100644
--- a/bukkit/src/test/java/dev/velix/examples/MyContextResolverFactory.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/MyContextResolverFactory.java
@@ -1,11 +1,11 @@
-package dev.velix.examples;
+package dev.velix.imperat.examples;
-import dev.velix.BukkitContextResolverFactory;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.base.element.ParameterElement;
-import dev.velix.examples.custom_annotations.MyCustomAnnotation2;
-import dev.velix.resolvers.ContextResolver;
-import dev.velix.test.guild.GuildRegistry;
+import dev.velix.imperat.BukkitContextResolverFactory;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.base.element.ParameterElement;
+import dev.velix.imperat.examples.custom_annotations.MyCustomAnnotation2;
+import dev.velix.imperat.resolvers.ContextResolver;
+import dev.velix.imperat.test.guild.GuildRegistry;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/test/java/dev/velix/examples/custom_annotations/MyCommand.java b/bukkit/src/test/java/dev/velix/imperat/examples/custom_annotations/MyCommand.java
similarity index 82%
rename from bukkit/src/test/java/dev/velix/examples/custom_annotations/MyCommand.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/custom_annotations/MyCommand.java
index 2e277c84..e25bf248 100644
--- a/bukkit/src/test/java/dev/velix/examples/custom_annotations/MyCommand.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/custom_annotations/MyCommand.java
@@ -1,4 +1,4 @@
-package dev.velix.examples.custom_annotations;
+package dev.velix.imperat.examples.custom_annotations;
import java.lang.annotation.ElementType;
diff --git a/bukkit/src/test/java/dev/velix/examples/custom_annotations/MyCustomAnnotation2.java b/bukkit/src/test/java/dev/velix/imperat/examples/custom_annotations/MyCustomAnnotation2.java
similarity index 83%
rename from bukkit/src/test/java/dev/velix/examples/custom_annotations/MyCustomAnnotation2.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/custom_annotations/MyCustomAnnotation2.java
index 125f02a5..b337af0f 100644
--- a/bukkit/src/test/java/dev/velix/examples/custom_annotations/MyCustomAnnotation2.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/custom_annotations/MyCustomAnnotation2.java
@@ -1,4 +1,4 @@
-package dev.velix.examples.custom_annotations;
+package dev.velix.imperat.examples.custom_annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/bukkit/src/test/java/dev/velix/examples/exceptions/ExampleCustomException.java b/bukkit/src/test/java/dev/velix/imperat/examples/exceptions/ExampleCustomException.java
similarity index 64%
rename from bukkit/src/test/java/dev/velix/examples/exceptions/ExampleCustomException.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/exceptions/ExampleCustomException.java
index 8b45bdf3..ab315381 100644
--- a/bukkit/src/test/java/dev/velix/examples/exceptions/ExampleCustomException.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/exceptions/ExampleCustomException.java
@@ -1,9 +1,9 @@
-package dev.velix.examples.exceptions;
+package dev.velix.imperat.examples.exceptions;
-import dev.velix.Imperat;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.exception.SelfHandledException;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.SelfHandledException;
public final class ExampleCustomException extends SelfHandledException {
diff --git a/bukkit/src/test/java/dev/velix/examples/help/ExampleHelpTemplate.java b/bukkit/src/test/java/dev/velix/imperat/examples/help/ExampleHelpTemplate.java
similarity index 78%
rename from bukkit/src/test/java/dev/velix/examples/help/ExampleHelpTemplate.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/help/ExampleHelpTemplate.java
index 1c99bc7c..5ff225fc 100644
--- a/bukkit/src/test/java/dev/velix/examples/help/ExampleHelpTemplate.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/help/ExampleHelpTemplate.java
@@ -1,10 +1,10 @@
-package dev.velix.examples.help;
+package dev.velix.imperat.examples.help;
-import dev.velix.command.Command;
-import dev.velix.help.HelpTemplate;
-import dev.velix.help.UsageDisplayer;
-import dev.velix.help.UsageFormatter;
-import dev.velix.help.templates.DefaultFormatter;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.help.HelpTemplate;
+import dev.velix.imperat.help.UsageDisplayer;
+import dev.velix.imperat.help.UsageFormatter;
+import dev.velix.imperat.help.templates.DefaultFormatter;
public class ExampleHelpTemplate implements HelpTemplate {
diff --git a/bukkit/src/test/java/dev/velix/examples/help/ExamplePaginatedHelpTemplate.java b/bukkit/src/test/java/dev/velix/imperat/examples/help/ExamplePaginatedHelpTemplate.java
similarity index 81%
rename from bukkit/src/test/java/dev/velix/examples/help/ExamplePaginatedHelpTemplate.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/help/ExamplePaginatedHelpTemplate.java
index 016b9016..b6c894de 100644
--- a/bukkit/src/test/java/dev/velix/examples/help/ExamplePaginatedHelpTemplate.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/help/ExamplePaginatedHelpTemplate.java
@@ -1,7 +1,7 @@
-package dev.velix.examples.help;
+package dev.velix.imperat.examples.help;
-import dev.velix.command.Command;
-import dev.velix.help.PaginatedHelpTemplate;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.help.PaginatedHelpTemplate;
public final class ExamplePaginatedHelpTemplate
extends ExampleHelpTemplate implements PaginatedHelpTemplate {
diff --git a/bukkit/src/test/java/dev/velix/examples/help/ExampleUsageFormatter.java b/bukkit/src/test/java/dev/velix/imperat/examples/help/ExampleUsageFormatter.java
similarity index 62%
rename from bukkit/src/test/java/dev/velix/examples/help/ExampleUsageFormatter.java
rename to bukkit/src/test/java/dev/velix/imperat/examples/help/ExampleUsageFormatter.java
index ad02bbce..7a7a6139 100644
--- a/bukkit/src/test/java/dev/velix/examples/help/ExampleUsageFormatter.java
+++ b/bukkit/src/test/java/dev/velix/imperat/examples/help/ExampleUsageFormatter.java
@@ -1,9 +1,9 @@
-package dev.velix.examples.help;
+package dev.velix.imperat.examples.help;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
-import dev.velix.help.UsageFormatter;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.help.UsageFormatter;
public class ExampleUsageFormatter implements UsageFormatter {
diff --git a/bukkit/src/test/java/dev/velix/test/Group.java b/bukkit/src/test/java/dev/velix/imperat/test/Group.java
similarity index 54%
rename from bukkit/src/test/java/dev/velix/test/Group.java
rename to bukkit/src/test/java/dev/velix/imperat/test/Group.java
index 0dfeca4f..239227c7 100644
--- a/bukkit/src/test/java/dev/velix/test/Group.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/Group.java
@@ -1,4 +1,4 @@
-package dev.velix.test;
+package dev.velix.imperat.test;
public record Group(String name) {
diff --git a/bukkit/src/test/java/dev/velix/test/GroupRegistry.java b/bukkit/src/test/java/dev/velix/imperat/test/GroupRegistry.java
similarity index 90%
rename from bukkit/src/test/java/dev/velix/test/GroupRegistry.java
rename to bukkit/src/test/java/dev/velix/imperat/test/GroupRegistry.java
index 564f863f..d859f8dd 100644
--- a/bukkit/src/test/java/dev/velix/test/GroupRegistry.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/GroupRegistry.java
@@ -1,6 +1,6 @@
-package dev.velix.test;
+package dev.velix.imperat.test;
-import dev.velix.util.Registry;
+import dev.velix.imperat.util.Registry;
import java.util.HashMap;
import java.util.Map;
diff --git a/bukkit/src/test/java/dev/velix/test/GroupSuggestionResolver.java b/bukkit/src/test/java/dev/velix/imperat/test/GroupSuggestionResolver.java
similarity index 65%
rename from bukkit/src/test/java/dev/velix/test/GroupSuggestionResolver.java
rename to bukkit/src/test/java/dev/velix/imperat/test/GroupSuggestionResolver.java
index 6cb89b43..c6b774c8 100644
--- a/bukkit/src/test/java/dev/velix/test/GroupSuggestionResolver.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/GroupSuggestionResolver.java
@@ -1,10 +1,10 @@
-package dev.velix.test;
+package dev.velix.imperat.test;
-import dev.velix.BukkitSource;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.BukkitSuggestionResolver;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.BukkitSuggestionResolver;
+import dev.velix.imperat.util.TypeWrap;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/bukkit/src/test/java/dev/velix/test/GroupValueResolver.java b/bukkit/src/test/java/dev/velix/imperat/test/GroupValueResolver.java
similarity index 66%
rename from bukkit/src/test/java/dev/velix/test/GroupValueResolver.java
rename to bukkit/src/test/java/dev/velix/imperat/test/GroupValueResolver.java
index 07698ea6..145def4b 100644
--- a/bukkit/src/test/java/dev/velix/test/GroupValueResolver.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/GroupValueResolver.java
@@ -1,12 +1,12 @@
-package dev.velix.test;
+package dev.velix.imperat.test;
-import dev.velix.BukkitSource;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.internal.sur.Cursor;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.SourceException;
-import dev.velix.resolvers.BukkitValueResolver;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.internal.sur.Cursor;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.resolvers.BukkitValueResolver;
import org.bukkit.entity.Player;
public final class GroupValueResolver implements BukkitValueResolver {
diff --git a/bukkit/src/test/java/dev/velix/test/guild/Guild.java b/bukkit/src/test/java/dev/velix/imperat/test/guild/Guild.java
similarity index 95%
rename from bukkit/src/test/java/dev/velix/test/guild/Guild.java
rename to bukkit/src/test/java/dev/velix/imperat/test/guild/Guild.java
index a41977e4..be39d34d 100644
--- a/bukkit/src/test/java/dev/velix/test/guild/Guild.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/guild/Guild.java
@@ -1,4 +1,4 @@
-package dev.velix.test.guild;
+package dev.velix.imperat.test.guild;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/bukkit/src/test/java/dev/velix/test/guild/GuildContextResolver.java b/bukkit/src/test/java/dev/velix/imperat/test/guild/GuildContextResolver.java
similarity index 75%
rename from bukkit/src/test/java/dev/velix/test/guild/GuildContextResolver.java
rename to bukkit/src/test/java/dev/velix/imperat/test/guild/GuildContextResolver.java
index 611aa953..645bec94 100644
--- a/bukkit/src/test/java/dev/velix/test/guild/GuildContextResolver.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/guild/GuildContextResolver.java
@@ -1,11 +1,11 @@
-package dev.velix.test.guild;
+package dev.velix.imperat.test.guild;
-import dev.velix.BukkitSource;
-import dev.velix.annotations.base.element.ParameterElement;
-import dev.velix.context.ExecutionContext;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.SourceException;
-import dev.velix.resolvers.BukkitContextResolver;
+import dev.velix.imperat.BukkitSource;
+import dev.velix.imperat.annotations.base.element.ParameterElement;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.resolvers.BukkitContextResolver;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/bukkit/src/test/java/dev/velix/test/guild/GuildInvite.java b/bukkit/src/test/java/dev/velix/imperat/test/guild/GuildInvite.java
similarity index 73%
rename from bukkit/src/test/java/dev/velix/test/guild/GuildInvite.java
rename to bukkit/src/test/java/dev/velix/imperat/test/guild/GuildInvite.java
index 98182442..194456ad 100644
--- a/bukkit/src/test/java/dev/velix/test/guild/GuildInvite.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/guild/GuildInvite.java
@@ -1,4 +1,4 @@
-package dev.velix.test.guild;
+package dev.velix.imperat.test.guild;
import org.bukkit.entity.Player;
diff --git a/bukkit/src/test/java/dev/velix/test/guild/GuildRegistry.java b/bukkit/src/test/java/dev/velix/imperat/test/guild/GuildRegistry.java
similarity index 91%
rename from bukkit/src/test/java/dev/velix/test/guild/GuildRegistry.java
rename to bukkit/src/test/java/dev/velix/imperat/test/guild/GuildRegistry.java
index 46994cd9..02646b7e 100644
--- a/bukkit/src/test/java/dev/velix/test/guild/GuildRegistry.java
+++ b/bukkit/src/test/java/dev/velix/imperat/test/guild/GuildRegistry.java
@@ -1,6 +1,6 @@
-package dev.velix.test.guild;
+package dev.velix.imperat.test.guild;
-import dev.velix.util.Registry;
+import dev.velix.imperat.util.Registry;
import org.jetbrains.annotations.Nullable;
import java.util.Optional;
diff --git a/bungee/src/main/java/dev/velix/BungeeCommand.java b/bungee/src/main/java/dev/velix/imperat/BungeeCommand.java
similarity index 68%
rename from bungee/src/main/java/dev/velix/BungeeCommand.java
rename to bungee/src/main/java/dev/velix/imperat/BungeeCommand.java
index f4c92b22..02753344 100644
--- a/bungee/src/main/java/dev/velix/BungeeCommand.java
+++ b/bungee/src/main/java/dev/velix/imperat/BungeeCommand.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.Command;
public interface BungeeCommand {
diff --git a/bungee/src/main/java/dev/velix/BungeeContextResolverFactory.java b/bungee/src/main/java/dev/velix/imperat/BungeeContextResolverFactory.java
similarity index 53%
rename from bungee/src/main/java/dev/velix/BungeeContextResolverFactory.java
rename to bungee/src/main/java/dev/velix/imperat/BungeeContextResolverFactory.java
index 496a8242..b7759d1d 100644
--- a/bungee/src/main/java/dev/velix/BungeeContextResolverFactory.java
+++ b/bungee/src/main/java/dev/velix/imperat/BungeeContextResolverFactory.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.ContextResolverFactory;
+import dev.velix.imperat.command.ContextResolverFactory;
public interface BungeeContextResolverFactory extends ContextResolverFactory {
}
diff --git a/bungee/src/main/java/dev/velix/BungeeImperat.java b/bungee/src/main/java/dev/velix/imperat/BungeeImperat.java
similarity index 86%
rename from bungee/src/main/java/dev/velix/BungeeImperat.java
rename to bungee/src/main/java/dev/velix/imperat/BungeeImperat.java
index d39f76af..69cb02ec 100644
--- a/bungee/src/main/java/dev/velix/BungeeImperat.java
+++ b/bungee/src/main/java/dev/velix/imperat/BungeeImperat.java
@@ -1,13 +1,13 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.adventure.AdventureProvider;
-import dev.velix.adventure.BungeeAdventure;
-import dev.velix.adventure.EmptyAdventure;
-import dev.velix.command.BaseImperat;
-import dev.velix.command.Command;
-import dev.velix.resolvers.BungeePermissionResolver;
-import dev.velix.resolvers.PermissionResolver;
-import dev.velix.util.reflection.Reflections;
+import dev.velix.imperat.adventure.AdventureProvider;
+import dev.velix.imperat.adventure.BungeeAdventure;
+import dev.velix.imperat.adventure.EmptyAdventure;
+import dev.velix.imperat.command.BaseImperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.resolvers.BungeePermissionResolver;
+import dev.velix.imperat.resolvers.PermissionResolver;
+import dev.velix.imperat.util.reflection.Reflections;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
diff --git a/bungee/src/main/java/dev/velix/BungeeSource.java b/bungee/src/main/java/dev/velix/imperat/BungeeSource.java
similarity index 92%
rename from bungee/src/main/java/dev/velix/BungeeSource.java
rename to bungee/src/main/java/dev/velix/imperat/BungeeSource.java
index a7a5ccd2..806f2a05 100644
--- a/bungee/src/main/java/dev/velix/BungeeSource.java
+++ b/bungee/src/main/java/dev/velix/imperat/BungeeSource.java
@@ -1,7 +1,7 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.adventure.AdventureProvider;
-import dev.velix.context.Source;
+import dev.velix.imperat.adventure.AdventureProvider;
+import dev.velix.imperat.context.Source;
import net.kyori.adventure.text.ComponentLike;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender;
diff --git a/bungee/src/main/java/dev/velix/BungeeUsage.java b/bungee/src/main/java/dev/velix/imperat/BungeeUsage.java
similarity index 66%
rename from bungee/src/main/java/dev/velix/BungeeUsage.java
rename to bungee/src/main/java/dev/velix/imperat/BungeeUsage.java
index fa3751ae..1a8b8c0a 100644
--- a/bungee/src/main/java/dev/velix/BungeeUsage.java
+++ b/bungee/src/main/java/dev/velix/imperat/BungeeUsage.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.CommandUsage;
+import dev.velix.imperat.command.CommandUsage;
public interface BungeeUsage {
diff --git a/bungee/src/main/java/dev/velix/InternalBungeeCommand.java b/bungee/src/main/java/dev/velix/imperat/InternalBungeeCommand.java
similarity index 94%
rename from bungee/src/main/java/dev/velix/InternalBungeeCommand.java
rename to bungee/src/main/java/dev/velix/imperat/InternalBungeeCommand.java
index 30cf6f70..e0f6a9ea 100644
--- a/bungee/src/main/java/dev/velix/InternalBungeeCommand.java
+++ b/bungee/src/main/java/dev/velix/imperat/InternalBungeeCommand.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.Command;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.plugin.TabExecutor;
diff --git a/bungee/src/main/java/dev/velix/adventure/BungeeAdventure.java b/bungee/src/main/java/dev/velix/imperat/adventure/BungeeAdventure.java
similarity index 94%
rename from bungee/src/main/java/dev/velix/adventure/BungeeAdventure.java
rename to bungee/src/main/java/dev/velix/imperat/adventure/BungeeAdventure.java
index b2e63a8f..00434097 100644
--- a/bungee/src/main/java/dev/velix/adventure/BungeeAdventure.java
+++ b/bungee/src/main/java/dev/velix/imperat/adventure/BungeeAdventure.java
@@ -1,4 +1,4 @@
-package dev.velix.adventure;
+package dev.velix.imperat.adventure;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
diff --git a/bungee/src/main/java/dev/velix/imperat/processors/BungeePostProcessor.java b/bungee/src/main/java/dev/velix/imperat/processors/BungeePostProcessor.java
new file mode 100644
index 00000000..261950a1
--- /dev/null
+++ b/bungee/src/main/java/dev/velix/imperat/processors/BungeePostProcessor.java
@@ -0,0 +1,7 @@
+package dev.velix.imperat.processors;
+
+import dev.velix.imperat.BungeeSource;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+
+public interface BungeePostProcessor extends CommandPostProcessor {
+}
diff --git a/bungee/src/main/java/dev/velix/imperat/processors/BungeePreProcessor.java b/bungee/src/main/java/dev/velix/imperat/processors/BungeePreProcessor.java
new file mode 100644
index 00000000..5ece46ab
--- /dev/null
+++ b/bungee/src/main/java/dev/velix/imperat/processors/BungeePreProcessor.java
@@ -0,0 +1,8 @@
+package dev.velix.imperat.processors;
+
+import dev.velix.imperat.BungeeSource;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+
+public interface BungeePreProcessor extends CommandPreProcessor {
+
+}
diff --git a/bungee/src/main/java/dev/velix/resolvers/BungeeContextResolver.java b/bungee/src/main/java/dev/velix/imperat/resolvers/BungeeContextResolver.java
similarity index 54%
rename from bungee/src/main/java/dev/velix/resolvers/BungeeContextResolver.java
rename to bungee/src/main/java/dev/velix/imperat/resolvers/BungeeContextResolver.java
index c7107e08..9c178a5c 100644
--- a/bungee/src/main/java/dev/velix/resolvers/BungeeContextResolver.java
+++ b/bungee/src/main/java/dev/velix/imperat/resolvers/BungeeContextResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BungeeSource;
+import dev.velix.imperat.BungeeSource;
public interface BungeeContextResolver extends ContextResolver {
diff --git a/bungee/src/main/java/dev/velix/resolvers/BungeePermissionResolver.java b/bungee/src/main/java/dev/velix/imperat/resolvers/BungeePermissionResolver.java
similarity index 83%
rename from bungee/src/main/java/dev/velix/resolvers/BungeePermissionResolver.java
rename to bungee/src/main/java/dev/velix/imperat/resolvers/BungeePermissionResolver.java
index 3988b14e..87989e4d 100644
--- a/bungee/src/main/java/dev/velix/resolvers/BungeePermissionResolver.java
+++ b/bungee/src/main/java/dev/velix/imperat/resolvers/BungeePermissionResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BungeeSource;
+import dev.velix.imperat.BungeeSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/bungee/src/main/java/dev/velix/resolvers/BungeeValueResolver.java b/bungee/src/main/java/dev/velix/imperat/resolvers/BungeeValueResolver.java
similarity index 53%
rename from bungee/src/main/java/dev/velix/resolvers/BungeeValueResolver.java
rename to bungee/src/main/java/dev/velix/imperat/resolvers/BungeeValueResolver.java
index a70de6ea..564e9a06 100644
--- a/bungee/src/main/java/dev/velix/resolvers/BungeeValueResolver.java
+++ b/bungee/src/main/java/dev/velix/imperat/resolvers/BungeeValueResolver.java
@@ -1,6 +1,6 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.BungeeSource;
+import dev.velix.imperat.BungeeSource;
public interface BungeeValueResolver extends ValueResolver {
diff --git a/bungee/src/main/java/dev/velix/processors/BungeePostProcessor.java b/bungee/src/main/java/dev/velix/processors/BungeePostProcessor.java
deleted file mode 100644
index e2efef51..00000000
--- a/bungee/src/main/java/dev/velix/processors/BungeePostProcessor.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package dev.velix.processors;
-
-import dev.velix.BungeeSource;
-import dev.velix.command.processors.CommandPostProcessor;
-
-public interface BungeePostProcessor extends CommandPostProcessor {
-}
diff --git a/bungee/src/main/java/dev/velix/processors/BungeePreProcessor.java b/bungee/src/main/java/dev/velix/processors/BungeePreProcessor.java
deleted file mode 100644
index 0e1d92c5..00000000
--- a/bungee/src/main/java/dev/velix/processors/BungeePreProcessor.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package dev.velix.processors;
-
-import dev.velix.BungeeSource;
-import dev.velix.command.processors.CommandPreProcessor;
-
-public interface BungeePreProcessor extends CommandPreProcessor {
-
-}
diff --git a/core/src/main/java/dev/velix/CommandHelpHandler.java b/core/src/main/java/dev/velix/imperat/CommandHelpHandler.java
similarity index 84%
rename from core/src/main/java/dev/velix/CommandHelpHandler.java
rename to core/src/main/java/dev/velix/imperat/CommandHelpHandler.java
index 054f3d03..16f46f17 100644
--- a/core/src/main/java/dev/velix/CommandHelpHandler.java
+++ b/core/src/main/java/dev/velix/imperat/CommandHelpHandler.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.help.HelpTemplate;
+import dev.velix.imperat.help.HelpTemplate;
import org.jetbrains.annotations.NotNull;
public sealed interface CommandHelpHandler permits Imperat {
diff --git a/core/src/main/java/dev/velix/CommandRegistrar.java b/core/src/main/java/dev/velix/imperat/CommandRegistrar.java
similarity index 89%
rename from core/src/main/java/dev/velix/CommandRegistrar.java
rename to core/src/main/java/dev/velix/imperat/CommandRegistrar.java
index 09ae5b28..35c8e5bf 100644
--- a/core/src/main/java/dev/velix/CommandRegistrar.java
+++ b/core/src/main/java/dev/velix/imperat/CommandRegistrar.java
@@ -1,8 +1,8 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.Command;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.Nullable;
import java.util.Collection;
diff --git a/core/src/main/java/dev/velix/Imperat.java b/core/src/main/java/dev/velix/imperat/Imperat.java
similarity index 88%
rename from core/src/main/java/dev/velix/Imperat.java
rename to core/src/main/java/dev/velix/imperat/Imperat.java
index 61260198..cc0f78c3 100644
--- a/core/src/main/java/dev/velix/Imperat.java
+++ b/core/src/main/java/dev/velix/imperat/Imperat.java
@@ -1,14 +1,14 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.annotations.base.AnnotationParser;
-import dev.velix.annotations.base.AnnotationReplacer;
-import dev.velix.command.Command;
-import dev.velix.command.tree.UsageMatchResult;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.context.internal.ContextFactory;
-import dev.velix.verification.UsageVerifier;
+import dev.velix.imperat.annotations.base.AnnotationParser;
+import dev.velix.imperat.annotations.base.AnnotationReplacer;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.tree.UsageMatchResult;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.internal.ContextFactory;
+import dev.velix.imperat.verification.UsageVerifier;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/ProcessorRegistrar.java b/core/src/main/java/dev/velix/imperat/ProcessorRegistrar.java
similarity index 84%
rename from core/src/main/java/dev/velix/ProcessorRegistrar.java
rename to core/src/main/java/dev/velix/imperat/ProcessorRegistrar.java
index a3c530bf..50141115 100644
--- a/core/src/main/java/dev/velix/ProcessorRegistrar.java
+++ b/core/src/main/java/dev/velix/imperat/ProcessorRegistrar.java
@@ -1,8 +1,8 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.processors.CommandPostProcessor;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.context.Source;
public sealed interface ProcessorRegistrar permits Imperat {
diff --git a/core/src/main/java/dev/velix/ResolverRegistrar.java b/core/src/main/java/dev/velix/imperat/ResolverRegistrar.java
similarity index 90%
rename from core/src/main/java/dev/velix/ResolverRegistrar.java
rename to core/src/main/java/dev/velix/imperat/ResolverRegistrar.java
index 15daee65..24c9b1ca 100644
--- a/core/src/main/java/dev/velix/ResolverRegistrar.java
+++ b/core/src/main/java/dev/velix/imperat/ResolverRegistrar.java
@@ -1,12 +1,12 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.ContextResolverFactory;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
-import dev.velix.resolvers.ContextResolver;
-import dev.velix.resolvers.PermissionResolver;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.resolvers.ValueResolver;
+import dev.velix.imperat.command.ContextResolverFactory;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.resolvers.ContextResolver;
+import dev.velix.imperat.resolvers.PermissionResolver;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.resolvers.ValueResolver;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -131,11 +131,12 @@ default ValueResolver getValueResolver(CommandParameter commandParamet
* argument or parameter.
*
* @param type the type
- *
+ * @param the type parameter representing the type of value that the suggestion resolver
+ * will work with
* @return the {@link SuggestionResolver} instance for that type
*/
@Nullable
- SuggestionResolver getSuggestionResolverByType(Type type);
+ SuggestionResolver getSuggestionResolverByType(Type type);
/**
* Fetches the suggestion provider/resolver registered by its unique name
diff --git a/core/src/main/java/dev/velix/SourceWrapper.java b/core/src/main/java/dev/velix/imperat/SourceWrapper.java
similarity index 88%
rename from core/src/main/java/dev/velix/SourceWrapper.java
rename to core/src/main/java/dev/velix/imperat/SourceWrapper.java
index 4c498d52..80253cde 100644
--- a/core/src/main/java/dev/velix/SourceWrapper.java
+++ b/core/src/main/java/dev/velix/imperat/SourceWrapper.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.context.Source;
+import dev.velix.imperat.context.Source;
import java.lang.reflect.Type;
diff --git a/core/src/main/java/dev/velix/ThrowableHandler.java b/core/src/main/java/dev/velix/imperat/ThrowableHandler.java
similarity index 93%
rename from core/src/main/java/dev/velix/ThrowableHandler.java
rename to core/src/main/java/dev/velix/imperat/ThrowableHandler.java
index d1a52ab9..d40e8b6b 100644
--- a/core/src/main/java/dev/velix/ThrowableHandler.java
+++ b/core/src/main/java/dev/velix/imperat/ThrowableHandler.java
@@ -1,8 +1,8 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.exception.ThrowableResolver;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ThrowableResolver;
import org.jetbrains.annotations.Nullable;
public sealed interface ThrowableHandler permits Imperat {
diff --git a/core/src/main/java/dev/velix/annotations/Async.java b/core/src/main/java/dev/velix/imperat/annotations/Async.java
similarity index 86%
rename from core/src/main/java/dev/velix/annotations/Async.java
rename to core/src/main/java/dev/velix/imperat/annotations/Async.java
index f6ea3d0d..8114f94e 100644
--- a/core/src/main/java/dev/velix/annotations/Async.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Async.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Command.java b/core/src/main/java/dev/velix/imperat/annotations/Command.java
similarity index 94%
rename from core/src/main/java/dev/velix/annotations/Command.java
rename to core/src/main/java/dev/velix/imperat/annotations/Command.java
index bf043222..a83ca9fc 100644
--- a/core/src/main/java/dev/velix/annotations/Command.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Command.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/annotations/Cooldown.java b/core/src/main/java/dev/velix/imperat/annotations/Cooldown.java
similarity index 89%
rename from core/src/main/java/dev/velix/annotations/Cooldown.java
rename to core/src/main/java/dev/velix/imperat/annotations/Cooldown.java
index ae29b3b1..74272a3a 100644
--- a/core/src/main/java/dev/velix/annotations/Cooldown.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Cooldown.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Default.java b/core/src/main/java/dev/velix/imperat/annotations/Default.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/Default.java
rename to core/src/main/java/dev/velix/imperat/annotations/Default.java
index aa70c7c4..a46e3a3d 100644
--- a/core/src/main/java/dev/velix/annotations/Default.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Default.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/DefaultProvider.java b/core/src/main/java/dev/velix/imperat/annotations/DefaultProvider.java
similarity index 78%
rename from core/src/main/java/dev/velix/annotations/DefaultProvider.java
rename to core/src/main/java/dev/velix/imperat/annotations/DefaultProvider.java
index 6afd3b1b..418d73ad 100644
--- a/core/src/main/java/dev/velix/annotations/DefaultProvider.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/DefaultProvider.java
@@ -1,6 +1,6 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
-import dev.velix.supplier.OptionalValueSupplier;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Description.java b/core/src/main/java/dev/velix/imperat/annotations/Description.java
similarity index 91%
rename from core/src/main/java/dev/velix/annotations/Description.java
rename to core/src/main/java/dev/velix/imperat/annotations/Description.java
index 7477c5c3..951b27e0 100644
--- a/core/src/main/java/dev/velix/annotations/Description.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Description.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Flag.java b/core/src/main/java/dev/velix/imperat/annotations/Flag.java
similarity index 90%
rename from core/src/main/java/dev/velix/annotations/Flag.java
rename to core/src/main/java/dev/velix/imperat/annotations/Flag.java
index f6a3b98a..61f1a33e 100644
--- a/core/src/main/java/dev/velix/annotations/Flag.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Flag.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Greedy.java b/core/src/main/java/dev/velix/imperat/annotations/Greedy.java
similarity index 87%
rename from core/src/main/java/dev/velix/annotations/Greedy.java
rename to core/src/main/java/dev/velix/imperat/annotations/Greedy.java
index 40ae0863..c6126836 100644
--- a/core/src/main/java/dev/velix/annotations/Greedy.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Greedy.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Inherit.java b/core/src/main/java/dev/velix/imperat/annotations/Inherit.java
similarity index 89%
rename from core/src/main/java/dev/velix/annotations/Inherit.java
rename to core/src/main/java/dev/velix/imperat/annotations/Inherit.java
index a70109f8..990059b9 100644
--- a/core/src/main/java/dev/velix/annotations/Inherit.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Inherit.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Named.java b/core/src/main/java/dev/velix/imperat/annotations/Named.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/Named.java
rename to core/src/main/java/dev/velix/imperat/annotations/Named.java
index 8f20f716..4dcb8afe 100644
--- a/core/src/main/java/dev/velix/annotations/Named.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Named.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Optional.java b/core/src/main/java/dev/velix/imperat/annotations/Optional.java
similarity index 87%
rename from core/src/main/java/dev/velix/annotations/Optional.java
rename to core/src/main/java/dev/velix/imperat/annotations/Optional.java
index 4b1fdbd8..0cbbbaf4 100644
--- a/core/src/main/java/dev/velix/annotations/Optional.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Optional.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Permission.java b/core/src/main/java/dev/velix/imperat/annotations/Permission.java
similarity index 90%
rename from core/src/main/java/dev/velix/annotations/Permission.java
rename to core/src/main/java/dev/velix/imperat/annotations/Permission.java
index af4faaf1..c9c00088 100644
--- a/core/src/main/java/dev/velix/annotations/Permission.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Permission.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/PostProcessor.java b/core/src/main/java/dev/velix/imperat/annotations/PostProcessor.java
similarity index 76%
rename from core/src/main/java/dev/velix/annotations/PostProcessor.java
rename to core/src/main/java/dev/velix/imperat/annotations/PostProcessor.java
index 3d195c20..1c27b9fc 100644
--- a/core/src/main/java/dev/velix/annotations/PostProcessor.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/PostProcessor.java
@@ -1,6 +1,6 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
-import dev.velix.command.processors.CommandPostProcessor;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/PreProcessor.java b/core/src/main/java/dev/velix/imperat/annotations/PreProcessor.java
similarity index 76%
rename from core/src/main/java/dev/velix/annotations/PreProcessor.java
rename to core/src/main/java/dev/velix/imperat/annotations/PreProcessor.java
index 39ec7144..2d4c1a1a 100644
--- a/core/src/main/java/dev/velix/annotations/PreProcessor.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/PreProcessor.java
@@ -1,6 +1,6 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
-import dev.velix.command.processors.CommandPreProcessor;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Range.java b/core/src/main/java/dev/velix/imperat/annotations/Range.java
similarity index 90%
rename from core/src/main/java/dev/velix/annotations/Range.java
rename to core/src/main/java/dev/velix/imperat/annotations/Range.java
index 88ab7fee..cd7afb9a 100644
--- a/core/src/main/java/dev/velix/annotations/Range.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Range.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/SubCommand.java b/core/src/main/java/dev/velix/imperat/annotations/SubCommand.java
similarity index 91%
rename from core/src/main/java/dev/velix/annotations/SubCommand.java
rename to core/src/main/java/dev/velix/imperat/annotations/SubCommand.java
index 673b8cdb..5f1be097 100644
--- a/core/src/main/java/dev/velix/annotations/SubCommand.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/SubCommand.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Suggest.java b/core/src/main/java/dev/velix/imperat/annotations/Suggest.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/Suggest.java
rename to core/src/main/java/dev/velix/imperat/annotations/Suggest.java
index a037f761..7e69056d 100644
--- a/core/src/main/java/dev/velix/annotations/Suggest.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Suggest.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/SuggestionProvider.java b/core/src/main/java/dev/velix/imperat/annotations/SuggestionProvider.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/SuggestionProvider.java
rename to core/src/main/java/dev/velix/imperat/annotations/SuggestionProvider.java
index 8b09d3b5..55c2fead 100644
--- a/core/src/main/java/dev/velix/annotations/SuggestionProvider.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/SuggestionProvider.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Switch.java b/core/src/main/java/dev/velix/imperat/annotations/Switch.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/Switch.java
rename to core/src/main/java/dev/velix/imperat/annotations/Switch.java
index 1b15db44..cb2e2f96 100644
--- a/core/src/main/java/dev/velix/annotations/Switch.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Switch.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/Usage.java b/core/src/main/java/dev/velix/imperat/annotations/Usage.java
similarity index 87%
rename from core/src/main/java/dev/velix/annotations/Usage.java
rename to core/src/main/java/dev/velix/imperat/annotations/Usage.java
index 96be8655..142480cd 100644
--- a/core/src/main/java/dev/velix/annotations/Usage.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/Usage.java
@@ -1,4 +1,4 @@
-package dev.velix.annotations;
+package dev.velix.imperat.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationFactory.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationFactory.java
similarity index 98%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationFactory.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationFactory.java
index 9fa2cdf7..58031341 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationFactory.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationFactory.java
@@ -1,6 +1,6 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.util.Preconditions;
+import dev.velix.imperat.util.Preconditions;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationHelper.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationHelper.java
similarity index 90%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationHelper.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationHelper.java
index 4676b594..385189c8 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationHelper.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationHelper.java
@@ -1,17 +1,17 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.Imperat;
-import dev.velix.annotations.*;
-import dev.velix.annotations.base.element.MethodElement;
-import dev.velix.annotations.base.element.ParameterElement;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
-import dev.velix.context.internal.ResolvedFlag;
-import dev.velix.exception.ImperatException;
-import dev.velix.help.CommandHelp;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.*;
+import dev.velix.imperat.annotations.base.element.MethodElement;
+import dev.velix.imperat.annotations.base.element.ParameterElement;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.internal.ResolvedFlag;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.help.CommandHelp;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationParser.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationParser.java
similarity index 87%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationParser.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationParser.java
index 75bf553a..fddc5a88 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationParser.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationParser.java
@@ -1,9 +1,9 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.Imperat;
-import dev.velix.annotations.base.element.CommandClassVisitor;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.base.element.CommandClassVisitor;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.Annotation;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationParserImpl.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationParserImpl.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationParserImpl.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationParserImpl.java
index 3ed819fa..acaab9b4 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationParserImpl.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationParserImpl.java
@@ -1,8 +1,8 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.Imperat;
-import dev.velix.annotations.base.element.CommandClassVisitor;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.base.element.CommandClassVisitor;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import java.lang.annotation.Annotation;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationReader.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReader.java
similarity index 70%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationReader.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReader.java
index 7b668513..cc463fd4 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationReader.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReader.java
@@ -1,9 +1,9 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.Imperat;
-import dev.velix.annotations.base.element.CommandClassVisitor;
-import dev.velix.annotations.base.element.RootCommandClass;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.base.element.CommandClassVisitor;
+import dev.velix.imperat.annotations.base.element.RootCommandClass;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationReaderImpl.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReaderImpl.java
similarity index 85%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationReaderImpl.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReaderImpl.java
index 9320ae20..e25592e3 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationReaderImpl.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReaderImpl.java
@@ -1,13 +1,13 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.Imperat;
-import dev.velix.annotations.Inherit;
-import dev.velix.annotations.base.element.ClassElement;
-import dev.velix.annotations.base.element.CommandClassVisitor;
-import dev.velix.annotations.base.element.MethodElement;
-import dev.velix.annotations.base.element.RootCommandClass;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.Inherit;
+import dev.velix.imperat.annotations.base.element.ClassElement;
+import dev.velix.imperat.annotations.base.element.CommandClassVisitor;
+import dev.velix.imperat.annotations.base.element.MethodElement;
+import dev.velix.imperat.annotations.base.element.RootCommandClass;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationRegistry.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationRegistry.java
similarity index 93%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationRegistry.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationRegistry.java
index 13f8aca9..d3c3682d 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationRegistry.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationRegistry.java
@@ -1,8 +1,8 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.annotations.*;
-import dev.velix.annotations.base.element.ParseElement;
-import dev.velix.util.collections.ClassMap;
+import dev.velix.imperat.annotations.*;
+import dev.velix.imperat.annotations.base.element.ParseElement;
+import dev.velix.imperat.util.collections.ClassMap;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/annotations/base/AnnotationReplacer.java b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReplacer.java
similarity index 88%
rename from core/src/main/java/dev/velix/annotations/base/AnnotationReplacer.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReplacer.java
index ae3717c2..29ef6d2a 100644
--- a/core/src/main/java/dev/velix/annotations/base/AnnotationReplacer.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/AnnotationReplacer.java
@@ -1,6 +1,6 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.annotations.Command;
+import dev.velix.imperat.annotations.Command;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/annotations/base/MethodCommandExecutor.java b/core/src/main/java/dev/velix/imperat/annotations/base/MethodCommandExecutor.java
similarity index 80%
rename from core/src/main/java/dev/velix/annotations/base/MethodCommandExecutor.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/MethodCommandExecutor.java
index e7829aa8..bd8fcf5c 100644
--- a/core/src/main/java/dev/velix/annotations/base/MethodCommandExecutor.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/MethodCommandExecutor.java
@@ -1,16 +1,16 @@
-package dev.velix.annotations.base;
+package dev.velix.imperat.annotations.base;
-import dev.velix.Imperat;
-import dev.velix.annotations.base.element.ClassElement;
-import dev.velix.annotations.base.element.MethodElement;
-import dev.velix.command.CommandExecution;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
-import dev.velix.util.ImperatDebugger;
-import dev.velix.util.asm.DefaultMethodCallerFactory;
-import dev.velix.util.asm.MethodCaller;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.base.element.ClassElement;
+import dev.velix.imperat.annotations.base.element.MethodElement;
+import dev.velix.imperat.command.CommandExecution;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.util.ImperatDebugger;
+import dev.velix.imperat.util.asm.DefaultMethodCallerFactory;
+import dev.velix.imperat.util.asm.MethodCaller;
import org.jetbrains.annotations.ApiStatus;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/ClassElement.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/ClassElement.java
similarity index 90%
rename from core/src/main/java/dev/velix/annotations/base/element/ClassElement.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/ClassElement.java
index 3bb9f08e..4864aee1 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/ClassElement.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/ClassElement.java
@@ -1,9 +1,9 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.annotations.base.AnnotationRegistry;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
-import dev.velix.util.reflection.Reflections;
+import dev.velix.imperat.annotations.base.AnnotationRegistry;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.util.reflection.Reflections;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/CommandClassVisitor.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/CommandClassVisitor.java
similarity index 79%
rename from core/src/main/java/dev/velix/annotations/base/element/CommandClassVisitor.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/CommandClassVisitor.java
index a7c612dc..041a420c 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/CommandClassVisitor.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/CommandClassVisitor.java
@@ -1,8 +1,8 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.NotNull;
import java.util.Set;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/MethodElement.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/MethodElement.java
similarity index 85%
rename from core/src/main/java/dev/velix/annotations/base/element/MethodElement.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/MethodElement.java
index 46cd063b..55533325 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/MethodElement.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/MethodElement.java
@@ -1,9 +1,9 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.Imperat;
-import dev.velix.annotations.base.AnnotationHelper;
-import dev.velix.annotations.base.AnnotationRegistry;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.base.AnnotationHelper;
+import dev.velix.imperat.annotations.base.AnnotationRegistry;
+import dev.velix.imperat.context.Source;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/ParameterElement.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/ParameterElement.java
similarity index 83%
rename from core/src/main/java/dev/velix/annotations/base/element/ParameterElement.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/ParameterElement.java
index bc3dac47..fa19f4c6 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/ParameterElement.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/ParameterElement.java
@@ -1,7 +1,7 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.annotations.base.AnnotationHelper;
-import dev.velix.annotations.base.AnnotationRegistry;
+import dev.velix.imperat.annotations.base.AnnotationHelper;
+import dev.velix.imperat.annotations.base.AnnotationRegistry;
import lombok.Getter;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/ParseElement.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/ParseElement.java
similarity index 95%
rename from core/src/main/java/dev/velix/annotations/base/element/ParseElement.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/ParseElement.java
index 19d6252a..c1b2b5b4 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/ParseElement.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/ParseElement.java
@@ -1,8 +1,8 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.annotations.base.AnnotationRegistry;
-import dev.velix.annotations.base.AnnotationReplacer;
-import dev.velix.util.annotations.AnnotationMap;
+import dev.velix.imperat.annotations.base.AnnotationRegistry;
+import dev.velix.imperat.annotations.base.AnnotationReplacer;
+import dev.velix.imperat.util.annotations.AnnotationMap;
import lombok.Getter;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/RootCommandClass.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/RootCommandClass.java
similarity index 90%
rename from core/src/main/java/dev/velix/annotations/base/element/RootCommandClass.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/RootCommandClass.java
index a1ebb147..70c10585 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/RootCommandClass.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/RootCommandClass.java
@@ -1,7 +1,7 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.Nullable;
import java.util.Objects;
diff --git a/core/src/main/java/dev/velix/annotations/base/element/SimpleCommandClassVisitor.java b/core/src/main/java/dev/velix/imperat/annotations/base/element/SimpleCommandClassVisitor.java
similarity index 85%
rename from core/src/main/java/dev/velix/annotations/base/element/SimpleCommandClassVisitor.java
rename to core/src/main/java/dev/velix/imperat/annotations/base/element/SimpleCommandClassVisitor.java
index 4084b096..0536893e 100644
--- a/core/src/main/java/dev/velix/annotations/base/element/SimpleCommandClassVisitor.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/base/element/SimpleCommandClassVisitor.java
@@ -1,27 +1,27 @@
-package dev.velix.annotations.base.element;
+package dev.velix.imperat.annotations.base.element;
-import dev.velix.Imperat;
-import dev.velix.annotations.Optional;
-import dev.velix.annotations.*;
-import dev.velix.annotations.base.AnnotationHelper;
-import dev.velix.annotations.base.MethodCommandExecutor;
-import dev.velix.annotations.parameters.AnnotationParameterDecorator;
-import dev.velix.annotations.parameters.NumericParameterDecorator;
-import dev.velix.command.CommandCoordinator;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.Description;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.NumericRange;
-import dev.velix.command.parameters.StrictParameterList;
-import dev.velix.command.processors.CommandPostProcessor;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.context.Source;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.Pair;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.TypeWrap;
-import dev.velix.util.reflection.Reflections;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.Optional;
+import dev.velix.imperat.annotations.*;
+import dev.velix.imperat.annotations.base.AnnotationHelper;
+import dev.velix.imperat.annotations.base.MethodCommandExecutor;
+import dev.velix.imperat.annotations.parameters.AnnotationParameterDecorator;
+import dev.velix.imperat.annotations.parameters.NumericParameterDecorator;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandCoordinator;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.NumericRange;
+import dev.velix.imperat.command.parameters.StrictParameterList;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.Pair;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.TypeWrap;
+import dev.velix.imperat.util.reflection.Reflections;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -40,11 +40,11 @@ final class SimpleCommandClassVisitor extends CommandClassVisi
@Override
- public Set> visitCommandClass(
+ public Set> visitCommandClass(
@NotNull ClassElement clazz
) {
- Set> commands = new HashSet<>();
+ Set> commands = new HashSet<>();
Annotation commandAnnotation = getCommandAnnotation(clazz);
if (clazz.isRootClass() && commandAnnotation != null && clazz.isAnnotationPresent(SubCommand.class)) {
@@ -53,7 +53,7 @@ public Set> visitCommandClass(
if (commandAnnotation != null) {
- dev.velix.command.Command cmd = loadCommand(null, clazz, commandAnnotation);
+ Command cmd = loadCommand(null, clazz, commandAnnotation);
//if cmd=null → loading @Command methods only from this class
if (cmd != null) {
@@ -64,8 +64,8 @@ public Set> visitCommandClass(
//no annotation
//System.out.println("No Annotation");
for (ParseElement> element : clazz.getChildren()) {
- if (element.isAnnotationPresent(Command.class)) {
- var cmd = loadCommand(null, element, Objects.requireNonNull(element.getAnnotation(Command.class)));
+ if (element.isAnnotationPresent(dev.velix.imperat.annotations.Command.class)) {
+ var cmd = loadCommand(null, element, Objects.requireNonNull(element.getAnnotation(dev.velix.imperat.annotations.Command.class)));
if (cmd != null) {
imperat.registerCommand(cmd);
}
@@ -79,8 +79,8 @@ public Set> visitCommandClass(
private Annotation getCommandAnnotation(ClassElement clazz) {
- if (clazz.isAnnotationPresent(Command.class))
- return clazz.getAnnotation(Command.class);
+ if (clazz.isAnnotationPresent(dev.velix.imperat.annotations.Command.class))
+ return clazz.getAnnotation(dev.velix.imperat.annotations.Command.class);
if (clazz.isAnnotationPresent(SubCommand.class))
return clazz.getAnnotation(SubCommand.class);
@@ -91,29 +91,29 @@ private Annotation getCommandAnnotation(ClassElement clazz) {
private void loadCommandMethods(ClassElement clazz) {
for (ParseElement> element : clazz.getChildren()) {
- if (element instanceof MethodElement method && method.isAnnotationPresent(Command.class)) {
- var cmdAnn = method.getAnnotation(Command.class);
+ if (element instanceof MethodElement method && method.isAnnotationPresent(dev.velix.imperat.annotations.Command.class)) {
+ var cmdAnn = method.getAnnotation(dev.velix.imperat.annotations.Command.class);
assert cmdAnn != null;
imperat.registerCommand(loadCommand(null, method, cmdAnn));
}
}
}
- private dev.velix.command.Command loadCmdInstance(Annotation cmdAnnotation, ParseElement> element) {
+ private Command loadCmdInstance(Annotation cmdAnnotation, ParseElement> element) {
PreProcessor preProcessor = element.getAnnotation(PreProcessor.class);
PostProcessor postProcessor = element.getAnnotation(PostProcessor.class);
Permission permission = element.getAnnotation(Permission.class);
- dev.velix.annotations.Description description = element.getAnnotation(dev.velix.annotations.Description.class);
+ Description description = element.getAnnotation(Description.class);
- if (cmdAnnotation instanceof Command cmdAnn) {
+ if (cmdAnnotation instanceof dev.velix.imperat.annotations.Command cmdAnn) {
final String[] values = cmdAnn.value();
final List aliases = List.of(values).subList(1, values.length);
final boolean ignoreAC = cmdAnn.skipSuggestionsChecks();
- var builder = dev.velix.command.Command.create(values[0])
+ var builder = Command.create(values[0])
.ignoreACPermissions(ignoreAC)
.aliases(aliases);
if (permission != null) {
@@ -141,7 +141,7 @@ private dev.velix.command.Command loadCmdInstance(Annotation cmdAnnotation, P
final List aliases = List.of(values).subList(1, values.length);
final boolean ignoreAC = subCommand.skipSuggestionsChecks();
- var builder = dev.velix.command.Command.create(values[0])
+ var builder = Command.create(values[0])
.ignoreACPermissions(ignoreAC)
.aliases(aliases);
@@ -166,12 +166,12 @@ private dev.velix.command.Command loadCmdInstance(Annotation cmdAnnotation, P
return null;
}
- private dev.velix.command.Command loadCommand(
- @Nullable dev.velix.command.Command parentCmd,
+ private Command loadCommand(
+ @Nullable Command parentCmd,
ParseElement> parseElement,
@NotNull Annotation annotation
) {
- final dev.velix.command.Command cmd = loadCmdInstance(annotation, parseElement);
+ final Command cmd = loadCmdInstance(annotation, parseElement);
if (parentCmd != null && cmd != null) {
cmd.setParent(parentCmd);
}
@@ -230,9 +230,9 @@ private dev.velix.command.Command loadCommand(
}
} else if (element instanceof ClassElement innerClass) {
- if (innerClass.isAnnotationPresent(Command.class)) {
+ if (innerClass.isAnnotationPresent(dev.velix.imperat.annotations.Command.class)) {
//separate embedded command
- var innerCmdAnn = innerClass.getAnnotation(Command.class);
+ var innerCmdAnn = innerClass.getAnnotation(dev.velix.imperat.annotations.Command.class);
assert innerCmdAnn != null;
imperat.registerCommand(
loadCommand(null, innerClass, innerCmdAnn)
@@ -286,8 +286,8 @@ private CommandPostProcessor loadPostProcessorInstance(Class extends Comman
}
- private CommandUsage loadUsage(@Nullable dev.velix.command.Command parentCmd,
- @NotNull dev.velix.command.Command loadedCmd, MethodElement method) {
+ private CommandUsage loadUsage(@Nullable Command parentCmd,
+ @NotNull Command loadedCmd, MethodElement method) {
if (method.getInputCount() == 0) {
loadedCmd.setDefaultUsageExecution(
MethodCommandExecutor.of(imperat, method, Collections.emptyList())
@@ -302,7 +302,7 @@ private CommandUsage loadUsage(@Nullable dev.velix.command.Command parentC
var execution = MethodCommandExecutor.of(imperat, method, parametersInfo.right());
- dev.velix.annotations.Description description = method.getAnnotation(dev.velix.annotations.Description.class);
+ Description description = method.getAnnotation(Description.class);
Permission permission = methodOwner.getAnnotation(Permission.class);
Cooldown cooldown = methodOwner.getAnnotation(Cooldown.class);
Async async = methodOwner.getAnnotation(Async.class);
@@ -329,14 +329,14 @@ private CommandUsage loadUsage(@Nullable dev.velix.command.Command parentC
private Pair, List> loadParameters(
@NotNull MethodElement method,
- @Nullable dev.velix.command.Command parentCmd
+ @Nullable Command parentCmd
) {
LinkedList toLoad = new LinkedList<>();
//WHATEVER HAPPENS, NEVER MESS WITH THIS IMPLEMENTATION OR ELSE I WILL FUCKING DESTROY YOU
final StrictParameterList mainUsageParameters = new StrictParameterList();
- dev.velix.command.Command currentParent = parentCmd;
+ Command currentParent = parentCmd;
while (currentParent != null) {
currentParent.getMainUsage().getParameters()
.forEach(mainUsageParameters::addFirst);
@@ -430,11 +430,11 @@ private CommandParameter loadParameter(
throw new IllegalArgumentException("Argument '" + parameter.getName() + "' is greedy while having a non-greedy type '" + parameter.getType().getName() + "'");
}
- Description desc = Description.EMPTY;
- if (element.isAnnotationPresent(dev.velix.annotations.Description.class)) {
- var descAnn = element.getAnnotation(dev.velix.annotations.Description.class);
+ dev.velix.imperat.command.Description desc = dev.velix.imperat.command.Description.EMPTY;
+ if (element.isAnnotationPresent(Description.class)) {
+ var descAnn = element.getAnnotation(Description.class);
assert descAnn != null;
- desc = Description.of(descAnn.value());
+ desc = dev.velix.imperat.command.Description.of(descAnn.value());
}
String permission = null;
diff --git a/core/src/main/java/dev/velix/annotations/parameters/AnnotatedParameter.java b/core/src/main/java/dev/velix/imperat/annotations/parameters/AnnotatedParameter.java
similarity index 89%
rename from core/src/main/java/dev/velix/annotations/parameters/AnnotatedParameter.java
rename to core/src/main/java/dev/velix/imperat/annotations/parameters/AnnotatedParameter.java
index ea6cdab3..963edaca 100644
--- a/core/src/main/java/dev/velix/annotations/parameters/AnnotatedParameter.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/parameters/AnnotatedParameter.java
@@ -1,6 +1,6 @@
-package dev.velix.annotations.parameters;
+package dev.velix.imperat.annotations.parameters;
-import dev.velix.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.CommandParameter;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/annotations/parameters/AnnotationParameterDecorator.java b/core/src/main/java/dev/velix/imperat/annotations/parameters/AnnotationParameterDecorator.java
similarity index 86%
rename from core/src/main/java/dev/velix/annotations/parameters/AnnotationParameterDecorator.java
rename to core/src/main/java/dev/velix/imperat/annotations/parameters/AnnotationParameterDecorator.java
index f01241de..299ce0fe 100644
--- a/core/src/main/java/dev/velix/annotations/parameters/AnnotationParameterDecorator.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/parameters/AnnotationParameterDecorator.java
@@ -1,10 +1,10 @@
-package dev.velix.annotations.parameters;
+package dev.velix.imperat.annotations.parameters;
-import dev.velix.annotations.base.element.ParameterElement;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.FlagParameter;
-import dev.velix.command.parameters.InputParameter;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.annotations.base.element.ParameterElement;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.FlagParameter;
+import dev.velix.imperat.command.parameters.InputParameter;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Unmodifiable;
diff --git a/core/src/main/java/dev/velix/annotations/parameters/NumericParameterDecorator.java b/core/src/main/java/dev/velix/imperat/annotations/parameters/NumericParameterDecorator.java
similarity index 81%
rename from core/src/main/java/dev/velix/annotations/parameters/NumericParameterDecorator.java
rename to core/src/main/java/dev/velix/imperat/annotations/parameters/NumericParameterDecorator.java
index 404c8d6d..51a667fc 100644
--- a/core/src/main/java/dev/velix/annotations/parameters/NumericParameterDecorator.java
+++ b/core/src/main/java/dev/velix/imperat/annotations/parameters/NumericParameterDecorator.java
@@ -1,9 +1,9 @@
-package dev.velix.annotations.parameters;
+package dev.velix.imperat.annotations.parameters;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.InputParameter;
-import dev.velix.command.parameters.NumericParameter;
-import dev.velix.command.parameters.NumericRange;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.InputParameter;
+import dev.velix.imperat.command.parameters.NumericParameter;
+import dev.velix.imperat.command.parameters.NumericRange;
import org.jetbrains.annotations.Nullable;
public final class NumericParameterDecorator extends InputParameter implements NumericParameter {
diff --git a/core/src/main/java/dev/velix/command/BaseImperat.java b/core/src/main/java/dev/velix/imperat/command/BaseImperat.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/BaseImperat.java
rename to core/src/main/java/dev/velix/imperat/command/BaseImperat.java
index abd67731..4fa4752e 100644
--- a/core/src/main/java/dev/velix/command/BaseImperat.java
+++ b/core/src/main/java/dev/velix/imperat/command/BaseImperat.java
@@ -1,29 +1,29 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.annotations.base.AnnotationParser;
-import dev.velix.annotations.base.AnnotationReplacer;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.processors.CommandPostProcessor;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.command.processors.impl.UsageCooldownProcessor;
-import dev.velix.command.processors.impl.UsagePermissionProcessor;
-import dev.velix.command.suggestions.SuggestionResolverRegistry;
-import dev.velix.command.tree.UsageContextMatch;
-import dev.velix.command.tree.UsageMatchResult;
-import dev.velix.context.*;
-import dev.velix.context.internal.ContextFactory;
-import dev.velix.exception.*;
-import dev.velix.help.HelpTemplate;
-import dev.velix.help.templates.DefaultTemplate;
-import dev.velix.resolvers.ContextResolver;
-import dev.velix.resolvers.PermissionResolver;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.resolvers.ValueResolver;
-import dev.velix.util.ImperatDebugger;
-import dev.velix.util.Preconditions;
-import dev.velix.util.TypeWrap;
-import dev.velix.verification.UsageVerifier;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.annotations.base.AnnotationParser;
+import dev.velix.imperat.annotations.base.AnnotationReplacer;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.command.processors.impl.UsageCooldownProcessor;
+import dev.velix.imperat.command.processors.impl.UsagePermissionProcessor;
+import dev.velix.imperat.command.suggestions.SuggestionResolverRegistry;
+import dev.velix.imperat.command.tree.UsageContextMatch;
+import dev.velix.imperat.command.tree.UsageMatchResult;
+import dev.velix.imperat.context.*;
+import dev.velix.imperat.context.internal.ContextFactory;
+import dev.velix.imperat.exception.*;
+import dev.velix.imperat.help.HelpTemplate;
+import dev.velix.imperat.help.templates.DefaultTemplate;
+import dev.velix.imperat.resolvers.ContextResolver;
+import dev.velix.imperat.resolvers.PermissionResolver;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.resolvers.ValueResolver;
+import dev.velix.imperat.util.ImperatDebugger;
+import dev.velix.imperat.util.Preconditions;
+import dev.velix.imperat.util.TypeWrap;
+import dev.velix.imperat.verification.UsageVerifier;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/Command.java b/core/src/main/java/dev/velix/imperat/command/Command.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/Command.java
rename to core/src/main/java/dev/velix/imperat/command/Command.java
index 7c876645..8e00c8ba 100644
--- a/core/src/main/java/dev/velix/command/Command.java
+++ b/core/src/main/java/dev/velix/imperat/command/Command.java
@@ -1,20 +1,20 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.processors.CommandPostProcessor;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.command.suggestions.AutoCompleter;
-import dev.velix.command.tree.CommandTree;
-import dev.velix.command.tree.UsageContextMatch;
-import dev.velix.context.Context;
-import dev.velix.context.ResolvedContext;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
-import dev.velix.exception.ImperatException;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.ListUtils;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.command.suggestions.AutoCompleter;
+import dev.velix.imperat.command.tree.CommandTree;
+import dev.velix.imperat.command.tree.UsageContextMatch;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.ResolvedContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.ListUtils;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/CommandCoordinator.java b/core/src/main/java/dev/velix/imperat/command/CommandCoordinator.java
similarity index 90%
rename from core/src/main/java/dev/velix/command/CommandCoordinator.java
rename to core/src/main/java/dev/velix/imperat/command/CommandCoordinator.java
index 577c2e80..02d20637 100644
--- a/core/src/main/java/dev/velix/command/CommandCoordinator.java
+++ b/core/src/main/java/dev/velix/imperat/command/CommandCoordinator.java
@@ -1,8 +1,8 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/CommandExecution.java b/core/src/main/java/dev/velix/imperat/command/CommandExecution.java
similarity index 76%
rename from core/src/main/java/dev/velix/command/CommandExecution.java
rename to core/src/main/java/dev/velix/imperat/command/CommandExecution.java
index f014d236..43c7d2a9 100644
--- a/core/src/main/java/dev/velix/command/CommandExecution.java
+++ b/core/src/main/java/dev/velix/imperat/command/CommandExecution.java
@@ -1,8 +1,8 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/main/java/dev/velix/command/CommandImpl.java b/core/src/main/java/dev/velix/imperat/command/CommandImpl.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/CommandImpl.java
rename to core/src/main/java/dev/velix/imperat/command/CommandImpl.java
index bbb7982f..a7210121 100644
--- a/core/src/main/java/dev/velix/command/CommandImpl.java
+++ b/core/src/main/java/dev/velix/imperat/command/CommandImpl.java
@@ -1,22 +1,22 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.FlagParameter;
-import dev.velix.command.processors.CommandPostProcessor;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.command.suggestions.AutoCompleter;
-import dev.velix.command.tree.CommandTree;
-import dev.velix.command.tree.CommandTreeVisualizer;
-import dev.velix.command.tree.UsageContextMatch;
-import dev.velix.context.Context;
-import dev.velix.context.ResolvedContext;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
-import dev.velix.exception.ImperatException;
-import dev.velix.help.PaginatedHelpTemplate;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.util.ImperatDebugger;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.FlagParameter;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.command.suggestions.AutoCompleter;
+import dev.velix.imperat.command.tree.CommandTree;
+import dev.velix.imperat.command.tree.CommandTreeVisualizer;
+import dev.velix.imperat.command.tree.UsageContextMatch;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.ResolvedContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.help.PaginatedHelpTemplate;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.util.ImperatDebugger;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/CommandUsage.java b/core/src/main/java/dev/velix/imperat/command/CommandUsage.java
similarity index 95%
rename from core/src/main/java/dev/velix/command/CommandUsage.java
rename to core/src/main/java/dev/velix/imperat/command/CommandUsage.java
index 8239d73e..4be805c3 100644
--- a/core/src/main/java/dev/velix/command/CommandUsage.java
+++ b/core/src/main/java/dev/velix/imperat/command/CommandUsage.java
@@ -1,13 +1,13 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.command.cooldown.CooldownHandler;
-import dev.velix.command.cooldown.UsageCooldown;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.ParameterBuilder;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.cooldown.CooldownHandler;
+import dev.velix.imperat.command.cooldown.UsageCooldown;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.ParameterBuilder;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/CommandUsageImpl.java b/core/src/main/java/dev/velix/imperat/command/CommandUsageImpl.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/CommandUsageImpl.java
rename to core/src/main/java/dev/velix/imperat/command/CommandUsageImpl.java
index a32fe0e6..4114a500 100644
--- a/core/src/main/java/dev/velix/command/CommandUsageImpl.java
+++ b/core/src/main/java/dev/velix/imperat/command/CommandUsageImpl.java
@@ -1,13 +1,13 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.command.cooldown.CooldownHandler;
-import dev.velix.command.cooldown.DefaultCooldownHandler;
-import dev.velix.command.cooldown.UsageCooldown;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.cooldown.CooldownHandler;
+import dev.velix.imperat.command.cooldown.DefaultCooldownHandler;
+import dev.velix.imperat.command.cooldown.UsageCooldown;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -18,8 +18,8 @@
import java.util.Objects;
import java.util.function.Predicate;
-import static dev.velix.util.Patterns.DOUBLE_FLAG;
-import static dev.velix.util.Patterns.SINGLE_FLAG;
+import static dev.velix.imperat.util.Patterns.DOUBLE_FLAG;
+import static dev.velix.imperat.util.Patterns.SINGLE_FLAG;
@ApiStatus.Internal
final class CommandUsageImpl implements CommandUsage {
diff --git a/core/src/main/java/dev/velix/command/CommandUsageLookup.java b/core/src/main/java/dev/velix/imperat/command/CommandUsageLookup.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/CommandUsageLookup.java
rename to core/src/main/java/dev/velix/imperat/command/CommandUsageLookup.java
index 6ced911c..aabba088 100644
--- a/core/src/main/java/dev/velix/command/CommandUsageLookup.java
+++ b/core/src/main/java/dev/velix/imperat/command/CommandUsageLookup.java
@@ -1,10 +1,10 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.Imperat;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
import lombok.Data;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/command/ContextResolverFactory.java b/core/src/main/java/dev/velix/imperat/command/ContextResolverFactory.java
similarity index 78%
rename from core/src/main/java/dev/velix/command/ContextResolverFactory.java
rename to core/src/main/java/dev/velix/imperat/command/ContextResolverFactory.java
index 85a077c7..9d47b6d4 100644
--- a/core/src/main/java/dev/velix/command/ContextResolverFactory.java
+++ b/core/src/main/java/dev/velix/imperat/command/ContextResolverFactory.java
@@ -1,9 +1,9 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.annotations.base.element.ParameterElement;
-import dev.velix.context.Source;
-import dev.velix.resolvers.ContextResolver;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.annotations.base.element.ParameterElement;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.resolvers.ContextResolver;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/ContextResolverRegistry.java b/core/src/main/java/dev/velix/imperat/command/ContextResolverRegistry.java
similarity index 82%
rename from core/src/main/java/dev/velix/command/ContextResolverRegistry.java
rename to core/src/main/java/dev/velix/imperat/command/ContextResolverRegistry.java
index 2601b646..4dfbb79a 100644
--- a/core/src/main/java/dev/velix/command/ContextResolverRegistry.java
+++ b/core/src/main/java/dev/velix/imperat/command/ContextResolverRegistry.java
@@ -1,11 +1,11 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.context.Source;
-import dev.velix.help.CommandHelp;
-import dev.velix.resolvers.ContextResolver;
-import dev.velix.util.Registry;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.help.CommandHelp;
+import dev.velix.imperat.resolvers.ContextResolver;
+import dev.velix.imperat.util.Registry;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.TypeWrap;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/command/CooldownHolder.java b/core/src/main/java/dev/velix/imperat/command/CooldownHolder.java
similarity index 79%
rename from core/src/main/java/dev/velix/command/CooldownHolder.java
rename to core/src/main/java/dev/velix/imperat/command/CooldownHolder.java
index 42cea572..cc7ebd40 100644
--- a/core/src/main/java/dev/velix/command/CooldownHolder.java
+++ b/core/src/main/java/dev/velix/imperat/command/CooldownHolder.java
@@ -1,7 +1,7 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.command.cooldown.UsageCooldown;
+import dev.velix.imperat.command.cooldown.UsageCooldown;
import org.jetbrains.annotations.Nullable;
import java.util.concurrent.TimeUnit;
diff --git a/core/src/main/java/dev/velix/command/Describable.java b/core/src/main/java/dev/velix/imperat/command/Describable.java
similarity index 95%
rename from core/src/main/java/dev/velix/command/Describable.java
rename to core/src/main/java/dev/velix/imperat/command/Describable.java
index 3457fa57..2e57e3b5 100644
--- a/core/src/main/java/dev/velix/command/Describable.java
+++ b/core/src/main/java/dev/velix/imperat/command/Describable.java
@@ -1,4 +1,4 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
/**
* Represents an entity that can have a description.
diff --git a/core/src/main/java/dev/velix/command/Description.java b/core/src/main/java/dev/velix/imperat/command/Description.java
similarity index 91%
rename from core/src/main/java/dev/velix/command/Description.java
rename to core/src/main/java/dev/velix/imperat/command/Description.java
index 6ab4d16b..b85803b5 100644
--- a/core/src/main/java/dev/velix/command/Description.java
+++ b/core/src/main/java/dev/velix/imperat/command/Description.java
@@ -1,4 +1,4 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
public final class Description {
diff --git a/core/src/main/java/dev/velix/command/NumericComparator.java b/core/src/main/java/dev/velix/imperat/command/NumericComparator.java
similarity index 89%
rename from core/src/main/java/dev/velix/command/NumericComparator.java
rename to core/src/main/java/dev/velix/imperat/command/NumericComparator.java
index 04ab2c68..1194d4c7 100644
--- a/core/src/main/java/dev/velix/command/NumericComparator.java
+++ b/core/src/main/java/dev/velix/imperat/command/NumericComparator.java
@@ -1,7 +1,7 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.command.parameters.NumericRange;
-import dev.velix.util.Preconditions;
+import dev.velix.imperat.command.parameters.NumericRange;
+import dev.velix.imperat.util.Preconditions;
import java.util.Map;
diff --git a/core/src/main/java/dev/velix/command/PermissionHolder.java b/core/src/main/java/dev/velix/imperat/command/PermissionHolder.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/PermissionHolder.java
rename to core/src/main/java/dev/velix/imperat/command/PermissionHolder.java
index edc3b129..dd0a3a04 100644
--- a/core/src/main/java/dev/velix/command/PermissionHolder.java
+++ b/core/src/main/java/dev/velix/imperat/command/PermissionHolder.java
@@ -1,4 +1,4 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/UsageComparator.java b/core/src/main/java/dev/velix/imperat/command/UsageComparator.java
similarity index 91%
rename from core/src/main/java/dev/velix/command/UsageComparator.java
rename to core/src/main/java/dev/velix/imperat/command/UsageComparator.java
index 786eb795..79695b43 100644
--- a/core/src/main/java/dev/velix/command/UsageComparator.java
+++ b/core/src/main/java/dev/velix/imperat/command/UsageComparator.java
@@ -1,6 +1,6 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.CommandParameter;
import java.util.Comparator;
diff --git a/core/src/main/java/dev/velix/command/UsageMap.java b/core/src/main/java/dev/velix/imperat/command/UsageMap.java
similarity index 83%
rename from core/src/main/java/dev/velix/command/UsageMap.java
rename to core/src/main/java/dev/velix/imperat/command/UsageMap.java
index 6c26cd9b..e09ecac4 100644
--- a/core/src/main/java/dev/velix/command/UsageMap.java
+++ b/core/src/main/java/dev/velix/imperat/command/UsageMap.java
@@ -1,7 +1,7 @@
-package dev.velix.command;
+package dev.velix.imperat.command;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.NotNull;
import java.util.*;
diff --git a/core/src/main/java/dev/velix/command/cooldown/CooldownHandler.java b/core/src/main/java/dev/velix/imperat/command/cooldown/CooldownHandler.java
similarity index 93%
rename from core/src/main/java/dev/velix/command/cooldown/CooldownHandler.java
rename to core/src/main/java/dev/velix/imperat/command/cooldown/CooldownHandler.java
index 330a1986..6ebd5d4c 100644
--- a/core/src/main/java/dev/velix/command/cooldown/CooldownHandler.java
+++ b/core/src/main/java/dev/velix/imperat/command/cooldown/CooldownHandler.java
@@ -1,7 +1,7 @@
-package dev.velix.command.cooldown;
+package dev.velix.imperat.command.cooldown;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import java.util.Optional;
diff --git a/core/src/main/java/dev/velix/command/cooldown/DefaultCooldownHandler.java b/core/src/main/java/dev/velix/imperat/command/cooldown/DefaultCooldownHandler.java
similarity index 92%
rename from core/src/main/java/dev/velix/command/cooldown/DefaultCooldownHandler.java
rename to core/src/main/java/dev/velix/imperat/command/cooldown/DefaultCooldownHandler.java
index d731fb56..f8022a21 100644
--- a/core/src/main/java/dev/velix/command/cooldown/DefaultCooldownHandler.java
+++ b/core/src/main/java/dev/velix/imperat/command/cooldown/DefaultCooldownHandler.java
@@ -1,7 +1,7 @@
-package dev.velix.command.cooldown;
+package dev.velix.imperat.command.cooldown;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
import java.util.HashMap;
import java.util.Map;
diff --git a/core/src/main/java/dev/velix/command/cooldown/UsageCooldown.java b/core/src/main/java/dev/velix/imperat/command/cooldown/UsageCooldown.java
similarity index 75%
rename from core/src/main/java/dev/velix/command/cooldown/UsageCooldown.java
rename to core/src/main/java/dev/velix/imperat/command/cooldown/UsageCooldown.java
index d8e70a69..17adfde4 100644
--- a/core/src/main/java/dev/velix/command/cooldown/UsageCooldown.java
+++ b/core/src/main/java/dev/velix/imperat/command/cooldown/UsageCooldown.java
@@ -1,13 +1,12 @@
-package dev.velix.command.cooldown;
+package dev.velix.imperat.command.cooldown;
-import dev.velix.command.CommandUsage;
import org.jetbrains.annotations.ApiStatus;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
/**
- * Represents a required cooldown of a {@link CommandUsage}
+ * Represents a required cooldown of a {@link dev.velix.imperat.command.CommandUsage}
*
* @param value the value for this
* @param unit the unit for the time
diff --git a/core/src/main/java/dev/velix/command/parameters/CommandParameter.java b/core/src/main/java/dev/velix/imperat/command/parameters/CommandParameter.java
similarity index 92%
rename from core/src/main/java/dev/velix/command/parameters/CommandParameter.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/CommandParameter.java
index 3deb5745..14c3b772 100644
--- a/core/src/main/java/dev/velix/command/parameters/CommandParameter.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/CommandParameter.java
@@ -1,16 +1,16 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.annotations.parameters.AnnotatedParameter;
-import dev.velix.command.Command;
-import dev.velix.command.Describable;
-import dev.velix.command.Description;
-import dev.velix.command.PermissionHolder;
-import dev.velix.context.Source;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.Preconditions;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.annotations.parameters.AnnotatedParameter;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.Describable;
+import dev.velix.imperat.command.Description;
+import dev.velix.imperat.command.PermissionHolder;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.Preconditions;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/parameters/FlagBuilder.java b/core/src/main/java/dev/velix/imperat/command/parameters/FlagBuilder.java
similarity index 89%
rename from core/src/main/java/dev/velix/command/parameters/FlagBuilder.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/FlagBuilder.java
index 80255adb..963080de 100644
--- a/core/src/main/java/dev/velix/command/parameters/FlagBuilder.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/FlagBuilder.java
@@ -1,9 +1,9 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.CommandSwitch;
-import dev.velix.context.Source;
-import dev.velix.supplier.OptionalValueSupplier;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.CommandSwitch;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
import java.util.ArrayList;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/command/parameters/FlagCommandParameter.java b/core/src/main/java/dev/velix/imperat/command/parameters/FlagCommandParameter.java
similarity index 88%
rename from core/src/main/java/dev/velix/command/parameters/FlagCommandParameter.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/FlagCommandParameter.java
index 6fc3dc6f..fcdb43ba 100644
--- a/core/src/main/java/dev/velix/command/parameters/FlagCommandParameter.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/FlagCommandParameter.java
@@ -1,10 +1,10 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.command.Description;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.CommandSwitch;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.Description;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.CommandSwitch;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/parameters/FlagParameter.java b/core/src/main/java/dev/velix/imperat/command/parameters/FlagParameter.java
similarity index 75%
rename from core/src/main/java/dev/velix/command/parameters/FlagParameter.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/FlagParameter.java
index c2f46cec..608acff1 100644
--- a/core/src/main/java/dev/velix/command/parameters/FlagParameter.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/FlagParameter.java
@@ -1,7 +1,7 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.CommandSwitch;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.CommandSwitch;
import org.jetbrains.annotations.NotNull;
public interface FlagParameter extends CommandParameter {
diff --git a/core/src/main/java/dev/velix/command/parameters/InputParameter.java b/core/src/main/java/dev/velix/imperat/command/parameters/InputParameter.java
similarity index 93%
rename from core/src/main/java/dev/velix/command/parameters/InputParameter.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/InputParameter.java
index 933ff39c..7fb1548d 100644
--- a/core/src/main/java/dev/velix/command/parameters/InputParameter.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/InputParameter.java
@@ -1,12 +1,12 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.command.Command;
-import dev.velix.command.Description;
-import dev.velix.context.Source;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.Description;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/parameters/NormalCommandParameter.java b/core/src/main/java/dev/velix/imperat/command/parameters/NormalCommandParameter.java
similarity index 77%
rename from core/src/main/java/dev/velix/command/parameters/NormalCommandParameter.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/NormalCommandParameter.java
index 6aaf78e3..00a81a38 100644
--- a/core/src/main/java/dev/velix/command/parameters/NormalCommandParameter.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/NormalCommandParameter.java
@@ -1,10 +1,10 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.command.Description;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.StringUtils;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.Description;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.StringUtils;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.Nullable;
class NormalCommandParameter extends InputParameter {
diff --git a/core/src/main/java/dev/velix/command/parameters/NumericParameter.java b/core/src/main/java/dev/velix/imperat/command/parameters/NumericParameter.java
similarity index 87%
rename from core/src/main/java/dev/velix/command/parameters/NumericParameter.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/NumericParameter.java
index 2f4b20a8..9c278784 100644
--- a/core/src/main/java/dev/velix/command/parameters/NumericParameter.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/NumericParameter.java
@@ -1,6 +1,6 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.command.NumericComparator;
+import dev.velix.imperat.command.NumericComparator;
import org.jetbrains.annotations.Nullable;
/**
diff --git a/core/src/main/java/dev/velix/command/parameters/NumericRange.java b/core/src/main/java/dev/velix/imperat/command/parameters/NumericRange.java
similarity index 93%
rename from core/src/main/java/dev/velix/command/parameters/NumericRange.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/NumericRange.java
index 2b109a9d..5d98cee6 100644
--- a/core/src/main/java/dev/velix/command/parameters/NumericRange.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/NumericRange.java
@@ -1,4 +1,4 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
import lombok.Getter;
diff --git a/core/src/main/java/dev/velix/command/parameters/ParameterBuilder.java b/core/src/main/java/dev/velix/imperat/command/parameters/ParameterBuilder.java
similarity index 88%
rename from core/src/main/java/dev/velix/command/parameters/ParameterBuilder.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/ParameterBuilder.java
index 8a2ef778..72900879 100644
--- a/core/src/main/java/dev/velix/command/parameters/ParameterBuilder.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/ParameterBuilder.java
@@ -1,11 +1,11 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
-import dev.velix.command.Description;
-import dev.velix.context.Source;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.supplier.OptionalValueSupplier;
-import dev.velix.util.Preconditions;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.Description;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
+import dev.velix.imperat.util.Preconditions;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/parameters/StrictParameterList.java b/core/src/main/java/dev/velix/imperat/command/parameters/StrictParameterList.java
similarity index 96%
rename from core/src/main/java/dev/velix/command/parameters/StrictParameterList.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/StrictParameterList.java
index 6c184272..e133d40a 100644
--- a/core/src/main/java/dev/velix/command/parameters/StrictParameterList.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/StrictParameterList.java
@@ -1,4 +1,4 @@
-package dev.velix.command.parameters;
+package dev.velix.imperat.command.parameters;
import java.util.Collection;
import java.util.LinkedList;
diff --git a/core/src/main/java/dev/velix/command/parameters/types/ParameterType.java b/core/src/main/java/dev/velix/imperat/command/parameters/types/ParameterType.java
similarity index 72%
rename from core/src/main/java/dev/velix/command/parameters/types/ParameterType.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/types/ParameterType.java
index 8429d32f..6446749b 100644
--- a/core/src/main/java/dev/velix/command/parameters/types/ParameterType.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/types/ParameterType.java
@@ -1,4 +1,4 @@
-package dev.velix.command.parameters.types;
+package dev.velix.imperat.command.parameters.types;
import java.lang.reflect.Type;
diff --git a/core/src/main/java/dev/velix/command/parameters/types/ParameterTypes.java b/core/src/main/java/dev/velix/imperat/command/parameters/types/ParameterTypes.java
similarity index 95%
rename from core/src/main/java/dev/velix/command/parameters/types/ParameterTypes.java
rename to core/src/main/java/dev/velix/imperat/command/parameters/types/ParameterTypes.java
index 1534a0a7..e6e8426c 100644
--- a/core/src/main/java/dev/velix/command/parameters/types/ParameterTypes.java
+++ b/core/src/main/java/dev/velix/imperat/command/parameters/types/ParameterTypes.java
@@ -1,7 +1,7 @@
-package dev.velix.command.parameters.types;
+package dev.velix.imperat.command.parameters.types;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.TypeWrap;
import java.lang.reflect.Type;
import java.util.Collection;
diff --git a/core/src/main/java/dev/velix/command/processors/CommandPostProcessor.java b/core/src/main/java/dev/velix/imperat/command/processors/CommandPostProcessor.java
similarity index 68%
rename from core/src/main/java/dev/velix/command/processors/CommandPostProcessor.java
rename to core/src/main/java/dev/velix/imperat/command/processors/CommandPostProcessor.java
index b4818dbd..941f7333 100644
--- a/core/src/main/java/dev/velix/command/processors/CommandPostProcessor.java
+++ b/core/src/main/java/dev/velix/imperat/command/processors/CommandPostProcessor.java
@@ -1,10 +1,10 @@
-package dev.velix.command.processors;
+package dev.velix.imperat.command.processors;
-import dev.velix.Imperat;
-import dev.velix.context.Context;
-import dev.velix.context.ResolvedContext;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.ResolvedContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
/**
* Defines a functional interface that processes a {@link Context}
diff --git a/core/src/main/java/dev/velix/command/processors/CommandPreProcessor.java b/core/src/main/java/dev/velix/imperat/command/processors/CommandPreProcessor.java
similarity index 71%
rename from core/src/main/java/dev/velix/command/processors/CommandPreProcessor.java
rename to core/src/main/java/dev/velix/imperat/command/processors/CommandPreProcessor.java
index 68785a3f..5661ac59 100644
--- a/core/src/main/java/dev/velix/command/processors/CommandPreProcessor.java
+++ b/core/src/main/java/dev/velix/imperat/command/processors/CommandPreProcessor.java
@@ -1,10 +1,10 @@
-package dev.velix.command.processors;
+package dev.velix.imperat.command.processors;
-import dev.velix.Imperat;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
/**
* Defines a functional interface that processes a {@link Context}
diff --git a/core/src/main/java/dev/velix/command/processors/impl/UsageCooldownProcessor.java b/core/src/main/java/dev/velix/imperat/command/processors/impl/UsageCooldownProcessor.java
similarity index 71%
rename from core/src/main/java/dev/velix/command/processors/impl/UsageCooldownProcessor.java
rename to core/src/main/java/dev/velix/imperat/command/processors/impl/UsageCooldownProcessor.java
index 54feb993..d68e4b1b 100644
--- a/core/src/main/java/dev/velix/command/processors/impl/UsageCooldownProcessor.java
+++ b/core/src/main/java/dev/velix/imperat/command/processors/impl/UsageCooldownProcessor.java
@@ -1,12 +1,12 @@
-package dev.velix.command.processors.impl;
+package dev.velix.imperat.command.processors.impl;
-import dev.velix.Imperat;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.exception.CooldownException;
-import dev.velix.exception.ImperatException;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.CooldownException;
+import dev.velix.imperat.exception.ImperatException;
public final class UsageCooldownProcessor implements CommandPreProcessor {
/**
diff --git a/core/src/main/java/dev/velix/command/processors/impl/UsagePermissionProcessor.java b/core/src/main/java/dev/velix/imperat/command/processors/impl/UsagePermissionProcessor.java
similarity index 64%
rename from core/src/main/java/dev/velix/command/processors/impl/UsagePermissionProcessor.java
rename to core/src/main/java/dev/velix/imperat/command/processors/impl/UsagePermissionProcessor.java
index e5f5ba54..60d8b740 100644
--- a/core/src/main/java/dev/velix/command/processors/impl/UsagePermissionProcessor.java
+++ b/core/src/main/java/dev/velix/imperat/command/processors/impl/UsagePermissionProcessor.java
@@ -1,12 +1,12 @@
-package dev.velix.command.processors.impl;
+package dev.velix.imperat.command.processors.impl;
-import dev.velix.Imperat;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.PermissionDeniedException;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.PermissionDeniedException;
public final class UsagePermissionProcessor implements CommandPreProcessor {
/**
diff --git a/core/src/main/java/dev/velix/command/suggestions/AdvancedAutoCompleter.java b/core/src/main/java/dev/velix/imperat/command/suggestions/AdvancedAutoCompleter.java
similarity index 70%
rename from core/src/main/java/dev/velix/command/suggestions/AdvancedAutoCompleter.java
rename to core/src/main/java/dev/velix/imperat/command/suggestions/AdvancedAutoCompleter.java
index c437b4bd..f418b001 100644
--- a/core/src/main/java/dev/velix/command/suggestions/AdvancedAutoCompleter.java
+++ b/core/src/main/java/dev/velix/imperat/command/suggestions/AdvancedAutoCompleter.java
@@ -1,9 +1,9 @@
-package dev.velix.command.suggestions;
+package dev.velix.imperat.command.suggestions;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/command/suggestions/AutoCompleteList.java b/core/src/main/java/dev/velix/imperat/command/suggestions/AutoCompleteList.java
similarity index 91%
rename from core/src/main/java/dev/velix/command/suggestions/AutoCompleteList.java
rename to core/src/main/java/dev/velix/imperat/command/suggestions/AutoCompleteList.java
index 4cf6d3a0..ae9ddb40 100644
--- a/core/src/main/java/dev/velix/command/suggestions/AutoCompleteList.java
+++ b/core/src/main/java/dev/velix/imperat/command/suggestions/AutoCompleteList.java
@@ -1,4 +1,4 @@
-package dev.velix.command.suggestions;
+package dev.velix.imperat.command.suggestions;
import lombok.Getter;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/command/suggestions/AutoCompleter.java b/core/src/main/java/dev/velix/imperat/command/suggestions/AutoCompleter.java
similarity index 90%
rename from core/src/main/java/dev/velix/command/suggestions/AutoCompleter.java
rename to core/src/main/java/dev/velix/imperat/command/suggestions/AutoCompleter.java
index 3fb541aa..df52e776 100644
--- a/core/src/main/java/dev/velix/command/suggestions/AutoCompleter.java
+++ b/core/src/main/java/dev/velix/imperat/command/suggestions/AutoCompleter.java
@@ -1,10 +1,10 @@
-package dev.velix.command.suggestions;
+package dev.velix.imperat.command.suggestions;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/command/suggestions/CompletionArg.java b/core/src/main/java/dev/velix/imperat/command/suggestions/CompletionArg.java
similarity index 90%
rename from core/src/main/java/dev/velix/command/suggestions/CompletionArg.java
rename to core/src/main/java/dev/velix/imperat/command/suggestions/CompletionArg.java
index 9093c3ad..a0e248ba 100644
--- a/core/src/main/java/dev/velix/command/suggestions/CompletionArg.java
+++ b/core/src/main/java/dev/velix/imperat/command/suggestions/CompletionArg.java
@@ -1,4 +1,4 @@
-package dev.velix.command.suggestions;
+package dev.velix.imperat.command.suggestions;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/command/suggestions/SimpleAutoCompleter.java b/core/src/main/java/dev/velix/imperat/command/suggestions/SimpleAutoCompleter.java
similarity index 86%
rename from core/src/main/java/dev/velix/command/suggestions/SimpleAutoCompleter.java
rename to core/src/main/java/dev/velix/imperat/command/suggestions/SimpleAutoCompleter.java
index 8d0bd6db..1e3e669a 100644
--- a/core/src/main/java/dev/velix/command/suggestions/SimpleAutoCompleter.java
+++ b/core/src/main/java/dev/velix/imperat/command/suggestions/SimpleAutoCompleter.java
@@ -1,14 +1,14 @@
-package dev.velix.command.suggestions;
+package dev.velix.imperat.command.suggestions;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.PermissionResolver;
-import dev.velix.resolvers.SuggestionResolver;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.PermissionResolver;
+import dev.velix.imperat.resolvers.SuggestionResolver;
import org.jetbrains.annotations.ApiStatus;
import java.util.Collection;
diff --git a/core/src/main/java/dev/velix/command/suggestions/SuggestionResolverRegistry.java b/core/src/main/java/dev/velix/imperat/command/suggestions/SuggestionResolverRegistry.java
similarity index 89%
rename from core/src/main/java/dev/velix/command/suggestions/SuggestionResolverRegistry.java
rename to core/src/main/java/dev/velix/imperat/command/suggestions/SuggestionResolverRegistry.java
index e20217dd..7a2f5b67 100644
--- a/core/src/main/java/dev/velix/command/suggestions/SuggestionResolverRegistry.java
+++ b/core/src/main/java/dev/velix/imperat/command/suggestions/SuggestionResolverRegistry.java
@@ -1,12 +1,12 @@
-package dev.velix.command.suggestions;
+package dev.velix.imperat.command.suggestions;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.util.Registry;
-import dev.velix.util.TypeUtility;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.util.Registry;
+import dev.velix.imperat.util.TypeUtility;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/tree/ArgumentNode.java b/core/src/main/java/dev/velix/imperat/command/tree/ArgumentNode.java
similarity index 76%
rename from core/src/main/java/dev/velix/command/tree/ArgumentNode.java
rename to core/src/main/java/dev/velix/imperat/command/tree/ArgumentNode.java
index 21f465f6..287117e0 100644
--- a/core/src/main/java/dev/velix/command/tree/ArgumentNode.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/ArgumentNode.java
@@ -1,8 +1,8 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.types.ParameterType;
-import dev.velix.command.parameters.types.ParameterTypes;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.types.ParameterType;
+import dev.velix.imperat.command.parameters.types.ParameterTypes;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/command/tree/CommandNode.java b/core/src/main/java/dev/velix/imperat/command/tree/CommandNode.java
similarity index 84%
rename from core/src/main/java/dev/velix/command/tree/CommandNode.java
rename to core/src/main/java/dev/velix/imperat/command/tree/CommandNode.java
index 40f4a6cf..8ec89f47 100644
--- a/core/src/main/java/dev/velix/command/tree/CommandNode.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/CommandNode.java
@@ -1,7 +1,7 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
-import dev.velix.command.Command;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/command/tree/CommandTree.java b/core/src/main/java/dev/velix/imperat/command/tree/CommandTree.java
similarity index 95%
rename from core/src/main/java/dev/velix/command/tree/CommandTree.java
rename to core/src/main/java/dev/velix/imperat/command/tree/CommandTree.java
index fe56273f..c60cc48d 100644
--- a/core/src/main/java/dev/velix/command/tree/CommandTree.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/CommandTree.java
@@ -1,14 +1,14 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
diff --git a/core/src/main/java/dev/velix/command/tree/CommandTreeVisualizer.java b/core/src/main/java/dev/velix/imperat/command/tree/CommandTreeVisualizer.java
similarity index 89%
rename from core/src/main/java/dev/velix/command/tree/CommandTreeVisualizer.java
rename to core/src/main/java/dev/velix/imperat/command/tree/CommandTreeVisualizer.java
index 14757f80..1d112275 100644
--- a/core/src/main/java/dev/velix/command/tree/CommandTreeVisualizer.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/CommandTreeVisualizer.java
@@ -1,7 +1,7 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
-import dev.velix.context.Source;
-import dev.velix.util.ImperatDebugger;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.util.ImperatDebugger;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/tree/ParameterNode.java b/core/src/main/java/dev/velix/imperat/command/tree/ParameterNode.java
similarity index 94%
rename from core/src/main/java/dev/velix/command/tree/ParameterNode.java
rename to core/src/main/java/dev/velix/imperat/command/tree/ParameterNode.java
index ae690f20..ce68bb08 100644
--- a/core/src/main/java/dev/velix/command/tree/ParameterNode.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/ParameterNode.java
@@ -1,6 +1,6 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
-import dev.velix.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.CommandParameter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/tree/UsageContextMatch.java b/core/src/main/java/dev/velix/imperat/command/tree/UsageContextMatch.java
similarity index 85%
rename from core/src/main/java/dev/velix/command/tree/UsageContextMatch.java
rename to core/src/main/java/dev/velix/imperat/command/tree/UsageContextMatch.java
index 2860ef50..22ad6200 100644
--- a/core/src/main/java/dev/velix/command/tree/UsageContextMatch.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/UsageContextMatch.java
@@ -1,10 +1,10 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
-import dev.velix.util.ImperatDebugger;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.util.ImperatDebugger;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/command/tree/UsageMatchResult.java b/core/src/main/java/dev/velix/imperat/command/tree/UsageMatchResult.java
similarity index 70%
rename from core/src/main/java/dev/velix/command/tree/UsageMatchResult.java
rename to core/src/main/java/dev/velix/imperat/command/tree/UsageMatchResult.java
index b8a36590..ef1dd470 100644
--- a/core/src/main/java/dev/velix/command/tree/UsageMatchResult.java
+++ b/core/src/main/java/dev/velix/imperat/command/tree/UsageMatchResult.java
@@ -1,4 +1,4 @@
-package dev.velix.command.tree;
+package dev.velix.imperat.command.tree;
public enum UsageMatchResult {
diff --git a/core/src/main/java/dev/velix/context/ArgumentQueue.java b/core/src/main/java/dev/velix/imperat/context/ArgumentQueue.java
similarity index 98%
rename from core/src/main/java/dev/velix/context/ArgumentQueue.java
rename to core/src/main/java/dev/velix/imperat/context/ArgumentQueue.java
index a5908d36..368dbf1e 100644
--- a/core/src/main/java/dev/velix/context/ArgumentQueue.java
+++ b/core/src/main/java/dev/velix/imperat/context/ArgumentQueue.java
@@ -1,4 +1,4 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
import org.jetbrains.annotations.*;
diff --git a/core/src/main/java/dev/velix/context/ArgumentQueueImpl.java b/core/src/main/java/dev/velix/imperat/context/ArgumentQueueImpl.java
similarity index 97%
rename from core/src/main/java/dev/velix/context/ArgumentQueueImpl.java
rename to core/src/main/java/dev/velix/imperat/context/ArgumentQueueImpl.java
index d1a57baf..01111c5a 100644
--- a/core/src/main/java/dev/velix/context/ArgumentQueueImpl.java
+++ b/core/src/main/java/dev/velix/imperat/context/ArgumentQueueImpl.java
@@ -1,4 +1,4 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/CommandFlag.java b/core/src/main/java/dev/velix/imperat/context/CommandFlag.java
similarity index 95%
rename from core/src/main/java/dev/velix/context/CommandFlag.java
rename to core/src/main/java/dev/velix/imperat/context/CommandFlag.java
index 065e85f5..8e9b98dc 100644
--- a/core/src/main/java/dev/velix/context/CommandFlag.java
+++ b/core/src/main/java/dev/velix/imperat/context/CommandFlag.java
@@ -1,6 +1,6 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.util.StringUtils;
+import dev.velix.imperat.util.StringUtils;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/CommandSwitch.java b/core/src/main/java/dev/velix/imperat/context/CommandSwitch.java
similarity index 97%
rename from core/src/main/java/dev/velix/context/CommandSwitch.java
rename to core/src/main/java/dev/velix/imperat/context/CommandSwitch.java
index 8e82b86f..0060389c 100644
--- a/core/src/main/java/dev/velix/context/CommandSwitch.java
+++ b/core/src/main/java/dev/velix/imperat/context/CommandSwitch.java
@@ -1,4 +1,4 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/Context.java b/core/src/main/java/dev/velix/imperat/context/Context.java
similarity index 89%
rename from core/src/main/java/dev/velix/context/Context.java
rename to core/src/main/java/dev/velix/imperat/context/Context.java
index a62afd6f..d7746d8b 100644
--- a/core/src/main/java/dev/velix/context/Context.java
+++ b/core/src/main/java/dev/velix/imperat/context/Context.java
@@ -1,6 +1,6 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.Command;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/EnumValueResolver.java b/core/src/main/java/dev/velix/imperat/context/EnumValueResolver.java
similarity index 71%
rename from core/src/main/java/dev/velix/context/EnumValueResolver.java
rename to core/src/main/java/dev/velix/imperat/context/EnumValueResolver.java
index f77de5bf..c313b937 100644
--- a/core/src/main/java/dev/velix/context/EnumValueResolver.java
+++ b/core/src/main/java/dev/velix/imperat/context/EnumValueResolver.java
@@ -1,10 +1,10 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.internal.sur.Cursor;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.SourceException;
-import dev.velix.resolvers.ValueResolver;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.internal.sur.Cursor;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.resolvers.ValueResolver;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
diff --git a/core/src/main/java/dev/velix/context/ExecutionContext.java b/core/src/main/java/dev/velix/imperat/context/ExecutionContext.java
similarity index 86%
rename from core/src/main/java/dev/velix/context/ExecutionContext.java
rename to core/src/main/java/dev/velix/imperat/context/ExecutionContext.java
index 49524a68..9f6348d0 100644
--- a/core/src/main/java/dev/velix/context/ExecutionContext.java
+++ b/core/src/main/java/dev/velix/imperat/context/ExecutionContext.java
@@ -1,11 +1,10 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.command.Command;
-import dev.velix.context.internal.ResolvedArgument;
-import dev.velix.context.internal.ResolvedFlag;
-import dev.velix.exception.ImperatException;
-import dev.velix.help.CommandHelp;
-import dev.velix.resolvers.ContextResolver;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.internal.ResolvedArgument;
+import dev.velix.imperat.context.internal.ResolvedFlag;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.help.CommandHelp;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -71,7 +70,7 @@ default String getRawArgument(int index) {
/**
* Fetches the argument/input resolved by the context
- * using {@link ContextResolver}
+ * using {@link dev.velix.imperat.resolvers.ContextResolver}
*
* @param type type of argument to return
* @param the type of this argument parsed value
diff --git a/core/src/main/java/dev/velix/context/ResolvedContext.java b/core/src/main/java/dev/velix/imperat/context/ResolvedContext.java
similarity index 90%
rename from core/src/main/java/dev/velix/context/ResolvedContext.java
rename to core/src/main/java/dev/velix/imperat/context/ResolvedContext.java
index c92f7538..e7f5ab00 100644
--- a/core/src/main/java/dev/velix/context/ResolvedContext.java
+++ b/core/src/main/java/dev/velix/imperat/context/ResolvedContext.java
@@ -1,11 +1,11 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.internal.ResolvedArgument;
-import dev.velix.exception.ImperatException;
-import dev.velix.resolvers.ValueResolver;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.internal.ResolvedArgument;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.resolvers.ValueResolver;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/context/Source.java b/core/src/main/java/dev/velix/imperat/context/Source.java
similarity index 97%
rename from core/src/main/java/dev/velix/context/Source.java
rename to core/src/main/java/dev/velix/imperat/context/Source.java
index bbc3b6e4..c7d9dccf 100644
--- a/core/src/main/java/dev/velix/context/Source.java
+++ b/core/src/main/java/dev/velix/imperat/context/Source.java
@@ -1,4 +1,4 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/context/StringTokenizer.java b/core/src/main/java/dev/velix/imperat/context/StringTokenizer.java
similarity index 96%
rename from core/src/main/java/dev/velix/context/StringTokenizer.java
rename to core/src/main/java/dev/velix/imperat/context/StringTokenizer.java
index 99593461..d9030ed9 100644
--- a/core/src/main/java/dev/velix/context/StringTokenizer.java
+++ b/core/src/main/java/dev/velix/imperat/context/StringTokenizer.java
@@ -1,6 +1,6 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.exception.TokenParseException;
+import dev.velix.imperat.exception.TokenParseException;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
diff --git a/core/src/main/java/dev/velix/context/SuggestionContext.java b/core/src/main/java/dev/velix/imperat/context/SuggestionContext.java
similarity index 79%
rename from core/src/main/java/dev/velix/context/SuggestionContext.java
rename to core/src/main/java/dev/velix/imperat/context/SuggestionContext.java
index db299b10..7bd2cb75 100644
--- a/core/src/main/java/dev/velix/context/SuggestionContext.java
+++ b/core/src/main/java/dev/velix/imperat/context/SuggestionContext.java
@@ -1,6 +1,6 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.command.suggestions.CompletionArg;
+import dev.velix.imperat.command.suggestions.CompletionArg;
import org.jetbrains.annotations.NotNull;
/**
diff --git a/core/src/main/java/dev/velix/context/TokenIterator.java b/core/src/main/java/dev/velix/imperat/context/TokenIterator.java
similarity index 92%
rename from core/src/main/java/dev/velix/context/TokenIterator.java
rename to core/src/main/java/dev/velix/imperat/context/TokenIterator.java
index e74b7485..410df3d3 100644
--- a/core/src/main/java/dev/velix/context/TokenIterator.java
+++ b/core/src/main/java/dev/velix/imperat/context/TokenIterator.java
@@ -1,6 +1,6 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.exception.TokenParseException;
+import dev.velix.imperat.exception.TokenParseException;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/context/ValueResolverRegistry.java b/core/src/main/java/dev/velix/imperat/context/ValueResolverRegistry.java
similarity index 92%
rename from core/src/main/java/dev/velix/context/ValueResolverRegistry.java
rename to core/src/main/java/dev/velix/imperat/context/ValueResolverRegistry.java
index dfc28e3b..fde8b2d8 100644
--- a/core/src/main/java/dev/velix/context/ValueResolverRegistry.java
+++ b/core/src/main/java/dev/velix/imperat/context/ValueResolverRegistry.java
@@ -1,9 +1,9 @@
-package dev.velix.context;
+package dev.velix.imperat.context;
-import dev.velix.exception.SourceException;
-import dev.velix.resolvers.ValueResolver;
-import dev.velix.util.Registry;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.resolvers.ValueResolver;
+import dev.velix.imperat.util.Registry;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.ApiStatus;
import java.lang.reflect.Type;
diff --git a/core/src/main/java/dev/velix/context/internal/ContextFactory.java b/core/src/main/java/dev/velix/imperat/context/internal/ContextFactory.java
similarity index 88%
rename from core/src/main/java/dev/velix/context/internal/ContextFactory.java
rename to core/src/main/java/dev/velix/imperat/context/internal/ContextFactory.java
index b9de367d..d952930b 100644
--- a/core/src/main/java/dev/velix/context/internal/ContextFactory.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/ContextFactory.java
@@ -1,10 +1,10 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.suggestions.CompletionArg;
-import dev.velix.context.*;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.suggestions.CompletionArg;
+import dev.velix.imperat.context.*;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/internal/ContextImpl.java b/core/src/main/java/dev/velix/imperat/context/internal/ContextImpl.java
similarity index 69%
rename from core/src/main/java/dev/velix/context/internal/ContextImpl.java
rename to core/src/main/java/dev/velix/imperat/context/internal/ContextImpl.java
index f4c25cb9..5bf96eba 100644
--- a/core/src/main/java/dev/velix/context/internal/ContextImpl.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/ContextImpl.java
@@ -1,10 +1,10 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
import lombok.Data;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/internal/DefaultContextFactory.java b/core/src/main/java/dev/velix/imperat/context/internal/DefaultContextFactory.java
similarity index 86%
rename from core/src/main/java/dev/velix/context/internal/DefaultContextFactory.java
rename to core/src/main/java/dev/velix/imperat/context/internal/DefaultContextFactory.java
index fe11246f..4a806e54 100644
--- a/core/src/main/java/dev/velix/context/internal/DefaultContextFactory.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/DefaultContextFactory.java
@@ -1,10 +1,10 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.suggestions.CompletionArg;
-import dev.velix.context.*;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.suggestions.CompletionArg;
+import dev.velix.imperat.context.*;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/context/internal/FlagRegistry.java b/core/src/main/java/dev/velix/imperat/context/internal/FlagRegistry.java
similarity index 69%
rename from core/src/main/java/dev/velix/context/internal/FlagRegistry.java
rename to core/src/main/java/dev/velix/imperat/context/internal/FlagRegistry.java
index ef8d2b4f..4ff6d8d5 100644
--- a/core/src/main/java/dev/velix/context/internal/FlagRegistry.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/FlagRegistry.java
@@ -1,6 +1,6 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.util.Registry;
+import dev.velix.imperat.util.Registry;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
diff --git a/core/src/main/java/dev/velix/context/internal/ResolvedArgument.java b/core/src/main/java/dev/velix/imperat/context/internal/ResolvedArgument.java
similarity index 83%
rename from core/src/main/java/dev/velix/context/internal/ResolvedArgument.java
rename to core/src/main/java/dev/velix/imperat/context/internal/ResolvedArgument.java
index 7a6fe7fb..026cebfd 100644
--- a/core/src/main/java/dev/velix/context/internal/ResolvedArgument.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/ResolvedArgument.java
@@ -1,6 +1,6 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.CommandParameter;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/context/internal/ResolvedContextImpl.java b/core/src/main/java/dev/velix/imperat/context/internal/ResolvedContextImpl.java
similarity index 91%
rename from core/src/main/java/dev/velix/context/internal/ResolvedContextImpl.java
rename to core/src/main/java/dev/velix/imperat/context/internal/ResolvedContextImpl.java
index 260e52cd..e104cbcc 100644
--- a/core/src/main/java/dev/velix/context/internal/ResolvedContextImpl.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/ResolvedContextImpl.java
@@ -1,19 +1,19 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.parameters.NumericParameter;
-import dev.velix.command.parameters.NumericRange;
-import dev.velix.context.*;
-import dev.velix.context.internal.sur.SmartUsageResolve;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.NumberOutOfRangeException;
-import dev.velix.help.CommandHelp;
-import dev.velix.resolvers.ContextResolver;
-import dev.velix.resolvers.ValueResolver;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.NumericParameter;
+import dev.velix.imperat.command.parameters.NumericRange;
+import dev.velix.imperat.context.*;
+import dev.velix.imperat.context.internal.sur.SmartUsageResolve;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.NumberOutOfRangeException;
+import dev.velix.imperat.help.CommandHelp;
+import dev.velix.imperat.resolvers.ContextResolver;
+import dev.velix.imperat.resolvers.ValueResolver;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/context/internal/ResolvedFlag.java b/core/src/main/java/dev/velix/imperat/context/internal/ResolvedFlag.java
similarity index 61%
rename from core/src/main/java/dev/velix/context/internal/ResolvedFlag.java
rename to core/src/main/java/dev/velix/imperat/context/internal/ResolvedFlag.java
index 76aa385c..7fed64f4 100644
--- a/core/src/main/java/dev/velix/context/internal/ResolvedFlag.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/ResolvedFlag.java
@@ -1,7 +1,7 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.context.CommandFlag;
-import dev.velix.context.CommandSwitch;
+import dev.velix.imperat.context.CommandFlag;
+import dev.velix.imperat.context.CommandSwitch;
public record ResolvedFlag(CommandFlag flag, String flagRaw,
String flagRawInput, Object value) {
diff --git a/core/src/main/java/dev/velix/context/internal/SuggestionContextImpl.java b/core/src/main/java/dev/velix/imperat/context/internal/SuggestionContextImpl.java
similarity index 65%
rename from core/src/main/java/dev/velix/context/internal/SuggestionContextImpl.java
rename to core/src/main/java/dev/velix/imperat/context/internal/SuggestionContextImpl.java
index 9c0dcc8e..0df2315d 100644
--- a/core/src/main/java/dev/velix/context/internal/SuggestionContextImpl.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/SuggestionContextImpl.java
@@ -1,11 +1,11 @@
-package dev.velix.context.internal;
+package dev.velix.imperat.context.internal;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.suggestions.CompletionArg;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.suggestions.CompletionArg;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
import org.jetbrains.annotations.NotNull;
final class SuggestionContextImpl extends ContextImpl implements SuggestionContext {
diff --git a/core/src/main/java/dev/velix/context/internal/sur/Cursor.java b/core/src/main/java/dev/velix/imperat/context/internal/sur/Cursor.java
similarity index 90%
rename from core/src/main/java/dev/velix/context/internal/sur/Cursor.java
rename to core/src/main/java/dev/velix/imperat/context/internal/sur/Cursor.java
index c7fc5511..e264f131 100644
--- a/core/src/main/java/dev/velix/context/internal/sur/Cursor.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/sur/Cursor.java
@@ -1,9 +1,9 @@
-package dev.velix.context.internal.sur;
+package dev.velix.imperat.context.internal.sur;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/context/internal/sur/PositionShiftCondition.java b/core/src/main/java/dev/velix/imperat/context/internal/sur/PositionShiftCondition.java
similarity index 72%
rename from core/src/main/java/dev/velix/context/internal/sur/PositionShiftCondition.java
rename to core/src/main/java/dev/velix/imperat/context/internal/sur/PositionShiftCondition.java
index 4d1bef4d..dfcc2ca4 100644
--- a/core/src/main/java/dev/velix/context/internal/sur/PositionShiftCondition.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/sur/PositionShiftCondition.java
@@ -1,4 +1,4 @@
-package dev.velix.context.internal.sur;
+package dev.velix.imperat.context.internal.sur;
@FunctionalInterface
interface PositionShiftCondition {
diff --git a/core/src/main/java/dev/velix/context/internal/sur/ShiftOperation.java b/core/src/main/java/dev/velix/imperat/context/internal/sur/ShiftOperation.java
similarity index 85%
rename from core/src/main/java/dev/velix/context/internal/sur/ShiftOperation.java
rename to core/src/main/java/dev/velix/imperat/context/internal/sur/ShiftOperation.java
index f0b2323d..d2fadf84 100644
--- a/core/src/main/java/dev/velix/context/internal/sur/ShiftOperation.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/sur/ShiftOperation.java
@@ -1,4 +1,4 @@
-package dev.velix.context.internal.sur;
+package dev.velix.imperat.context.internal.sur;
import java.util.function.IntUnaryOperator;
diff --git a/core/src/main/java/dev/velix/context/internal/sur/ShiftTarget.java b/core/src/main/java/dev/velix/imperat/context/internal/sur/ShiftTarget.java
similarity index 92%
rename from core/src/main/java/dev/velix/context/internal/sur/ShiftTarget.java
rename to core/src/main/java/dev/velix/imperat/context/internal/sur/ShiftTarget.java
index f7545c9c..e4e2ae2b 100644
--- a/core/src/main/java/dev/velix/context/internal/sur/ShiftTarget.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/sur/ShiftTarget.java
@@ -1,4 +1,4 @@
-package dev.velix.context.internal.sur;
+package dev.velix.imperat.context.internal.sur;
public enum ShiftTarget {
diff --git a/core/src/main/java/dev/velix/context/internal/sur/SmartUsageResolve.java b/core/src/main/java/dev/velix/imperat/context/internal/sur/SmartUsageResolve.java
similarity index 96%
rename from core/src/main/java/dev/velix/context/internal/sur/SmartUsageResolve.java
rename to core/src/main/java/dev/velix/imperat/context/internal/sur/SmartUsageResolve.java
index 00b21cab..a1f11b52 100644
--- a/core/src/main/java/dev/velix/context/internal/sur/SmartUsageResolve.java
+++ b/core/src/main/java/dev/velix/imperat/context/internal/sur/SmartUsageResolve.java
@@ -1,15 +1,15 @@
-package dev.velix.context.internal.sur;
+package dev.velix.imperat.context.internal.sur;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.*;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.SourceException;
-import dev.velix.exception.TokenParseException;
-import dev.velix.resolvers.ValueResolver;
-import dev.velix.supplier.OptionalValueSupplier;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.*;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.exception.TokenParseException;
+import dev.velix.imperat.resolvers.ValueResolver;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/exception/AmbiguousUsageAdditionException.java b/core/src/main/java/dev/velix/imperat/exception/AmbiguousUsageAdditionException.java
similarity index 78%
rename from core/src/main/java/dev/velix/exception/AmbiguousUsageAdditionException.java
rename to core/src/main/java/dev/velix/imperat/exception/AmbiguousUsageAdditionException.java
index e8194e93..7bc80ea8 100644
--- a/core/src/main/java/dev/velix/exception/AmbiguousUsageAdditionException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/AmbiguousUsageAdditionException.java
@@ -1,8 +1,8 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
public final class AmbiguousUsageAdditionException extends RuntimeException {
diff --git a/core/src/main/java/dev/velix/exception/CooldownException.java b/core/src/main/java/dev/velix/imperat/exception/CooldownException.java
similarity index 89%
rename from core/src/main/java/dev/velix/exception/CooldownException.java
rename to core/src/main/java/dev/velix/imperat/exception/CooldownException.java
index b1726eb3..f1826dee 100644
--- a/core/src/main/java/dev/velix/exception/CooldownException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/CooldownException.java
@@ -1,4 +1,4 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
import lombok.Getter;
diff --git a/core/src/main/java/dev/velix/exception/ImperatException.java b/core/src/main/java/dev/velix/imperat/exception/ImperatException.java
similarity index 78%
rename from core/src/main/java/dev/velix/exception/ImperatException.java
rename to core/src/main/java/dev/velix/imperat/exception/ImperatException.java
index df0f9000..24d24ea6 100644
--- a/core/src/main/java/dev/velix/exception/ImperatException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/ImperatException.java
@@ -1,4 +1,4 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/exception/InvalidCommandUsageException.java b/core/src/main/java/dev/velix/imperat/exception/InvalidCommandUsageException.java
similarity index 77%
rename from core/src/main/java/dev/velix/exception/InvalidCommandUsageException.java
rename to core/src/main/java/dev/velix/imperat/exception/InvalidCommandUsageException.java
index 57f63de5..6795309b 100644
--- a/core/src/main/java/dev/velix/exception/InvalidCommandUsageException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/InvalidCommandUsageException.java
@@ -1,8 +1,8 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
public final class InvalidCommandUsageException extends RuntimeException {
diff --git a/core/src/main/java/dev/velix/exception/InvalidSyntaxException.java b/core/src/main/java/dev/velix/imperat/exception/InvalidSyntaxException.java
similarity index 65%
rename from core/src/main/java/dev/velix/exception/InvalidSyntaxException.java
rename to core/src/main/java/dev/velix/imperat/exception/InvalidSyntaxException.java
index b3407a45..1a1ecf10 100644
--- a/core/src/main/java/dev/velix/exception/InvalidSyntaxException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/InvalidSyntaxException.java
@@ -1,3 +1,3 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
public final class InvalidSyntaxException extends ImperatException {}
diff --git a/core/src/main/java/dev/velix/exception/NoHelpException.java b/core/src/main/java/dev/velix/imperat/exception/NoHelpException.java
similarity index 63%
rename from core/src/main/java/dev/velix/exception/NoHelpException.java
rename to core/src/main/java/dev/velix/imperat/exception/NoHelpException.java
index 09f208d5..0767e273 100644
--- a/core/src/main/java/dev/velix/exception/NoHelpException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/NoHelpException.java
@@ -1,3 +1,3 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
public final class NoHelpException extends ImperatException { }
diff --git a/core/src/main/java/dev/velix/exception/NoHelpPageException.java b/core/src/main/java/dev/velix/imperat/exception/NoHelpPageException.java
similarity index 64%
rename from core/src/main/java/dev/velix/exception/NoHelpPageException.java
rename to core/src/main/java/dev/velix/imperat/exception/NoHelpPageException.java
index c0b4115d..e03701f7 100644
--- a/core/src/main/java/dev/velix/exception/NoHelpPageException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/NoHelpPageException.java
@@ -1,3 +1,3 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
public final class NoHelpPageException extends ImperatException {}
diff --git a/core/src/main/java/dev/velix/exception/NumberOutOfRangeException.java b/core/src/main/java/dev/velix/imperat/exception/NumberOutOfRangeException.java
similarity index 86%
rename from core/src/main/java/dev/velix/exception/NumberOutOfRangeException.java
rename to core/src/main/java/dev/velix/imperat/exception/NumberOutOfRangeException.java
index fbd60ebe..cfd637c8 100644
--- a/core/src/main/java/dev/velix/exception/NumberOutOfRangeException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/NumberOutOfRangeException.java
@@ -1,7 +1,7 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import dev.velix.command.parameters.NumericParameter;
-import dev.velix.command.parameters.NumericRange;
+import dev.velix.imperat.command.parameters.NumericParameter;
+import dev.velix.imperat.command.parameters.NumericRange;
public class NumberOutOfRangeException extends SourceException {
diff --git a/core/src/main/java/dev/velix/exception/PermissionDeniedException.java b/core/src/main/java/dev/velix/imperat/exception/PermissionDeniedException.java
similarity index 66%
rename from core/src/main/java/dev/velix/exception/PermissionDeniedException.java
rename to core/src/main/java/dev/velix/imperat/exception/PermissionDeniedException.java
index 44ff78ec..a5c76fb7 100644
--- a/core/src/main/java/dev/velix/exception/PermissionDeniedException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/PermissionDeniedException.java
@@ -1,3 +1,3 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
public final class PermissionDeniedException extends ImperatException {}
diff --git a/core/src/main/java/dev/velix/exception/SelfHandledException.java b/core/src/main/java/dev/velix/imperat/exception/SelfHandledException.java
similarity index 73%
rename from core/src/main/java/dev/velix/exception/SelfHandledException.java
rename to core/src/main/java/dev/velix/imperat/exception/SelfHandledException.java
index 59f7b4f5..31869c01 100644
--- a/core/src/main/java/dev/velix/exception/SelfHandledException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/SelfHandledException.java
@@ -1,8 +1,8 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import dev.velix.Imperat;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.AvailableSince("1.0.0")
diff --git a/core/src/main/java/dev/velix/exception/SourceException.java b/core/src/main/java/dev/velix/imperat/exception/SourceException.java
similarity index 95%
rename from core/src/main/java/dev/velix/exception/SourceException.java
rename to core/src/main/java/dev/velix/imperat/exception/SourceException.java
index 946d93ad..c4cd04cc 100644
--- a/core/src/main/java/dev/velix/exception/SourceException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/SourceException.java
@@ -1,4 +1,4 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
import lombok.Getter;
diff --git a/core/src/main/java/dev/velix/exception/ThrowableResolver.java b/core/src/main/java/dev/velix/imperat/exception/ThrowableResolver.java
similarity index 52%
rename from core/src/main/java/dev/velix/exception/ThrowableResolver.java
rename to core/src/main/java/dev/velix/imperat/exception/ThrowableResolver.java
index 35c89e9a..6644c29d 100644
--- a/core/src/main/java/dev/velix/exception/ThrowableResolver.java
+++ b/core/src/main/java/dev/velix/imperat/exception/ThrowableResolver.java
@@ -1,8 +1,8 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
-import dev.velix.Imperat;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
public interface ThrowableResolver {
diff --git a/core/src/main/java/dev/velix/exception/TokenParseException.java b/core/src/main/java/dev/velix/imperat/exception/TokenParseException.java
similarity index 93%
rename from core/src/main/java/dev/velix/exception/TokenParseException.java
rename to core/src/main/java/dev/velix/imperat/exception/TokenParseException.java
index d184e8b1..3f1ab854 100644
--- a/core/src/main/java/dev/velix/exception/TokenParseException.java
+++ b/core/src/main/java/dev/velix/imperat/exception/TokenParseException.java
@@ -1,4 +1,4 @@
-package dev.velix.exception;
+package dev.velix.imperat.exception;
import java.io.Serial;
diff --git a/core/src/main/java/dev/velix/help/CommandHelp.java b/core/src/main/java/dev/velix/imperat/help/CommandHelp.java
similarity index 85%
rename from core/src/main/java/dev/velix/help/CommandHelp.java
rename to core/src/main/java/dev/velix/imperat/help/CommandHelp.java
index f16d3ef4..4583c97f 100644
--- a/core/src/main/java/dev/velix/help/CommandHelp.java
+++ b/core/src/main/java/dev/velix/imperat/help/CommandHelp.java
@@ -1,15 +1,15 @@
-package dev.velix.help;
+package dev.velix.imperat.help;
-import dev.velix.Imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.NoHelpException;
-import dev.velix.exception.NoHelpPageException;
-import dev.velix.util.text.PaginatedText;
-import dev.velix.util.text.TextPage;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.NoHelpException;
+import dev.velix.imperat.exception.NoHelpPageException;
+import dev.velix.imperat.util.text.PaginatedText;
+import dev.velix.imperat.util.text.TextPage;
import org.jetbrains.annotations.ApiStatus;
import java.util.ArrayList;
diff --git a/core/src/main/java/dev/velix/help/HelpTemplate.java b/core/src/main/java/dev/velix/imperat/help/HelpTemplate.java
similarity index 93%
rename from core/src/main/java/dev/velix/help/HelpTemplate.java
rename to core/src/main/java/dev/velix/imperat/help/HelpTemplate.java
index 7a2972fc..59457e71 100644
--- a/core/src/main/java/dev/velix/help/HelpTemplate.java
+++ b/core/src/main/java/dev/velix/imperat/help/HelpTemplate.java
@@ -1,6 +1,6 @@
-package dev.velix.help;
+package dev.velix.imperat.help;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.Command;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/main/java/dev/velix/help/PaginatedHelpTemplate.java b/core/src/main/java/dev/velix/imperat/help/PaginatedHelpTemplate.java
similarity index 88%
rename from core/src/main/java/dev/velix/help/PaginatedHelpTemplate.java
rename to core/src/main/java/dev/velix/imperat/help/PaginatedHelpTemplate.java
index fc372e5c..ba83f3ef 100644
--- a/core/src/main/java/dev/velix/help/PaginatedHelpTemplate.java
+++ b/core/src/main/java/dev/velix/imperat/help/PaginatedHelpTemplate.java
@@ -1,6 +1,6 @@
-package dev.velix.help;
+package dev.velix.imperat.help;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.Command;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/main/java/dev/velix/help/PlainDisplayer.java b/core/src/main/java/dev/velix/imperat/help/PlainDisplayer.java
similarity index 81%
rename from core/src/main/java/dev/velix/help/PlainDisplayer.java
rename to core/src/main/java/dev/velix/imperat/help/PlainDisplayer.java
index 59b270ab..b8ecb008 100644
--- a/core/src/main/java/dev/velix/help/PlainDisplayer.java
+++ b/core/src/main/java/dev/velix/imperat/help/PlainDisplayer.java
@@ -1,8 +1,8 @@
-package dev.velix.help;
+package dev.velix.imperat.help;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/help/UsageDisplayer.java b/core/src/main/java/dev/velix/imperat/help/UsageDisplayer.java
similarity index 88%
rename from core/src/main/java/dev/velix/help/UsageDisplayer.java
rename to core/src/main/java/dev/velix/imperat/help/UsageDisplayer.java
index 3b30d718..84b27fe5 100644
--- a/core/src/main/java/dev/velix/help/UsageDisplayer.java
+++ b/core/src/main/java/dev/velix/imperat/help/UsageDisplayer.java
@@ -1,8 +1,8 @@
-package dev.velix.help;
+package dev.velix.imperat.help;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/help/UsageFormatter.java b/core/src/main/java/dev/velix/imperat/help/UsageFormatter.java
similarity index 81%
rename from core/src/main/java/dev/velix/help/UsageFormatter.java
rename to core/src/main/java/dev/velix/imperat/help/UsageFormatter.java
index 7ac7f469..e1dbaed1 100644
--- a/core/src/main/java/dev/velix/help/UsageFormatter.java
+++ b/core/src/main/java/dev/velix/imperat/help/UsageFormatter.java
@@ -1,8 +1,8 @@
-package dev.velix.help;
+package dev.velix.imperat.help;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/main/java/dev/velix/help/templates/DefaultFormatter.java b/core/src/main/java/dev/velix/imperat/help/templates/DefaultFormatter.java
similarity index 77%
rename from core/src/main/java/dev/velix/help/templates/DefaultFormatter.java
rename to core/src/main/java/dev/velix/imperat/help/templates/DefaultFormatter.java
index 7e7af912..c7f5a326 100644
--- a/core/src/main/java/dev/velix/help/templates/DefaultFormatter.java
+++ b/core/src/main/java/dev/velix/imperat/help/templates/DefaultFormatter.java
@@ -1,9 +1,9 @@
-package dev.velix.help.templates;
+package dev.velix.imperat.help.templates;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
-import dev.velix.help.UsageFormatter;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.help.UsageFormatter;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
diff --git a/core/src/main/java/dev/velix/help/templates/DefaultPaginatedTemplate.java b/core/src/main/java/dev/velix/imperat/help/templates/DefaultPaginatedTemplate.java
similarity index 87%
rename from core/src/main/java/dev/velix/help/templates/DefaultPaginatedTemplate.java
rename to core/src/main/java/dev/velix/imperat/help/templates/DefaultPaginatedTemplate.java
index 0fc18b2b..2b6fbcd2 100644
--- a/core/src/main/java/dev/velix/help/templates/DefaultPaginatedTemplate.java
+++ b/core/src/main/java/dev/velix/imperat/help/templates/DefaultPaginatedTemplate.java
@@ -1,7 +1,7 @@
-package dev.velix.help.templates;
+package dev.velix.imperat.help.templates;
-import dev.velix.command.Command;
-import dev.velix.help.PaginatedHelpTemplate;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.help.PaginatedHelpTemplate;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
diff --git a/core/src/main/java/dev/velix/help/templates/DefaultTemplate.java b/core/src/main/java/dev/velix/imperat/help/templates/DefaultTemplate.java
similarity index 87%
rename from core/src/main/java/dev/velix/help/templates/DefaultTemplate.java
rename to core/src/main/java/dev/velix/imperat/help/templates/DefaultTemplate.java
index 2eb9d57f..e49ea4db 100644
--- a/core/src/main/java/dev/velix/help/templates/DefaultTemplate.java
+++ b/core/src/main/java/dev/velix/imperat/help/templates/DefaultTemplate.java
@@ -1,9 +1,9 @@
-package dev.velix.help.templates;
+package dev.velix.imperat.help.templates;
-import dev.velix.command.Command;
-import dev.velix.help.HelpTemplate;
-import dev.velix.help.UsageDisplayer;
-import dev.velix.help.UsageFormatter;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.help.HelpTemplate;
+import dev.velix.imperat.help.UsageDisplayer;
+import dev.velix.imperat.help.UsageFormatter;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
diff --git a/core/src/main/java/dev/velix/resolvers/ContextResolver.java b/core/src/main/java/dev/velix/imperat/resolvers/ContextResolver.java
similarity index 80%
rename from core/src/main/java/dev/velix/resolvers/ContextResolver.java
rename to core/src/main/java/dev/velix/imperat/resolvers/ContextResolver.java
index 0d0613f6..c4f42a91 100644
--- a/core/src/main/java/dev/velix/resolvers/ContextResolver.java
+++ b/core/src/main/java/dev/velix/imperat/resolvers/ContextResolver.java
@@ -1,9 +1,9 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.annotations.base.element.ParameterElement;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
-import dev.velix.exception.ImperatException;
+import dev.velix.imperat.annotations.base.element.ParameterElement;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.exception.ImperatException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/resolvers/PermissionResolver.java b/core/src/main/java/dev/velix/imperat/resolvers/PermissionResolver.java
similarity index 85%
rename from core/src/main/java/dev/velix/resolvers/PermissionResolver.java
rename to core/src/main/java/dev/velix/imperat/resolvers/PermissionResolver.java
index 6ab8e864..56b398b9 100644
--- a/core/src/main/java/dev/velix/resolvers/PermissionResolver.java
+++ b/core/src/main/java/dev/velix/imperat/resolvers/PermissionResolver.java
@@ -1,8 +1,8 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/resolvers/SuggestionResolver.java b/core/src/main/java/dev/velix/imperat/resolvers/SuggestionResolver.java
similarity index 88%
rename from core/src/main/java/dev/velix/resolvers/SuggestionResolver.java
rename to core/src/main/java/dev/velix/imperat/resolvers/SuggestionResolver.java
index 01d99a79..89b4d82f 100644
--- a/core/src/main/java/dev/velix/resolvers/SuggestionResolver.java
+++ b/core/src/main/java/dev/velix/imperat/resolvers/SuggestionResolver.java
@@ -1,9 +1,9 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
-import dev.velix.context.SuggestionContext;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.util.TypeWrap;
import org.jetbrains.annotations.ApiStatus;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/resolvers/ValueResolver.java b/core/src/main/java/dev/velix/imperat/resolvers/ValueResolver.java
similarity index 76%
rename from core/src/main/java/dev/velix/resolvers/ValueResolver.java
rename to core/src/main/java/dev/velix/imperat/resolvers/ValueResolver.java
index fbfaef86..f42db972 100644
--- a/core/src/main/java/dev/velix/resolvers/ValueResolver.java
+++ b/core/src/main/java/dev/velix/imperat/resolvers/ValueResolver.java
@@ -1,10 +1,10 @@
-package dev.velix.resolvers;
+package dev.velix.imperat.resolvers;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.Source;
-import dev.velix.context.internal.sur.Cursor;
-import dev.velix.exception.ImperatException;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.context.internal.sur.Cursor;
+import dev.velix.imperat.exception.ImperatException;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/main/java/dev/velix/supplier/OptionalValueSupplier.java b/core/src/main/java/dev/velix/imperat/supplier/OptionalValueSupplier.java
similarity index 82%
rename from core/src/main/java/dev/velix/supplier/OptionalValueSupplier.java
rename to core/src/main/java/dev/velix/imperat/supplier/OptionalValueSupplier.java
index 308f1bb1..77b09c6a 100644
--- a/core/src/main/java/dev/velix/supplier/OptionalValueSupplier.java
+++ b/core/src/main/java/dev/velix/imperat/supplier/OptionalValueSupplier.java
@@ -1,8 +1,8 @@
-package dev.velix.supplier;
+package dev.velix.imperat.supplier;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
public interface OptionalValueSupplier {
diff --git a/core/src/main/java/dev/velix/supplier/defaults/BooleanValueSupplier.java b/core/src/main/java/dev/velix/imperat/supplier/defaults/BooleanValueSupplier.java
similarity index 69%
rename from core/src/main/java/dev/velix/supplier/defaults/BooleanValueSupplier.java
rename to core/src/main/java/dev/velix/imperat/supplier/defaults/BooleanValueSupplier.java
index 0b44a0ec..9c79f135 100644
--- a/core/src/main/java/dev/velix/supplier/defaults/BooleanValueSupplier.java
+++ b/core/src/main/java/dev/velix/imperat/supplier/defaults/BooleanValueSupplier.java
@@ -1,9 +1,9 @@
-package dev.velix.supplier.defaults;
+package dev.velix.imperat.supplier.defaults;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Context;
-import dev.velix.context.Source;
-import dev.velix.supplier.OptionalValueSupplier;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.supplier.OptionalValueSupplier;
public final class BooleanValueSupplier implements OptionalValueSupplier {
diff --git a/core/src/main/java/dev/velix/util/ImperatDebugger.java b/core/src/main/java/dev/velix/imperat/util/ImperatDebugger.java
similarity index 95%
rename from core/src/main/java/dev/velix/util/ImperatDebugger.java
rename to core/src/main/java/dev/velix/imperat/util/ImperatDebugger.java
index 3f7b4d64..a2ef97a5 100644
--- a/core/src/main/java/dev/velix/util/ImperatDebugger.java
+++ b/core/src/main/java/dev/velix/imperat/util/ImperatDebugger.java
@@ -1,6 +1,6 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
-import dev.velix.command.parameters.CommandParameter;
+import dev.velix.imperat.command.parameters.CommandParameter;
import org.jetbrains.annotations.NotNull;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/util/ListUtils.java b/core/src/main/java/dev/velix/imperat/util/ListUtils.java
similarity index 88%
rename from core/src/main/java/dev/velix/util/ListUtils.java
rename to core/src/main/java/dev/velix/imperat/util/ListUtils.java
index 6c0ea8e3..c02cb6ac 100644
--- a/core/src/main/java/dev/velix/util/ListUtils.java
+++ b/core/src/main/java/dev/velix/imperat/util/ListUtils.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import java.util.List;
diff --git a/core/src/main/java/dev/velix/util/Pair.java b/core/src/main/java/dev/velix/imperat/util/Pair.java
similarity index 60%
rename from core/src/main/java/dev/velix/util/Pair.java
rename to core/src/main/java/dev/velix/imperat/util/Pair.java
index a15b835e..16014946 100644
--- a/core/src/main/java/dev/velix/util/Pair.java
+++ b/core/src/main/java/dev/velix/imperat/util/Pair.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
public record Pair(L left, R right) {
diff --git a/core/src/main/java/dev/velix/util/Patterns.java b/core/src/main/java/dev/velix/imperat/util/Patterns.java
similarity index 93%
rename from core/src/main/java/dev/velix/util/Patterns.java
rename to core/src/main/java/dev/velix/imperat/util/Patterns.java
index 92b129a4..32513460 100644
--- a/core/src/main/java/dev/velix/util/Patterns.java
+++ b/core/src/main/java/dev/velix/imperat/util/Patterns.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import java.util.regex.Pattern;
diff --git a/core/src/main/java/dev/velix/util/Preconditions.java b/core/src/main/java/dev/velix/imperat/util/Preconditions.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/Preconditions.java
rename to core/src/main/java/dev/velix/imperat/util/Preconditions.java
index 8e9b69cf..361f4d38 100644
--- a/core/src/main/java/dev/velix/util/Preconditions.java
+++ b/core/src/main/java/dev/velix/imperat/util/Preconditions.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/util/Registry.java b/core/src/main/java/dev/velix/imperat/util/Registry.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/Registry.java
rename to core/src/main/java/dev/velix/imperat/util/Registry.java
index 9064b4b7..79ce17b5 100644
--- a/core/src/main/java/dev/velix/util/Registry.java
+++ b/core/src/main/java/dev/velix/imperat/util/Registry.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import org.jetbrains.annotations.ApiStatus;
diff --git a/core/src/main/java/dev/velix/util/StringUtils.java b/core/src/main/java/dev/velix/imperat/util/StringUtils.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/StringUtils.java
rename to core/src/main/java/dev/velix/imperat/util/StringUtils.java
index 110035c9..0677ea19 100644
--- a/core/src/main/java/dev/velix/util/StringUtils.java
+++ b/core/src/main/java/dev/velix/imperat/util/StringUtils.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/util/TypeUtility.java b/core/src/main/java/dev/velix/imperat/util/TypeUtility.java
similarity index 99%
rename from core/src/main/java/dev/velix/util/TypeUtility.java
rename to core/src/main/java/dev/velix/imperat/util/TypeUtility.java
index 07e7f77c..43d4177e 100644
--- a/core/src/main/java/dev/velix/util/TypeUtility.java
+++ b/core/src/main/java/dev/velix/imperat/util/TypeUtility.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/util/TypeVisitor.java b/core/src/main/java/dev/velix/imperat/util/TypeVisitor.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/TypeVisitor.java
rename to core/src/main/java/dev/velix/imperat/util/TypeVisitor.java
index a6c51b5e..0531b630 100644
--- a/core/src/main/java/dev/velix/util/TypeVisitor.java
+++ b/core/src/main/java/dev/velix/imperat/util/TypeVisitor.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/util/TypeWrap.java b/core/src/main/java/dev/velix/imperat/util/TypeWrap.java
similarity index 99%
rename from core/src/main/java/dev/velix/util/TypeWrap.java
rename to core/src/main/java/dev/velix/imperat/util/TypeWrap.java
index c5099a13..22343bd1 100644
--- a/core/src/main/java/dev/velix/util/TypeWrap.java
+++ b/core/src/main/java/dev/velix/imperat/util/TypeWrap.java
@@ -1,4 +1,4 @@
-package dev.velix.util;
+package dev.velix.imperat.util;
import lombok.Getter;
diff --git a/core/src/main/java/dev/velix/util/annotations/AnnotationMap.java b/core/src/main/java/dev/velix/imperat/util/annotations/AnnotationMap.java
similarity index 86%
rename from core/src/main/java/dev/velix/util/annotations/AnnotationMap.java
rename to core/src/main/java/dev/velix/imperat/util/annotations/AnnotationMap.java
index 6eaadf99..1aac4614 100644
--- a/core/src/main/java/dev/velix/util/annotations/AnnotationMap.java
+++ b/core/src/main/java/dev/velix/imperat/util/annotations/AnnotationMap.java
@@ -1,4 +1,4 @@
-package dev.velix.util.annotations;
+package dev.velix.imperat.util.annotations;
import java.lang.annotation.Annotation;
import java.util.HashMap;
diff --git a/core/src/main/java/dev/velix/util/annotations/MethodVerifier.java b/core/src/main/java/dev/velix/imperat/util/annotations/MethodVerifier.java
similarity index 93%
rename from core/src/main/java/dev/velix/util/annotations/MethodVerifier.java
rename to core/src/main/java/dev/velix/imperat/util/annotations/MethodVerifier.java
index 19946ca2..faccd2a8 100644
--- a/core/src/main/java/dev/velix/util/annotations/MethodVerifier.java
+++ b/core/src/main/java/dev/velix/imperat/util/annotations/MethodVerifier.java
@@ -1,9 +1,9 @@
-package dev.velix.util.annotations;
+package dev.velix.imperat.util.annotations;
-import dev.velix.Imperat;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
-import dev.velix.help.CommandHelp;
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.help.CommandHelp;
import org.jetbrains.annotations.ApiStatus;
import java.lang.reflect.Method;
diff --git a/core/src/main/java/dev/velix/util/asm/DefaultMethodCallerFactory.java b/core/src/main/java/dev/velix/imperat/util/asm/DefaultMethodCallerFactory.java
similarity index 97%
rename from core/src/main/java/dev/velix/util/asm/DefaultMethodCallerFactory.java
rename to core/src/main/java/dev/velix/imperat/util/asm/DefaultMethodCallerFactory.java
index 54b5d0c1..7b98c55b 100644
--- a/core/src/main/java/dev/velix/util/asm/DefaultMethodCallerFactory.java
+++ b/core/src/main/java/dev/velix/imperat/util/asm/DefaultMethodCallerFactory.java
@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-package dev.velix.util.asm;
+package dev.velix.imperat.util.asm;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/util/asm/MethodCaller.java b/core/src/main/java/dev/velix/imperat/util/asm/MethodCaller.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/asm/MethodCaller.java
rename to core/src/main/java/dev/velix/imperat/util/asm/MethodCaller.java
index 7e97d5ed..23fcf9ec 100644
--- a/core/src/main/java/dev/velix/util/asm/MethodCaller.java
+++ b/core/src/main/java/dev/velix/imperat/util/asm/MethodCaller.java
@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-package dev.velix.util.asm;
+package dev.velix.imperat.util.asm;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/util/asm/MethodCallerFactory.java b/core/src/main/java/dev/velix/imperat/util/asm/MethodCallerFactory.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/asm/MethodCallerFactory.java
rename to core/src/main/java/dev/velix/imperat/util/asm/MethodCallerFactory.java
index b5977b97..39ecf2db 100644
--- a/core/src/main/java/dev/velix/util/asm/MethodCallerFactory.java
+++ b/core/src/main/java/dev/velix/imperat/util/asm/MethodCallerFactory.java
@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
-package dev.velix.util.asm;
+package dev.velix.imperat.util.asm;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/util/asm/MethodHandlesCallerFactory.java b/core/src/main/java/dev/velix/imperat/util/asm/MethodHandlesCallerFactory.java
similarity index 98%
rename from core/src/main/java/dev/velix/util/asm/MethodHandlesCallerFactory.java
rename to core/src/main/java/dev/velix/imperat/util/asm/MethodHandlesCallerFactory.java
index a96ae471..92451ba0 100644
--- a/core/src/main/java/dev/velix/util/asm/MethodHandlesCallerFactory.java
+++ b/core/src/main/java/dev/velix/imperat/util/asm/MethodHandlesCallerFactory.java
@@ -1,4 +1,4 @@
-package dev.velix.util.asm;
+package dev.velix.imperat.util.asm;
import lombok.SneakyThrows;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/util/collections/ClassMap.java b/core/src/main/java/dev/velix/imperat/util/collections/ClassMap.java
similarity index 69%
rename from core/src/main/java/dev/velix/util/collections/ClassMap.java
rename to core/src/main/java/dev/velix/imperat/util/collections/ClassMap.java
index c5b97247..e1cc171d 100644
--- a/core/src/main/java/dev/velix/util/collections/ClassMap.java
+++ b/core/src/main/java/dev/velix/imperat/util/collections/ClassMap.java
@@ -1,4 +1,4 @@
-package dev.velix.util.collections;
+package dev.velix.imperat.util.collections;
import java.util.HashMap;
diff --git a/core/src/main/java/dev/velix/util/reflection/FieldAccessor.java b/core/src/main/java/dev/velix/imperat/util/reflection/FieldAccessor.java
similarity index 95%
rename from core/src/main/java/dev/velix/util/reflection/FieldAccessor.java
rename to core/src/main/java/dev/velix/imperat/util/reflection/FieldAccessor.java
index 3898e406..09fb773b 100644
--- a/core/src/main/java/dev/velix/util/reflection/FieldAccessor.java
+++ b/core/src/main/java/dev/velix/imperat/util/reflection/FieldAccessor.java
@@ -1,4 +1,4 @@
-package dev.velix.util.reflection;
+package dev.velix.imperat.util.reflection;
/**
* An interface for retrieving the field content. (Credits: TinyProtocol)
diff --git a/core/src/main/java/dev/velix/util/reflection/Reflections.java b/core/src/main/java/dev/velix/imperat/util/reflection/Reflections.java
similarity index 99%
rename from core/src/main/java/dev/velix/util/reflection/Reflections.java
rename to core/src/main/java/dev/velix/imperat/util/reflection/Reflections.java
index b1d210b7..71f5a4f8 100644
--- a/core/src/main/java/dev/velix/util/reflection/Reflections.java
+++ b/core/src/main/java/dev/velix/imperat/util/reflection/Reflections.java
@@ -1,4 +1,4 @@
-package dev.velix.util.reflection;
+package dev.velix.imperat.util.reflection;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/util/text/PaginatedText.java b/core/src/main/java/dev/velix/imperat/util/text/PaginatedText.java
similarity index 97%
rename from core/src/main/java/dev/velix/util/text/PaginatedText.java
rename to core/src/main/java/dev/velix/imperat/util/text/PaginatedText.java
index e1663c50..fea96d44 100644
--- a/core/src/main/java/dev/velix/util/text/PaginatedText.java
+++ b/core/src/main/java/dev/velix/imperat/util/text/PaginatedText.java
@@ -1,4 +1,4 @@
-package dev.velix.util.text;
+package dev.velix.imperat.util.text;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/core/src/main/java/dev/velix/util/text/TextPage.java b/core/src/main/java/dev/velix/imperat/util/text/TextPage.java
similarity index 94%
rename from core/src/main/java/dev/velix/util/text/TextPage.java
rename to core/src/main/java/dev/velix/imperat/util/text/TextPage.java
index 424a9765..3ac09008 100644
--- a/core/src/main/java/dev/velix/util/text/TextPage.java
+++ b/core/src/main/java/dev/velix/imperat/util/text/TextPage.java
@@ -1,4 +1,4 @@
-package dev.velix.util.text;
+package dev.velix.imperat.util.text;
import org.jetbrains.annotations.NotNull;
diff --git a/core/src/main/java/dev/velix/verification/SimpleVerifier.java b/core/src/main/java/dev/velix/imperat/verification/SimpleVerifier.java
similarity index 92%
rename from core/src/main/java/dev/velix/verification/SimpleVerifier.java
rename to core/src/main/java/dev/velix/imperat/verification/SimpleVerifier.java
index dc0cae40..246ba190 100644
--- a/core/src/main/java/dev/velix/verification/SimpleVerifier.java
+++ b/core/src/main/java/dev/velix/imperat/verification/SimpleVerifier.java
@@ -1,9 +1,9 @@
-package dev.velix.verification;
+package dev.velix.imperat.verification;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
import java.util.ArrayList;
diff --git a/core/src/main/java/dev/velix/verification/TypeTolerantVerifier.java b/core/src/main/java/dev/velix/imperat/verification/TypeTolerantVerifier.java
similarity index 89%
rename from core/src/main/java/dev/velix/verification/TypeTolerantVerifier.java
rename to core/src/main/java/dev/velix/imperat/verification/TypeTolerantVerifier.java
index 26ab1a2b..782773ec 100644
--- a/core/src/main/java/dev/velix/verification/TypeTolerantVerifier.java
+++ b/core/src/main/java/dev/velix/imperat/verification/TypeTolerantVerifier.java
@@ -1,9 +1,9 @@
-package dev.velix.verification;
+package dev.velix.imperat.verification;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.Source;
-import dev.velix.util.TypeUtility;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.Source;
+import dev.velix.imperat.util.TypeUtility;
import org.jetbrains.annotations.ApiStatus;
import java.lang.reflect.Type;
diff --git a/core/src/main/java/dev/velix/verification/UsageVerifier.java b/core/src/main/java/dev/velix/imperat/verification/UsageVerifier.java
similarity index 92%
rename from core/src/main/java/dev/velix/verification/UsageVerifier.java
rename to core/src/main/java/dev/velix/imperat/verification/UsageVerifier.java
index d191342f..edc4206a 100644
--- a/core/src/main/java/dev/velix/verification/UsageVerifier.java
+++ b/core/src/main/java/dev/velix/imperat/verification/UsageVerifier.java
@@ -1,7 +1,7 @@
-package dev.velix.verification;
+package dev.velix.imperat.verification;
-import dev.velix.command.CommandUsage;
-import dev.velix.context.Source;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.context.Source;
import org.jetbrains.annotations.ApiStatus;
/**
diff --git a/core/src/test/java/dev/velix/commands/annotations/examples/Group.java b/core/src/test/java/dev/velix/commands/annotations/examples/Group.java
deleted file mode 100644
index 70a493ad..00000000
--- a/core/src/test/java/dev/velix/commands/annotations/examples/Group.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package dev.velix.commands.annotations.examples;
-
-public record Group(String name) {
-
-}
diff --git a/core/src/test/java/dev/velix/AnnotationsLogging.java b/core/src/test/java/dev/velix/imperat/AnnotationsLogging.java
similarity index 67%
rename from core/src/test/java/dev/velix/AnnotationsLogging.java
rename to core/src/test/java/dev/velix/imperat/AnnotationsLogging.java
index 1273dbe1..948252d3 100644
--- a/core/src/test/java/dev/velix/AnnotationsLogging.java
+++ b/core/src/test/java/dev/velix/imperat/AnnotationsLogging.java
@@ -1,10 +1,10 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.annotations.base.AnnotationReader;
-import dev.velix.annotations.base.AnnotationRegistry;
-import dev.velix.annotations.base.element.CommandClassVisitor;
-import dev.velix.commands.annotations.TestCommand;
+import dev.velix.imperat.annotations.base.AnnotationReader;
+import dev.velix.imperat.annotations.base.AnnotationRegistry;
+import dev.velix.imperat.annotations.base.element.CommandClassVisitor;
+import dev.velix.imperat.commands.annotations.TestCommand;
import org.junit.jupiter.api.Test;
diff --git a/core/src/test/java/dev/velix/TestImperat.java b/core/src/test/java/dev/velix/imperat/TestImperat.java
similarity index 89%
rename from core/src/test/java/dev/velix/TestImperat.java
rename to core/src/test/java/dev/velix/imperat/TestImperat.java
index 04cd8367..9b23f6ca 100644
--- a/core/src/test/java/dev/velix/TestImperat.java
+++ b/core/src/test/java/dev/velix/imperat/TestImperat.java
@@ -1,7 +1,7 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.BaseImperat;
-import dev.velix.command.Command;
+import dev.velix.imperat.command.BaseImperat;
+import dev.velix.imperat.command.Command;
import java.io.PrintStream;
diff --git a/core/src/test/java/dev/velix/TestRun.java b/core/src/test/java/dev/velix/imperat/TestRun.java
similarity index 92%
rename from core/src/test/java/dev/velix/TestRun.java
rename to core/src/test/java/dev/velix/imperat/TestRun.java
index 01761a09..c9d008fc 100644
--- a/core/src/test/java/dev/velix/TestRun.java
+++ b/core/src/test/java/dev/velix/imperat/TestRun.java
@@ -1,14 +1,14 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.command.tree.UsageMatchResult;
-import dev.velix.commands.annotations.TestCommand;
-import dev.velix.commands.annotations.examples.*;
-import dev.velix.context.ArgumentQueue;
-import dev.velix.util.TypeWrap;
-import dev.velix.verification.UsageVerifier;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.command.tree.UsageMatchResult;
+import dev.velix.imperat.commands.annotations.TestCommand;
+import dev.velix.imperat.commands.annotations.examples.*;
+import dev.velix.imperat.context.ArgumentQueue;
+import dev.velix.imperat.util.TypeWrap;
+import dev.velix.imperat.verification.UsageVerifier;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -16,8 +16,8 @@
import java.util.List;
import java.util.Objects;
-import static dev.velix.commands.TestCommands.GROUP_CMD;
-import static dev.velix.commands.TestCommands.MULTIPLE_OPTIONAL_CMD;
+import static dev.velix.imperat.commands.TestCommands.GROUP_CMD;
+import static dev.velix.imperat.commands.TestCommands.MULTIPLE_OPTIONAL_CMD;
public class TestRun {
diff --git a/core/src/test/java/dev/velix/TestSource.java b/core/src/test/java/dev/velix/imperat/TestSource.java
similarity index 89%
rename from core/src/test/java/dev/velix/TestSource.java
rename to core/src/test/java/dev/velix/imperat/TestSource.java
index c767ee1c..30e873af 100644
--- a/core/src/test/java/dev/velix/TestSource.java
+++ b/core/src/test/java/dev/velix/imperat/TestSource.java
@@ -1,6 +1,6 @@
-package dev.velix;
+package dev.velix.imperat;
-import dev.velix.context.Source;
+import dev.velix.imperat.context.Source;
import java.io.PrintStream;
diff --git a/core/src/test/java/dev/velix/commands/TestCommands.java b/core/src/test/java/dev/velix/imperat/commands/TestCommands.java
similarity index 96%
rename from core/src/test/java/dev/velix/commands/TestCommands.java
rename to core/src/test/java/dev/velix/imperat/commands/TestCommands.java
index d086796f..26279294 100644
--- a/core/src/test/java/dev/velix/commands/TestCommands.java
+++ b/core/src/test/java/dev/velix/imperat/commands/TestCommands.java
@@ -1,10 +1,10 @@
-package dev.velix.commands;
+package dev.velix.imperat.commands;
-import dev.velix.TestRun;
-import dev.velix.TestSource;
-import dev.velix.command.Command;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.parameters.CommandParameter;
+import dev.velix.imperat.TestRun;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.command.Command;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.parameters.CommandParameter;
@SuppressWarnings("unused")
public final class TestCommands {
diff --git a/core/src/test/java/dev/velix/commands/annotations/FirstSub.java b/core/src/test/java/dev/velix/imperat/commands/annotations/FirstSub.java
similarity index 77%
rename from core/src/test/java/dev/velix/commands/annotations/FirstSub.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/FirstSub.java
index dca648fe..d332b5ff 100644
--- a/core/src/test/java/dev/velix/commands/annotations/FirstSub.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/FirstSub.java
@@ -1,7 +1,7 @@
-package dev.velix.commands.annotations;
+package dev.velix.imperat.commands.annotations;
-import dev.velix.TestSource;
-import dev.velix.annotations.*;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.annotations.*;
@SubCommand("first")
@Inherit(SecondSub.class)
diff --git a/core/src/test/java/dev/velix/commands/annotations/SecondSub.java b/core/src/test/java/dev/velix/imperat/commands/annotations/SecondSub.java
similarity index 74%
rename from core/src/test/java/dev/velix/commands/annotations/SecondSub.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/SecondSub.java
index 8a255e0f..6c64788e 100644
--- a/core/src/test/java/dev/velix/commands/annotations/SecondSub.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/SecondSub.java
@@ -1,9 +1,9 @@
-package dev.velix.commands.annotations;
+package dev.velix.imperat.commands.annotations;
-import dev.velix.TestSource;
-import dev.velix.annotations.Named;
-import dev.velix.annotations.SubCommand;
-import dev.velix.annotations.Usage;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.annotations.Named;
+import dev.velix.imperat.annotations.SubCommand;
+import dev.velix.imperat.annotations.Usage;
@SubCommand("second")
public class SecondSub {
diff --git a/core/src/test/java/dev/velix/commands/annotations/TestCommand.java b/core/src/test/java/dev/velix/imperat/commands/annotations/TestCommand.java
similarity index 94%
rename from core/src/test/java/dev/velix/commands/annotations/TestCommand.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/TestCommand.java
index 1371e407..36e78165 100644
--- a/core/src/test/java/dev/velix/commands/annotations/TestCommand.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/TestCommand.java
@@ -1,9 +1,9 @@
-package dev.velix.commands.annotations;
+package dev.velix.imperat.commands.annotations;
-import dev.velix.TestRun;
-import dev.velix.TestSource;
-import dev.velix.annotations.*;
-import dev.velix.help.CommandHelp;
+import dev.velix.imperat.TestRun;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.annotations.*;
+import dev.velix.imperat.help.CommandHelp;
@Command("test")
@Inherit(FirstSub.class)
diff --git a/core/src/test/java/dev/velix/commands/annotations/examples/AnnotatedGroupCommand.java b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/AnnotatedGroupCommand.java
similarity index 88%
rename from core/src/test/java/dev/velix/commands/annotations/examples/AnnotatedGroupCommand.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/examples/AnnotatedGroupCommand.java
index 52dc49a8..2155b0a3 100644
--- a/core/src/test/java/dev/velix/commands/annotations/examples/AnnotatedGroupCommand.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/AnnotatedGroupCommand.java
@@ -1,8 +1,8 @@
-package dev.velix.commands.annotations.examples;
+package dev.velix.imperat.commands.annotations.examples;
-import dev.velix.TestSource;
-import dev.velix.annotations.*;
-import dev.velix.help.CommandHelp;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.annotations.*;
+import dev.velix.imperat.help.CommandHelp;
@Command("group")
public final class AnnotatedGroupCommand {
diff --git a/core/src/test/java/dev/velix/imperat/commands/annotations/examples/Group.java b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/Group.java
new file mode 100644
index 00000000..717a5894
--- /dev/null
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/Group.java
@@ -0,0 +1,5 @@
+package dev.velix.imperat.commands.annotations.examples;
+
+public record Group(String name) {
+
+}
diff --git a/core/src/test/java/dev/velix/commands/annotations/examples/GroupRegistry.java b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupRegistry.java
similarity index 87%
rename from core/src/test/java/dev/velix/commands/annotations/examples/GroupRegistry.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupRegistry.java
index 567264a6..f852f014 100644
--- a/core/src/test/java/dev/velix/commands/annotations/examples/GroupRegistry.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupRegistry.java
@@ -1,6 +1,6 @@
-package dev.velix.commands.annotations.examples;
+package dev.velix.imperat.commands.annotations.examples;
-import dev.velix.util.Registry;
+import dev.velix.imperat.util.Registry;
import java.util.HashMap;
import java.util.Map;
diff --git a/core/src/test/java/dev/velix/commands/annotations/examples/GroupSuggestionResolver.java b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupSuggestionResolver.java
similarity index 63%
rename from core/src/test/java/dev/velix/commands/annotations/examples/GroupSuggestionResolver.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupSuggestionResolver.java
index 78bbd983..54fdea3b 100644
--- a/core/src/test/java/dev/velix/commands/annotations/examples/GroupSuggestionResolver.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupSuggestionResolver.java
@@ -1,10 +1,10 @@
-package dev.velix.commands.annotations.examples;
+package dev.velix.imperat.commands.annotations.examples;
-import dev.velix.TestSource;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.SuggestionContext;
-import dev.velix.resolvers.SuggestionResolver;
-import dev.velix.util.TypeWrap;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.SuggestionContext;
+import dev.velix.imperat.resolvers.SuggestionResolver;
+import dev.velix.imperat.util.TypeWrap;
import java.util.List;
diff --git a/core/src/test/java/dev/velix/commands/annotations/examples/GroupValueResolver.java b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupValueResolver.java
similarity index 60%
rename from core/src/test/java/dev/velix/commands/annotations/examples/GroupValueResolver.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupValueResolver.java
index fb2861d7..5d0b6346 100644
--- a/core/src/test/java/dev/velix/commands/annotations/examples/GroupValueResolver.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/GroupValueResolver.java
@@ -1,12 +1,12 @@
-package dev.velix.commands.annotations.examples;
+package dev.velix.imperat.commands.annotations.examples;
-import dev.velix.TestSource;
-import dev.velix.command.parameters.CommandParameter;
-import dev.velix.context.ExecutionContext;
-import dev.velix.context.internal.sur.Cursor;
-import dev.velix.exception.ImperatException;
-import dev.velix.exception.SourceException;
-import dev.velix.resolvers.ValueResolver;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.command.parameters.CommandParameter;
+import dev.velix.imperat.context.ExecutionContext;
+import dev.velix.imperat.context.internal.sur.Cursor;
+import dev.velix.imperat.exception.ImperatException;
+import dev.velix.imperat.exception.SourceException;
+import dev.velix.imperat.resolvers.ValueResolver;
public final class GroupValueResolver implements ValueResolver {
diff --git a/core/src/test/java/dev/velix/commands/annotations/examples/OptionalArgCommand.java b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/OptionalArgCommand.java
similarity index 52%
rename from core/src/test/java/dev/velix/commands/annotations/examples/OptionalArgCommand.java
rename to core/src/test/java/dev/velix/imperat/commands/annotations/examples/OptionalArgCommand.java
index efb012d0..72e95858 100644
--- a/core/src/test/java/dev/velix/commands/annotations/examples/OptionalArgCommand.java
+++ b/core/src/test/java/dev/velix/imperat/commands/annotations/examples/OptionalArgCommand.java
@@ -1,10 +1,10 @@
-package dev.velix.commands.annotations.examples;
+package dev.velix.imperat.commands.annotations.examples;
-import dev.velix.TestSource;
-import dev.velix.annotations.Command;
-import dev.velix.annotations.Default;
-import dev.velix.annotations.Named;
-import dev.velix.annotations.Usage;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.annotations.Command;
+import dev.velix.imperat.annotations.Default;
+import dev.velix.imperat.annotations.Named;
+import dev.velix.imperat.annotations.Usage;
import org.jetbrains.annotations.NotNull;
@Command("opt")
diff --git a/core/src/test/java/dev/velix/imperat/processors/CustomPostProcessor.java b/core/src/test/java/dev/velix/imperat/processors/CustomPostProcessor.java
new file mode 100644
index 00000000..5129c295
--- /dev/null
+++ b/core/src/test/java/dev/velix/imperat/processors/CustomPostProcessor.java
@@ -0,0 +1,18 @@
+package dev.velix.imperat.processors;
+
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.TestRun;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.command.processors.CommandPostProcessor;
+import dev.velix.imperat.context.ResolvedContext;
+import dev.velix.imperat.exception.ImperatException;
+
+public class CustomPostProcessor implements CommandPostProcessor {
+ @Override
+ public void process(
+ Imperat imperat,
+ ResolvedContext context
+ ) throws ImperatException {
+ TestRun.POST_PROCESSOR_INT++;
+ }
+}
diff --git a/core/src/test/java/dev/velix/imperat/processors/CustomPreProcessor.java b/core/src/test/java/dev/velix/imperat/processors/CustomPreProcessor.java
new file mode 100644
index 00000000..cd7b6961
--- /dev/null
+++ b/core/src/test/java/dev/velix/imperat/processors/CustomPreProcessor.java
@@ -0,0 +1,20 @@
+package dev.velix.imperat.processors;
+
+import dev.velix.imperat.Imperat;
+import dev.velix.imperat.TestRun;
+import dev.velix.imperat.TestSource;
+import dev.velix.imperat.command.CommandUsage;
+import dev.velix.imperat.command.processors.CommandPreProcessor;
+import dev.velix.imperat.context.Context;
+import dev.velix.imperat.exception.ImperatException;
+
+public final class CustomPreProcessor implements CommandPreProcessor {
+ @Override
+ public void process(
+ Imperat imperat,
+ Context context,
+ CommandUsage usage
+ ) throws ImperatException {
+ TestRun.PRE_PROCESSOR_INT++;
+ }
+}
diff --git a/core/src/test/java/dev/velix/processors/CustomPostProcessor.java b/core/src/test/java/dev/velix/processors/CustomPostProcessor.java
deleted file mode 100644
index a26e25dc..00000000
--- a/core/src/test/java/dev/velix/processors/CustomPostProcessor.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package dev.velix.processors;
-
-import dev.velix.Imperat;
-import dev.velix.TestRun;
-import dev.velix.TestSource;
-import dev.velix.command.processors.CommandPostProcessor;
-import dev.velix.context.ResolvedContext;
-import dev.velix.exception.ImperatException;
-
-public class CustomPostProcessor implements CommandPostProcessor {
- @Override
- public void process(
- Imperat imperat,
- ResolvedContext context
- ) throws ImperatException {
- TestRun.POST_PROCESSOR_INT++;
- }
-}
diff --git a/core/src/test/java/dev/velix/processors/CustomPreProcessor.java b/core/src/test/java/dev/velix/processors/CustomPreProcessor.java
deleted file mode 100644
index 33c5e90a..00000000
--- a/core/src/test/java/dev/velix/processors/CustomPreProcessor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package dev.velix.processors;
-
-import dev.velix.Imperat;
-import dev.velix.TestRun;
-import dev.velix.TestSource;
-import dev.velix.command.CommandUsage;
-import dev.velix.command.processors.CommandPreProcessor;
-import dev.velix.context.Context;
-import dev.velix.exception.ImperatException;
-
-public final class CustomPreProcessor implements CommandPreProcessor {
- @Override
- public void process(
- Imperat imperat,
- Context context,
- CommandUsage usage
- ) throws ImperatException {
- TestRun.PRE_PROCESSOR_INT++;
- }
-}
diff --git a/velocity/build.gradle b/velocity/build.gradle
new file mode 100644
index 00000000..9595688b
--- /dev/null
+++ b/velocity/build.gradle
@@ -0,0 +1,7 @@
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+
+}