mirror of
https://github.com/aikar/commands.git
synced 2026-06-04 16:12:17 +00:00
(DEPLOYED ACF) Updated JavaDocs
This commit is contained in:
@@ -158,7 +158,7 @@ extends co.aikar.commands.CommandCompletions<<a href="../../../co/aikar/comma
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class co.aikar.commands.CommandCompletions</h3>
|
||||
<code>registerAsyncCompletion, registerCompletion</code></li>
|
||||
<code>registerAsyncCompletion, registerCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
||||
|
||||
@@ -158,7 +158,7 @@ extends co.aikar.commands.CommandCompletions<<a href="../../../co/aikar/comma
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class co.aikar.commands.CommandCompletions</h3>
|
||||
<code>registerAsyncCompletion, registerCompletion</code></li>
|
||||
<code>registerAsyncCompletion, registerCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
catch(err) {
|
||||
}
|
||||
//-->
|
||||
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":42,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":42,"i23":10,"i24":10,"i25":10};
|
||||
var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":42,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":42,"i23":10,"i24":10,"i25":10};
|
||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
|
||||
var altColor = "altColor";
|
||||
var rowColor = "rowColor";
|
||||
@@ -74,13 +74,13 @@ var activeTableTab = "activeTableTab";
|
||||
<ul class="subNavList">
|
||||
<li>Summary: </li>
|
||||
<li>Nested | </li>
|
||||
<li><a href="#field.summary">Field</a> | </li>
|
||||
<li>Field | </li>
|
||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||
<li><a href="#method.summary">Method</a></li>
|
||||
</ul>
|
||||
<ul class="subNavList">
|
||||
<li>Detail: </li>
|
||||
<li><a href="#field.detail">Field</a> | </li>
|
||||
<li>Field | </li>
|
||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||
<li><a href="#method.detail">Method</a></li>
|
||||
</ul>
|
||||
@@ -112,37 +112,22 @@ var activeTableTab = "activeTableTab";
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public abstract class <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.65">BaseCommand</a>
|
||||
<pre>public abstract class <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.77">BaseCommand</a>
|
||||
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
|
||||
<div class="block">A Base command is defined as a command group of related commands.
|
||||
A BaseCommand does not imply nor enforce that they use the same root command.
|
||||
|
||||
It is up to the end user how to organize their command. you could use 1 base command per
|
||||
command in your application.
|
||||
|
||||
Optionally (and encouraged), you can use the base command to represent a root command, and
|
||||
then each actionable command is a sub command</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="summary">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="field.summary">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Field Summary</h3>
|
||||
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
|
||||
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
|
||||
<tr>
|
||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||
<th class="colLast" scope="col">Field and Description</th>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#CATCHUNKNOWN">CATCHUNKNOWN</a></span></code> </td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#DEFAULT">DEFAULT</a></span></code> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="constructor.summary">
|
||||
@@ -158,7 +143,11 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<td class="colOne"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#BaseCommand--">BaseCommand</a></span>()</code> </td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#BaseCommand-java.lang.String-">BaseCommand</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> cmd)</code> </td>
|
||||
<td class="colOne"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#BaseCommand-java.lang.String-">BaseCommand</a></span>(@Nullable <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> cmd)</code>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||
<div class="block"><span class="deprecationComment">Please switch to <a href="../../../co/aikar/commands/annotation/CommandAlias.html" title="annotation in co.aikar.commands.annotation"><code>CommandAlias</code></a> for defining all root commands.</span></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
@@ -178,7 +167,11 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<tr id="i0" class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">canExecute</a></span>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</code> </td>
|
||||
<a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</code>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||
<div class="block"><span class="deprecationComment">See <a href="../../../co/aikar/commands/CommandConditions.html" title="class in co.aikar.commands"><code>CommandConditions</code></a></span></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i1" class="rowColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
@@ -210,11 +203,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
</tr>
|
||||
<tr id="i6" class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer</a></span>()</code> </td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer</a></span>()</code>
|
||||
<div class="block">Gets the current command issuer.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i7" class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager</a></span>()</code> </td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager</a></span>()</code>
|
||||
<div class="block">Gets the current command manager.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i8" class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a></code></td>
|
||||
@@ -298,14 +295,18 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete</a></span>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code> </td>
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i25" class="rowColor">
|
||||
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-boolean-">tabComplete</a></span>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args,
|
||||
boolean isAsync)</code> </td>
|
||||
boolean isAsync)</code>
|
||||
<div class="block">Gets the tab complete suggestions from a given command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<ul class="blockList">
|
||||
@@ -323,40 +324,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<div class="details">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<!-- ============ FIELD DETAIL =========== -->
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="field.detail">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Field Detail</h3>
|
||||
<a name="CATCHUNKNOWN">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>CATCHUNKNOWN</h4>
|
||||
<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.67">CATCHUNKNOWN</a></pre>
|
||||
<dl>
|
||||
<dt><span class="seeLabel">See Also:</span></dt>
|
||||
<dd><a href="../../../constant-values.html#co.aikar.commands.BaseCommand.CATCHUNKNOWN">Constant Field Values</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="DEFAULT">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>DEFAULT</h4>
|
||||
<pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.68">DEFAULT</a></pre>
|
||||
<dl>
|
||||
<dt><span class="seeLabel">See Also:</span></dt>
|
||||
<dd><a href="../../../constant-values.html#co.aikar.commands.BaseCommand.DEFAULT">Constant Field Values</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="constructor.detail">
|
||||
@@ -369,7 +336,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>BaseCommand</h4>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.91">BaseCommand</a>()</pre>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.162">BaseCommand</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="BaseCommand-java.lang.String-">
|
||||
@@ -378,7 +345,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>BaseCommand</h4>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.92">BaseCommand</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> cmd)</pre>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
|
||||
public <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.170">BaseCommand</a>(@Nullable
|
||||
@Nullable <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> cmd)</pre>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Please switch to <a href="../../../co/aikar/commands/annotation/CommandAlias.html" title="annotation in co.aikar.commands.annotation"><code>CommandAlias</code></a> for defining all root commands.</span></div>
|
||||
<div class="block">Constructor based defining of commands will be removed in the next version bump.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>cmd</code> - </dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -395,7 +370,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getExecCommandLabel</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.100">getExecCommandLabel</a>()</pre>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.178">getExecCommandLabel</a>()</pre>
|
||||
<div class="block">Gets the root command name that the user actually typed</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
@@ -409,7 +384,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getExecSubcommand</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.108">getExecSubcommand</a>()</pre>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.186">getExecSubcommand</a>()</pre>
|
||||
<div class="block">Gets the actual sub command name the user typed</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
@@ -423,7 +398,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getOrigArgs</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.116">getOrigArgs</a>()</pre>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.194">getOrigArgs</a>()</pre>
|
||||
<div class="block">Gets the actual args in string form the user typed</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
@@ -437,7 +412,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>execute</h4>
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.360">execute</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.485">execute</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</pre>
|
||||
</li>
|
||||
@@ -448,7 +423,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getCurrentCommandIssuer</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.413">getCurrentCommandIssuer</a>()</pre>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.571">getCurrentCommandIssuer</a>()</pre>
|
||||
<div class="block">Gets the current command issuer.</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
<dd>The current command issuer.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getCurrentCommandManager--">
|
||||
@@ -457,7 +437,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getCurrentCommandManager</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.416">getCurrentCommandManager</a>()</pre>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.580">getCurrentCommandManager</a>()</pre>
|
||||
<div class="block">Gets the current command manager.</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
<dd>The current command manager.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">
|
||||
@@ -466,8 +451,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>canExecute</h4>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.473">canExecute</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</pre>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
|
||||
public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.667">canExecute</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</pre>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">See <a href="../../../co/aikar/commands/CommandConditions.html" title="class in co.aikar.commands"><code>CommandConditions</code></a></span></div>
|
||||
<div class="block">Please use command conditions for restricting execution</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>issuer</code> - </dd>
|
||||
<dd><code>cmd</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">
|
||||
@@ -476,9 +470,18 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>tabComplete</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.477">tabComplete</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.683">tabComplete</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</pre>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>issuer</code> - The user who executed the tabcomplete.</dd>
|
||||
<dd><code>commandLabel</code> - The label which is being used by the user.</dd>
|
||||
<dd><code>args</code> - The arguments the user has typed so far.</dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
<dd>All possibilities in the tab complete.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-boolean-">
|
||||
@@ -487,12 +490,21 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>tabComplete</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.480">tabComplete</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.703">tabComplete</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args,
|
||||
boolean isAsync)
|
||||
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
|
||||
<div class="block">Gets the tab complete suggestions from a given command. This will automatically find anything
|
||||
which is valid for the specified command through the command's implementation.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>issuer</code> - The issuer of the command.</dd>
|
||||
<dd><code>commandLabel</code> - The command name as entered by the user instead of the ACF registered name.</dd>
|
||||
<dd><code>args</code> - All arguments entered by the user.</dd>
|
||||
<dd><code>isAsync</code> - Whether this is run off of the main thread.</dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
<dd>The possibilities to tab complete in no particular order.</dd>
|
||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code></dd>
|
||||
</dl>
|
||||
@@ -505,7 +517,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<li class="blockList">
|
||||
<h4>getCommandHelp</h4>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
|
||||
public <a href="../../../co/aikar/commands/CommandHelp.html" title="class in co.aikar.commands">CommandHelp</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.597">getCommandHelp</a>()</pre>
|
||||
public <a href="../../../co/aikar/commands/CommandHelp.html" title="class in co.aikar.commands">CommandHelp</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.907">getCommandHelp</a>()</pre>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Unstable API</span></div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -516,7 +528,7 @@ public <a href="../../../co/aikar/commands/CommandHelp.html" title="class i
|
||||
<li class="blockList">
|
||||
<h4>showCommandHelp</h4>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
|
||||
public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.602">showCommandHelp</a>()</pre>
|
||||
public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.912">showCommandHelp</a>()</pre>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Unstable API</span></div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -526,7 +538,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>help</h4>
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.606">help</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> issuer,
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.916">help</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -536,7 +548,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>help</h4>
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.609">help</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.919">help</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -546,7 +558,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>doHelp</h4>
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.612">doHelp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> issuer,
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.922">doHelp</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... args)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -556,7 +568,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>doHelp</h4>
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.615">doHelp</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.925">doHelp</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... args)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -566,7 +578,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>showSyntax</h4>
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.619">showSyntax</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<pre>public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.929">showSyntax</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -576,7 +588,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>hasPermission</h4>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.626">hasPermission</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> issuer)</pre>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.936">hasPermission</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> issuer)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="hasPermission-co.aikar.commands.CommandIssuer-">
|
||||
@@ -585,7 +597,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>hasPermission</h4>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.630">hasPermission</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer)</pre>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.940">hasPermission</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getRequiredPermissions--">
|
||||
@@ -594,7 +606,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getRequiredPermissions</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.635">getRequiredPermissions</a>()</pre>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.945">getRequiredPermissions</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="requiresPermission-java.lang.String-">
|
||||
@@ -603,7 +615,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>requiresPermission</h4>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.642">requiresPermission</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> permission)</pre>
|
||||
<pre>public boolean <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.952">requiresPermission</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> permission)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getName--">
|
||||
@@ -612,7 +624,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getName</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.646">getName</a>()</pre>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.956">getName</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getExceptionHandler--">
|
||||
@@ -621,7 +633,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getExceptionHandler</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/ExceptionHandler.html" title="interface in co.aikar.commands">ExceptionHandler</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.650">getExceptionHandler</a>()</pre>
|
||||
<pre>public <a href="../../../co/aikar/commands/ExceptionHandler.html" title="interface in co.aikar.commands">ExceptionHandler</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.960">getExceptionHandler</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="setExceptionHandler-co.aikar.commands.ExceptionHandler-">
|
||||
@@ -630,7 +642,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>setExceptionHandler</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.654">setExceptionHandler</a>(<a href="../../../co/aikar/commands/ExceptionHandler.html" title="interface in co.aikar.commands">ExceptionHandler</a> exceptionHandler)</pre>
|
||||
<pre>public <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.964">setExceptionHandler</a>(<a href="../../../co/aikar/commands/ExceptionHandler.html" title="interface in co.aikar.commands">ExceptionHandler</a> exceptionHandler)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getDefaultRegisteredCommand--">
|
||||
@@ -639,7 +651,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getDefaultRegisteredCommand</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.659">getDefaultRegisteredCommand</a>()</pre>
|
||||
<pre>public <a href="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.969">getDefaultRegisteredCommand</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="setContextFlags-java.lang.Class-java.lang.String-">
|
||||
@@ -648,7 +660,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>setContextFlags</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.663">setContextFlags</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> cls,
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.973">setContextFlags</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> cls,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> flags)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -658,7 +670,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>getContextFlags</h4>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.667">getContextFlags</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> cls)</pre>
|
||||
<pre>public <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.977">getContextFlags</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> cls)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -714,13 +726,13 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="subNavList">
|
||||
<li>Summary: </li>
|
||||
<li>Nested | </li>
|
||||
<li><a href="#field.summary">Field</a> | </li>
|
||||
<li>Field | </li>
|
||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
||||
<li><a href="#method.summary">Method</a></li>
|
||||
</ul>
|
||||
<ul class="subNavList">
|
||||
<li>Detail: </li>
|
||||
<li><a href="#field.detail">Field</a> | </li>
|
||||
<li>Field | </li>
|
||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
||||
<li><a href="#method.detail">Method</a></li>
|
||||
</ul>
|
||||
|
||||
+1
-1
@@ -102,7 +102,7 @@
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.162">CommandCompletions.AsyncCommandCompletionHandler</a><C extends <a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.233">CommandCompletions.AsyncCommandCompletionHandler</a><C extends <a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>>
|
||||
extends <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><C></pre>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -108,7 +108,7 @@ var activeTableTab = "activeTableTab";
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.159">CommandCompletions.CommandCompletionHandler</a><C extends <a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>></pre>
|
||||
<pre>public static interface <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.230">CommandCompletions.CommandCompletionHandler</a><C extends <a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -154,7 +154,7 @@ var activeTableTab = "activeTableTab";
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>getCompletions</h4>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html#line.160">getCompletions</a>(<a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="type parameter in CommandCompletions.CommandCompletionHandler">C</a> context)
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/co/aikar/commands/CommandCompletions.CommandCompletionHandler.html#line.231">getCompletions</a>(<a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="type parameter in CommandCompletions.CommandCompletionHandler">C</a> context)
|
||||
throws <a href="../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></pre>
|
||||
<dl>
|
||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public static class <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.163">CommandCompletions.SyncCompletionRequired</a>
|
||||
<pre>public static class <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.234">CommandCompletions.SyncCompletionRequired</a>
|
||||
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
|
||||
<dl>
|
||||
<dt><span class="seeLabel">See Also:</span></dt>
|
||||
@@ -189,7 +189,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.h
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>SyncCompletionRequired</h4>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html#line.163">SyncCompletionRequired</a>()</pre>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/CommandCompletions.SyncCompletionRequired.html#line.234">SyncCompletionRequired</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
catch(err) {
|
||||
}
|
||||
//-->
|
||||
var methods = {"i0":10,"i1":10};
|
||||
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
|
||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
||||
var altColor = "altColor";
|
||||
var rowColor = "rowColor";
|
||||
@@ -108,7 +108,7 @@ var activeTableTab = "activeTableTab";
|
||||
<li class="blockList">
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public class <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.39">CommandCompletions</a><C extends <a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>>
|
||||
<pre>public class <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.40">CommandCompletions</a><C extends <a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>>
|
||||
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -175,12 +175,44 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<tr id="i0" class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandCompletions.html#registerAsyncCompletion-java.lang.String-co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler-">registerAsyncCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code> </td>
|
||||
<a href="../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i1" class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandCompletions.html#registerCompletion-java.lang.String-co.aikar.commands.CommandCompletions.CommandCompletionHandler-">registerCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code> </td>
|
||||
<a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i2" class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.util.List-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> completions)</code>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i3" class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.lang.String-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> list)</code>
|
||||
<div class="block">Register a static list of command completions that will never change.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i4" class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.lang.String:A-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] completions)</code>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i5" class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.util.function.Supplier-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>>> supplier)</code>
|
||||
<div class="block">Register a static list of command completions that will never change.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<ul class="blockList">
|
||||
@@ -210,7 +242,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>CommandCompletions</h4>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.44">CommandCompletions</a>(<a href="../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a> manager)</pre>
|
||||
<pre>public <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.45">CommandCompletions</a>(<a href="../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a> manager)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -227,18 +259,112 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>registerCompletion</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.67">registerCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.75">registerCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</pre>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>id</code> - </dd>
|
||||
<dd><code>handler</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="registerAsyncCompletion-java.lang.String-co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler-">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockListLast">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>registerAsyncCompletion</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.71">registerAsyncCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.94">registerAsyncCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</pre>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.
|
||||
This handler is declared to be safe to be executed asynchronously.
|
||||
<p>
|
||||
Not all platforms support this, so if the platform does not support asynchronous execution,
|
||||
your handler will be executed on the main thread.
|
||||
<p>
|
||||
Use this anytime your handler does not need to access state that is not considered thread safe.
|
||||
<p>
|
||||
Use context.isAsync() to determine if you are async or not.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>id</code> - </dd>
|
||||
<dd><code>handler</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="registerStaticCompletion-java.lang.String-java.lang.String-">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>registerStaticCompletion</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.108">registerStaticCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> list)</pre>
|
||||
<div class="block">Register a static list of command completions that will never change.
|
||||
Like @CommandCompletion, values are | (PIPE) separated.
|
||||
<p>
|
||||
Example: foo|bar|baz</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>id</code> - </dd>
|
||||
<dd><code>list</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="registerStaticCompletion-java.lang.String-java.lang.String:A-">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>registerStaticCompletion</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.119">registerStaticCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] completions)</pre>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>id</code> - </dd>
|
||||
<dd><code>completions</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="registerStaticCompletion-java.lang.String-java.util.function.Supplier-">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>registerStaticCompletion</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.131">registerStaticCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>>> supplier)</pre>
|
||||
<div class="block">Register a static list of command completions that will never change. The list is obtained from the supplier
|
||||
immediately as part of this method call.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>id</code> - </dd>
|
||||
<dd><code>supplier</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="registerStaticCompletion-java.lang.String-java.util.List-">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>registerStaticCompletion</h4>
|
||||
<pre>public <a href="../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a> <a href="../../../src-html/co/aikar/commands/CommandCompletions.html#line.142">registerStaticCompletion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> completions)</pre>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>id</code> - </dd>
|
||||
<dd><code>completions</code> - </dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -74,7 +74,7 @@ var activeTableTab = "activeTableTab";
|
||||
<ul class="subNavList">
|
||||
<li>Summary: </li>
|
||||
<li>Nested | </li>
|
||||
<li><a href="#fields.inherited.from.class.co.aikar.commands.BaseCommand">Field</a> | </li>
|
||||
<li>Field | </li>
|
||||
<li>Constr | </li>
|
||||
<li><a href="#method.summary">Method</a></li>
|
||||
</ul>
|
||||
@@ -121,21 +121,6 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
<div class="summary">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<!-- =========== FIELD SUMMARY =========== -->
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="field.summary">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Field Summary</h3>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="fields.inherited.from.class.co.aikar.commands.BaseCommand">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Fields inherited from class co.aikar.commands.<a href="../../../co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></h3>
|
||||
<code><a href="../../../co/aikar/commands/BaseCommand.html#CATCHUNKNOWN">CATCHUNKNOWN</a>, <a href="../../../co/aikar/commands/BaseCommand.html#DEFAULT">DEFAULT</a></code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="method.summary">
|
||||
@@ -162,7 +147,9 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/ForwardingCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete</a></span>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> alias,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code> </td>
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<ul class="blockList">
|
||||
@@ -216,9 +203,17 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> alias,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)
|
||||
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
|
||||
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">BaseCommand</a></code></span></div>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
<dl>
|
||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
||||
<dd><code><a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete</a></code> in class <code><a href="../../../co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></code></dd>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>issuer</code> - The user who executed the tabcomplete.</dd>
|
||||
<dd><code>alias</code> - The label which is being used by the user.</dd>
|
||||
<dd><code>args</code> - The arguments the user has typed so far.</dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
<dd>All possibilities in the tab complete.</dd>
|
||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code></dd>
|
||||
</dl>
|
||||
@@ -292,7 +287,7 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
<ul class="subNavList">
|
||||
<li>Summary: </li>
|
||||
<li>Nested | </li>
|
||||
<li><a href="#fields.inherited.from.class.co.aikar.commands.BaseCommand">Field</a> | </li>
|
||||
<li>Field | </li>
|
||||
<li>Constr | </li>
|
||||
<li><a href="#method.summary">Method</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -94,7 +94,14 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CatchUnknown.html#line.33">CatchUnknown</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CatchUnknown.html#line.42">CatchUnknown</a></pre>
|
||||
<div class="block">Defines a method that should receive any unknown command for the related root command.
|
||||
|
||||
For example, if a BaseCommand /foo has a method with this, and /foo someunknowncommand is used
|
||||
|
||||
If a method is tagged with this annotation, it will catch unknown commands and let you react to them.
|
||||
|
||||
Only one instance of this annotation can be used per root command.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -94,7 +94,13 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CommandAlias.html#line.33">CommandAlias</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CommandAlias.html#line.41">CommandAlias</a></pre>
|
||||
<div class="block">Allows to add a single or several command alias(es).
|
||||
In order to add more than one in a single go, use the syntax "alias|otheralias".
|
||||
You can register as many aliases as wanted in a single value.
|
||||
|
||||
Used on a Class, defines the root command for all subcommands in the base command.
|
||||
Used on a method, defines a root command alias to that specific command</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +144,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Com
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/CommandAlias.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/CommandAlias.html#line.42">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,17 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CommandCompletion.html#line.33">CommandCompletion</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CommandCompletion.html#line.43">CommandCompletion</a></pre>
|
||||
<div class="block">Many implementation platforms have a concept of "Tab Completions",
|
||||
where pressing tab will give suggestions on what you can input.
|
||||
|
||||
This annotation specifies either static completion values,
|
||||
or special @codes that let you define Completion Handlers to dynamically
|
||||
populate completion values.</div>
|
||||
<dl>
|
||||
<dt><span class="seeLabel">See Also:</span></dt>
|
||||
<dd><code>co.aikar.commands.CommandCompletions}</code></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +148,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Com
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/CommandCompletion.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/CommandCompletion.html#line.44">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,10 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CommandPermission.html#line.33">CommandPermission</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/CommandPermission.html#line.38">CommandPermission</a></pre>
|
||||
<div class="block">Sets the permission required to perform this command.
|
||||
|
||||
Permission format will vary based on implementation platform</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +141,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Com
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/CommandPermission.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/CommandPermission.html#line.39">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,15 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Conditions.html#line.33">Conditions</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Conditions.html#line.41">Conditions</a></pre>
|
||||
<div class="block">Specifies conditions that must be met in order to execute this command.
|
||||
|
||||
If used on a method or a class, will be checked before parameter context is resolved
|
||||
If used on a parameter, will be checked after the context is resolved</div>
|
||||
<dl>
|
||||
<dt><span class="seeLabel">See Also:</span></dt>
|
||||
<dd><code>co.aikar.commands.CommandConditions}</code></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +146,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Con
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Conditions.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Conditions.html#line.42">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,9 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Default.html#line.33">Default</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Default.html#line.37">Default</a></pre>
|
||||
<div class="block">If used on a method, sets default command handler for the root command of this group
|
||||
If used on a parameter, sets the value to be used for context resolution</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +140,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Def
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Default.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Default.html#line.38">value</a></pre>
|
||||
<dl>
|
||||
<dt>Default:</dt>
|
||||
<dd>""</dd>
|
||||
|
||||
@@ -94,7 +94,9 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Dependency.html#line.33">Dependency</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Dependency.html#line.37">Dependency</a></pre>
|
||||
<div class="block">Injects a dependency into the field this is attached to.
|
||||
Any time a new dependency is registered, this will be overwritten.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -140,7 +142,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Dep
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Dependency.html#line.38">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Dependency.html#line.42">value</a></pre>
|
||||
<div class="block">The key that should be used to lookup the instances, defaults to \"\"</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
|
||||
@@ -94,7 +94,9 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Description.html#line.33">Description</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Description.html#line.37">Description</a></pre>
|
||||
<div class="block">Sets a description to the parameter or method this is attached to.
|
||||
This is used in the help menus.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +140,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Des
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Description.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Description.html#line.38">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,12 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Flags.html#line.33">Flags</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Flags.html#line.40">Flags</a></pre>
|
||||
<div class="block">Provides configuration options for <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>'s to change how they resolve context.
|
||||
|
||||
Example: Searching for a player, you might use @Flags("loose") to indicate a fuzzy match instead of an exact match.
|
||||
|
||||
If you want to restrict if an issuer can use the command, please use <a href="../../../../co/aikar/commands/CommandConditions.Condition.html" title="interface in co.aikar.commands"><code>CommandConditions.Condition</code></a> instead.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +143,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Fla
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Flags.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Flags.html#line.41">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,11 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/HelpCommand.html#line.33">HelpCommand</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/HelpCommand.html#line.39">HelpCommand</a></pre>
|
||||
<div class="block">A Shortcut for specifying <a href="../../../../co/aikar/commands/annotation/CatchUnknown.html" title="annotation in co.aikar.commands.annotation"><code>CatchUnknown</code></a>, <a href="../../../../co/aikar/commands/annotation/Default.html" title="annotation in co.aikar.commands.annotation"><code>Default</code></a> and <a href="../../../../co/aikar/commands/annotation/Subcommand.html" title="annotation in co.aikar.commands.annotation"><code>Subcommand</code></a> on a method.
|
||||
Subcommand carries the same value as this annotations value to define the list of subcommands to register for.
|
||||
|
||||
a method marked with this annotation should also use a <a href="../../../../co/aikar/commands/CommandHelp.html" title="class in co.aikar.commands"><code>CommandHelp</code></a> context parameter to show help.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -115,7 +119,9 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Hel
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/annotation/HelpCommand.html#value--">value</a></span></code> </td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/annotation/HelpCommand.html#value--">value</a></span></code>
|
||||
<div class="block">The value to forward to the @Subcommand annotation.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
@@ -138,7 +144,11 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Hel
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/HelpCommand.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/HelpCommand.html#line.44">value</a></pre>
|
||||
<div class="block">The value to forward to the @Subcommand annotation. Lists which subcommands to register to trigger help</div>
|
||||
<dl>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Default:</dt>
|
||||
<dd>"help|?|-help|-h|-?"</dd>
|
||||
|
||||
@@ -94,7 +94,11 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/HelpSearchTags.html#line.33">HelpSearchTags</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/HelpSearchTags.html#line.39">HelpSearchTags</a></pre>
|
||||
<div class="block">Defines additional keywords to feed into the search help system.
|
||||
|
||||
For example, if a specific word doesn't make sense to use in the command name or description, but should
|
||||
be used for help in discovering the correct command, then you can add it as a tag.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +142,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Hel
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/HelpSearchTags.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/HelpSearchTags.html#line.40">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,12 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Optional.html#line.33">Optional</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Optional.html#line.40">Optional</a></pre>
|
||||
<div class="block">Marks the parameter this is attached to as optional.
|
||||
This will set the parameter as null if it was not provided.
|
||||
<p>
|
||||
In the case the language used is Kotlin, Ceylon or any other null-enforcing JVM language,
|
||||
you will need to allow for a nullable value.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -94,7 +94,8 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/PreCommand.html#line.34">PreCommand</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/PreCommand.html#line.37">PreCommand</a></pre>
|
||||
<div class="block">This runs before any other command method each time it is invoked.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -94,8 +94,8 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Single.html#line.37">Single</a></pre>
|
||||
<div class="block">Don't join remaining arguments</div>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Single.html#line.36">Single</a></pre>
|
||||
<div class="block">Don't join remaining arguments. Used on String parameters, which normally would combine the remaining arguments</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -94,7 +94,9 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Split.html#line.34">Split</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Split.html#line.38">Split</a></pre>
|
||||
<div class="block">Joins arguments into a single piece of text with the specified separator.
|
||||
For array based parameters, defines the regex pattern to split on</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +140,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Spl
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Split.html#line.35">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Split.html#line.39">value</a></pre>
|
||||
<dl>
|
||||
<dt>Default:</dt>
|
||||
<dd>","</dd>
|
||||
|
||||
@@ -94,7 +94,12 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Subcommand.html#line.33">Subcommand</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Subcommand.html#line.40">Subcommand</a></pre>
|
||||
<div class="block">Defines the subcommand that can be used to execute this command.
|
||||
This is appended onto the root command for the command group,
|
||||
as well as any parent command groups subcommand base.
|
||||
|
||||
Defines the part after root command like so: "/rootcommand <a href="../../../../co/aikar/commands/annotation/Subcommand.html#value--"><code>value()</code></a>".</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +143,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Sub
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Subcommand.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Subcommand.html#line.41">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,14 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>})
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Syntax.html#line.33">Syntax</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Syntax.html#line.42">Syntax</a></pre>
|
||||
<div class="block">Specifies the syntax to be used when executing this command.
|
||||
It should not include any descriptions of the arguments nor when some are allowed and when they are not.
|
||||
|
||||
Use of this annotation is not necessary. Syntax will be automatically generated for you.
|
||||
Use this annotation to override automatic syntax
|
||||
|
||||
Use <a href="../../../../co/aikar/commands/annotation/Description.html" title="annotation in co.aikar.commands.annotation"><code>Description</code></a> together with the help menu for that purpose.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +145,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Syn
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Syntax.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Syntax.html#line.43">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -94,7 +94,10 @@
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>)
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Values.html#line.33">Values</a></pre>
|
||||
public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Values.html#line.38">Values</a></pre>
|
||||
<div class="block">Specifies a list of values that the command input should be validated against, or else show an error.
|
||||
|
||||
You may also use <a href="../../../../co/aikar/commands/annotation/CommandCompletion.html" title="annotation in co.aikar.commands.annotation"><code>CommandCompletion</code></a> handler codes here to feed dynamic values and avoid repetition.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -138,7 +141,7 @@ public @interface <a href="../../../../src-html/co/aikar/commands/annotation/Val
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>value</h4>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Values.html#line.34">value</a></pre>
|
||||
<pre>public abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/co/aikar/commands/annotation/Values.html#line.39">value</a></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -89,55 +89,83 @@
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/CatchUnknown.html" title="annotation in co.aikar.commands.annotation">CatchUnknown</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Defines a method that should receive any unknown command for the related root command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/CommandAlias.html" title="annotation in co.aikar.commands.annotation">CommandAlias</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Allows to add a single or several command alias(es).</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/CommandCompletion.html" title="annotation in co.aikar.commands.annotation">CommandCompletion</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Many implementation platforms have a concept of "Tab Completions",
|
||||
where pressing tab will give suggestions on what you can input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/CommandPermission.html" title="annotation in co.aikar.commands.annotation">CommandPermission</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Sets the permission required to perform this command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Conditions.html" title="annotation in co.aikar.commands.annotation">Conditions</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Specifies conditions that must be met in order to execute this command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Default.html" title="annotation in co.aikar.commands.annotation">Default</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">If used on a method, sets default command handler for the root command of this group
|
||||
If used on a parameter, sets the value to be used for context resolution</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Dependency.html" title="annotation in co.aikar.commands.annotation">Dependency</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Injects a dependency into the field this is attached to.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Description.html" title="annotation in co.aikar.commands.annotation">Description</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Sets a description to the parameter or method this is attached to.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Flags.html" title="annotation in co.aikar.commands.annotation">Flags</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Provides configuration options for <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>'s to change how they resolve context.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/HelpCommand.html" title="annotation in co.aikar.commands.annotation">HelpCommand</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">A Shortcut for specifying <a href="../../../../co/aikar/commands/annotation/CatchUnknown.html" title="annotation in co.aikar.commands.annotation"><code>CatchUnknown</code></a>, <a href="../../../../co/aikar/commands/annotation/Default.html" title="annotation in co.aikar.commands.annotation"><code>Default</code></a> and <a href="../../../../co/aikar/commands/annotation/Subcommand.html" title="annotation in co.aikar.commands.annotation"><code>Subcommand</code></a> on a method.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/HelpSearchTags.html" title="annotation in co.aikar.commands.annotation">HelpSearchTags</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Defines additional keywords to feed into the search help system.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Optional.html" title="annotation in co.aikar.commands.annotation">Optional</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Marks the parameter this is attached to as optional.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/PreCommand.html" title="annotation in co.aikar.commands.annotation">PreCommand</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">This runs before any other command method each time it is invoked.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Private.html" title="annotation in co.aikar.commands.annotation">Private</a></td>
|
||||
@@ -148,20 +176,26 @@
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Single.html" title="annotation in co.aikar.commands.annotation">Single</a></td>
|
||||
<td class="colLast">
|
||||
<div class="block">Don't join remaining arguments</div>
|
||||
<div class="block">Don't join remaining arguments.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Split.html" title="annotation in co.aikar.commands.annotation">Split</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Joins arguments into a single piece of text with the specified separator.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Subcommand.html" title="annotation in co.aikar.commands.annotation">Subcommand</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Defines the subcommand that can be used to execute this command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Syntax.html" title="annotation in co.aikar.commands.annotation">Syntax</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Specifies the syntax to be used when executing this command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/UnknownHandler.html" title="annotation in co.aikar.commands.annotation">UnknownHandler</a></td>
|
||||
@@ -171,7 +205,9 @@
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/annotation/Values.html" title="annotation in co.aikar.commands.annotation">Values</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">Specifies a list of values that the command input should be validated against, or else show an error.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
+3
-1
@@ -104,7 +104,9 @@
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerAsyncCompletion-java.lang.String-co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler-">registerAsyncCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code> </td>
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
+37
-3
@@ -117,12 +117,44 @@
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerAsyncCompletion-java.lang.String-co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler-">registerAsyncCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code> </td>
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.AsyncCommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.AsyncCommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerCompletion-java.lang.String-co.aikar.commands.CommandCompletions.CommandCompletionHandler-">registerCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code> </td>
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.util.List-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> completions)</code>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.lang.String-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> list)</code>
|
||||
<div class="block">Register a static list of command completions that will never change.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.lang.String:A-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] completions)</code>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.util.function.Supplier-">registerStaticCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>>> supplier)</code>
|
||||
<div class="block">Register a static list of command completions that will never change.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -136,7 +168,9 @@
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">CommandCompletions.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/CommandCompletions.html#registerCompletion-java.lang.String-co.aikar.commands.CommandCompletions.CommandCompletionHandler-">registerCompletion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> id,
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code> </td>
|
||||
<a href="../../../../co/aikar/commands/CommandCompletions.CommandCompletionHandler.html" title="interface in co.aikar.commands">CommandCompletions.CommandCompletionHandler</a><<a href="../../../../co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a>> handler)</code>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -193,7 +193,9 @@
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code> </td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code>
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
@@ -208,7 +210,7 @@
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/OptionalContextResolver.html" title="interface in co.aikar.commands.contexts">OptionalContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code>
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
|
||||
@@ -183,7 +183,9 @@
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer</a></span>()</code> </td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer</a></span>()</code>
|
||||
<div class="block">Gets the current command issuer.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>static <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a></code></td>
|
||||
@@ -209,7 +211,11 @@
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">canExecute</a></span>(<a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="../../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</code> </td>
|
||||
<a href="../../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</code>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||
<div class="block"><span class="deprecationComment">See <a href="../../../../co/aikar/commands/CommandConditions.html" title="class in co.aikar.commands"><code>CommandConditions</code></a></span></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>abstract <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a></code></td>
|
||||
@@ -403,7 +409,9 @@
|
||||
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete</a></span>(<a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code> </td>
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args)</code>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
|
||||
@@ -416,7 +424,9 @@
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-boolean-">tabComplete</a></span>(<a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> commandLabel,
|
||||
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] args,
|
||||
boolean isAsync)</code> </td>
|
||||
boolean isAsync)</code>
|
||||
<div class="block">Gets the tab complete suggestions from a given command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -447,7 +457,9 @@
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code> </td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code>
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
@@ -462,7 +474,7 @@
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/OptionalContextResolver.html" title="interface in co.aikar.commands.contexts">OptionalContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code>
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
|
||||
@@ -120,7 +120,9 @@
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager</a></span>()</code> </td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager</a></span>()</code>
|
||||
<div class="block">Gets the current command manager.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>static <a href="../../../../co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></code></td>
|
||||
|
||||
@@ -161,7 +161,9 @@
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">T</a></code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">ContextResolver.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html#getContext-C-">getContext</a></span>(<a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> c)</code> </td>
|
||||
<td class="colLast"><span class="typeNameLabel">ContextResolver.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html#getContext-C-">getContext</a></span>(<a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> c)</code>
|
||||
<div class="block">Parses the context of type <code>C</code> into <code>T</code>, or throws an exception.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@@ -132,7 +132,11 @@
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<td class="colLast"><span class="typeNameLabel">BaseCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/BaseCommand.html#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">canExecute</a></span>(<a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer,
|
||||
<a href="../../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</code> </td>
|
||||
<a href="../../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a><?> cmd)</code>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||
<div class="block"><span class="deprecationComment">See <a href="../../../../co/aikar/commands/CommandConditions.html" title="class in co.aikar.commands"><code>CommandConditions</code></a></span></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><code>abstract <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a></code></td>
|
||||
|
||||
@@ -99,6 +99,11 @@ var activeTableTab = "activeTableTab";
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Type Parameters:</span></dt>
|
||||
<dd><code>T</code> - The type to be parsed.</dd>
|
||||
<dd><code>C</code> - The type of the context which the resolver would get its data from.</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>All Known Subinterfaces:</dt>
|
||||
<dd><a href="../../../../co/aikar/commands/contexts/IssuerAwareContextResolver.html" title="interface in co.aikar.commands.contexts">IssuerAwareContextResolver</a><T,C>, <a href="../../../../co/aikar/commands/contexts/IssuerOnlyContextResolver.html" title="interface in co.aikar.commands.contexts">IssuerOnlyContextResolver</a><T,C>, <a href="../../../../co/aikar/commands/contexts/OptionalContextResolver.html" title="interface in co.aikar.commands.contexts">OptionalContextResolver</a><T,C>, <a href="../../../../co/aikar/commands/contexts/SenderAwareContextResolver.html" title="interface in co.aikar.commands.contexts">SenderAwareContextResolver</a><T,C></dd>
|
||||
</dl>
|
||||
@@ -109,7 +114,8 @@ var activeTableTab = "activeTableTab";
|
||||
<hr>
|
||||
<br>
|
||||
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
|
||||
public interface <a href="../../../../src-html/co/aikar/commands/contexts/ContextResolver.html#line.31">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></pre>
|
||||
public interface <a href="../../../../src-html/co/aikar/commands/contexts/ContextResolver.html#line.39">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></pre>
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -130,7 +136,9 @@ public interface <a href="../../../../src-html/co/aikar/commands/contexts/Contex
|
||||
</tr>
|
||||
<tr id="i0" class="altColor">
|
||||
<td class="colFirst"><code><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">T</a></code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html#getContext-C-">getContext</a></span>(<a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> c)</code> </td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html#getContext-C-">getContext</a></span>(<a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> c)</code>
|
||||
<div class="block">Parses the context of type <code>C</code> into <code>T</code>, or throws an exception.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
@@ -155,11 +163,16 @@ public interface <a href="../../../../src-html/co/aikar/commands/contexts/Contex
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>getContext</h4>
|
||||
<pre><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">T</a> <a href="../../../../src-html/co/aikar/commands/contexts/ContextResolver.html#line.32">getContext</a>(<a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> c)
|
||||
<pre><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">T</a> <a href="../../../../src-html/co/aikar/commands/contexts/ContextResolver.html#line.51">getContext</a>(<a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> c)
|
||||
throws <a href="../../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></pre>
|
||||
<div class="block">Parses the context of type <code>C</code> into <code>T</code>, or throws an exception.</div>
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
||||
<dd><code>c</code> - The context to parse from.</dd>
|
||||
<dt><span class="returnLabel">Returns:</span></dt>
|
||||
<dd>The parsed instance of the wanted type.</dd>
|
||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
||||
<dd><code><a href="../../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></code></dd>
|
||||
<dd><code><a href="../../../../co/aikar/commands/InvalidCommandArgument.html" title="class in co.aikar.commands">InvalidCommandArgument</a></code> - In case the context contains any discrepancies, it will throw this exception.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -93,14 +93,21 @@
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<dl>
|
||||
<dt><span class="paramLabel">Type Parameters:</span></dt>
|
||||
<dd><code>T</code> - </dd>
|
||||
<dd><code>C</code> - </dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>All Superinterfaces:</dt>
|
||||
<dd><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C></dd>
|
||||
</dl>
|
||||
<hr>
|
||||
<br>
|
||||
<pre>public interface <a href="../../../../src-html/co/aikar/commands/contexts/OptionalContextResolver.html#line.32">OptionalContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>>
|
||||
<pre>public interface <a href="../../../../src-html/co/aikar/commands/contexts/OptionalContextResolver.html#line.37">OptionalContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>>
|
||||
extends <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C></pre>
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.
|
||||
|
||||
If the parameter was marked optional, will still be called with an empty args list</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><code>interface </code></td>
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../co/aikar/commands/contexts/OptionalContextResolver.html" title="interface in co.aikar.commands.contexts">OptionalContextResolver</a><T,C extends <a href="../../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></span></code>
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="../../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
|
||||
@@ -83,7 +83,9 @@
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/contexts/IssuerAwareContextResolver.html" title="interface in co.aikar.commands.contexts">IssuerAwareContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></td>
|
||||
@@ -98,7 +100,7 @@
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../../co/aikar/commands/contexts/OptionalContextResolver.html" title="interface in co.aikar.commands.contexts">OptionalContextResolver</a><T,C extends <a href="../../../../co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="../../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>></td>
|
||||
<td class="colLast">
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
|
||||
@@ -102,7 +102,9 @@
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/ContextResolver.html#co.aikar.commands">ContextResolver</a> </td>
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/ContextResolver.html#co.aikar.commands">ContextResolver</a>
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/IssuerAwareContextResolver.html#co.aikar.commands">IssuerAwareContextResolver</a> </td>
|
||||
@@ -114,7 +116,7 @@
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/OptionalContextResolver.html#co.aikar.commands">OptionalContextResolver</a>
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="../../../../co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -130,7 +132,9 @@
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/ContextResolver.html#co.aikar.commands.contexts">ContextResolver</a> </td>
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/ContextResolver.html#co.aikar.commands.contexts">ContextResolver</a>
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="../../../../co/aikar/commands/contexts/class-use/IssuerAwareContextResolver.html#co.aikar.commands.contexts">IssuerAwareContextResolver</a> </td>
|
||||
|
||||
@@ -132,7 +132,9 @@
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a href="../../../co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></td>
|
||||
<td class="colLast"> </td>
|
||||
<td class="colLast">
|
||||
<div class="block">A Base command is defined as a command group of related commands.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a href="../../../co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a><I extends <a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>></td>
|
||||
|
||||
@@ -106,7 +106,9 @@
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="../../../co/aikar/commands/class-use/BaseCommand.html#co.aikar.commands">BaseCommand</a> </td>
|
||||
<td class="colOne"><a href="../../../co/aikar/commands/class-use/BaseCommand.html#co.aikar.commands">BaseCommand</a>
|
||||
<div class="block">A Base command is defined as a command group of related commands.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="../../../co/aikar/commands/class-use/CommandCompletionContext.html#co.aikar.commands">CommandCompletionContext</a> </td>
|
||||
|
||||
@@ -82,34 +82,6 @@
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
|
||||
<caption><span>co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></span><span class="tabEnd"> </span></caption>
|
||||
<tr>
|
||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||
<th scope="col">Constant Field</th>
|
||||
<th class="colLast" scope="col">Value</th>
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colFirst"><a name="co.aikar.commands.BaseCommand.CATCHUNKNOWN">
|
||||
<!-- -->
|
||||
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
|
||||
<td><code><a href="co/aikar/commands/BaseCommand.html#CATCHUNKNOWN">CATCHUNKNOWN</a></code></td>
|
||||
<td class="colLast"><code>"__catchunknown"</code></td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colFirst"><a name="co.aikar.commands.BaseCommand.DEFAULT">
|
||||
<!-- -->
|
||||
</a><code>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
|
||||
<td><code><a href="co/aikar/commands/BaseCommand.html#DEFAULT">DEFAULT</a></code></td>
|
||||
<td class="colLast"><code>"__default"</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
|
||||
<caption><span>co.aikar.commands.apachecommonslang.<a href="co/aikar/commands/apachecommonslang/ApacheCommonsLangUtil.html" title="class in co.aikar.commands.apachecommonslang">ApacheCommonsLangUtil</a></span><span class="tabEnd"> </span></caption>
|
||||
<tr>
|
||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
<li><a href="#class">Deprecated Classes</a></li>
|
||||
<li><a href="#annotation.type">Deprecated Annotation Types</a></li>
|
||||
<li><a href="#method">Deprecated Methods</a></li>
|
||||
<li><a href="#constructor">Deprecated Constructors</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="contentContainer"><a name="interface">
|
||||
@@ -159,87 +160,92 @@
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/BaseCommand.html#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">co.aikar.commands.BaseCommand.canExecute(CommandIssuer, RegisteredCommand<?>)</a>
|
||||
<div class="block"><span class="deprecationComment">See <a href="co/aikar/commands/CommandConditions.html" title="class in co.aikar.commands"><code>CommandConditions</code></a></span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#enableUnstableAPI-java.lang.String-">co.aikar.commands.CommandManager.enableUnstableAPI(String)</a>
|
||||
<div class="block"><span class="deprecationComment">Use this with caution! If you enable and use Unstable API's, your next compile using ACF
|
||||
may require you to update your implementation to those unstable API's</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#generateCommandHelp--">co.aikar.commands.CommandManager.generateCommandHelp()</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#generateCommandHelp-co.aikar.commands.CommandIssuer-co.aikar.commands.RootCommand-">co.aikar.commands.CommandManager.generateCommandHelp(CommandIssuer, RootCommand)</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#generateCommandHelp-co.aikar.commands.CommandIssuer-java.lang.String-">co.aikar.commands.CommandManager.generateCommandHelp(CommandIssuer, String)</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#generateCommandHelp-java.lang.String-">co.aikar.commands.CommandManager.generateCommandHelp(String)</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandOperationContext.html#getAnnotation-java.lang.Class-">co.aikar.commands.CommandOperationContext.getAnnotation(Class<T>)</a>
|
||||
<div class="block"><span class="deprecationComment">Use <a href="co/aikar/commands/CommandOperationContext.html#getAnnotationValue-java.lang.Class-"><code>CommandOperationContext.getAnnotationValue(Class)</code></a></span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandExecutionContext.html#getAnnotation-java.lang.Class-">co.aikar.commands.CommandExecutionContext.getAnnotation(Class<T>)</a>
|
||||
<div class="block"><span class="deprecationComment">Use <a href="co/aikar/commands/CommandExecutionContext.html#getAnnotationValue-java.lang.Class-"><code>CommandExecutionContext.getAnnotationValue(Class)</code></a></span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/BaseCommand.html#getCommandHelp--">co.aikar.commands.BaseCommand.getCommandHelp()</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#getDefaultHelpPerPage--">co.aikar.commands.CommandManager.getDefaultHelpPerPage()</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#getHelpFormatter--">co.aikar.commands.CommandManager.getHelpFormatter()</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandExecutionContext.html#getParam--">co.aikar.commands.CommandExecutionContext.getParam()</a></td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/RegisteredCommand.html#getPermission--">co.aikar.commands.RegisteredCommand.getPermission()</a> </td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/ACFUtil.html#random-java.lang.Class-">co.aikar.commands.ACFUtil.random(Class<? extends T>)</a></td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandContexts.html#registerSenderAwareContext-java.lang.Class-co.aikar.commands.contexts.IssuerAwareContextResolver-">co.aikar.commands.CommandContexts.registerSenderAwareContext(Class<T>, IssuerAwareContextResolver<T, R>)</a>
|
||||
<div class="block"><span class="deprecationComment">Please switch to <a href="co/aikar/commands/CommandContexts.html#registerIssuerAwareContext-java.lang.Class-co.aikar.commands.contexts.IssuerAwareContextResolver-"><code>CommandContexts.registerIssuerAwareContext(Class, IssuerAwareContextResolver)</code></a>
|
||||
as the core wants to use the platform agnostic term of "Issuer" instead of Sender</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandIssuer.html#sendMessageInternal-java.lang.String-">co.aikar.commands.CommandIssuer.sendMessageInternal(String)</a>
|
||||
<div class="block"><span class="deprecationComment">Do not call this, for internal use. Not considered part of the API and may break.</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#setDefaultHelpPerPage-int-">co.aikar.commands.CommandManager.setDefaultHelpPerPage(int)</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<tr class="rowColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/CommandManager.html#setHelpFormatter-co.aikar.commands.CommandHelpFormatter-">co.aikar.commands.CommandManager.setHelpFormatter(CommandHelpFormatter)</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/BaseCommand.html#showCommandHelp--">co.aikar.commands.BaseCommand.showCommandHelp()</a>
|
||||
<div class="block"><span class="deprecationComment">Unstable API</span></div>
|
||||
</td>
|
||||
@@ -248,6 +254,26 @@
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="constructor">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
|
||||
<caption><span>Deprecated Constructors</span><span class="tabEnd"> </span></caption>
|
||||
<tr>
|
||||
<th class="colOne" scope="col">Constructor and Description</th>
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<td class="colOne"><a href="co/aikar/commands/BaseCommand.html#BaseCommand-java.lang.String-">co.aikar.commands.BaseCommand(String)</a>
|
||||
<div class="block"><span class="deprecationComment">Please switch to <a href="co/aikar/commands/annotation/CommandAlias.html" title="annotation in co.aikar.commands.annotation"><code>CommandAlias</code></a> for defining all root commands.</span></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<div class="bottomNav"><a name="navbar.bottom">
|
||||
|
||||
+108
-34
@@ -153,11 +153,17 @@
|
||||
<h2 class="title">B</h2>
|
||||
<dl>
|
||||
<dt><a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands"><span class="typeNameLink">BaseCommand</span></a> - Class in <a href="co/aikar/commands/package-summary.html">co.aikar.commands</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">A Base command is defined as a command group of related commands.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#BaseCommand--">BaseCommand()</a></span> - Constructor for class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#BaseCommand-java.lang.String-">BaseCommand(String)</a></span> - Constructor for class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||
<div class="block"><span class="deprecationComment">Please switch to <a href="co/aikar/commands/annotation/CommandAlias.html" title="annotation in co.aikar.commands.annotation"><code>CommandAlias</code></a> for defining all root commands.</span></div>
|
||||
</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#BULGARIAN">BULGARIAN</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
<dd> </dd>
|
||||
</dl>
|
||||
@@ -169,7 +175,11 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandParameter.html#canConsumeInput--">canConsumeInput()</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandParameter.html" title="class in co.aikar.commands">CommandParameter</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">canExecute(CommandIssuer, RegisteredCommand<?>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
|
||||
<div class="block"><span class="deprecationComment">See <a href="co/aikar/commands/CommandConditions.html" title="class in co.aikar.commands"><code>CommandConditions</code></a></span></div>
|
||||
</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandExecutionContext.html#canOverridePlayerContext--">canOverridePlayerContext()</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ACFUtil.html#capitalize-java.lang.String-char:A-">capitalize(String, char[])</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/ACFUtil.html" title="class in co.aikar.commands">ACFUtil</a></dt>
|
||||
@@ -205,9 +215,9 @@
|
||||
</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/annotation/CatchUnknown.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">CatchUnknown</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#CATCHUNKNOWN">CATCHUNKNOWN</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Defines a method that should receive any unknown command for the related root command.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#CHINESE">CHINESE</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/apachecommonslang/ApacheCommonsLangUtil.html#clone-T:A-">clone(T[])</a></span> - Static method in class co.aikar.commands.apachecommonslang.<a href="co/aikar/commands/apachecommonslang/ApacheCommonsLangUtil.html" title="class in co.aikar.commands.apachecommonslang">ApacheCommonsLangUtil</a></dt>
|
||||
@@ -230,9 +240,14 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ACFUtil.html#combine-java.lang.String:A-int-">combine(String[], int)</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/ACFUtil.html" title="class in co.aikar.commands">ACFUtil</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/CommandAlias.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">CommandAlias</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Allows to add a single or several command alias(es).</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/annotation/CommandCompletion.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">CommandCompletion</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Many implementation platforms have a concept of "Tab Completions",
|
||||
where pressing tab will give suggestions on what you can input.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands"><span class="typeNameLink">CommandCompletionContext</span></a><<a href="co/aikar/commands/CommandCompletionContext.html" title="type parameter in CommandCompletionContext">I</a> extends <a href="co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>> - Class in <a href="co/aikar/commands/package-summary.html">co.aikar.commands</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands"><span class="typeNameLink">CommandCompletions</span></a><<a href="co/aikar/commands/CommandCompletions.html" title="type parameter in CommandCompletions">C</a> extends <a href="co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a>> - Class in <a href="co/aikar/commands/package-summary.html">co.aikar.commands</a></dt>
|
||||
@@ -278,7 +293,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandParameter.html#CommandParameter-co.aikar.commands.RegisteredCommand-java.lang.reflect.Parameter-int-">CommandParameter(RegisteredCommand<CEC>, Parameter, int)</a></span> - Constructor for class co.aikar.commands.<a href="co/aikar/commands/CommandParameter.html" title="class in co.aikar.commands">CommandParameter</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/CommandPermission.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">CommandPermission</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Sets the permission required to perform this command.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/CommandReplacements.html" title="class in co.aikar.commands"><span class="typeNameLink">CommandReplacements</span></a> - Class in <a href="co/aikar/commands/package-summary.html">co.aikar.commands</a></dt>
|
||||
<dd>
|
||||
<div class="block">Manages replacement template strings</div>
|
||||
@@ -296,7 +313,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ConditionFailedException.html#ConditionFailedException-java.lang.String-">ConditionFailedException(String)</a></span> - Constructor for exception co.aikar.commands.<a href="co/aikar/commands/ConditionFailedException.html" title="class in co.aikar.commands">ConditionFailedException</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Conditions.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Conditions</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Specifies conditions that must be met in order to execute this command.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#conditions">conditions</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/processors/ConditionsProcessor.html" title="class in co.aikar.commands.processors"><span class="typeNameLink">ConditionsProcessor</span></a> - Class in <a href="co/aikar/commands/processors/package-summary.html">co.aikar.commands.processors</a></dt>
|
||||
@@ -310,7 +329,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandContexts.html#contextMap">contextMap</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandContexts.html" title="class in co.aikar.commands">CommandContexts</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><span class="typeNameLink">ContextResolver</span></a><<a href="co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">T</a>,<a href="co/aikar/commands/contexts/ContextResolver.html" title="type parameter in ContextResolver">C</a> extends <a href="co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>> - Interface in <a href="co/aikar/commands/contexts/package-summary.html">co.aikar.commands.contexts</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">This defines a context resolver, which parses <code>T</code> from <code>C</code>.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#createCommandContext-co.aikar.commands.RegisteredCommand-co.aikar.commands.CommandParameter-co.aikar.commands.CommandIssuer-java.util.List-int-java.util.Map-">createCommandContext(RegisteredCommand, CommandParameter, CommandIssuer, List<String>, int, Map<String, Object>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#createCompletionContext-co.aikar.commands.RegisteredCommand-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String-java.lang.String:A-">createCompletionContext(RegisteredCommand, CommandIssuer, String, String, String[])</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
@@ -332,9 +353,10 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#DANISH">DANISH</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Default.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Default</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#DEFAULT">DEFAULT</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">If used on a method, sets default command handler for the root command of this group
|
||||
If used on a parameter, sets the value to be used for context resolution</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#defaultExceptionHandler">defaultExceptionHandler</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#defaultFormatter">defaultFormatter</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
@@ -344,9 +366,13 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#dependencies">dependencies</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Dependency.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Dependency</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Injects a dependency into the field this is attached to.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Description.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Description</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Sets a description to the parameter or method this is attached to.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#doHelp-java.lang.Object-java.lang.String...-">doHelp(Object, String...)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#doHelp-co.aikar.commands.CommandIssuer-java.lang.String...-">doHelp(CommandIssuer, String...)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
@@ -403,7 +429,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#FINNISH">FINNISH</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Flags.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Flags</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Provides configuration options for <a href="co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>'s to change how they resolve context.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/MessageFormatter.html#format-int-java.lang.String-">format(int, String)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/MessageFormatter.html" title="class in co.aikar.commands">MessageFormatter</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/MessageFormatter.html#format-java.lang.String-">format(String)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/MessageFormatter.html" title="class in co.aikar.commands">MessageFormatter</a></dt>
|
||||
@@ -561,7 +589,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ConditionContext.html#getConfigValue-java.lang.String-java.lang.Integer-">getConfigValue(String, Integer)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/ConditionContext.html" title="class in co.aikar.commands">ConditionContext</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/contexts/ContextResolver.html#getContext-C-">getContext(C)</a></span> - Method in interface co.aikar.commands.contexts.<a href="co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts">ContextResolver</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Parses the context of type <code>C</code> into <code>T</code>, or throws an exception.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#getContextFlags-java.lang.Class-">getContextFlags(Class<?>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletionContext.html#getContextValue-java.lang.Class-">getContextValue(Class<? extends T>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a></dt>
|
||||
@@ -569,11 +599,15 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletionContext.html#getContextValue-java.lang.Class-java.lang.Integer-">getContextValue(Class<? extends T>, Integer)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletionContext.html" title="class in co.aikar.commands">CommandCompletionContext</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer()</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Gets the current command issuer.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#getCurrentCommandIssuer--">getCurrentCommandIssuer()</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager()</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Gets the current command manager.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#getCurrentCommandManager--">getCurrentCommandManager()</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#getCurrentCommandOperationContext--">getCurrentCommandOperationContext()</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
@@ -883,13 +917,17 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/MessageType.html#HELP">HELP</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/MessageType.html" title="class in co.aikar.commands">MessageType</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/HelpCommand.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">HelpCommand</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">A Shortcut for specifying <a href="co/aikar/commands/annotation/CatchUnknown.html" title="annotation in co.aikar.commands.annotation"><code>CatchUnknown</code></a>, <a href="co/aikar/commands/annotation/Default.html" title="annotation in co.aikar.commands.annotation"><code>Default</code></a> and <a href="co/aikar/commands/annotation/Subcommand.html" title="annotation in co.aikar.commands.annotation"><code>Subcommand</code></a> on a method.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/HelpEntry.html" title="class in co.aikar.commands"><span class="typeNameLink">HelpEntry</span></a> - Class in <a href="co/aikar/commands/package-summary.html">co.aikar.commands</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#helpFormatter">helpFormatter</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/HelpSearchTags.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">HelpSearchTags</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Defines additional keywords to feed into the search help system.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/RegisteredCommand.html#helpSearchTags">helpSearchTags</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#HINDI">HINDI</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
@@ -1310,10 +1348,12 @@
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Optional.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Optional</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Marks the parameter this is attached to as optional.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/contexts/OptionalContextResolver.html" title="interface in co.aikar.commands.contexts"><span class="typeNameLink">OptionalContextResolver</span></a><<a href="co/aikar/commands/contexts/OptionalContextResolver.html" title="type parameter in OptionalContextResolver">T</a>,<a href="co/aikar/commands/contexts/OptionalContextResolver.html" title="type parameter in OptionalContextResolver">C</a> extends <a href="co/aikar/commands/CommandExecutionContext.html" title="class in co.aikar.commands">CommandExecutionContext</a><?,? extends <a href="co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a>>> - Interface in <a href="co/aikar/commands/contexts/package-summary.html">co.aikar.commands.contexts</a></dt>
|
||||
<dd>
|
||||
<div class="block">Context Resolver that can accept null input</div>
|
||||
<div class="block">The same as <a href="co/aikar/commands/contexts/ContextResolver.html" title="interface in co.aikar.commands.contexts"><code>ContextResolver</code></a>, however it can accept a null context.</div>
|
||||
</dd>
|
||||
</dl>
|
||||
<a name="I:P">
|
||||
@@ -1358,7 +1398,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ACFUtil.html#precision-double-int-">precision(double, int)</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/ACFUtil.html" title="class in co.aikar.commands">ACFUtil</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/PreCommand.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">PreCommand</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">This runs before any other command method each time it is invoked.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/RegisteredCommand.html#preCommand--">preCommand()</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandHelpFormatter.html#printDetailedHelpCommand-co.aikar.commands.CommandHelp-co.aikar.commands.CommandIssuer-co.aikar.commands.HelpEntry-">printDetailedHelpCommand(CommandHelp, CommandIssuer, HelpEntry)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandHelpFormatter.html" title="class in co.aikar.commands">CommandHelpFormatter</a></dt>
|
||||
@@ -1428,13 +1470,17 @@
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.html#registerAsyncCompletion-java.lang.String-co.aikar.commands.CommandCompletions.AsyncCommandCompletionHandler-">registerAsyncCompletion(String, CommandCompletions.AsyncCommandCompletionHandler<C>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands">CommandCompletions</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#registerCommand-co.aikar.commands.BaseCommand-">registerCommand(BaseCommand)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd>
|
||||
<div class="block">Registers a command with ACF</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.html#registerCompletion-java.lang.String-co.aikar.commands.CommandCompletions.CommandCompletionHandler-">registerCompletion(String, CommandCompletions.CommandCompletionHandler<C>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands">CommandCompletions</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Registr a completion handler to provide command completions based on the user input.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandContexts.html#registerContext-java.lang.Class-co.aikar.commands.contexts.ContextResolver-">registerContext(Class<T>, ContextResolver<T, R>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandContexts.html" title="class in co.aikar.commands">CommandContexts</a></dt>
|
||||
<dd>
|
||||
<div class="block">Registers a context that requires input from the command issuer to resolve.</div>
|
||||
@@ -1473,6 +1519,22 @@
|
||||
as the core wants to use the platform agnostic term of "Issuer" instead of Sender</span></div>
|
||||
</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.lang.String-">registerStaticCompletion(String, String)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands">CommandCompletions</a></dt>
|
||||
<dd>
|
||||
<div class="block">Register a static list of command completions that will never change.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.lang.String:A-">registerStaticCompletion(String, String[])</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands">CommandCompletions</a></dt>
|
||||
<dd>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.util.function.Supplier-">registerStaticCompletion(String, Supplier<List<String>>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands">CommandCompletions</a></dt>
|
||||
<dd>
|
||||
<div class="block">Register a static list of command completions that will never change.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.html#registerStaticCompletion-java.lang.String-java.util.List-">registerStaticCompletion(String, List<String>)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.html" title="class in co.aikar.commands">CommandCompletions</a></dt>
|
||||
<dd>
|
||||
<div class="block">Register a static list of command completions that will never change</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.html#removeCauseMethodName-java.lang.String-">removeCauseMethodName(String)</a></span> - Static method in class co.aikar.commands.apachecommonslang.<a href="co/aikar/commands/apachecommonslang/ApacheCommonsExceptionUtil.html" title="class in co.aikar.commands.apachecommonslang">ApacheCommonsExceptionUtil</a></dt>
|
||||
<dd>
|
||||
<div class="block">Removes from the list of method names used in the search for <code>Throwable</code>
|
||||
@@ -1681,14 +1743,16 @@
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Single.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Single</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd>
|
||||
<div class="block">Don't join remaining arguments</div>
|
||||
<div class="block">Don't join remaining arguments.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ACFUtil.html#sneaky-java.lang.Throwable-">sneaky(Throwable)</a></span> - Static method in class co.aikar.commands.<a href="co/aikar/commands/ACFUtil.html" title="class in co.aikar.commands">ACFUtil</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#SPANISH">SPANISH</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Split.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Split</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Joins arguments into a single piece of text with the specified separator.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/apachecommonslang/ApacheCommonsLangUtil.html#startsWith-java.lang.CharSequence-java.lang.CharSequence-">startsWith(CharSequence, CharSequence)</a></span> - Static method in class co.aikar.commands.apachecommonslang.<a href="co/aikar/commands/apachecommonslang/ApacheCommonsLangUtil.html" title="class in co.aikar.commands.apachecommonslang">ApacheCommonsLangUtil</a></dt>
|
||||
<dd>
|
||||
<div class="block">Check if a CharSequence starts with a specified prefix.</div>
|
||||
@@ -1698,7 +1762,9 @@
|
||||
<div class="block">Case insensitive check if a CharSequence starts with a specified prefix.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Subcommand.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Subcommand</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Defines the subcommand that can be used to execute this command.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandManager.html#supportedLanguages">supportedLanguages</a></span> - Variable in class co.aikar.commands.<a href="co/aikar/commands/CommandManager.html" title="class in co.aikar.commands">CommandManager</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#SWEDISH">SWEDISH</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
@@ -1706,7 +1772,9 @@
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/CommandCompletions.SyncCompletionRequired.html#SyncCompletionRequired--">SyncCompletionRequired()</a></span> - Constructor for exception co.aikar.commands.<a href="co/aikar/commands/CommandCompletions.SyncCompletionRequired.html" title="class in co.aikar.commands">CommandCompletions.SyncCompletionRequired</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Syntax.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Syntax</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Specifies the syntax to be used when executing this command.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/MessageType.html#SYNTAX">SYNTAX</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/MessageType.html" title="class in co.aikar.commands">MessageType</a></dt>
|
||||
<dd> </dd>
|
||||
</dl>
|
||||
@@ -1716,9 +1784,13 @@
|
||||
<h2 class="title">T</h2>
|
||||
<dl>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete(CommandIssuer, String, String[])</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-boolean-">tabComplete(CommandIssuer, String, String[], boolean)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/BaseCommand.html" title="class in co.aikar.commands">BaseCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Gets the tab complete suggestions from a given command.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ForwardingCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete(CommandIssuer, String, String[])</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/ForwardingCommand.html" title="class in co.aikar.commands">ForwardingCommand</a></dt>
|
||||
<dd> </dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/Locales.html#THAI">THAI</a></span> - Static variable in class co.aikar.commands.<a href="co/aikar/commands/Locales.html" title="class in co.aikar.commands">Locales</a></dt>
|
||||
@@ -1775,7 +1847,9 @@
|
||||
<div class="block">Returns the enum constant of this type with the specified name.</div>
|
||||
</dd>
|
||||
<dt><a href="co/aikar/commands/annotation/Values.html" title="annotation in co.aikar.commands.annotation"><span class="typeNameLink">Values</span></a> - Annotation Type in <a href="co/aikar/commands/annotation/package-summary.html">co.aikar.commands.annotation</a></dt>
|
||||
<dd> </dd>
|
||||
<dd>
|
||||
<div class="block">Specifies a list of values that the command input should be validated against, or else show an error.</div>
|
||||
</dd>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/MessageKeys.html#values--">values()</a></span> - Static method in enum co.aikar.commands.<a href="co/aikar/commands/MessageKeys.html" title="enum in co.aikar.commands">MessageKeys</a></dt>
|
||||
<dd>
|
||||
<div class="block">Returns an array containing the constants of this enum type, in
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+200
-129
@@ -39,138 +39,209 @@
|
||||
<span class="sourceLineNo">031</span>import java.util.HashMap;<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>import java.util.List;<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>import java.util.Map;<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.stream.Collectors;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.IntStream;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span><a name="line.36"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.function.Supplier;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.Collectors;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>import java.util.stream.IntStream;<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span><a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> private final CommandManager manager;<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span><a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> public CommandCompletions(CommandManager manager) {<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> this.manager = manager;<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("range", (c) -> {<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> String config = c.getConfig();<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> if (config == null) {<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> return ImmutableList.of();<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> }<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> int start;<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int end;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> if (ranges.length != 2) {<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> start = 0;<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> } else {<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> }<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> });<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> }<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span><a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> }<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span><a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> }<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span><a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> /**<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> * @deprecated Feature Not done yet<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> * @param id<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span> * @param classes<a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> * @return<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> */<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> // get completion with specified id<a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> id = id.toLowerCase();<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> if(completion == null) {<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> // Throw something because no completion with specified id<a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> }<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span><a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> for(Class clazz : classes) {<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> defaultCompletions.put(clazz, id);<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> }<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span><a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return completion;<a name="line.95"></a>
|
||||
<span class="sourceLineNo">038</span><a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private final CommandManager manager;<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span><a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> public CommandCompletions(CommandManager manager) {<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> this.manager = manager;<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> registerAsyncCompletion("range", (c) -> {<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> String config = c.getConfig();<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> if (config == null) {<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> return ImmutableList.of();<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> }<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int start;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> int end;<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> if (ranges.length != 2) {<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> start = 0;<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> } else {<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> }<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> });<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span> }<a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span><a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> /**<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span> *<a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> * @param id<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> * @param handler<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> * @return<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span> */<a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> }<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span><a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> /**<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> * This handler is declared to be safe to be executed asynchronously.<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> * <p><a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> * Not all platforms support this, so if the platform does not support asynchronous execution,<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> * your handler will be executed on the main thread.<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> * Use this anytime your handler does not need to access state that is not considered thread safe.<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> * <p><a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> * Use context.isAsync() to determine if you are async or not.<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> *<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span> * @param id<a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> * @param handler<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> * @return<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> */<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.95"></a>
|
||||
<span class="sourceLineNo">096</span> }<a name="line.96"></a>
|
||||
<span class="sourceLineNo">097</span><a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> @NotNull<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> final int argIndex = args.length - 1;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span><a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> String input = args[argIndex];<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span><a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> if (completion == null && completions.length > 0) {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> completion = completions[completions.length - 1];<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> }<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> if (completion == null) {<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> return ImmutableList.of(input);<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> }<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span><a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> }<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span><a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span><a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> List<String> allCompletions = Lists.newArrayList();<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span><a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (handler != null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> return null;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = complete.length == 1 ? null : complete[1];<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span><a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> try {<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> Collection<String> completions = handler.getCompletions(context);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> if (completions != null) {<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> allCompletions.addAll(completions);<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> continue;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> throw new CommandCompletionTextLookupException();<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> }<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> // This should only happen if some other feedback error occured.<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> } catch (Exception e) {<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> }<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> // Something went wrong in lookup, fall back to input<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> return ImmutableList.of(input);<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> } else {<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> // Plaintext value<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> allCompletions.add(value);<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> }<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> }<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span> return allCompletions;<a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> }<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span><a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span> }<a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> public static class SyncCompletionRequired extends Exception {}<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span><a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span>}<a name="line.165"></a>
|
||||
<span class="sourceLineNo">098</span> /**<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> * Register a static list of command completions that will never change.<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> * Like @CommandCompletion, values are | (PIPE) separated.<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> * Example: foo|bar|baz<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> *<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> * @param id<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> * @param list<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> * @return<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> */<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> public CommandCompletionHandler registerStaticCompletion(String id, String list) {<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> return registerStaticCompletion(id, ACFPatterns.PIPE.split(list));<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> }<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span><a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> /**<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> * Register a static list of command completions that will never change<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> *<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> * @param id<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> * @param completions<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> * @return<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> */<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> return registerStaticCompletion(id, Lists.newArrayList(completions));<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span><a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> /**<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> * Register a static list of command completions that will never change. The list is obtained from the supplier<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> * immediately as part of this method call.<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> *<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> * @param id<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> * @param supplier<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> * @return<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> */<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> public CommandCompletionHandler registerStaticCompletion(String id, Supplier<List<String>> supplier) {<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> return registerStaticCompletion(id, supplier.get());<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> }<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span><a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> /**<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> * Register a static list of command completions that will never change<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> *<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> * @param id<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> * @param completions<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> * @return<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> */<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> public CommandCompletionHandler registerStaticCompletion(String id, List<String> completions) {<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> return registerAsyncCompletion(id, x -> completions);<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> }<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span><a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> /**<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> * @deprecated Feature Not done yet<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> * @param id<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> * @param classes<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> * @return<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> */<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> // get completion with specified id<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> id = id.toLowerCase();<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span><a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> if(completion == null) {<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span> // Throw something because no completion with specified id<a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> }<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span><a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> for(Class clazz : classes) {<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> defaultCompletions.put(clazz, id);<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span> }<a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span><a name="line.165"></a>
|
||||
<span class="sourceLineNo">166</span> return completion;<a name="line.166"></a>
|
||||
<span class="sourceLineNo">167</span> }<a name="line.167"></a>
|
||||
<span class="sourceLineNo">168</span><a name="line.168"></a>
|
||||
<span class="sourceLineNo">169</span> @NotNull<a name="line.169"></a>
|
||||
<span class="sourceLineNo">170</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.170"></a>
|
||||
<span class="sourceLineNo">171</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.171"></a>
|
||||
<span class="sourceLineNo">172</span> final int argIndex = args.length - 1;<a name="line.172"></a>
|
||||
<span class="sourceLineNo">173</span><a name="line.173"></a>
|
||||
<span class="sourceLineNo">174</span> String input = args[argIndex];<a name="line.174"></a>
|
||||
<span class="sourceLineNo">175</span><a name="line.175"></a>
|
||||
<span class="sourceLineNo">176</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.176"></a>
|
||||
<span class="sourceLineNo">177</span> if (completion == null && completions.length > 0) {<a name="line.177"></a>
|
||||
<span class="sourceLineNo">178</span> completion = completions[completions.length - 1];<a name="line.178"></a>
|
||||
<span class="sourceLineNo">179</span> }<a name="line.179"></a>
|
||||
<span class="sourceLineNo">180</span> if (completion == null) {<a name="line.180"></a>
|
||||
<span class="sourceLineNo">181</span> return ImmutableList.of(input);<a name="line.181"></a>
|
||||
<span class="sourceLineNo">182</span> }<a name="line.182"></a>
|
||||
<span class="sourceLineNo">183</span><a name="line.183"></a>
|
||||
<span class="sourceLineNo">184</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.184"></a>
|
||||
<span class="sourceLineNo">185</span> }<a name="line.185"></a>
|
||||
<span class="sourceLineNo">186</span><a name="line.186"></a>
|
||||
<span class="sourceLineNo">187</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.187"></a>
|
||||
<span class="sourceLineNo">188</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.188"></a>
|
||||
<span class="sourceLineNo">189</span><a name="line.189"></a>
|
||||
<span class="sourceLineNo">190</span> List<String> allCompletions = Lists.newArrayList();<a name="line.190"></a>
|
||||
<span class="sourceLineNo">191</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.191"></a>
|
||||
<span class="sourceLineNo">192</span><a name="line.192"></a>
|
||||
<span class="sourceLineNo">193</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.193"></a>
|
||||
<span class="sourceLineNo">194</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.194"></a>
|
||||
<span class="sourceLineNo">195</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.195"></a>
|
||||
<span class="sourceLineNo">196</span> if (handler != null) {<a name="line.196"></a>
|
||||
<span class="sourceLineNo">197</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.197"></a>
|
||||
<span class="sourceLineNo">198</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.198"></a>
|
||||
<span class="sourceLineNo">199</span> return null;<a name="line.199"></a>
|
||||
<span class="sourceLineNo">200</span> }<a name="line.200"></a>
|
||||
<span class="sourceLineNo">201</span> String config = complete.length == 1 ? null : complete[1];<a name="line.201"></a>
|
||||
<span class="sourceLineNo">202</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.202"></a>
|
||||
<span class="sourceLineNo">203</span><a name="line.203"></a>
|
||||
<span class="sourceLineNo">204</span> try {<a name="line.204"></a>
|
||||
<span class="sourceLineNo">205</span> //noinspection unchecked<a name="line.205"></a>
|
||||
<span class="sourceLineNo">206</span> Collection<String> completions = handler.getCompletions(context);<a name="line.206"></a>
|
||||
<span class="sourceLineNo">207</span> if (completions != null) {<a name="line.207"></a>
|
||||
<span class="sourceLineNo">208</span> allCompletions.addAll(completions);<a name="line.208"></a>
|
||||
<span class="sourceLineNo">209</span> continue;<a name="line.209"></a>
|
||||
<span class="sourceLineNo">210</span> }<a name="line.210"></a>
|
||||
<span class="sourceLineNo">211</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.211"></a>
|
||||
<span class="sourceLineNo">212</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.212"></a>
|
||||
<span class="sourceLineNo">213</span> throw new CommandCompletionTextLookupException();<a name="line.213"></a>
|
||||
<span class="sourceLineNo">214</span> }<a name="line.214"></a>
|
||||
<span class="sourceLineNo">215</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.215"></a>
|
||||
<span class="sourceLineNo">216</span> // This should only happen if some other feedback error occured.<a name="line.216"></a>
|
||||
<span class="sourceLineNo">217</span> } catch (Exception e) {<a name="line.217"></a>
|
||||
<span class="sourceLineNo">218</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.218"></a>
|
||||
<span class="sourceLineNo">219</span> }<a name="line.219"></a>
|
||||
<span class="sourceLineNo">220</span> // Something went wrong in lookup, fall back to input<a name="line.220"></a>
|
||||
<span class="sourceLineNo">221</span> return ImmutableList.of(input);<a name="line.221"></a>
|
||||
<span class="sourceLineNo">222</span> } else {<a name="line.222"></a>
|
||||
<span class="sourceLineNo">223</span> // Plaintext value<a name="line.223"></a>
|
||||
<span class="sourceLineNo">224</span> allCompletions.add(value);<a name="line.224"></a>
|
||||
<span class="sourceLineNo">225</span> }<a name="line.225"></a>
|
||||
<span class="sourceLineNo">226</span> }<a name="line.226"></a>
|
||||
<span class="sourceLineNo">227</span> return allCompletions;<a name="line.227"></a>
|
||||
<span class="sourceLineNo">228</span> }<a name="line.228"></a>
|
||||
<span class="sourceLineNo">229</span><a name="line.229"></a>
|
||||
<span class="sourceLineNo">230</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.230"></a>
|
||||
<span class="sourceLineNo">231</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.231"></a>
|
||||
<span class="sourceLineNo">232</span> }<a name="line.232"></a>
|
||||
<span class="sourceLineNo">233</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.233"></a>
|
||||
<span class="sourceLineNo">234</span> public static class SyncCompletionRequired extends Exception {}<a name="line.234"></a>
|
||||
<span class="sourceLineNo">235</span><a name="line.235"></a>
|
||||
<span class="sourceLineNo">236</span>}<a name="line.236"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
+200
-129
@@ -39,138 +39,209 @@
|
||||
<span class="sourceLineNo">031</span>import java.util.HashMap;<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>import java.util.List;<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>import java.util.Map;<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.stream.Collectors;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.IntStream;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span><a name="line.36"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.function.Supplier;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.Collectors;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>import java.util.stream.IntStream;<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span><a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> private final CommandManager manager;<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span><a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> public CommandCompletions(CommandManager manager) {<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> this.manager = manager;<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("range", (c) -> {<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> String config = c.getConfig();<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> if (config == null) {<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> return ImmutableList.of();<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> }<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> int start;<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int end;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> if (ranges.length != 2) {<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> start = 0;<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> } else {<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> }<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> });<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> }<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span><a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> }<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span><a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> }<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span><a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> /**<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> * @deprecated Feature Not done yet<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> * @param id<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span> * @param classes<a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> * @return<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> */<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> // get completion with specified id<a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> id = id.toLowerCase();<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> if(completion == null) {<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> // Throw something because no completion with specified id<a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> }<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span><a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> for(Class clazz : classes) {<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> defaultCompletions.put(clazz, id);<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> }<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span><a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return completion;<a name="line.95"></a>
|
||||
<span class="sourceLineNo">038</span><a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private final CommandManager manager;<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span><a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> public CommandCompletions(CommandManager manager) {<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> this.manager = manager;<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> registerAsyncCompletion("range", (c) -> {<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> String config = c.getConfig();<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> if (config == null) {<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> return ImmutableList.of();<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> }<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int start;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> int end;<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> if (ranges.length != 2) {<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> start = 0;<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> } else {<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> }<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> });<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span> }<a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span><a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> /**<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span> *<a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> * @param id<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> * @param handler<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> * @return<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span> */<a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> }<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span><a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> /**<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> * This handler is declared to be safe to be executed asynchronously.<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> * <p><a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> * Not all platforms support this, so if the platform does not support asynchronous execution,<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> * your handler will be executed on the main thread.<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> * Use this anytime your handler does not need to access state that is not considered thread safe.<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> * <p><a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> * Use context.isAsync() to determine if you are async or not.<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> *<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span> * @param id<a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> * @param handler<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> * @return<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> */<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.95"></a>
|
||||
<span class="sourceLineNo">096</span> }<a name="line.96"></a>
|
||||
<span class="sourceLineNo">097</span><a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> @NotNull<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> final int argIndex = args.length - 1;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span><a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> String input = args[argIndex];<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span><a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> if (completion == null && completions.length > 0) {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> completion = completions[completions.length - 1];<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> }<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> if (completion == null) {<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> return ImmutableList.of(input);<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> }<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span><a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> }<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span><a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span><a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> List<String> allCompletions = Lists.newArrayList();<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span><a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (handler != null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> return null;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = complete.length == 1 ? null : complete[1];<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span><a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> try {<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> Collection<String> completions = handler.getCompletions(context);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> if (completions != null) {<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> allCompletions.addAll(completions);<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> continue;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> throw new CommandCompletionTextLookupException();<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> }<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> // This should only happen if some other feedback error occured.<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> } catch (Exception e) {<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> }<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> // Something went wrong in lookup, fall back to input<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> return ImmutableList.of(input);<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> } else {<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> // Plaintext value<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> allCompletions.add(value);<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> }<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> }<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span> return allCompletions;<a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> }<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span><a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span> }<a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> public static class SyncCompletionRequired extends Exception {}<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span><a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span>}<a name="line.165"></a>
|
||||
<span class="sourceLineNo">098</span> /**<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> * Register a static list of command completions that will never change.<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> * Like @CommandCompletion, values are | (PIPE) separated.<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> * Example: foo|bar|baz<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> *<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> * @param id<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> * @param list<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> * @return<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> */<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> public CommandCompletionHandler registerStaticCompletion(String id, String list) {<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> return registerStaticCompletion(id, ACFPatterns.PIPE.split(list));<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> }<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span><a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> /**<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> * Register a static list of command completions that will never change<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> *<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> * @param id<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> * @param completions<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> * @return<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> */<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> return registerStaticCompletion(id, Lists.newArrayList(completions));<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span><a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> /**<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> * Register a static list of command completions that will never change. The list is obtained from the supplier<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> * immediately as part of this method call.<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> *<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> * @param id<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> * @param supplier<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> * @return<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> */<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> public CommandCompletionHandler registerStaticCompletion(String id, Supplier<List<String>> supplier) {<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> return registerStaticCompletion(id, supplier.get());<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> }<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span><a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> /**<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> * Register a static list of command completions that will never change<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> *<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> * @param id<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> * @param completions<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> * @return<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> */<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> public CommandCompletionHandler registerStaticCompletion(String id, List<String> completions) {<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> return registerAsyncCompletion(id, x -> completions);<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> }<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span><a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> /**<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> * @deprecated Feature Not done yet<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> * @param id<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> * @param classes<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> * @return<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> */<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> // get completion with specified id<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> id = id.toLowerCase();<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span><a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> if(completion == null) {<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span> // Throw something because no completion with specified id<a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> }<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span><a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> for(Class clazz : classes) {<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> defaultCompletions.put(clazz, id);<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span> }<a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span><a name="line.165"></a>
|
||||
<span class="sourceLineNo">166</span> return completion;<a name="line.166"></a>
|
||||
<span class="sourceLineNo">167</span> }<a name="line.167"></a>
|
||||
<span class="sourceLineNo">168</span><a name="line.168"></a>
|
||||
<span class="sourceLineNo">169</span> @NotNull<a name="line.169"></a>
|
||||
<span class="sourceLineNo">170</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.170"></a>
|
||||
<span class="sourceLineNo">171</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.171"></a>
|
||||
<span class="sourceLineNo">172</span> final int argIndex = args.length - 1;<a name="line.172"></a>
|
||||
<span class="sourceLineNo">173</span><a name="line.173"></a>
|
||||
<span class="sourceLineNo">174</span> String input = args[argIndex];<a name="line.174"></a>
|
||||
<span class="sourceLineNo">175</span><a name="line.175"></a>
|
||||
<span class="sourceLineNo">176</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.176"></a>
|
||||
<span class="sourceLineNo">177</span> if (completion == null && completions.length > 0) {<a name="line.177"></a>
|
||||
<span class="sourceLineNo">178</span> completion = completions[completions.length - 1];<a name="line.178"></a>
|
||||
<span class="sourceLineNo">179</span> }<a name="line.179"></a>
|
||||
<span class="sourceLineNo">180</span> if (completion == null) {<a name="line.180"></a>
|
||||
<span class="sourceLineNo">181</span> return ImmutableList.of(input);<a name="line.181"></a>
|
||||
<span class="sourceLineNo">182</span> }<a name="line.182"></a>
|
||||
<span class="sourceLineNo">183</span><a name="line.183"></a>
|
||||
<span class="sourceLineNo">184</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.184"></a>
|
||||
<span class="sourceLineNo">185</span> }<a name="line.185"></a>
|
||||
<span class="sourceLineNo">186</span><a name="line.186"></a>
|
||||
<span class="sourceLineNo">187</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.187"></a>
|
||||
<span class="sourceLineNo">188</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.188"></a>
|
||||
<span class="sourceLineNo">189</span><a name="line.189"></a>
|
||||
<span class="sourceLineNo">190</span> List<String> allCompletions = Lists.newArrayList();<a name="line.190"></a>
|
||||
<span class="sourceLineNo">191</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.191"></a>
|
||||
<span class="sourceLineNo">192</span><a name="line.192"></a>
|
||||
<span class="sourceLineNo">193</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.193"></a>
|
||||
<span class="sourceLineNo">194</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.194"></a>
|
||||
<span class="sourceLineNo">195</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.195"></a>
|
||||
<span class="sourceLineNo">196</span> if (handler != null) {<a name="line.196"></a>
|
||||
<span class="sourceLineNo">197</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.197"></a>
|
||||
<span class="sourceLineNo">198</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.198"></a>
|
||||
<span class="sourceLineNo">199</span> return null;<a name="line.199"></a>
|
||||
<span class="sourceLineNo">200</span> }<a name="line.200"></a>
|
||||
<span class="sourceLineNo">201</span> String config = complete.length == 1 ? null : complete[1];<a name="line.201"></a>
|
||||
<span class="sourceLineNo">202</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.202"></a>
|
||||
<span class="sourceLineNo">203</span><a name="line.203"></a>
|
||||
<span class="sourceLineNo">204</span> try {<a name="line.204"></a>
|
||||
<span class="sourceLineNo">205</span> //noinspection unchecked<a name="line.205"></a>
|
||||
<span class="sourceLineNo">206</span> Collection<String> completions = handler.getCompletions(context);<a name="line.206"></a>
|
||||
<span class="sourceLineNo">207</span> if (completions != null) {<a name="line.207"></a>
|
||||
<span class="sourceLineNo">208</span> allCompletions.addAll(completions);<a name="line.208"></a>
|
||||
<span class="sourceLineNo">209</span> continue;<a name="line.209"></a>
|
||||
<span class="sourceLineNo">210</span> }<a name="line.210"></a>
|
||||
<span class="sourceLineNo">211</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.211"></a>
|
||||
<span class="sourceLineNo">212</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.212"></a>
|
||||
<span class="sourceLineNo">213</span> throw new CommandCompletionTextLookupException();<a name="line.213"></a>
|
||||
<span class="sourceLineNo">214</span> }<a name="line.214"></a>
|
||||
<span class="sourceLineNo">215</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.215"></a>
|
||||
<span class="sourceLineNo">216</span> // This should only happen if some other feedback error occured.<a name="line.216"></a>
|
||||
<span class="sourceLineNo">217</span> } catch (Exception e) {<a name="line.217"></a>
|
||||
<span class="sourceLineNo">218</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.218"></a>
|
||||
<span class="sourceLineNo">219</span> }<a name="line.219"></a>
|
||||
<span class="sourceLineNo">220</span> // Something went wrong in lookup, fall back to input<a name="line.220"></a>
|
||||
<span class="sourceLineNo">221</span> return ImmutableList.of(input);<a name="line.221"></a>
|
||||
<span class="sourceLineNo">222</span> } else {<a name="line.222"></a>
|
||||
<span class="sourceLineNo">223</span> // Plaintext value<a name="line.223"></a>
|
||||
<span class="sourceLineNo">224</span> allCompletions.add(value);<a name="line.224"></a>
|
||||
<span class="sourceLineNo">225</span> }<a name="line.225"></a>
|
||||
<span class="sourceLineNo">226</span> }<a name="line.226"></a>
|
||||
<span class="sourceLineNo">227</span> return allCompletions;<a name="line.227"></a>
|
||||
<span class="sourceLineNo">228</span> }<a name="line.228"></a>
|
||||
<span class="sourceLineNo">229</span><a name="line.229"></a>
|
||||
<span class="sourceLineNo">230</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.230"></a>
|
||||
<span class="sourceLineNo">231</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.231"></a>
|
||||
<span class="sourceLineNo">232</span> }<a name="line.232"></a>
|
||||
<span class="sourceLineNo">233</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.233"></a>
|
||||
<span class="sourceLineNo">234</span> public static class SyncCompletionRequired extends Exception {}<a name="line.234"></a>
|
||||
<span class="sourceLineNo">235</span><a name="line.235"></a>
|
||||
<span class="sourceLineNo">236</span>}<a name="line.236"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
+200
-129
@@ -39,138 +39,209 @@
|
||||
<span class="sourceLineNo">031</span>import java.util.HashMap;<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>import java.util.List;<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>import java.util.Map;<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.stream.Collectors;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.IntStream;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span><a name="line.36"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.function.Supplier;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.Collectors;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>import java.util.stream.IntStream;<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span><a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> private final CommandManager manager;<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span><a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> public CommandCompletions(CommandManager manager) {<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> this.manager = manager;<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("range", (c) -> {<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> String config = c.getConfig();<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> if (config == null) {<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> return ImmutableList.of();<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> }<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> int start;<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int end;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> if (ranges.length != 2) {<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> start = 0;<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> } else {<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> }<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> });<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> }<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span><a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> }<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span><a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> }<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span><a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> /**<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> * @deprecated Feature Not done yet<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> * @param id<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span> * @param classes<a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> * @return<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> */<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> // get completion with specified id<a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> id = id.toLowerCase();<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> if(completion == null) {<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> // Throw something because no completion with specified id<a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> }<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span><a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> for(Class clazz : classes) {<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> defaultCompletions.put(clazz, id);<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> }<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span><a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return completion;<a name="line.95"></a>
|
||||
<span class="sourceLineNo">038</span><a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private final CommandManager manager;<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span><a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> public CommandCompletions(CommandManager manager) {<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> this.manager = manager;<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> registerAsyncCompletion("range", (c) -> {<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> String config = c.getConfig();<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> if (config == null) {<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> return ImmutableList.of();<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> }<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int start;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> int end;<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> if (ranges.length != 2) {<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> start = 0;<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> } else {<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> }<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> });<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span> }<a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span><a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> /**<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span> *<a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> * @param id<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> * @param handler<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> * @return<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span> */<a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> }<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span><a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> /**<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> * This handler is declared to be safe to be executed asynchronously.<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> * <p><a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> * Not all platforms support this, so if the platform does not support asynchronous execution,<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> * your handler will be executed on the main thread.<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> * Use this anytime your handler does not need to access state that is not considered thread safe.<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> * <p><a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> * Use context.isAsync() to determine if you are async or not.<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> *<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span> * @param id<a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> * @param handler<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> * @return<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> */<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.95"></a>
|
||||
<span class="sourceLineNo">096</span> }<a name="line.96"></a>
|
||||
<span class="sourceLineNo">097</span><a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> @NotNull<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> final int argIndex = args.length - 1;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span><a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> String input = args[argIndex];<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span><a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> if (completion == null && completions.length > 0) {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> completion = completions[completions.length - 1];<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> }<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> if (completion == null) {<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> return ImmutableList.of(input);<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> }<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span><a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> }<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span><a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span><a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> List<String> allCompletions = Lists.newArrayList();<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span><a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (handler != null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> return null;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = complete.length == 1 ? null : complete[1];<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span><a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> try {<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> Collection<String> completions = handler.getCompletions(context);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> if (completions != null) {<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> allCompletions.addAll(completions);<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> continue;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> throw new CommandCompletionTextLookupException();<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> }<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> // This should only happen if some other feedback error occured.<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> } catch (Exception e) {<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> }<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> // Something went wrong in lookup, fall back to input<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> return ImmutableList.of(input);<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> } else {<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> // Plaintext value<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> allCompletions.add(value);<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> }<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> }<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span> return allCompletions;<a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> }<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span><a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span> }<a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> public static class SyncCompletionRequired extends Exception {}<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span><a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span>}<a name="line.165"></a>
|
||||
<span class="sourceLineNo">098</span> /**<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> * Register a static list of command completions that will never change.<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> * Like @CommandCompletion, values are | (PIPE) separated.<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> * Example: foo|bar|baz<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> *<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> * @param id<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> * @param list<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> * @return<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> */<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> public CommandCompletionHandler registerStaticCompletion(String id, String list) {<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> return registerStaticCompletion(id, ACFPatterns.PIPE.split(list));<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> }<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span><a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> /**<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> * Register a static list of command completions that will never change<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> *<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> * @param id<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> * @param completions<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> * @return<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> */<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> return registerStaticCompletion(id, Lists.newArrayList(completions));<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span><a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> /**<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> * Register a static list of command completions that will never change. The list is obtained from the supplier<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> * immediately as part of this method call.<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> *<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> * @param id<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> * @param supplier<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> * @return<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> */<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> public CommandCompletionHandler registerStaticCompletion(String id, Supplier<List<String>> supplier) {<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> return registerStaticCompletion(id, supplier.get());<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> }<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span><a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> /**<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> * Register a static list of command completions that will never change<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> *<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> * @param id<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> * @param completions<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> * @return<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> */<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> public CommandCompletionHandler registerStaticCompletion(String id, List<String> completions) {<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> return registerAsyncCompletion(id, x -> completions);<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> }<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span><a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> /**<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> * @deprecated Feature Not done yet<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> * @param id<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> * @param classes<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> * @return<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> */<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> // get completion with specified id<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> id = id.toLowerCase();<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span><a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> if(completion == null) {<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span> // Throw something because no completion with specified id<a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> }<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span><a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> for(Class clazz : classes) {<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> defaultCompletions.put(clazz, id);<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span> }<a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span><a name="line.165"></a>
|
||||
<span class="sourceLineNo">166</span> return completion;<a name="line.166"></a>
|
||||
<span class="sourceLineNo">167</span> }<a name="line.167"></a>
|
||||
<span class="sourceLineNo">168</span><a name="line.168"></a>
|
||||
<span class="sourceLineNo">169</span> @NotNull<a name="line.169"></a>
|
||||
<span class="sourceLineNo">170</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.170"></a>
|
||||
<span class="sourceLineNo">171</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.171"></a>
|
||||
<span class="sourceLineNo">172</span> final int argIndex = args.length - 1;<a name="line.172"></a>
|
||||
<span class="sourceLineNo">173</span><a name="line.173"></a>
|
||||
<span class="sourceLineNo">174</span> String input = args[argIndex];<a name="line.174"></a>
|
||||
<span class="sourceLineNo">175</span><a name="line.175"></a>
|
||||
<span class="sourceLineNo">176</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.176"></a>
|
||||
<span class="sourceLineNo">177</span> if (completion == null && completions.length > 0) {<a name="line.177"></a>
|
||||
<span class="sourceLineNo">178</span> completion = completions[completions.length - 1];<a name="line.178"></a>
|
||||
<span class="sourceLineNo">179</span> }<a name="line.179"></a>
|
||||
<span class="sourceLineNo">180</span> if (completion == null) {<a name="line.180"></a>
|
||||
<span class="sourceLineNo">181</span> return ImmutableList.of(input);<a name="line.181"></a>
|
||||
<span class="sourceLineNo">182</span> }<a name="line.182"></a>
|
||||
<span class="sourceLineNo">183</span><a name="line.183"></a>
|
||||
<span class="sourceLineNo">184</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.184"></a>
|
||||
<span class="sourceLineNo">185</span> }<a name="line.185"></a>
|
||||
<span class="sourceLineNo">186</span><a name="line.186"></a>
|
||||
<span class="sourceLineNo">187</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.187"></a>
|
||||
<span class="sourceLineNo">188</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.188"></a>
|
||||
<span class="sourceLineNo">189</span><a name="line.189"></a>
|
||||
<span class="sourceLineNo">190</span> List<String> allCompletions = Lists.newArrayList();<a name="line.190"></a>
|
||||
<span class="sourceLineNo">191</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.191"></a>
|
||||
<span class="sourceLineNo">192</span><a name="line.192"></a>
|
||||
<span class="sourceLineNo">193</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.193"></a>
|
||||
<span class="sourceLineNo">194</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.194"></a>
|
||||
<span class="sourceLineNo">195</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.195"></a>
|
||||
<span class="sourceLineNo">196</span> if (handler != null) {<a name="line.196"></a>
|
||||
<span class="sourceLineNo">197</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.197"></a>
|
||||
<span class="sourceLineNo">198</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.198"></a>
|
||||
<span class="sourceLineNo">199</span> return null;<a name="line.199"></a>
|
||||
<span class="sourceLineNo">200</span> }<a name="line.200"></a>
|
||||
<span class="sourceLineNo">201</span> String config = complete.length == 1 ? null : complete[1];<a name="line.201"></a>
|
||||
<span class="sourceLineNo">202</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.202"></a>
|
||||
<span class="sourceLineNo">203</span><a name="line.203"></a>
|
||||
<span class="sourceLineNo">204</span> try {<a name="line.204"></a>
|
||||
<span class="sourceLineNo">205</span> //noinspection unchecked<a name="line.205"></a>
|
||||
<span class="sourceLineNo">206</span> Collection<String> completions = handler.getCompletions(context);<a name="line.206"></a>
|
||||
<span class="sourceLineNo">207</span> if (completions != null) {<a name="line.207"></a>
|
||||
<span class="sourceLineNo">208</span> allCompletions.addAll(completions);<a name="line.208"></a>
|
||||
<span class="sourceLineNo">209</span> continue;<a name="line.209"></a>
|
||||
<span class="sourceLineNo">210</span> }<a name="line.210"></a>
|
||||
<span class="sourceLineNo">211</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.211"></a>
|
||||
<span class="sourceLineNo">212</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.212"></a>
|
||||
<span class="sourceLineNo">213</span> throw new CommandCompletionTextLookupException();<a name="line.213"></a>
|
||||
<span class="sourceLineNo">214</span> }<a name="line.214"></a>
|
||||
<span class="sourceLineNo">215</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.215"></a>
|
||||
<span class="sourceLineNo">216</span> // This should only happen if some other feedback error occured.<a name="line.216"></a>
|
||||
<span class="sourceLineNo">217</span> } catch (Exception e) {<a name="line.217"></a>
|
||||
<span class="sourceLineNo">218</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.218"></a>
|
||||
<span class="sourceLineNo">219</span> }<a name="line.219"></a>
|
||||
<span class="sourceLineNo">220</span> // Something went wrong in lookup, fall back to input<a name="line.220"></a>
|
||||
<span class="sourceLineNo">221</span> return ImmutableList.of(input);<a name="line.221"></a>
|
||||
<span class="sourceLineNo">222</span> } else {<a name="line.222"></a>
|
||||
<span class="sourceLineNo">223</span> // Plaintext value<a name="line.223"></a>
|
||||
<span class="sourceLineNo">224</span> allCompletions.add(value);<a name="line.224"></a>
|
||||
<span class="sourceLineNo">225</span> }<a name="line.225"></a>
|
||||
<span class="sourceLineNo">226</span> }<a name="line.226"></a>
|
||||
<span class="sourceLineNo">227</span> return allCompletions;<a name="line.227"></a>
|
||||
<span class="sourceLineNo">228</span> }<a name="line.228"></a>
|
||||
<span class="sourceLineNo">229</span><a name="line.229"></a>
|
||||
<span class="sourceLineNo">230</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.230"></a>
|
||||
<span class="sourceLineNo">231</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.231"></a>
|
||||
<span class="sourceLineNo">232</span> }<a name="line.232"></a>
|
||||
<span class="sourceLineNo">233</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.233"></a>
|
||||
<span class="sourceLineNo">234</span> public static class SyncCompletionRequired extends Exception {}<a name="line.234"></a>
|
||||
<span class="sourceLineNo">235</span><a name="line.235"></a>
|
||||
<span class="sourceLineNo">236</span>}<a name="line.236"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -39,138 +39,209 @@
|
||||
<span class="sourceLineNo">031</span>import java.util.HashMap;<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>import java.util.List;<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>import java.util.Map;<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.stream.Collectors;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.IntStream;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span><a name="line.36"></a>
|
||||
<span class="sourceLineNo">034</span>import java.util.function.Supplier;<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>import java.util.stream.Collectors;<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>import java.util.stream.IntStream;<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span><a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> private final CommandManager manager;<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span><a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> public CommandCompletions(CommandManager manager) {<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> this.manager = manager;<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("range", (c) -> {<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> String config = c.getConfig();<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> if (config == null) {<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> return ImmutableList.of();<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> }<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> int start;<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int end;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> if (ranges.length != 2) {<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> start = 0;<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> } else {<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> }<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> });<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> }<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span><a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> }<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span><a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> }<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span><a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> /**<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> * @deprecated Feature Not done yet<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> * @param id<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span> * @param classes<a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> * @return<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> */<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> // get completion with specified id<a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> id = id.toLowerCase();<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> if(completion == null) {<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> // Throw something because no completion with specified id<a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> }<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span><a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> for(Class clazz : classes) {<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> defaultCompletions.put(clazz, id);<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> }<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span><a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return completion;<a name="line.95"></a>
|
||||
<span class="sourceLineNo">038</span><a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public class CommandCompletions <C extends CommandCompletionContext> {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> private final CommandManager manager;<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> private Map<String, CommandCompletionHandler> completionMap = new HashMap<>();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> private Map<Class, String> defaultCompletions = new HashMap<>();<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span><a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> public CommandCompletions(CommandManager manager) {<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> this.manager = manager;<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> registerAsyncCompletion("nothing", c -> ImmutableList.of());<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> registerAsyncCompletion("range", (c) -> {<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> String config = c.getConfig();<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> if (config == null) {<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> return ImmutableList.of();<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span> }<a name="line.52"></a>
|
||||
<span class="sourceLineNo">053</span> final String[] ranges = ACFPatterns.DASH.split(config);<a name="line.53"></a>
|
||||
<span class="sourceLineNo">054</span> int start;<a name="line.54"></a>
|
||||
<span class="sourceLineNo">055</span> int end;<a name="line.55"></a>
|
||||
<span class="sourceLineNo">056</span> if (ranges.length != 2) {<a name="line.56"></a>
|
||||
<span class="sourceLineNo">057</span> start = 0;<a name="line.57"></a>
|
||||
<span class="sourceLineNo">058</span> end = ACFUtil.parseInt(ranges[0], 0);<a name="line.58"></a>
|
||||
<span class="sourceLineNo">059</span> } else {<a name="line.59"></a>
|
||||
<span class="sourceLineNo">060</span> start = ACFUtil.parseInt(ranges[0], 0);<a name="line.60"></a>
|
||||
<span class="sourceLineNo">061</span> end = ACFUtil.parseInt(ranges[1], 0);<a name="line.61"></a>
|
||||
<span class="sourceLineNo">062</span> }<a name="line.62"></a>
|
||||
<span class="sourceLineNo">063</span> return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList());<a name="line.63"></a>
|
||||
<span class="sourceLineNo">064</span> });<a name="line.64"></a>
|
||||
<span class="sourceLineNo">065</span> registerAsyncCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years"));<a name="line.65"></a>
|
||||
<span class="sourceLineNo">066</span> }<a name="line.66"></a>
|
||||
<span class="sourceLineNo">067</span><a name="line.67"></a>
|
||||
<span class="sourceLineNo">068</span> /**<a name="line.68"></a>
|
||||
<span class="sourceLineNo">069</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.69"></a>
|
||||
<span class="sourceLineNo">070</span> *<a name="line.70"></a>
|
||||
<span class="sourceLineNo">071</span> * @param id<a name="line.71"></a>
|
||||
<span class="sourceLineNo">072</span> * @param handler<a name="line.72"></a>
|
||||
<span class="sourceLineNo">073</span> * @return<a name="line.73"></a>
|
||||
<span class="sourceLineNo">074</span> */<a name="line.74"></a>
|
||||
<span class="sourceLineNo">075</span> public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler<C> handler) {<a name="line.75"></a>
|
||||
<span class="sourceLineNo">076</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> }<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span><a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> /**<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span> * Registr a completion handler to provide command completions based on the user input.<a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> * This handler is declared to be safe to be executed asynchronously.<a name="line.81"></a>
|
||||
<span class="sourceLineNo">082</span> * <p><a name="line.82"></a>
|
||||
<span class="sourceLineNo">083</span> * Not all platforms support this, so if the platform does not support asynchronous execution,<a name="line.83"></a>
|
||||
<span class="sourceLineNo">084</span> * your handler will be executed on the main thread.<a name="line.84"></a>
|
||||
<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
|
||||
<span class="sourceLineNo">086</span> * Use this anytime your handler does not need to access state that is not considered thread safe.<a name="line.86"></a>
|
||||
<span class="sourceLineNo">087</span> * <p><a name="line.87"></a>
|
||||
<span class="sourceLineNo">088</span> * Use context.isAsync() to determine if you are async or not.<a name="line.88"></a>
|
||||
<span class="sourceLineNo">089</span> *<a name="line.89"></a>
|
||||
<span class="sourceLineNo">090</span> * @param id<a name="line.90"></a>
|
||||
<span class="sourceLineNo">091</span> * @param handler<a name="line.91"></a>
|
||||
<span class="sourceLineNo">092</span> * @return<a name="line.92"></a>
|
||||
<span class="sourceLineNo">093</span> */<a name="line.93"></a>
|
||||
<span class="sourceLineNo">094</span> public CommandCompletionHandler registerAsyncCompletion(String id, AsyncCommandCompletionHandler<C> handler) {<a name="line.94"></a>
|
||||
<span class="sourceLineNo">095</span> return this.completionMap.put("@" + id.toLowerCase(), handler);<a name="line.95"></a>
|
||||
<span class="sourceLineNo">096</span> }<a name="line.96"></a>
|
||||
<span class="sourceLineNo">097</span><a name="line.97"></a>
|
||||
<span class="sourceLineNo">098</span> @NotNull<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> final int argIndex = args.length - 1;<a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span><a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> String input = args[argIndex];<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span><a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> if (completion == null && completions.length > 0) {<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> completion = completions[completions.length - 1];<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> }<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> if (completion == null) {<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> return ImmutableList.of(input);<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span> }<a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span><a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> }<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span><a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span><a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> List<String> allCompletions = Lists.newArrayList();<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span><a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> if (handler != null) {<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> return null;<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> }<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> String config = complete.length == 1 ? null : complete[1];<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span><a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> try {<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span> //noinspection unchecked<a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> Collection<String> completions = handler.getCompletions(context);<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> if (completions != null) {<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> allCompletions.addAll(completions);<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> continue;<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> }<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> throw new CommandCompletionTextLookupException();<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> }<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span> // This should only happen if some other feedback error occured.<a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> } catch (Exception e) {<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> }<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> // Something went wrong in lookup, fall back to input<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> return ImmutableList.of(input);<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> } else {<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> // Plaintext value<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> allCompletions.add(value);<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> }<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> }<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span> return allCompletions;<a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> }<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span><a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span> }<a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> public static class SyncCompletionRequired extends Exception {}<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span><a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span>}<a name="line.165"></a>
|
||||
<span class="sourceLineNo">098</span> /**<a name="line.98"></a>
|
||||
<span class="sourceLineNo">099</span> * Register a static list of command completions that will never change.<a name="line.99"></a>
|
||||
<span class="sourceLineNo">100</span> * Like @CommandCompletion, values are | (PIPE) separated.<a name="line.100"></a>
|
||||
<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
|
||||
<span class="sourceLineNo">102</span> * Example: foo|bar|baz<a name="line.102"></a>
|
||||
<span class="sourceLineNo">103</span> *<a name="line.103"></a>
|
||||
<span class="sourceLineNo">104</span> * @param id<a name="line.104"></a>
|
||||
<span class="sourceLineNo">105</span> * @param list<a name="line.105"></a>
|
||||
<span class="sourceLineNo">106</span> * @return<a name="line.106"></a>
|
||||
<span class="sourceLineNo">107</span> */<a name="line.107"></a>
|
||||
<span class="sourceLineNo">108</span> public CommandCompletionHandler registerStaticCompletion(String id, String list) {<a name="line.108"></a>
|
||||
<span class="sourceLineNo">109</span> return registerStaticCompletion(id, ACFPatterns.PIPE.split(list));<a name="line.109"></a>
|
||||
<span class="sourceLineNo">110</span> }<a name="line.110"></a>
|
||||
<span class="sourceLineNo">111</span><a name="line.111"></a>
|
||||
<span class="sourceLineNo">112</span> /**<a name="line.112"></a>
|
||||
<span class="sourceLineNo">113</span> * Register a static list of command completions that will never change<a name="line.113"></a>
|
||||
<span class="sourceLineNo">114</span> *<a name="line.114"></a>
|
||||
<span class="sourceLineNo">115</span> * @param id<a name="line.115"></a>
|
||||
<span class="sourceLineNo">116</span> * @param completions<a name="line.116"></a>
|
||||
<span class="sourceLineNo">117</span> * @return<a name="line.117"></a>
|
||||
<span class="sourceLineNo">118</span> */<a name="line.118"></a>
|
||||
<span class="sourceLineNo">119</span> public CommandCompletionHandler registerStaticCompletion(String id, String[] completions) {<a name="line.119"></a>
|
||||
<span class="sourceLineNo">120</span> return registerStaticCompletion(id, Lists.newArrayList(completions));<a name="line.120"></a>
|
||||
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
|
||||
<span class="sourceLineNo">122</span><a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> /**<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> * Register a static list of command completions that will never change. The list is obtained from the supplier<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> * immediately as part of this method call.<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> *<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> * @param id<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> * @param supplier<a name="line.128"></a>
|
||||
<span class="sourceLineNo">129</span> * @return<a name="line.129"></a>
|
||||
<span class="sourceLineNo">130</span> */<a name="line.130"></a>
|
||||
<span class="sourceLineNo">131</span> public CommandCompletionHandler registerStaticCompletion(String id, Supplier<List<String>> supplier) {<a name="line.131"></a>
|
||||
<span class="sourceLineNo">132</span> return registerStaticCompletion(id, supplier.get());<a name="line.132"></a>
|
||||
<span class="sourceLineNo">133</span> }<a name="line.133"></a>
|
||||
<span class="sourceLineNo">134</span><a name="line.134"></a>
|
||||
<span class="sourceLineNo">135</span> /**<a name="line.135"></a>
|
||||
<span class="sourceLineNo">136</span> * Register a static list of command completions that will never change<a name="line.136"></a>
|
||||
<span class="sourceLineNo">137</span> *<a name="line.137"></a>
|
||||
<span class="sourceLineNo">138</span> * @param id<a name="line.138"></a>
|
||||
<span class="sourceLineNo">139</span> * @param completions<a name="line.139"></a>
|
||||
<span class="sourceLineNo">140</span> * @return<a name="line.140"></a>
|
||||
<span class="sourceLineNo">141</span> */<a name="line.141"></a>
|
||||
<span class="sourceLineNo">142</span> public CommandCompletionHandler registerStaticCompletion(String id, List<String> completions) {<a name="line.142"></a>
|
||||
<span class="sourceLineNo">143</span> return registerAsyncCompletion(id, x -> completions);<a name="line.143"></a>
|
||||
<span class="sourceLineNo">144</span> }<a name="line.144"></a>
|
||||
<span class="sourceLineNo">145</span><a name="line.145"></a>
|
||||
<span class="sourceLineNo">146</span> /**<a name="line.146"></a>
|
||||
<span class="sourceLineNo">147</span> * @deprecated Feature Not done yet<a name="line.147"></a>
|
||||
<span class="sourceLineNo">148</span> * @param id<a name="line.148"></a>
|
||||
<span class="sourceLineNo">149</span> * @param classes<a name="line.149"></a>
|
||||
<span class="sourceLineNo">150</span> * @return<a name="line.150"></a>
|
||||
<span class="sourceLineNo">151</span> */<a name="line.151"></a>
|
||||
<span class="sourceLineNo">152</span> CommandCompletionHandler setDefaultCompletion(String id, Class... classes) {<a name="line.152"></a>
|
||||
<span class="sourceLineNo">153</span> // get completion with specified id<a name="line.153"></a>
|
||||
<span class="sourceLineNo">154</span> id = id.toLowerCase();<a name="line.154"></a>
|
||||
<span class="sourceLineNo">155</span> CommandCompletionHandler completion = completionMap.get(id);<a name="line.155"></a>
|
||||
<span class="sourceLineNo">156</span><a name="line.156"></a>
|
||||
<span class="sourceLineNo">157</span> if(completion == null) {<a name="line.157"></a>
|
||||
<span class="sourceLineNo">158</span> // Throw something because no completion with specified id<a name="line.158"></a>
|
||||
<span class="sourceLineNo">159</span> ACFUtil.sneaky(new CommandCompletionTextLookupException());<a name="line.159"></a>
|
||||
<span class="sourceLineNo">160</span> }<a name="line.160"></a>
|
||||
<span class="sourceLineNo">161</span><a name="line.161"></a>
|
||||
<span class="sourceLineNo">162</span> for(Class clazz : classes) {<a name="line.162"></a>
|
||||
<span class="sourceLineNo">163</span> defaultCompletions.put(clazz, id);<a name="line.163"></a>
|
||||
<span class="sourceLineNo">164</span> }<a name="line.164"></a>
|
||||
<span class="sourceLineNo">165</span><a name="line.165"></a>
|
||||
<span class="sourceLineNo">166</span> return completion;<a name="line.166"></a>
|
||||
<span class="sourceLineNo">167</span> }<a name="line.167"></a>
|
||||
<span class="sourceLineNo">168</span><a name="line.168"></a>
|
||||
<span class="sourceLineNo">169</span> @NotNull<a name="line.169"></a>
|
||||
<span class="sourceLineNo">170</span> List<String> of(RegisteredCommand cmd, CommandIssuer sender, String[] args, boolean isAsync) {<a name="line.170"></a>
|
||||
<span class="sourceLineNo">171</span> String[] completions = ACFPatterns.SPACE.split(cmd.complete);<a name="line.171"></a>
|
||||
<span class="sourceLineNo">172</span> final int argIndex = args.length - 1;<a name="line.172"></a>
|
||||
<span class="sourceLineNo">173</span><a name="line.173"></a>
|
||||
<span class="sourceLineNo">174</span> String input = args[argIndex];<a name="line.174"></a>
|
||||
<span class="sourceLineNo">175</span><a name="line.175"></a>
|
||||
<span class="sourceLineNo">176</span> String completion = argIndex < completions.length ? completions[argIndex] : null;<a name="line.176"></a>
|
||||
<span class="sourceLineNo">177</span> if (completion == null && completions.length > 0) {<a name="line.177"></a>
|
||||
<span class="sourceLineNo">178</span> completion = completions[completions.length - 1];<a name="line.178"></a>
|
||||
<span class="sourceLineNo">179</span> }<a name="line.179"></a>
|
||||
<span class="sourceLineNo">180</span> if (completion == null) {<a name="line.180"></a>
|
||||
<span class="sourceLineNo">181</span> return ImmutableList.of(input);<a name="line.181"></a>
|
||||
<span class="sourceLineNo">182</span> }<a name="line.182"></a>
|
||||
<span class="sourceLineNo">183</span><a name="line.183"></a>
|
||||
<span class="sourceLineNo">184</span> return getCompletionValues(cmd, sender, completion, args, isAsync);<a name="line.184"></a>
|
||||
<span class="sourceLineNo">185</span> }<a name="line.185"></a>
|
||||
<span class="sourceLineNo">186</span><a name="line.186"></a>
|
||||
<span class="sourceLineNo">187</span> List<String> getCompletionValues(RegisteredCommand command, CommandIssuer sender, String completion, String[] args, boolean isAsync) {<a name="line.187"></a>
|
||||
<span class="sourceLineNo">188</span> completion = manager.getCommandReplacements().replace(completion);<a name="line.188"></a>
|
||||
<span class="sourceLineNo">189</span><a name="line.189"></a>
|
||||
<span class="sourceLineNo">190</span> List<String> allCompletions = Lists.newArrayList();<a name="line.190"></a>
|
||||
<span class="sourceLineNo">191</span> String input = args.length > 0 ? args[args.length - 1] : "";<a name="line.191"></a>
|
||||
<span class="sourceLineNo">192</span><a name="line.192"></a>
|
||||
<span class="sourceLineNo">193</span> for (String value : ACFPatterns.PIPE.split(completion)) {<a name="line.193"></a>
|
||||
<span class="sourceLineNo">194</span> String[] complete = ACFPatterns.COLONEQUALS.split(value, 2);<a name="line.194"></a>
|
||||
<span class="sourceLineNo">195</span> CommandCompletionHandler handler = this.completionMap.get(complete[0].toLowerCase());<a name="line.195"></a>
|
||||
<span class="sourceLineNo">196</span> if (handler != null) {<a name="line.196"></a>
|
||||
<span class="sourceLineNo">197</span> if (isAsync && !(handler instanceof AsyncCommandCompletionHandler)) {<a name="line.197"></a>
|
||||
<span class="sourceLineNo">198</span> ACFUtil.sneaky(new SyncCompletionRequired());<a name="line.198"></a>
|
||||
<span class="sourceLineNo">199</span> return null;<a name="line.199"></a>
|
||||
<span class="sourceLineNo">200</span> }<a name="line.200"></a>
|
||||
<span class="sourceLineNo">201</span> String config = complete.length == 1 ? null : complete[1];<a name="line.201"></a>
|
||||
<span class="sourceLineNo">202</span> CommandCompletionContext context = manager.createCompletionContext(command, sender, input, config, args);<a name="line.202"></a>
|
||||
<span class="sourceLineNo">203</span><a name="line.203"></a>
|
||||
<span class="sourceLineNo">204</span> try {<a name="line.204"></a>
|
||||
<span class="sourceLineNo">205</span> //noinspection unchecked<a name="line.205"></a>
|
||||
<span class="sourceLineNo">206</span> Collection<String> completions = handler.getCompletions(context);<a name="line.206"></a>
|
||||
<span class="sourceLineNo">207</span> if (completions != null) {<a name="line.207"></a>
|
||||
<span class="sourceLineNo">208</span> allCompletions.addAll(completions);<a name="line.208"></a>
|
||||
<span class="sourceLineNo">209</span> continue;<a name="line.209"></a>
|
||||
<span class="sourceLineNo">210</span> }<a name="line.210"></a>
|
||||
<span class="sourceLineNo">211</span> //noinspection ConstantIfStatement,ConstantConditions<a name="line.211"></a>
|
||||
<span class="sourceLineNo">212</span> if (false) { // Hack to fool compiler. since its sneakily thrown.<a name="line.212"></a>
|
||||
<span class="sourceLineNo">213</span> throw new CommandCompletionTextLookupException();<a name="line.213"></a>
|
||||
<span class="sourceLineNo">214</span> }<a name="line.214"></a>
|
||||
<span class="sourceLineNo">215</span> } catch (CommandCompletionTextLookupException ignored) {<a name="line.215"></a>
|
||||
<span class="sourceLineNo">216</span> // This should only happen if some other feedback error occured.<a name="line.216"></a>
|
||||
<span class="sourceLineNo">217</span> } catch (Exception e) {<a name="line.217"></a>
|
||||
<span class="sourceLineNo">218</span> command.handleException(sender, Lists.newArrayList(args), e);<a name="line.218"></a>
|
||||
<span class="sourceLineNo">219</span> }<a name="line.219"></a>
|
||||
<span class="sourceLineNo">220</span> // Something went wrong in lookup, fall back to input<a name="line.220"></a>
|
||||
<span class="sourceLineNo">221</span> return ImmutableList.of(input);<a name="line.221"></a>
|
||||
<span class="sourceLineNo">222</span> } else {<a name="line.222"></a>
|
||||
<span class="sourceLineNo">223</span> // Plaintext value<a name="line.223"></a>
|
||||
<span class="sourceLineNo">224</span> allCompletions.add(value);<a name="line.224"></a>
|
||||
<span class="sourceLineNo">225</span> }<a name="line.225"></a>
|
||||
<span class="sourceLineNo">226</span> }<a name="line.226"></a>
|
||||
<span class="sourceLineNo">227</span> return allCompletions;<a name="line.227"></a>
|
||||
<span class="sourceLineNo">228</span> }<a name="line.228"></a>
|
||||
<span class="sourceLineNo">229</span><a name="line.229"></a>
|
||||
<span class="sourceLineNo">230</span> public interface CommandCompletionHandler <C extends CommandCompletionContext> {<a name="line.230"></a>
|
||||
<span class="sourceLineNo">231</span> Collection<String> getCompletions(C context) throws InvalidCommandArgument;<a name="line.231"></a>
|
||||
<span class="sourceLineNo">232</span> }<a name="line.232"></a>
|
||||
<span class="sourceLineNo">233</span> public interface AsyncCommandCompletionHandler <C extends CommandCompletionContext> extends CommandCompletionHandler <C> {}<a name="line.233"></a>
|
||||
<span class="sourceLineNo">234</span> public static class SyncCompletionRequired extends Exception {}<a name="line.234"></a>
|
||||
<span class="sourceLineNo">235</span><a name="line.235"></a>
|
||||
<span class="sourceLineNo">236</span>}<a name="line.236"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,10 +36,19 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface CatchUnknown {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>}<a name="line.34"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Defines a method that should receive any unknown command for the related root command.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * For example, if a BaseCommand /foo has a method with this, and /foo someunknowncommand is used<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> *<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * If a method is tagged with this annotation, it will catch unknown commands and let you react to them.<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> *<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> * Only one instance of this annotation can be used per root command.<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> */<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>@Target({ElementType.METHOD})<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span>public @interface CatchUnknown {<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span>}<a name="line.43"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,19 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.TYPE})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface CommandAlias {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Allows to add a single or several command alias(es).<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * In order to add more than one in a single go, use the syntax "alias|otheralias".<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * You can register as many aliases as wanted in a single value.<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> *<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * Used on a Class, defines the root command for all subcommands in the base command.<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> * Used on a method, defines a root command alias to that specific command<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> */<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>@Target({ElementType.METHOD, ElementType.TYPE})<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>public @interface CommandAlias {<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> String value();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span>}<a name="line.43"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,21 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface CommandCompletion {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Many implementation platforms have a concept of "Tab Completions",<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * where pressing tab will give suggestions on what you can input.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> *<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * This annotation specifies either static completion values,<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * or special @codes that let you define Completion Handlers to dynamically<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> * populate completion values.<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> *<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> * @see {@link co.aikar.commands.CommandCompletions}<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> */<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span>@Target({ElementType.METHOD})<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span>public @interface CommandCompletion {<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> String value();<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span>}<a name="line.45"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,16 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.TYPE})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface CommandPermission {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Sets the permission required to perform this command.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * Permission format will vary based on implementation platform<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> */<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>@Target({ElementType.METHOD, ElementType.TYPE})<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>public @interface CommandPermission {<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> String value();<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>}<a name="line.40"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,19 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Conditions {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Specifies conditions that must be met in order to execute this command.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * If used on a method or a class, will be checked before parameter context is resolved<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * If used on a parameter, will be checked after the context is resolved<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> *<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> * @see {@link co.aikar.commands.CommandConditions}<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> */<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE})<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>public @interface Conditions {<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> String value();<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span>}<a name="line.43"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,15 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.PARAMETER})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Default {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value() default "";<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * If used on a method, sets default command handler for the root command of this group<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * If used on a parameter, sets the value to be used for context resolution<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> */<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Target({ElementType.METHOD, ElementType.PARAMETER})<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>public @interface Default {<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> String value() default "";<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>}<a name="line.39"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,15 +36,19 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target(ElementType.FIELD)<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Dependency {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> /**<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * The key that should be used to lookup the instances, defaults to \"\"<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * @return the key<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> */<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> String value() default "";<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>}<a name="line.39"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Injects a dependency into the field this is attached to.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * Any time a new dependency is registered, this will be overwritten.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> */<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Target(ElementType.FIELD)<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>public @interface Dependency {<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> /**<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> * The key that should be used to lookup the instances, defaults to \"\"<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> * @return the key<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> */<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> String value() default "";<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span>}<a name="line.43"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,15 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.PARAMETER})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Description {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Sets a description to the parameter or method this is attached to.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * This is used in the help menus.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> */<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Target({ElementType.METHOD, ElementType.PARAMETER})<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>public @interface Description {<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> String value();<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>}<a name="line.39"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,18 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.PARAMETER})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Flags {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Provides configuration options for {@link co.aikar.commands.contexts.ContextResolver}'s to change how they resolve context.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * Example: Searching for a player, you might use @Flags("loose") to indicate a fuzzy match instead of an exact match.<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> *<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * If you want to restrict if an issuer can use the command, please use {@link co.aikar.commands.CommandConditions.Condition} instead.<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> */<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@Target({ElementType.PARAMETER})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public @interface Flags {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> String value();<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span>}<a name="line.42"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,21 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface HelpCommand {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value() default "help|?|-help|-h|-?";<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * A Shortcut for specifying {@link CatchUnknown}, {@link Default} and {@link Subcommand} on a method.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * Subcommand carries the same value as this annotations value to define the list of subcommands to register for.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> *<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * a method marked with this annotation should also use a {@link co.aikar.commands.CommandHelp} context parameter to show help.<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> */<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@Target({ElementType.METHOD})<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public @interface HelpCommand {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> /**<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> * The value to forward to the @Subcommand annotation. Lists which subcommands to register to trigger help<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> * @return<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> */<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> String value() default "help|?|-help|-h|-?";<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span>}<a name="line.45"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,17 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface HelpSearchTags {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Defines additional keywords to feed into the search help system.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * For example, if a specific word doesn't make sense to use in the command name or description, but should<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * be used for help in discovering the correct command, then you can add it as a tag.<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> */<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@Target({ElementType.METHOD})<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public @interface HelpSearchTags {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> String value();<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>}<a name="line.41"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,10 +36,17 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.PARAMETER})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Optional {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>}<a name="line.34"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Marks the parameter this is attached to as optional.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * This will set the parameter as null if it was not provided.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * <p><a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * In the case the language used is Kotlin, Ceylon or any other null-enforcing JVM language,<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * you will need to allow for a nullable value.<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> */<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@Target({ElementType.PARAMETER})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public @interface Optional {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>}<a name="line.41"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -37,9 +37,12 @@
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.RetentionPolicy;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span>import java.lang.annotation.Target;<a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span><a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>@Target({ElementType.METHOD})<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>public @interface PreCommand {}<a name="line.34"></a>
|
||||
<span class="sourceLineNo">032</span>/**<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * This runs before any other command method each time it is invoked.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> */<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Target({ElementType.METHOD})<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>public @interface PreCommand {}<a name="line.37"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -37,12 +37,11 @@
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Don't join remaining arguments<a name="line.32"></a>
|
||||
<span class="sourceLineNo">032</span> * Don't join remaining arguments. Used on String parameters, which normally would combine the remaining arguments<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> */<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span><a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Target({ElementType.PARAMETER})<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>public @interface Single {}<a name="line.37"></a>
|
||||
<span class="sourceLineNo">034</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>@Target({ElementType.PARAMETER})<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>public @interface Single {}<a name="line.36"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -37,11 +37,15 @@
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.RetentionPolicy;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span>import java.lang.annotation.Target;<a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span><a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>@Target({ElementType.PARAMETER})<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span>public @interface Split {<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> String value() default ",";<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>}<a name="line.36"></a>
|
||||
<span class="sourceLineNo">032</span>/**<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * Joins arguments into a single piece of text with the specified separator.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * For array based parameters, defines the regex pattern to split on<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> */<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>@Target({ElementType.PARAMETER})<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>public @interface Split {<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> String value() default ",";<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>}<a name="line.40"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,18 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.TYPE})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Subcommand {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Defines the subcommand that can be used to execute this command.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * This is appended onto the root command for the command group,<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * as well as any parent command groups subcommand base.<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> *<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * Defines the part after root command like so: "/rootcommand {@link #value()}".<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> */<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>@Target({ElementType.METHOD, ElementType.TYPE})<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>public @interface Subcommand {<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> String value();<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span>}<a name="line.42"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,12 +36,21 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.METHOD, ElementType.PARAMETER})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Syntax {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span><a name="line.36"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Specifies the syntax to be used when executing this command.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * It should not include any descriptions of the arguments nor when some are allowed and when they are not.<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> *<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * Use of this annotation is not necessary. Syntax will be automatically generated for you.<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * Use this annotation to override automatic syntax<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> *<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span> * Use {@link Description} together with the help menu for that purpose.<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> **/<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span>@Target({ElementType.METHOD, ElementType.PARAMETER})<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span>public @interface Syntax {<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> String value();<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span>}<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span><a name="line.45"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,11 +36,16 @@
|
||||
<span class="sourceLineNo">028</span>import java.lang.annotation.RetentionPolicy;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>import java.lang.annotation.Target;<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span><a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>@Target({ElementType.PARAMETER})<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>public @interface Values {<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> String value();<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span>}<a name="line.35"></a>
|
||||
<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * Specifies a list of values that the command input should be validated against, or else show an error.<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * You may also use {@link CommandCompletion} handler codes here to feed dynamic values and avoid repetition.<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> */<a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>@Target({ElementType.PARAMETER})<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>public @interface Values {<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span> String value();<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span>}<a name="line.40"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -35,10 +35,29 @@
|
||||
<span class="sourceLineNo">027</span>import co.aikar.commands.CommandIssuer;<a name="line.27"></a>
|
||||
<span class="sourceLineNo">028</span>import co.aikar.commands.InvalidCommandArgument;<a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span><a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span>@FunctionalInterface<a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span>public interface ContextResolver <T, C extends CommandExecutionContext<?, ? extends CommandIssuer>> {<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> T getContext(C c) throws InvalidCommandArgument;<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span>}<a name="line.33"></a>
|
||||
<span class="sourceLineNo">030</span>/**<a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span> * This defines a context resolver, which parses {@link T} from {@link C}.<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> *<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> * @param <T><a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * The type to be parsed.<a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * @param <C><a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> * The type of the context which the resolver would get its data from.<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span> */<a name="line.37"></a>
|
||||
<span class="sourceLineNo">038</span>@FunctionalInterface<a name="line.38"></a>
|
||||
<span class="sourceLineNo">039</span>public interface ContextResolver <T, C extends CommandExecutionContext<?, ? extends CommandIssuer>> {<a name="line.39"></a>
|
||||
<span class="sourceLineNo">040</span> /**<a name="line.40"></a>
|
||||
<span class="sourceLineNo">041</span> * Parses the context of type {@link C} into {@link T}, or throws an exception.<a name="line.41"></a>
|
||||
<span class="sourceLineNo">042</span> *<a name="line.42"></a>
|
||||
<span class="sourceLineNo">043</span> * @param c<a name="line.43"></a>
|
||||
<span class="sourceLineNo">044</span> * The context to parse from.<a name="line.44"></a>
|
||||
<span class="sourceLineNo">045</span> *<a name="line.45"></a>
|
||||
<span class="sourceLineNo">046</span> * @return The parsed instance of the wanted type.<a name="line.46"></a>
|
||||
<span class="sourceLineNo">047</span> *<a name="line.47"></a>
|
||||
<span class="sourceLineNo">048</span> * @throws InvalidCommandArgument<a name="line.48"></a>
|
||||
<span class="sourceLineNo">049</span> * In case the context contains any discrepancies, it will throw this exception.<a name="line.49"></a>
|
||||
<span class="sourceLineNo">050</span> */<a name="line.50"></a>
|
||||
<span class="sourceLineNo">051</span> T getContext(C c) throws InvalidCommandArgument;<a name="line.51"></a>
|
||||
<span class="sourceLineNo">052</span>}<a name="line.52"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -35,9 +35,14 @@
|
||||
<span class="sourceLineNo">027</span>import co.aikar.commands.CommandIssuer;<a name="line.27"></a>
|
||||
<span class="sourceLineNo">028</span><a name="line.28"></a>
|
||||
<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
|
||||
<span class="sourceLineNo">030</span> * Context Resolver that can accept null input<a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span> */<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span>public interface OptionalContextResolver <T, C extends CommandExecutionContext<?, ? extends CommandIssuer>> extends ContextResolver <T, C> {}<a name="line.32"></a>
|
||||
<span class="sourceLineNo">030</span> * The same as {@link ContextResolver}, however it can accept a null context.<a name="line.30"></a>
|
||||
<span class="sourceLineNo">031</span> *<a name="line.31"></a>
|
||||
<span class="sourceLineNo">032</span> * If the parameter was marked optional, will still be called with an empty args list<a name="line.32"></a>
|
||||
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
|
||||
<span class="sourceLineNo">034</span> * @param <T><a name="line.34"></a>
|
||||
<span class="sourceLineNo">035</span> * @param <C><a name="line.35"></a>
|
||||
<span class="sourceLineNo">036</span> */<a name="line.36"></a>
|
||||
<span class="sourceLineNo">037</span>public interface OptionalContextResolver <T, C extends CommandExecutionContext<?, ? extends CommandIssuer>> extends ContextResolver <T, C> {}<a name="line.37"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -177,6 +177,13 @@ extends co.aikar.commands.CommandCompletions<co.aikar.commands.CommandComplet
|
||||
</tr>
|
||||
</table>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.co.aikar.commands.CommandCompletions">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class co.aikar.commands.CommandCompletions</h3>
|
||||
<code>registerStaticCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
||||
<!-- -->
|
||||
</a>
|
||||
|
||||
@@ -162,7 +162,7 @@ extends co.aikar.commands.BukkitCommandCompletions</pre>
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class co.aikar.commands.CommandCompletions</h3>
|
||||
<code>registerAsyncCompletion, registerCompletion</code></li>
|
||||
<code>registerAsyncCompletion, registerCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
||||
|
||||
@@ -158,7 +158,7 @@ extends co.aikar.commands.CommandCompletions<<a href="../../../co/aikar/comma
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class co.aikar.commands.CommandCompletions</h3>
|
||||
<code>registerAsyncCompletion, registerCompletion</code></li>
|
||||
<code>registerAsyncCompletion, registerCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion, registerStaticCompletion</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
||||
|
||||
Reference in New Issue
Block a user