* When creating a new parser type, it is recommended to register it in the parser
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/CommandTree.java b/cloud-core/src/main/java/cloud/commandframework/CommandTree.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/CommandTree.java
rename to cloud-core/src/main/java/cloud/commandframework/CommandTree.java
index 265284b1..15635911 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/CommandTree.java
+++ b/cloud-core/src/main/java/cloud/commandframework/CommandTree.java
@@ -21,21 +21,21 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.StaticArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.AmbiguousNodeException;
-import com.intellectualsites.commands.exceptions.ArgumentParseException;
-import com.intellectualsites.commands.exceptions.InvalidCommandSenderException;
-import com.intellectualsites.commands.exceptions.InvalidSyntaxException;
-import com.intellectualsites.commands.exceptions.NoCommandInLeafException;
-import com.intellectualsites.commands.exceptions.NoPermissionException;
-import com.intellectualsites.commands.exceptions.NoSuchCommandException;
-import com.intellectualsites.commands.permission.CommandPermission;
-import com.intellectualsites.commands.permission.OrPermission;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.StaticArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.context.CommandContext;
+import cloud.commandframework.exceptions.AmbiguousNodeException;
+import cloud.commandframework.exceptions.ArgumentParseException;
+import cloud.commandframework.exceptions.InvalidCommandSenderException;
+import cloud.commandframework.exceptions.InvalidSyntaxException;
+import cloud.commandframework.exceptions.NoCommandInLeafException;
+import cloud.commandframework.exceptions.NoPermissionException;
+import cloud.commandframework.exceptions.NoSuchCommandException;
+import cloud.commandframework.permission.CommandPermission;
+import cloud.commandframework.permission.OrPermission;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/Description.java b/cloud-core/src/main/java/cloud/commandframework/Description.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/Description.java
rename to cloud-core/src/main/java/cloud/commandframework/Description.java
index e5119fca..1626473e 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/Description.java
+++ b/cloud-core/src/main/java/cloud/commandframework/Description.java
@@ -21,12 +21,14 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
+
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
/**
- * {@link com.intellectualsites.commands.arguments.CommandArgument} description
+ * {@link CommandArgument} description
*/
public final class Description {
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/annotations/specifier/Completions.java b/cloud-core/src/main/java/cloud/commandframework/annotations/specifier/Completions.java
similarity index 96%
rename from cloud-core/src/main/java/com/intellectualsites/commands/annotations/specifier/Completions.java
rename to cloud-core/src/main/java/cloud/commandframework/annotations/specifier/Completions.java
index 5bd2b60f..fa1aecdd 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/annotations/specifier/Completions.java
+++ b/cloud-core/src/main/java/cloud/commandframework/annotations/specifier/Completions.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.annotations.specifier;
+package cloud.commandframework.annotations.specifier;
import java.lang.annotation.ElementType;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/annotations/specifier/Range.java b/cloud-core/src/main/java/cloud/commandframework/annotations/specifier/Range.java
similarity index 92%
rename from cloud-core/src/main/java/com/intellectualsites/commands/annotations/specifier/Range.java
rename to cloud-core/src/main/java/cloud/commandframework/annotations/specifier/Range.java
index fccaeb65..2cbefe0b 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/annotations/specifier/Range.java
+++ b/cloud-core/src/main/java/cloud/commandframework/annotations/specifier/Range.java
@@ -21,7 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.annotations.specifier;
+package cloud.commandframework.annotations.specifier;
+
+import cloud.commandframework.arguments.parser.ArgumentParser;
import javax.annotation.Nonnull;
import java.lang.annotation.ElementType;
@@ -31,7 +33,7 @@ import java.lang.annotation.Target;
/**
* Used to specify min and max values of numerical
- * {@link com.intellectualsites.commands.arguments.parser.ArgumentParser parsers}
+ * {@link ArgumentParser parsers}
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/package-info.java b/cloud-core/src/main/java/cloud/commandframework/annotations/specifier/package-info.java
similarity index 83%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/annotations/specifier/package-info.java
index 8c01c78c..d78350d1 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/annotations/specifier/package-info.java
@@ -23,6 +23,7 @@
//
/**
- * Parser classes used to parse {@link com.intellectualsites.commands.arguments.CommandArgument}
+ * Standard annotations used to match {@link cloud.commandframework.arguments.parser.ArgumentParser}
+ * in {@link cloud.commandframework.arguments.parser.ParserRegistry}
*/
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.annotations.specifier;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/CommandArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/CommandArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java
index 3497d61b..94f3ec26 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/CommandArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/CommandArgument.java
@@ -21,15 +21,15 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments;
+package cloud.commandframework.arguments;
+import cloud.commandframework.arguments.parser.ArgumentParser;
import com.google.common.reflect.TypeToken;
-import com.intellectualsites.commands.Command;
-import com.intellectualsites.commands.CommandManager;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.arguments.parser.ParserParameters;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.Command;
+import cloud.commandframework.CommandManager;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ParserParameters;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/CommandSyntaxFormatter.java b/cloud-core/src/main/java/cloud/commandframework/arguments/CommandSyntaxFormatter.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/CommandSyntaxFormatter.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/CommandSyntaxFormatter.java
index fe331303..7ae8b6e2 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/CommandSyntaxFormatter.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/CommandSyntaxFormatter.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments;
+package cloud.commandframework.arguments;
-import com.intellectualsites.commands.CommandTree;
+import cloud.commandframework.CommandTree;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/DelegatingSuggestionsProvider.java b/cloud-core/src/main/java/cloud/commandframework/arguments/DelegatingSuggestionsProvider.java
similarity index 91%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/DelegatingSuggestionsProvider.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/DelegatingSuggestionsProvider.java
index b2a1598b..36b4e343 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/DelegatingSuggestionsProvider.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/DelegatingSuggestionsProvider.java
@@ -21,10 +21,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments;
+package cloud.commandframework.arguments;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import java.util.List;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/StandardCommandSyntaxFormatter.java b/cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/StandardCommandSyntaxFormatter.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java
index fa7f9855..d282d6b6 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/StandardCommandSyntaxFormatter.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/StandardCommandSyntaxFormatter.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments;
+package cloud.commandframework.arguments;
-import com.intellectualsites.commands.CommandTree;
+import cloud.commandframework.CommandTree;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/StaticArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/StaticArgument.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/StaticArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/StaticArgument.java
index aeafb215..b1e2f43d 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/StaticArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/StaticArgument.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments;
+package cloud.commandframework.arguments;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import java.util.ArrayList;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/package-info.java b/cloud-core/src/main/java/cloud/commandframework/arguments/package-info.java
similarity index 96%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/package-info.java
index 306dcde3..d152b7b9 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/package-info.java
@@ -25,4 +25,4 @@
/**
* Command arguments that are used to build command parsing chains
*/
-package com.intellectualsites.commands.arguments;
+package cloud.commandframework.arguments;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ArgumentParseResult.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ArgumentParseResult.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ArgumentParseResult.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/ArgumentParseResult.java
index d5e34941..7b76708a 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ArgumentParseResult.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ArgumentParseResult.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
import javax.annotation.Nonnull;
import java.util.Optional;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ArgumentParser.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ArgumentParser.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ArgumentParser.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/ArgumentParser.java
index 76acee4a..c32f6592 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ArgumentParser.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ArgumentParser.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import java.util.Collections;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserParameter.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserParameter.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserParameter.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserParameter.java
index 0edd98f4..de6d41ea 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserParameter.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserParameter.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
import com.google.common.reflect.TypeToken;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserParameters.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserParameters.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserParameters.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserParameters.java
index 98ee984a..3f7cdec8 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserParameters.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserParameters.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
import com.google.common.collect.Maps;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserRegistry.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserRegistry.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserRegistry.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserRegistry.java
index 6ac85997..3181a5dc 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/ParserRegistry.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/ParserRegistry.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
import com.google.common.reflect.TypeToken;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/StandardParameters.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParameters.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/StandardParameters.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParameters.java
index 9327759b..8ceb8d15 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/StandardParameters.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParameters.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
import com.google.common.reflect.TypeToken;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/StandardParserRegistry.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java
similarity index 93%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/StandardParserRegistry.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java
index 051c52c3..afa5e8f6 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/parser/StandardParserRegistry.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/StandardParserRegistry.java
@@ -21,21 +21,21 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.parser;
+package cloud.commandframework.arguments.parser;
import com.google.common.collect.ImmutableMap;
import com.google.common.reflect.TypeToken;
-import com.intellectualsites.commands.annotations.specifier.Completions;
-import com.intellectualsites.commands.annotations.specifier.Range;
-import com.intellectualsites.commands.arguments.standard.BooleanArgument;
-import com.intellectualsites.commands.arguments.standard.ByteArgument;
-import com.intellectualsites.commands.arguments.standard.CharArgument;
-import com.intellectualsites.commands.arguments.standard.DoubleArgument;
-import com.intellectualsites.commands.arguments.standard.EnumArgument;
-import com.intellectualsites.commands.arguments.standard.FloatArgument;
-import com.intellectualsites.commands.arguments.standard.IntegerArgument;
-import com.intellectualsites.commands.arguments.standard.ShortArgument;
-import com.intellectualsites.commands.arguments.standard.StringArgument;
+import cloud.commandframework.annotations.specifier.Completions;
+import cloud.commandframework.annotations.specifier.Range;
+import cloud.commandframework.arguments.standard.BooleanArgument;
+import cloud.commandframework.arguments.standard.ByteArgument;
+import cloud.commandframework.arguments.standard.CharArgument;
+import cloud.commandframework.arguments.standard.DoubleArgument;
+import cloud.commandframework.arguments.standard.EnumArgument;
+import cloud.commandframework.arguments.standard.FloatArgument;
+import cloud.commandframework.arguments.standard.IntegerArgument;
+import cloud.commandframework.arguments.standard.ShortArgument;
+import cloud.commandframework.arguments.standard.StringArgument;
import javax.annotation.Nonnull;
import java.lang.annotation.Annotation;
diff --git a/cloud-core/src/main/java/cloud/commandframework/arguments/parser/package-info.java b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/package-info.java
new file mode 100644
index 00000000..d66ff291
--- /dev/null
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/parser/package-info.java
@@ -0,0 +1,28 @@
+//
+// MIT License
+//
+// Copyright (c) 2020 Alexander Söderberg
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+
+/**
+ * Parser classes used to parse {@link cloud.commandframework.arguments.CommandArgument}
+ */
+package cloud.commandframework.arguments.parser;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/BooleanArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/BooleanArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java
index a2c98ac6..34dbbf37 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/BooleanArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/BooleanArgument.java
@@ -21,12 +21,12 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/ByteArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/ByteArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java
index aa0f1627..da0d6d56 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/ByteArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ByteArgument.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.parsing.NumberParseException;
+import cloud.commandframework.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/CharArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/CharArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java
index 82b0689d..5d9ba87a 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/CharArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/CharArgument.java
@@ -21,12 +21,12 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/DoubleArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/DoubleArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java
index ea34fbec..a0e58e53 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/DoubleArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/DoubleArgument.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/EnumArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/EnumArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java
index 1c8a9b30..95f3c6b9 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/EnumArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/EnumArgument.java
@@ -21,12 +21,12 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/FloatArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/FloatArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java
index cf63831e..123fb9c4 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/FloatArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/FloatArgument.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.parsing.NumberParseException;
+import cloud.commandframework.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/IntegerArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/IntegerArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java
index e332a919..36c4cb55 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/IntegerArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/IntegerArgument.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.parsing.NumberParseException;
+import cloud.commandframework.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/LongArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/LongArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java
index 187e24dd..67621567 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/LongArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/LongArgument.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.parsing.NumberParseException;
+import cloud.commandframework.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/ShortArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/ShortArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java
index 95512378..e503c32d 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/ShortArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/ShortArgument.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.parsing.NumberParseException;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
+import cloud.commandframework.exceptions.parsing.NumberParseException;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/StringArgument.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/StringArgument.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java
index fc8ea3dc..fb3aebb2 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/StringArgument.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/StringArgument.java
@@ -21,12 +21,12 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.parser.ArgumentParseResult;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.parser.ArgumentParseResult;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import java.util.Collections;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/package-info.java b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/package-info.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/arguments/standard/package-info.java
index c703eacd..c21101c9 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/arguments/standard/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/arguments/standard/package-info.java
@@ -25,4 +25,4 @@
/**
* Standard command argument types
*/
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/context/CommandContext.java b/cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/context/CommandContext.java
rename to cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java
index dd9eb3b8..d8d87362 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/context/CommandContext.java
+++ b/cloud-core/src/main/java/cloud/commandframework/context/CommandContext.java
@@ -21,10 +21,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.context;
+package cloud.commandframework.context;
+import cloud.commandframework.arguments.CommandArgument;
import com.google.common.collect.Maps;
-import com.intellectualsites.commands.arguments.CommandArgument;
import javax.annotation.Nonnull;
import java.util.Collections;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/context/CommandContextFactory.java b/cloud-core/src/main/java/cloud/commandframework/context/CommandContextFactory.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/context/CommandContextFactory.java
rename to cloud-core/src/main/java/cloud/commandframework/context/CommandContextFactory.java
index 5f82fbbf..d9f4edc1 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/context/CommandContextFactory.java
+++ b/cloud-core/src/main/java/cloud/commandframework/context/CommandContextFactory.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.context;
+package cloud.commandframework.context;
import javax.annotation.Nonnull;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/context/StandardCommandContextFactory.java b/cloud-core/src/main/java/cloud/commandframework/context/StandardCommandContextFactory.java
similarity index 97%
rename from cloud-core/src/main/java/com/intellectualsites/commands/context/StandardCommandContextFactory.java
rename to cloud-core/src/main/java/cloud/commandframework/context/StandardCommandContextFactory.java
index 4f07e030..aff81c64 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/context/StandardCommandContextFactory.java
+++ b/cloud-core/src/main/java/cloud/commandframework/context/StandardCommandContextFactory.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.context;
+package cloud.commandframework.context;
import javax.annotation.Nonnull;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/context/package-info.java b/cloud-core/src/main/java/cloud/commandframework/context/package-info.java
similarity index 96%
rename from cloud-core/src/main/java/com/intellectualsites/commands/context/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/context/package-info.java
index c65d0f9f..38fe7f9b 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/context/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/context/package-info.java
@@ -26,4 +26,4 @@
* Command context stores values for a command sender
* before and during command execution and parsing
*/
-package com.intellectualsites.commands.context;
+package cloud.commandframework.context;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/AmbiguousNodeException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java
similarity index 91%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/AmbiguousNodeException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java
index 988f9a68..682868ba 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/AmbiguousNodeException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/AmbiguousNodeException.java
@@ -21,9 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.CommandTree;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -31,8 +33,8 @@ import java.util.Iterator;
import java.util.List;
/**
- * Exception thrown when a {@link com.intellectualsites.commands.context.CommandContext}
- * is being inserted into a {@link com.intellectualsites.commands.CommandTree} and an ambiguity
+ * Exception thrown when a {@link CommandContext}
+ * is being inserted into a {@link CommandTree} and an ambiguity
* is detected.
*/
@SuppressWarnings("unused")
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/ArgumentParseException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/ArgumentParseException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java
index 3ab28627..98d7c5af 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/ArgumentParseException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/ArgumentParseException.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
import java.util.List;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/CommandParseException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/CommandParseException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java
index 9829d35e..b715e992 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/CommandParseException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/CommandParseException.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
import java.util.Collections;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/InvalidCommandSenderException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/InvalidCommandSenderException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java
index 4920d4db..c7fcb6ce 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/InvalidCommandSenderException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidCommandSenderException.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
import java.util.List;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/InvalidSyntaxException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/InvalidSyntaxException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java
index 987b4170..574a1fb4 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/InvalidSyntaxException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/InvalidSyntaxException.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
import java.util.List;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoCommandInLeafException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java
similarity index 92%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoCommandInLeafException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java
index c4a08e33..dabe05f9 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoCommandInLeafException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoCommandInLeafException.java
@@ -21,15 +21,16 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.Command;
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
/**
* Thrown when a {@link CommandArgument}
- * that is registered as a leaf node, does not contain an owning {@link com.intellectualsites.commands.Command}
+ * that is registered as a leaf node, does not contain an owning {@link Command}
*/
@SuppressWarnings("unused")
public final class NoCommandInLeafException extends IllegalStateException {
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoPermissionException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java
similarity index 91%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoPermissionException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java
index 3bc00b73..3d5c8693 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoPermissionException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoPermissionException.java
@@ -21,17 +21,18 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.permission.CommandPermission;
+import cloud.commandframework.Command;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.permission.CommandPermission;
import javax.annotation.Nonnull;
import java.util.List;
/**
* Exception thrown when a command sender misses a permission required
- * to execute a {@link com.intellectualsites.commands.Command}
+ * to execute a {@link Command}
*/
@SuppressWarnings("unused")
public class NoPermissionException extends CommandParseException {
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoSuchCommandException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java
similarity index 96%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoSuchCommandException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java
index 0bb5a6bd..3f541202 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/NoSuchCommandException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/NoSuchCommandException.java
@@ -21,9 +21,9 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
-import com.intellectualsites.commands.arguments.CommandArgument;
+import cloud.commandframework.arguments.CommandArgument;
import javax.annotation.Nonnull;
import java.util.List;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/package-info.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/package-info.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/package-info.java
index a8b9f280..def165d2 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/package-info.java
@@ -25,4 +25,4 @@
/**
* cloud related exceptions
*/
-package com.intellectualsites.commands.exceptions;
+package cloud.commandframework.exceptions;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/parsing/NumberParseException.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/parsing/NumberParseException.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java
index a28f5852..2a9a7ea0 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/parsing/NumberParseException.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/NumberParseException.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.exceptions.parsing;
+package cloud.commandframework.exceptions.parsing;
import javax.annotation.Nonnull;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/parsing/package-info.java b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/package-info.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/exceptions/parsing/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/package-info.java
index 4a434678..901508be 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/exceptions/parsing/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/exceptions/parsing/package-info.java
@@ -25,4 +25,4 @@
/**
* Parsing related exceptions
*/
-package com.intellectualsites.commands.exceptions.parsing;
+package cloud.commandframework.exceptions.parsing;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/execution/AsynchronousCommandExecutionCoordinator.java b/cloud-core/src/main/java/cloud/commandframework/execution/AsynchronousCommandExecutionCoordinator.java
similarity index 94%
rename from cloud-core/src/main/java/com/intellectualsites/commands/execution/AsynchronousCommandExecutionCoordinator.java
rename to cloud-core/src/main/java/cloud/commandframework/execution/AsynchronousCommandExecutionCoordinator.java
index 3ed00441..b9998bb0 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/execution/AsynchronousCommandExecutionCoordinator.java
+++ b/cloud-core/src/main/java/cloud/commandframework/execution/AsynchronousCommandExecutionCoordinator.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.execution;
+package cloud.commandframework.execution;
-import com.intellectualsites.commands.Command;
-import com.intellectualsites.commands.CommandManager;
-import com.intellectualsites.commands.CommandTree;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.services.State;
+import cloud.commandframework.Command;
+import cloud.commandframework.CommandManager;
+import cloud.commandframework.CommandTree;
+import cloud.commandframework.context.CommandContext;
+import cloud.commandframework.services.State;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/execution/CommandExecutionCoordinator.java b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/execution/CommandExecutionCoordinator.java
rename to cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java
index cf1135e5..afa1cf2d 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/execution/CommandExecutionCoordinator.java
+++ b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionCoordinator.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.execution;
+package cloud.commandframework.execution;
-import com.intellectualsites.commands.CommandTree;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.services.State;
+import cloud.commandframework.CommandTree;
+import cloud.commandframework.context.CommandContext;
+import cloud.commandframework.services.State;
import javax.annotation.Nonnull;
import java.util.Queue;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/execution/CommandExecutionHandler.java b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java
similarity index 89%
rename from cloud-core/src/main/java/com/intellectualsites/commands/execution/CommandExecutionHandler.java
rename to cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java
index 5facaef2..a0f0ccf0 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/execution/CommandExecutionHandler.java
+++ b/cloud-core/src/main/java/cloud/commandframework/execution/CommandExecutionHandler.java
@@ -21,14 +21,15 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.execution;
+package cloud.commandframework.execution;
-import com.intellectualsites.commands.context.CommandContext;
+import cloud.commandframework.Command;
+import cloud.commandframework.context.CommandContext;
import javax.annotation.Nonnull;
/**
- * Handler that is invoked whenever a {@link com.intellectualsites.commands.Command} is executed
+ * Handler that is invoked whenever a {@link Command} is executed
* by a command sender
*
* @param
* Appropriate use for command meta would be fixed state, such as command descriptions.
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/meta/SimpleCommandMeta.java b/cloud-core/src/main/java/cloud/commandframework/meta/SimpleCommandMeta.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/meta/SimpleCommandMeta.java
rename to cloud-core/src/main/java/cloud/commandframework/meta/SimpleCommandMeta.java
index f8ae8df9..d63634cd 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/meta/SimpleCommandMeta.java
+++ b/cloud-core/src/main/java/cloud/commandframework/meta/SimpleCommandMeta.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.meta;
+package cloud.commandframework.meta;
import javax.annotation.Nonnull;
import java.util.Collections;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/meta/package-info.java b/cloud-core/src/main/java/cloud/commandframework/meta/package-info.java
similarity index 96%
rename from cloud-core/src/main/java/com/intellectualsites/commands/meta/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/meta/package-info.java
index 64b5b8ce..7872e573 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/meta/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/meta/package-info.java
@@ -25,4 +25,4 @@
/**
* Command meta are classes associated with commands that store arbitrary data
*/
-package com.intellectualsites.commands.meta;
+package cloud.commandframework.meta;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/package-info.java b/cloud-core/src/main/java/cloud/commandframework/package-info.java
similarity index 91%
rename from cloud-core/src/main/java/com/intellectualsites/commands/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/package-info.java
index ed297f9d..aa2c4542 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/package-info.java
@@ -25,6 +25,6 @@
/**
* cloud API main package
*
- * @see com.intellectualsites.commands.CommandManager Command manager class
+ * @see cloud.commandframework.CommandManager Command manager class
*/
-package com.intellectualsites.commands;
+package cloud.commandframework;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/permission/CommandPermission.java b/cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java
similarity index 96%
rename from cloud-core/src/main/java/com/intellectualsites/commands/permission/CommandPermission.java
rename to cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java
index f58a2e61..b3f6fc56 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/permission/CommandPermission.java
+++ b/cloud-core/src/main/java/cloud/commandframework/permission/CommandPermission.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.permission;
+package cloud.commandframework.permission;
import javax.annotation.Nonnull;
import java.util.Collection;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/permission/OrPermission.java b/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/permission/OrPermission.java
rename to cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java
index 54814247..1fddabd6 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/permission/OrPermission.java
+++ b/cloud-core/src/main/java/cloud/commandframework/permission/OrPermission.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.permission;
+package cloud.commandframework.permission;
import javax.annotation.Nonnull;
import java.util.Collection;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/permission/Permission.java b/cloud-core/src/main/java/cloud/commandframework/permission/Permission.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/permission/Permission.java
rename to cloud-core/src/main/java/cloud/commandframework/permission/Permission.java
index 88402e92..3ab1b72d 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/permission/Permission.java
+++ b/cloud-core/src/main/java/cloud/commandframework/permission/Permission.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.permission;
+package cloud.commandframework.permission;
import javax.annotation.Nonnull;
import java.util.Collection;
@@ -29,7 +29,7 @@ import java.util.Collections;
import java.util.Objects;
/**
- * {@link com.intellectualsites.commands.arguments.CommandArgument} permission
+ * {@link cloud.commandframework.arguments.CommandArgument} permission
*/
public final class Permission implements CommandPermission {
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/permission/package-info.java b/cloud-core/src/main/java/cloud/commandframework/permission/package-info.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/permission/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/permission/package-info.java
index 389dac02..38a75db2 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/permission/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/permission/package-info.java
@@ -25,4 +25,4 @@
/**
* Command permissions
*/
-package com.intellectualsites.commands.permission;
+package cloud.commandframework.permission;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Pair.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Pair.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java
index 963d4831..450164e1 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Pair.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Pair.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
import com.google.common.base.Objects;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Quartet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Quartet.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java
index 134df02b..ad925415 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Quartet.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quartet.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
import com.google.common.base.Objects;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Quintet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Quintet.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java
index 55997cc8..7b60a80b 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Quintet.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Quintet.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
import com.google.common.base.Objects;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Sextet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java
similarity index 99%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Sextet.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java
index 4832a8b7..334b1101 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Sextet.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Sextet.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
import com.google.common.base.Objects;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Triplet.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Triplet.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java
index 0c0f89b9..0b83798d 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Triplet.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Triplet.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
import com.google.common.base.Objects;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Tuples.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Tuples.java
similarity index 98%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Tuples.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/Tuples.java
index 47eb1481..ef20d417 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/Tuples.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/Tuples.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
import javax.annotation.Nonnull;
diff --git a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/package-info.java b/cloud-core/src/main/java/cloud/commandframework/types/tuples/package-info.java
similarity index 95%
rename from cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/package-info.java
rename to cloud-core/src/main/java/cloud/commandframework/types/tuples/package-info.java
index 4c45dd33..f3883251 100644
--- a/cloud-core/src/main/java/com/intellectualsites/commands/types/tuples/package-info.java
+++ b/cloud-core/src/main/java/cloud/commandframework/types/tuples/package-info.java
@@ -26,4 +26,4 @@
* Generic immutable n-tuples with non-null values
* for 1 < n ≥ 6
*/
-package com.intellectualsites.commands.types.tuples;
+package cloud.commandframework.types.tuples;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandHelpHandlerTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandHelpHandlerTest.java
similarity index 96%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandHelpHandlerTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandHelpHandlerTest.java
index 7e62270a..ee6778ba 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandHelpHandlerTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandHelpHandlerTest.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.arguments.CommandArgument;
-import com.intellectualsites.commands.arguments.standard.IntegerArgument;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
+import cloud.commandframework.arguments.CommandArgument;
+import cloud.commandframework.arguments.standard.IntegerArgument;
+import cloud.commandframework.meta.SimpleCommandMeta;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPerformanceTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandPerformanceTest.java
similarity index 95%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandPerformanceTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandPerformanceTest.java
index eff575f4..df82ce7e 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPerformanceTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandPerformanceTest.java
@@ -21,10 +21,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.execution.CommandResult;
+import cloud.commandframework.execution.CommandResult;
+import cloud.commandframework.context.CommandContext;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPermissionTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandPermissionTest.java
similarity index 92%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandPermissionTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandPermissionTest.java
index ba968d80..c205cadb 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPermissionTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandPermissionTest.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.execution.CommandExecutionCoordinator;
-import com.intellectualsites.commands.meta.CommandMeta;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
+import cloud.commandframework.execution.CommandExecutionCoordinator;
+import cloud.commandframework.meta.CommandMeta;
+import cloud.commandframework.meta.SimpleCommandMeta;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPostProcessorTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandPostProcessorTest.java
similarity index 86%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandPostProcessorTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandPostProcessorTest.java
index 5bd9f3ef..d6abff92 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPostProcessorTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandPostProcessorTest.java
@@ -21,12 +21,12 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.execution.postprocessor.CommandPostprocessingContext;
-import com.intellectualsites.commands.execution.postprocessor.CommandPostprocessor;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
-import com.intellectualsites.services.types.ConsumerService;
+import cloud.commandframework.execution.postprocessor.CommandPostprocessingContext;
+import cloud.commandframework.execution.postprocessor.CommandPostprocessor;
+import cloud.commandframework.meta.SimpleCommandMeta;
+import cloud.commandframework.services.types.ConsumerService;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPreProcessorTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandPreProcessorTest.java
similarity index 89%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandPreProcessorTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandPreProcessorTest.java
index b865c4c8..9d5b92e2 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandPreProcessorTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandPreProcessorTest.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.arguments.standard.EnumArgument;
-import com.intellectualsites.commands.execution.preprocessor.CommandPreprocessingContext;
-import com.intellectualsites.commands.execution.preprocessor.CommandPreprocessor;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
-import com.intellectualsites.services.types.ConsumerService;
+import cloud.commandframework.arguments.standard.EnumArgument;
+import cloud.commandframework.execution.preprocessor.CommandPreprocessingContext;
+import cloud.commandframework.execution.preprocessor.CommandPreprocessor;
+import cloud.commandframework.meta.SimpleCommandMeta;
+import cloud.commandframework.services.types.ConsumerService;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandSuggestionsTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandSuggestionsTest.java
similarity index 95%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandSuggestionsTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandSuggestionsTest.java
index c52325c4..aa495a75 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandSuggestionsTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandSuggestionsTest.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.arguments.standard.EnumArgument;
-import com.intellectualsites.commands.arguments.standard.IntegerArgument;
-import com.intellectualsites.commands.arguments.standard.StringArgument;
+import cloud.commandframework.arguments.standard.IntegerArgument;
+import cloud.commandframework.arguments.standard.StringArgument;
+import cloud.commandframework.arguments.standard.EnumArgument;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandTest.java
similarity index 91%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandTest.java
index 3487fe52..cab955de 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandTest.java
@@ -21,10 +21,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.arguments.StaticArgument;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
+import cloud.commandframework.arguments.StaticArgument;
+import cloud.commandframework.meta.SimpleCommandMeta;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/CommandTreeTest.java b/cloud-core/src/test/java/cloud/commandframework/CommandTreeTest.java
similarity index 95%
rename from cloud-core/src/test/java/com/intellectualsites/commands/CommandTreeTest.java
rename to cloud-core/src/test/java/cloud/commandframework/CommandTreeTest.java
index 4e5f2141..9d1ff6ec 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/CommandTreeTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/CommandTreeTest.java
@@ -21,13 +21,13 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.arguments.standard.IntegerArgument;
-import com.intellectualsites.commands.arguments.standard.StringArgument;
-import com.intellectualsites.commands.context.CommandContext;
-import com.intellectualsites.commands.exceptions.NoPermissionException;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
+import cloud.commandframework.arguments.standard.IntegerArgument;
+import cloud.commandframework.arguments.standard.StringArgument;
+import cloud.commandframework.context.CommandContext;
+import cloud.commandframework.exceptions.NoPermissionException;
+import cloud.commandframework.meta.SimpleCommandMeta;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/ExecutionBenchmark.java b/cloud-core/src/test/java/cloud/commandframework/ExecutionBenchmark.java
similarity index 98%
rename from cloud-core/src/test/java/com/intellectualsites/commands/ExecutionBenchmark.java
rename to cloud-core/src/test/java/cloud/commandframework/ExecutionBenchmark.java
index 7feaccc7..d61d5b0a 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/ExecutionBenchmark.java
+++ b/cloud-core/src/test/java/cloud/commandframework/ExecutionBenchmark.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/ParserRegistryTest.java b/cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java
similarity index 86%
rename from cloud-core/src/test/java/com/intellectualsites/commands/ParserRegistryTest.java
rename to cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java
index 8c707554..a1075bfe 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/ParserRegistryTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/ParserRegistryTest.java
@@ -21,16 +21,16 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
+import cloud.commandframework.annotations.specifier.Range;
+import cloud.commandframework.arguments.standard.IntegerArgument;
import com.google.common.reflect.TypeToken;
-import com.intellectualsites.commands.annotations.specifier.Range;
-import com.intellectualsites.commands.arguments.parser.ArgumentParser;
-import com.intellectualsites.commands.arguments.parser.ParserParameters;
-import com.intellectualsites.commands.arguments.parser.ParserRegistry;
-import com.intellectualsites.commands.arguments.parser.StandardParameters;
-import com.intellectualsites.commands.arguments.parser.StandardParserRegistry;
-import com.intellectualsites.commands.arguments.standard.IntegerArgument;
+import cloud.commandframework.arguments.parser.ArgumentParser;
+import cloud.commandframework.arguments.parser.ParserParameters;
+import cloud.commandframework.arguments.parser.ParserRegistry;
+import cloud.commandframework.arguments.parser.StandardParameters;
+import cloud.commandframework.arguments.parser.StandardParserRegistry;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/TestCommandManager.java b/cloud-core/src/test/java/cloud/commandframework/TestCommandManager.java
similarity index 88%
rename from cloud-core/src/test/java/com/intellectualsites/commands/TestCommandManager.java
rename to cloud-core/src/test/java/cloud/commandframework/TestCommandManager.java
index 8cad0e5f..c4ea7cb1 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/TestCommandManager.java
+++ b/cloud-core/src/test/java/cloud/commandframework/TestCommandManager.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
-import com.intellectualsites.commands.execution.CommandExecutionCoordinator;
-import com.intellectualsites.commands.internal.CommandRegistrationHandler;
-import com.intellectualsites.commands.meta.SimpleCommandMeta;
+import cloud.commandframework.execution.CommandExecutionCoordinator;
+import cloud.commandframework.internal.CommandRegistrationHandler;
+import cloud.commandframework.meta.SimpleCommandMeta;
import javax.annotation.Nonnull;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/TestCommandSender.java b/cloud-core/src/test/java/cloud/commandframework/TestCommandSender.java
similarity index 96%
rename from cloud-core/src/test/java/com/intellectualsites/commands/TestCommandSender.java
rename to cloud-core/src/test/java/cloud/commandframework/TestCommandSender.java
index f671f192..8cc802c5 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/TestCommandSender.java
+++ b/cloud-core/src/test/java/cloud/commandframework/TestCommandSender.java
@@ -21,7 +21,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands;
+package cloud.commandframework;
public class TestCommandSender {
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/arguments/standard/StringArgumentTest.java b/cloud-core/src/test/java/cloud/commandframework/arguments/standard/StringArgumentTest.java
similarity index 94%
rename from cloud-core/src/test/java/com/intellectualsites/commands/arguments/standard/StringArgumentTest.java
rename to cloud-core/src/test/java/cloud/commandframework/arguments/standard/StringArgumentTest.java
index cdbbd270..97d1465a 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/arguments/standard/StringArgumentTest.java
+++ b/cloud-core/src/test/java/cloud/commandframework/arguments/standard/StringArgumentTest.java
@@ -21,11 +21,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
-package com.intellectualsites.commands.arguments.standard;
+package cloud.commandframework.arguments.standard;
-import com.intellectualsites.commands.CommandManager;
-import com.intellectualsites.commands.TestCommandManager;
-import com.intellectualsites.commands.TestCommandSender;
+import cloud.commandframework.CommandManager;
+import cloud.commandframework.TestCommandManager;
+import cloud.commandframework.TestCommandSender;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
diff --git a/cloud-core/src/test/java/com/intellectualsites/commands/package-info.java b/cloud-core/src/test/java/cloud/commandframework/package-info.java
similarity index 96%
rename from cloud-core/src/test/java/com/intellectualsites/commands/package-info.java
rename to cloud-core/src/test/java/cloud/commandframework/package-info.java
index e696a342..93abfa4d 100644
--- a/cloud-core/src/test/java/com/intellectualsites/commands/package-info.java
+++ b/cloud-core/src/test/java/cloud/commandframework/package-info.java
@@ -25,4 +25,4 @@
/**
* Command tests
*/
-package com.intellectualsites.commands;
+package cloud.commandframework;
diff --git a/cloud-jline/pom.xml b/cloud-jline/pom.xml
index 5f95974b..6600c76b 100644
--- a/cloud-jline/pom.xml
+++ b/cloud-jline/pom.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
{@code
+ * {@literal @}Nullable
+ * {@literal @}ServiceImplementation(YourService.class)
+ * public YourResult handle(YourContext) {
+ * return result;
+ * }
+ * }
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ServiceImplementation {
+
+ /**
+ * The service class that the method implements
+ *
+ * @return Service to implement
+ */
+ Class extends Service, ?>> value();
+}
diff --git a/cloud-services/src/main/java/cloud/commandframework/services/package-info.java b/cloud-services/src/main/java/cloud/commandframework/services/package-info.java
new file mode 100644
index 00000000..c7da1bc0
--- /dev/null
+++ b/cloud-services/src/main/java/cloud/commandframework/services/package-info.java
@@ -0,0 +1,28 @@
+//
+// MIT License
+//
+// Copyright (c) 2020 IntellectualSites
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+
+/**
+ * IntellectualSites service pipeline system
+ */
+package cloud.commandframework.services;
diff --git a/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java b/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java
new file mode 100644
index 00000000..19471dd5
--- /dev/null
+++ b/cloud-services/src/main/java/cloud/commandframework/services/types/ConsumerService.java
@@ -0,0 +1,90 @@
+//
+// MIT License
+//
+// Copyright (c) 2020 IntellectualSites
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+package cloud.commandframework.services.types;
+
+import cloud.commandframework.services.State;
+
+import javax.annotation.Nonnull;
+import java.util.function.Consumer;
+
+/**
+ * Service type where each implementation gets a chance to consume the context. This service type
+ * effectively turns the pipeline into an event bus.
+ *
+ * A service can forcefully terminate execution by calling {@link #interrupt()}
+ *
+ * @param