mirror of
https://github.com/aikar/commands.git
synced 2026-05-31 06:11:55 +00:00
(DEPLOYED ACF) Updated JavaDocs
This commit is contained in:
@@ -524,7 +524,7 @@ public boolean <a href="../../../src-html/co/aikar/commands/BaseComman
|
||||
<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.741">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.746">getCommandHelp</a>()</pre>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Unstable API</span></div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -535,7 +535,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.750">showCommandHelp</a>()</pre>
|
||||
public void <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.755">showCommandHelp</a>()</pre>
|
||||
<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Unstable API</span></div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -545,7 +545,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.754">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.759">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>
|
||||
@@ -555,7 +555,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.758">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.763">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>
|
||||
@@ -565,7 +565,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.762">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.767">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>
|
||||
@@ -575,7 +575,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.766">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.771">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>
|
||||
@@ -585,7 +585,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.770">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.775">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>
|
||||
@@ -595,7 +595,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.777">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.782">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-">
|
||||
@@ -604,7 +604,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.781">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.786">hasPermission</a>(<a href="../../../co/aikar/commands/CommandIssuer.html" title="interface in co.aikar.commands">CommandIssuer</a> issuer)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getRequiredPermissions--">
|
||||
@@ -613,7 +613,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.785">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.790">getRequiredPermissions</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="requiresPermission-java.lang.String-">
|
||||
@@ -622,7 +622,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.789">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.794">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--">
|
||||
@@ -631,7 +631,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.793">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.798">getName</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getExceptionHandler--">
|
||||
@@ -640,7 +640,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.797">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.802">getExceptionHandler</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="setExceptionHandler-co.aikar.commands.ExceptionHandler-">
|
||||
@@ -649,7 +649,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.801">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.806">setExceptionHandler</a>(<a href="../../../co/aikar/commands/ExceptionHandler.html" title="interface in co.aikar.commands">ExceptionHandler</a> exceptionHandler)</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="getDefaultRegisteredCommand--">
|
||||
@@ -658,7 +658,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.806">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.811">getDefaultRegisteredCommand</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="setContextFlags-java.lang.Class-java.lang.String-">
|
||||
@@ -667,7 +667,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.810">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.815">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>
|
||||
@@ -677,7 +677,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockList">
|
||||
<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.814">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.819">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>
|
||||
<a name="getRegisteredCommands--">
|
||||
@@ -686,7 +686,7 @@ public void <a href="../../../src-html/co/aikar/commands/BaseCommand.h
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>getRegisteredCommands</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="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.818">getRegisteredCommands</a>()</pre>
|
||||
<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="../../../co/aikar/commands/RegisteredCommand.html" title="class in co.aikar.commands">RegisteredCommand</a>> <a href="../../../src-html/co/aikar/commands/BaseCommand.html#line.823">getRegisteredCommands</a>()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -166,12 +166,10 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
</tr>
|
||||
<tr id="i7" 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/ForwardingCommand.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> alias,
|
||||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../co/aikar/commands/ForwardingCommand.html#tabComplete-co.aikar.commands.CommandIssuer-co.aikar.commands.RootCommand-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="../../../co/aikar/commands/RootCommand.html" title="interface in co.aikar.commands">RootCommand</a> rootCommand,
|
||||
<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>
|
||||
<div class="block">Gets the tab complete suggestions from a given command.</div>
|
||||
</td>
|
||||
boolean isAsync)</code> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<ul class="blockList">
|
||||
@@ -179,7 +177,7 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods 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#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">canExecute</a>, <a href="../../../co/aikar/commands/BaseCommand.html#doHelp-co.aikar.commands.CommandIssuer-java.lang.String...-">doHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#doHelp-java.lang.Object-java.lang.String...-">doHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getCommandHelp--">getCommandHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getContextFlags-java.lang.Class-">getContextFlags</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getDefaultRegisteredCommand--">getDefaultRegisteredCommand</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getExceptionHandler--">getExceptionHandler</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getExecCommandLabel--">getExecCommandLabel</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getExecSubcommand--">getExecSubcommand</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getName--">getName</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getOrigArgs--">getOrigArgs</a>, <a href="../../../co/aikar/commands/BaseCommand.html#help-co.aikar.commands.CommandIssuer-java.lang.String:A-">help</a>, <a href="../../../co/aikar/commands/BaseCommand.html#help-java.lang.Object-java.lang.String:A-">help</a>, <a href="../../../co/aikar/commands/BaseCommand.html#setContextFlags-java.lang.Class-java.lang.String-">setContextFlags</a>, <a href="../../../co/aikar/commands/BaseCommand.html#setExceptionHandler-co.aikar.commands.ExceptionHandler-">setExceptionHandler</a>, <a href="../../../co/aikar/commands/BaseCommand.html#showCommandHelp--">showCommandHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#showSyntax-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">showSyntax</a>, <a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete</a></code></li>
|
||||
<code><a href="../../../co/aikar/commands/BaseCommand.html#canExecute-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">canExecute</a>, <a href="../../../co/aikar/commands/BaseCommand.html#doHelp-co.aikar.commands.CommandIssuer-java.lang.String...-">doHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#doHelp-java.lang.Object-java.lang.String...-">doHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getCommandHelp--">getCommandHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getContextFlags-java.lang.Class-">getContextFlags</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandIssuer--">getCurrentCommandIssuer</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getCurrentCommandManager--">getCurrentCommandManager</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getDefaultRegisteredCommand--">getDefaultRegisteredCommand</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getExceptionHandler--">getExceptionHandler</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getExecCommandLabel--">getExecCommandLabel</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getExecSubcommand--">getExecSubcommand</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getName--">getName</a>, <a href="../../../co/aikar/commands/BaseCommand.html#getOrigArgs--">getOrigArgs</a>, <a href="../../../co/aikar/commands/BaseCommand.html#help-co.aikar.commands.CommandIssuer-java.lang.String:A-">help</a>, <a href="../../../co/aikar/commands/BaseCommand.html#help-java.lang.Object-java.lang.String:A-">help</a>, <a href="../../../co/aikar/commands/BaseCommand.html#setContextFlags-java.lang.Class-java.lang.String-">setContextFlags</a>, <a href="../../../co/aikar/commands/BaseCommand.html#setExceptionHandler-co.aikar.commands.ExceptionHandler-">setExceptionHandler</a>, <a href="../../../co/aikar/commands/BaseCommand.html#showCommandHelp--">showCommandHelp</a>, <a href="../../../co/aikar/commands/BaseCommand.html#showSyntax-co.aikar.commands.CommandIssuer-co.aikar.commands.RegisteredCommand-">showSyntax</a>, <a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-">tabComplete</a>, <a href="../../../co/aikar/commands/BaseCommand.html#tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-boolean-">tabComplete</a></code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
|
||||
@@ -284,30 +282,18 @@ extends <a href="../../../co/aikar/commands/BaseCommand.html" title="class in co
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a name="tabComplete-co.aikar.commands.CommandIssuer-java.lang.String-java.lang.String:A-boolean-">
|
||||
<a name="tabComplete-co.aikar.commands.CommandIssuer-co.aikar.commands.RootCommand-java.lang.String:A-boolean-">
|
||||
<!-- -->
|
||||
</a>
|
||||
<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/ForwardingCommand.html#line.77">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> alias,
|
||||
<a href="../../../co/aikar/commands/RootCommand.html" title="interface in co.aikar.commands">RootCommand</a> rootCommand,
|
||||
<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"><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-boolean-">BaseCommand</a></code></span></div>
|
||||
<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="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-boolean-">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 issuer of the command.</dd>
|
||||
<dd><code>alias</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>
|
||||
|
||||
@@ -431,13 +431,20 @@
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<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">ForwardingCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/ForwardingCommand.html#tabComplete-co.aikar.commands.CommandIssuer-co.aikar.commands.RootCommand-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="../../../../co/aikar/commands/RootCommand.html" title="interface in co.aikar.commands">RootCommand</a> rootCommand,
|
||||
<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>
|
||||
</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>
|
||||
<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>
|
||||
<div class="block">Gets tab completed data from the given command from the user.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowColor">
|
||||
<tr class="altColor">
|
||||
<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-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,
|
||||
@@ -446,13 +453,6 @@
|
||||
<div class="block">Gets the tab complete suggestions from a given command.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<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">ForwardingCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/ForwardingCommand.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> 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,
|
||||
boolean isAsync)</code> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
|
||||
|
||||
@@ -157,6 +157,13 @@
|
||||
</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>
|
||||
<td class="colLast"><span class="typeNameLabel">ForwardingCommand.</span><code><span class="memberNameLink"><a href="../../../../co/aikar/commands/ForwardingCommand.html#tabComplete-co.aikar.commands.CommandIssuer-co.aikar.commands.RootCommand-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="../../../../co/aikar/commands/RootCommand.html" title="interface in co.aikar.commands">RootCommand</a> rootCommand,
|
||||
<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>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
|
||||
|
||||
@@ -1855,7 +1855,7 @@
|
||||
<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-boolean-">tabComplete(CommandIssuer, String, String[], boolean)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/ForwardingCommand.html" title="class in co.aikar.commands">ForwardingCommand</a></dt>
|
||||
<dt><span class="memberNameLink"><a href="co/aikar/commands/ForwardingCommand.html#tabComplete-co.aikar.commands.CommandIssuer-co.aikar.commands.RootCommand-java.lang.String:A-boolean-">tabComplete(CommandIssuer, RootCommand, String[], boolean)</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/CommandHelp.html#testExactMatch-java.lang.String-">testExactMatch(String)</a></span> - Method in class co.aikar.commands.<a href="co/aikar/commands/CommandHelp.html" title="class in co.aikar.commands">CommandHelp</a></dt>
|
||||
<dd> </dd>
|
||||
|
||||
@@ -617,218 +617,223 @@
|
||||
<span class="sourceLineNo">609</span> @SuppressWarnings("WeakerAccess")<a name="line.609"></a>
|
||||
<span class="sourceLineNo">610</span> public List<String> tabComplete(CommandIssuer issuer, String commandLabel, String[] args, boolean isAsync)<a name="line.610"></a>
|
||||
<span class="sourceLineNo">611</span> throws IllegalArgumentException {<a name="line.611"></a>
|
||||
<span class="sourceLineNo">612</span><a name="line.612"></a>
|
||||
<span class="sourceLineNo">613</span> commandLabel = commandLabel.toLowerCase();<a name="line.613"></a>
|
||||
<span class="sourceLineNo">614</span> if (args.length == 0) {<a name="line.614"></a>
|
||||
<span class="sourceLineNo">615</span> args = new String[]{""};<a name="line.615"></a>
|
||||
<span class="sourceLineNo">616</span> }<a name="line.616"></a>
|
||||
<span class="sourceLineNo">617</span> try {<a name="line.617"></a>
|
||||
<span class="sourceLineNo">618</span> CommandRouter router = manager.getRouter();<a name="line.618"></a>
|
||||
<span class="sourceLineNo">619</span> preCommandOperation(issuer, commandLabel, args, isAsync);<a name="line.619"></a>
|
||||
<span class="sourceLineNo">620</span><a name="line.620"></a>
|
||||
<span class="sourceLineNo">621</span> final RouteSearch search = router.routeCommand(commandLabel, args, true);<a name="line.621"></a>
|
||||
<span class="sourceLineNo">622</span><a name="line.622"></a>
|
||||
<span class="sourceLineNo">623</span> final List<String> cmds = new ArrayList<>();<a name="line.623"></a>
|
||||
<span class="sourceLineNo">624</span> if (search != null) {<a name="line.624"></a>
|
||||
<span class="sourceLineNo">625</span> CommandRouter.CommandRouteResult result = router.matchCommand(search, true);<a name="line.625"></a>
|
||||
<span class="sourceLineNo">626</span> if (result != null) {<a name="line.626"></a>
|
||||
<span class="sourceLineNo">627</span> cmds.addAll(completeCommand(issuer, result.cmd, result.args, commandLabel, isAsync));<a name="line.627"></a>
|
||||
<span class="sourceLineNo">628</span> }<a name="line.628"></a>
|
||||
<span class="sourceLineNo">629</span> }<a name="line.629"></a>
|
||||
<span class="sourceLineNo">630</span><a name="line.630"></a>
|
||||
<span class="sourceLineNo">631</span> return filterTabComplete(args[args.length - 1], cmds);<a name="line.631"></a>
|
||||
<span class="sourceLineNo">632</span> } finally {<a name="line.632"></a>
|
||||
<span class="sourceLineNo">633</span> postCommandOperation();<a name="line.633"></a>
|
||||
<span class="sourceLineNo">634</span> }<a name="line.634"></a>
|
||||
<span class="sourceLineNo">635</span> }<a name="line.635"></a>
|
||||
<span class="sourceLineNo">636</span><a name="line.636"></a>
|
||||
<span class="sourceLineNo">637</span> /**<a name="line.637"></a>
|
||||
<span class="sourceLineNo">638</span> * Gets all subcommands which are possible to tabcomplete.<a name="line.638"></a>
|
||||
<span class="sourceLineNo">639</span> *<a name="line.639"></a>
|
||||
<span class="sourceLineNo">640</span> * @param issuer The command issuer.<a name="line.640"></a>
|
||||
<span class="sourceLineNo">641</span> * @param args<a name="line.641"></a>
|
||||
<span class="sourceLineNo">642</span> * @return<a name="line.642"></a>
|
||||
<span class="sourceLineNo">643</span> */<a name="line.643"></a>
|
||||
<span class="sourceLineNo">644</span> List<String> getCommandsForCompletion(CommandIssuer issuer, String[] args) {<a name="line.644"></a>
|
||||
<span class="sourceLineNo">645</span> final Set<String> cmds = new HashSet<>();<a name="line.645"></a>
|
||||
<span class="sourceLineNo">646</span> final int cmdIndex = Math.max(0, args.length - 1);<a name="line.646"></a>
|
||||
<span class="sourceLineNo">647</span> String argString = ApacheCommonsLangUtil.join(args, " ").toLowerCase();<a name="line.647"></a>
|
||||
<span class="sourceLineNo">648</span> for (Map.Entry<String, RegisteredCommand> entry : subCommands.entries()) {<a name="line.648"></a>
|
||||
<span class="sourceLineNo">649</span> final String key = entry.getKey();<a name="line.649"></a>
|
||||
<span class="sourceLineNo">650</span> if (key.startsWith(argString) && !CATCHUNKNOWN.equals(key) && !DEFAULT.equals(key)) {<a name="line.650"></a>
|
||||
<span class="sourceLineNo">651</span> final RegisteredCommand value = entry.getValue();<a name="line.651"></a>
|
||||
<span class="sourceLineNo">652</span> if (!value.hasPermission(issuer) || value.isPrivate) {<a name="line.652"></a>
|
||||
<span class="sourceLineNo">653</span> continue;<a name="line.653"></a>
|
||||
<span class="sourceLineNo">654</span> }<a name="line.654"></a>
|
||||
<span class="sourceLineNo">655</span><a name="line.655"></a>
|
||||
<span class="sourceLineNo">656</span> String[] split = ACFPatterns.SPACE.split(value.prefSubCommand);<a name="line.656"></a>
|
||||
<span class="sourceLineNo">657</span> cmds.add(split[cmdIndex]);<a name="line.657"></a>
|
||||
<span class="sourceLineNo">658</span> }<a name="line.658"></a>
|
||||
<span class="sourceLineNo">659</span> }<a name="line.659"></a>
|
||||
<span class="sourceLineNo">660</span> return new ArrayList<>(cmds);<a name="line.660"></a>
|
||||
<span class="sourceLineNo">661</span> }<a name="line.661"></a>
|
||||
<span class="sourceLineNo">662</span><a name="line.662"></a>
|
||||
<span class="sourceLineNo">663</span> /**<a name="line.663"></a>
|
||||
<span class="sourceLineNo">664</span> * Complete a command properly per issuer and input.<a name="line.664"></a>
|
||||
<span class="sourceLineNo">665</span> *<a name="line.665"></a>
|
||||
<span class="sourceLineNo">666</span> * @param issuer The user who executed this.<a name="line.666"></a>
|
||||
<span class="sourceLineNo">667</span> * @param cmd The command to be completed.<a name="line.667"></a>
|
||||
<span class="sourceLineNo">668</span> * @param args All arguments given by the user.<a name="line.668"></a>
|
||||
<span class="sourceLineNo">669</span> * @param commandLabel The command name the user used.<a name="line.669"></a>
|
||||
<span class="sourceLineNo">670</span> * @param isAsync Whether the command was executed async.<a name="line.670"></a>
|
||||
<span class="sourceLineNo">671</span> * @return All results to complete the command.<a name="line.671"></a>
|
||||
<span class="sourceLineNo">672</span> */<a name="line.672"></a>
|
||||
<span class="sourceLineNo">673</span> private List<String> completeCommand(CommandIssuer issuer, RegisteredCommand cmd, String[] args, String commandLabel, boolean isAsync) {<a name="line.673"></a>
|
||||
<span class="sourceLineNo">674</span> if (!cmd.hasPermission(issuer) || args.length > cmd.consumeInputResolvers || args.length == 0 || cmd.complete == null) {<a name="line.674"></a>
|
||||
<span class="sourceLineNo">675</span> return Collections.emptyList();<a name="line.675"></a>
|
||||
<span class="sourceLineNo">676</span> }<a name="line.676"></a>
|
||||
<span class="sourceLineNo">677</span><a name="line.677"></a>
|
||||
<span class="sourceLineNo">678</span> List<String> cmds = manager.getCommandCompletions().of(cmd, issuer, args, isAsync);<a name="line.678"></a>
|
||||
<span class="sourceLineNo">679</span> return filterTabComplete(args[args.length - 1], cmds);<a name="line.679"></a>
|
||||
<span class="sourceLineNo">680</span> }<a name="line.680"></a>
|
||||
<span class="sourceLineNo">681</span><a name="line.681"></a>
|
||||
<span class="sourceLineNo">682</span> /**<a name="line.682"></a>
|
||||
<span class="sourceLineNo">683</span> * Gets the actual args in string form the user typed<a name="line.683"></a>
|
||||
<span class="sourceLineNo">684</span> * This returns a list of all tab complete options which are possible with the given argument and commands.<a name="line.684"></a>
|
||||
<span class="sourceLineNo">685</span> *<a name="line.685"></a>
|
||||
<span class="sourceLineNo">686</span> * @param arg Argument which was pressed tab on.<a name="line.686"></a>
|
||||
<span class="sourceLineNo">687</span> * @param cmds The possibilities to return.<a name="line.687"></a>
|
||||
<span class="sourceLineNo">688</span> * @return All possible options. This may be empty.<a name="line.688"></a>
|
||||
<span class="sourceLineNo">689</span> */<a name="line.689"></a>
|
||||
<span class="sourceLineNo">690</span> private static List<String> filterTabComplete(String arg, List<String> cmds) {<a name="line.690"></a>
|
||||
<span class="sourceLineNo">691</span> return cmds.stream()<a name="line.691"></a>
|
||||
<span class="sourceLineNo">692</span> .distinct()<a name="line.692"></a>
|
||||
<span class="sourceLineNo">693</span> .filter(cmd -> cmd != null && (arg.isEmpty() || ApacheCommonsLangUtil.startsWithIgnoreCase(cmd, arg)))<a name="line.693"></a>
|
||||
<span class="sourceLineNo">694</span> .collect(Collectors.toList());<a name="line.694"></a>
|
||||
<span class="sourceLineNo">695</span> }<a name="line.695"></a>
|
||||
<span class="sourceLineNo">696</span><a name="line.696"></a>
|
||||
<span class="sourceLineNo">697</span> /**<a name="line.697"></a>
|
||||
<span class="sourceLineNo">698</span> * Executes the precommand and sees whether something is wrong. Ideally, you get false from this.<a name="line.698"></a>
|
||||
<span class="sourceLineNo">699</span> *<a name="line.699"></a>
|
||||
<span class="sourceLineNo">700</span> * @param commandOperationContext The context to use.<a name="line.700"></a>
|
||||
<span class="sourceLineNo">701</span> * @param cmd The command executed.<a name="line.701"></a>
|
||||
<span class="sourceLineNo">702</span> * @param issuer The issuer who executed the command.<a name="line.702"></a>
|
||||
<span class="sourceLineNo">703</span> * @param args The arguments the issuer provided.<a name="line.703"></a>
|
||||
<span class="sourceLineNo">704</span> * @return Whether something went wrong.<a name="line.704"></a>
|
||||
<span class="sourceLineNo">705</span> */<a name="line.705"></a>
|
||||
<span class="sourceLineNo">706</span> private boolean checkPrecommand(CommandOperationContext commandOperationContext, RegisteredCommand cmd, CommandIssuer issuer, String[] args) {<a name="line.706"></a>
|
||||
<span class="sourceLineNo">707</span> Method pre = this.preCommandHandler;<a name="line.707"></a>
|
||||
<span class="sourceLineNo">708</span> if (pre != null) {<a name="line.708"></a>
|
||||
<span class="sourceLineNo">709</span> try {<a name="line.709"></a>
|
||||
<span class="sourceLineNo">710</span> Class<?>[] types = pre.getParameterTypes();<a name="line.710"></a>
|
||||
<span class="sourceLineNo">711</span> Object[] parameters = new Object[pre.getParameterCount()];<a name="line.711"></a>
|
||||
<span class="sourceLineNo">712</span> for (int i = 0; i < parameters.length; i++) {<a name="line.712"></a>
|
||||
<span class="sourceLineNo">713</span> Class<?> type = types[i];<a name="line.713"></a>
|
||||
<span class="sourceLineNo">714</span> Object issuerObject = issuer.getIssuer();<a name="line.714"></a>
|
||||
<span class="sourceLineNo">715</span> if (manager.isCommandIssuer(type) && type.isAssignableFrom(issuerObject.getClass())) {<a name="line.715"></a>
|
||||
<span class="sourceLineNo">716</span> parameters[i] = issuerObject;<a name="line.716"></a>
|
||||
<span class="sourceLineNo">717</span> } else if (CommandIssuer.class.isAssignableFrom(type)) {<a name="line.717"></a>
|
||||
<span class="sourceLineNo">718</span> parameters[i] = issuer;<a name="line.718"></a>
|
||||
<span class="sourceLineNo">719</span> } else if (RegisteredCommand.class.isAssignableFrom(type)) {<a name="line.719"></a>
|
||||
<span class="sourceLineNo">720</span> parameters[i] = cmd;<a name="line.720"></a>
|
||||
<span class="sourceLineNo">721</span> } else if (String[].class.isAssignableFrom((type))) {<a name="line.721"></a>
|
||||
<span class="sourceLineNo">722</span> parameters[i] = args;<a name="line.722"></a>
|
||||
<span class="sourceLineNo">723</span> } else {<a name="line.723"></a>
|
||||
<span class="sourceLineNo">724</span> parameters[i] = null;<a name="line.724"></a>
|
||||
<span class="sourceLineNo">725</span> }<a name="line.725"></a>
|
||||
<span class="sourceLineNo">726</span> }<a name="line.726"></a>
|
||||
<span class="sourceLineNo">727</span><a name="line.727"></a>
|
||||
<span class="sourceLineNo">728</span> return (boolean) pre.invoke(this, parameters);<a name="line.728"></a>
|
||||
<span class="sourceLineNo">729</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.729"></a>
|
||||
<span class="sourceLineNo">730</span> this.manager.log(LogLevel.ERROR, "Exception encountered while command pre-processing", e);<a name="line.730"></a>
|
||||
<span class="sourceLineNo">731</span> }<a name="line.731"></a>
|
||||
<span class="sourceLineNo">732</span> }<a name="line.732"></a>
|
||||
<span class="sourceLineNo">733</span> return false;<a name="line.733"></a>
|
||||
<span class="sourceLineNo">734</span> }<a name="line.734"></a>
|
||||
<span class="sourceLineNo">735</span><a name="line.735"></a>
|
||||
<span class="sourceLineNo">736</span> /**<a name="line.736"></a>
|
||||
<span class="sourceLineNo">737</span> * @deprecated Unstable API<a name="line.737"></a>
|
||||
<span class="sourceLineNo">738</span> */<a name="line.738"></a>
|
||||
<span class="sourceLineNo">739</span> @Deprecated<a name="line.739"></a>
|
||||
<span class="sourceLineNo">740</span> @UnstableAPI<a name="line.740"></a>
|
||||
<span class="sourceLineNo">741</span> public CommandHelp getCommandHelp() {<a name="line.741"></a>
|
||||
<span class="sourceLineNo">742</span> return manager.generateCommandHelp();<a name="line.742"></a>
|
||||
<span class="sourceLineNo">743</span> }<a name="line.743"></a>
|
||||
<span class="sourceLineNo">744</span><a name="line.744"></a>
|
||||
<span class="sourceLineNo">745</span> /**<a name="line.745"></a>
|
||||
<span class="sourceLineNo">746</span> * @deprecated Unstable API<a name="line.746"></a>
|
||||
<span class="sourceLineNo">747</span> */<a name="line.747"></a>
|
||||
<span class="sourceLineNo">748</span> @Deprecated<a name="line.748"></a>
|
||||
<span class="sourceLineNo">749</span> @UnstableAPI<a name="line.749"></a>
|
||||
<span class="sourceLineNo">750</span> public void showCommandHelp() {<a name="line.750"></a>
|
||||
<span class="sourceLineNo">751</span> getCommandHelp().showHelp();<a name="line.751"></a>
|
||||
<span class="sourceLineNo">752</span> }<a name="line.752"></a>
|
||||
<span class="sourceLineNo">753</span><a name="line.753"></a>
|
||||
<span class="sourceLineNo">754</span> public void help(Object issuer, String[] args) {<a name="line.754"></a>
|
||||
<span class="sourceLineNo">755</span> help(manager.getCommandIssuer(issuer), args);<a name="line.755"></a>
|
||||
<span class="sourceLineNo">756</span> }<a name="line.756"></a>
|
||||
<span class="sourceLineNo">757</span><a name="line.757"></a>
|
||||
<span class="sourceLineNo">758</span> public void help(CommandIssuer issuer, String[] args) {<a name="line.758"></a>
|
||||
<span class="sourceLineNo">759</span> issuer.sendMessage(MessageType.ERROR, MessageKeys.UNKNOWN_COMMAND);<a name="line.759"></a>
|
||||
<span class="sourceLineNo">760</span> }<a name="line.760"></a>
|
||||
<span class="sourceLineNo">761</span><a name="line.761"></a>
|
||||
<span class="sourceLineNo">762</span> public void doHelp(Object issuer, String... args) {<a name="line.762"></a>
|
||||
<span class="sourceLineNo">763</span> doHelp(manager.getCommandIssuer(issuer), args);<a name="line.763"></a>
|
||||
<span class="sourceLineNo">764</span> }<a name="line.764"></a>
|
||||
<span class="sourceLineNo">765</span><a name="line.765"></a>
|
||||
<span class="sourceLineNo">766</span> public void doHelp(CommandIssuer issuer, String... args) {<a name="line.766"></a>
|
||||
<span class="sourceLineNo">767</span> help(issuer, args);<a name="line.767"></a>
|
||||
<span class="sourceLineNo">768</span> }<a name="line.768"></a>
|
||||
<span class="sourceLineNo">769</span><a name="line.769"></a>
|
||||
<span class="sourceLineNo">770</span> public void showSyntax(CommandIssuer issuer, RegisteredCommand<?> cmd) {<a name="line.770"></a>
|
||||
<span class="sourceLineNo">771</span> issuer.sendMessage(MessageType.SYNTAX, MessageKeys.INVALID_SYNTAX,<a name="line.771"></a>
|
||||
<span class="sourceLineNo">772</span> "{command}", manager.getCommandPrefix(issuer) + cmd.command,<a name="line.772"></a>
|
||||
<span class="sourceLineNo">773</span> "{syntax}", cmd.syntaxText<a name="line.773"></a>
|
||||
<span class="sourceLineNo">774</span> );<a name="line.774"></a>
|
||||
<span class="sourceLineNo">775</span> }<a name="line.775"></a>
|
||||
<span class="sourceLineNo">776</span><a name="line.776"></a>
|
||||
<span class="sourceLineNo">777</span> public boolean hasPermission(Object issuer) {<a name="line.777"></a>
|
||||
<span class="sourceLineNo">778</span> return hasPermission(manager.getCommandIssuer(issuer));<a name="line.778"></a>
|
||||
<span class="sourceLineNo">779</span> }<a name="line.779"></a>
|
||||
<span class="sourceLineNo">780</span><a name="line.780"></a>
|
||||
<span class="sourceLineNo">781</span> public boolean hasPermission(CommandIssuer issuer) {<a name="line.781"></a>
|
||||
<span class="sourceLineNo">782</span> return getRequiredPermissions().isEmpty() || getRequiredPermissions().stream().allMatch(permission -> manager.hasPermission(issuer, permission));<a name="line.782"></a>
|
||||
<span class="sourceLineNo">783</span> }<a name="line.783"></a>
|
||||
<span class="sourceLineNo">784</span><a name="line.784"></a>
|
||||
<span class="sourceLineNo">785</span> public Set<String> getRequiredPermissions() {<a name="line.785"></a>
|
||||
<span class="sourceLineNo">786</span> return this.permissions;<a name="line.786"></a>
|
||||
<span class="sourceLineNo">787</span> }<a name="line.787"></a>
|
||||
<span class="sourceLineNo">788</span><a name="line.788"></a>
|
||||
<span class="sourceLineNo">789</span> public boolean requiresPermission(String permission) {<a name="line.789"></a>
|
||||
<span class="sourceLineNo">790</span> return getRequiredPermissions().contains(permission);<a name="line.790"></a>
|
||||
<span class="sourceLineNo">791</span> }<a name="line.791"></a>
|
||||
<span class="sourceLineNo">792</span><a name="line.792"></a>
|
||||
<span class="sourceLineNo">793</span> public String getName() {<a name="line.793"></a>
|
||||
<span class="sourceLineNo">794</span> return commandName;<a name="line.794"></a>
|
||||
<span class="sourceLineNo">795</span> }<a name="line.795"></a>
|
||||
<span class="sourceLineNo">796</span><a name="line.796"></a>
|
||||
<span class="sourceLineNo">797</span> public ExceptionHandler getExceptionHandler() {<a name="line.797"></a>
|
||||
<span class="sourceLineNo">798</span> return exceptionHandler;<a name="line.798"></a>
|
||||
<span class="sourceLineNo">799</span> }<a name="line.799"></a>
|
||||
<span class="sourceLineNo">800</span><a name="line.800"></a>
|
||||
<span class="sourceLineNo">801</span> public BaseCommand setExceptionHandler(ExceptionHandler exceptionHandler) {<a name="line.801"></a>
|
||||
<span class="sourceLineNo">802</span> this.exceptionHandler = exceptionHandler;<a name="line.802"></a>
|
||||
<span class="sourceLineNo">803</span> return this;<a name="line.803"></a>
|
||||
<span class="sourceLineNo">612</span> return tabComplete(issuer, manager.getRootCommand(commandLabel.toLowerCase()), args, isAsync);<a name="line.612"></a>
|
||||
<span class="sourceLineNo">613</span> }<a name="line.613"></a>
|
||||
<span class="sourceLineNo">614</span><a name="line.614"></a>
|
||||
<span class="sourceLineNo">615</span> List<String> tabComplete(CommandIssuer issuer, RootCommand rootCommand, String[] args, boolean isAsync)<a name="line.615"></a>
|
||||
<span class="sourceLineNo">616</span> throws IllegalArgumentException {<a name="line.616"></a>
|
||||
<span class="sourceLineNo">617</span> if (args.length == 0) {<a name="line.617"></a>
|
||||
<span class="sourceLineNo">618</span> args = new String[]{""};<a name="line.618"></a>
|
||||
<span class="sourceLineNo">619</span> }<a name="line.619"></a>
|
||||
<span class="sourceLineNo">620</span> String commandLabel = rootCommand.getCommandName();<a name="line.620"></a>
|
||||
<span class="sourceLineNo">621</span> try {<a name="line.621"></a>
|
||||
<span class="sourceLineNo">622</span> CommandRouter router = manager.getRouter();<a name="line.622"></a>
|
||||
<span class="sourceLineNo">623</span><a name="line.623"></a>
|
||||
<span class="sourceLineNo">624</span> preCommandOperation(issuer, commandLabel, args, isAsync);<a name="line.624"></a>
|
||||
<span class="sourceLineNo">625</span><a name="line.625"></a>
|
||||
<span class="sourceLineNo">626</span> final RouteSearch search = router.routeCommand(rootCommand, commandLabel, args, true);<a name="line.626"></a>
|
||||
<span class="sourceLineNo">627</span><a name="line.627"></a>
|
||||
<span class="sourceLineNo">628</span> final List<String> cmds = new ArrayList<>();<a name="line.628"></a>
|
||||
<span class="sourceLineNo">629</span> if (search != null) {<a name="line.629"></a>
|
||||
<span class="sourceLineNo">630</span> CommandRouter.CommandRouteResult result = router.matchCommand(search, true);<a name="line.630"></a>
|
||||
<span class="sourceLineNo">631</span> if (result != null) {<a name="line.631"></a>
|
||||
<span class="sourceLineNo">632</span> cmds.addAll(completeCommand(issuer, result.cmd, result.args, commandLabel, isAsync));<a name="line.632"></a>
|
||||
<span class="sourceLineNo">633</span> }<a name="line.633"></a>
|
||||
<span class="sourceLineNo">634</span> }<a name="line.634"></a>
|
||||
<span class="sourceLineNo">635</span><a name="line.635"></a>
|
||||
<span class="sourceLineNo">636</span> return filterTabComplete(args[args.length - 1], cmds);<a name="line.636"></a>
|
||||
<span class="sourceLineNo">637</span> } finally {<a name="line.637"></a>
|
||||
<span class="sourceLineNo">638</span> postCommandOperation();<a name="line.638"></a>
|
||||
<span class="sourceLineNo">639</span> }<a name="line.639"></a>
|
||||
<span class="sourceLineNo">640</span> }<a name="line.640"></a>
|
||||
<span class="sourceLineNo">641</span><a name="line.641"></a>
|
||||
<span class="sourceLineNo">642</span> /**<a name="line.642"></a>
|
||||
<span class="sourceLineNo">643</span> * Gets all subcommands which are possible to tabcomplete.<a name="line.643"></a>
|
||||
<span class="sourceLineNo">644</span> *<a name="line.644"></a>
|
||||
<span class="sourceLineNo">645</span> * @param issuer The command issuer.<a name="line.645"></a>
|
||||
<span class="sourceLineNo">646</span> * @param args<a name="line.646"></a>
|
||||
<span class="sourceLineNo">647</span> * @return<a name="line.647"></a>
|
||||
<span class="sourceLineNo">648</span> */<a name="line.648"></a>
|
||||
<span class="sourceLineNo">649</span> List<String> getCommandsForCompletion(CommandIssuer issuer, String[] args) {<a name="line.649"></a>
|
||||
<span class="sourceLineNo">650</span> final Set<String> cmds = new HashSet<>();<a name="line.650"></a>
|
||||
<span class="sourceLineNo">651</span> final int cmdIndex = Math.max(0, args.length - 1);<a name="line.651"></a>
|
||||
<span class="sourceLineNo">652</span> String argString = ApacheCommonsLangUtil.join(args, " ").toLowerCase();<a name="line.652"></a>
|
||||
<span class="sourceLineNo">653</span> for (Map.Entry<String, RegisteredCommand> entry : subCommands.entries()) {<a name="line.653"></a>
|
||||
<span class="sourceLineNo">654</span> final String key = entry.getKey();<a name="line.654"></a>
|
||||
<span class="sourceLineNo">655</span> if (key.startsWith(argString) && !CATCHUNKNOWN.equals(key) && !DEFAULT.equals(key)) {<a name="line.655"></a>
|
||||
<span class="sourceLineNo">656</span> final RegisteredCommand value = entry.getValue();<a name="line.656"></a>
|
||||
<span class="sourceLineNo">657</span> if (!value.hasPermission(issuer) || value.isPrivate) {<a name="line.657"></a>
|
||||
<span class="sourceLineNo">658</span> continue;<a name="line.658"></a>
|
||||
<span class="sourceLineNo">659</span> }<a name="line.659"></a>
|
||||
<span class="sourceLineNo">660</span><a name="line.660"></a>
|
||||
<span class="sourceLineNo">661</span> String[] split = ACFPatterns.SPACE.split(value.prefSubCommand);<a name="line.661"></a>
|
||||
<span class="sourceLineNo">662</span> cmds.add(split[cmdIndex]);<a name="line.662"></a>
|
||||
<span class="sourceLineNo">663</span> }<a name="line.663"></a>
|
||||
<span class="sourceLineNo">664</span> }<a name="line.664"></a>
|
||||
<span class="sourceLineNo">665</span> return new ArrayList<>(cmds);<a name="line.665"></a>
|
||||
<span class="sourceLineNo">666</span> }<a name="line.666"></a>
|
||||
<span class="sourceLineNo">667</span><a name="line.667"></a>
|
||||
<span class="sourceLineNo">668</span> /**<a name="line.668"></a>
|
||||
<span class="sourceLineNo">669</span> * Complete a command properly per issuer and input.<a name="line.669"></a>
|
||||
<span class="sourceLineNo">670</span> *<a name="line.670"></a>
|
||||
<span class="sourceLineNo">671</span> * @param issuer The user who executed this.<a name="line.671"></a>
|
||||
<span class="sourceLineNo">672</span> * @param cmd The command to be completed.<a name="line.672"></a>
|
||||
<span class="sourceLineNo">673</span> * @param args All arguments given by the user.<a name="line.673"></a>
|
||||
<span class="sourceLineNo">674</span> * @param commandLabel The command name the user used.<a name="line.674"></a>
|
||||
<span class="sourceLineNo">675</span> * @param isAsync Whether the command was executed async.<a name="line.675"></a>
|
||||
<span class="sourceLineNo">676</span> * @return All results to complete the command.<a name="line.676"></a>
|
||||
<span class="sourceLineNo">677</span> */<a name="line.677"></a>
|
||||
<span class="sourceLineNo">678</span> private List<String> completeCommand(CommandIssuer issuer, RegisteredCommand cmd, String[] args, String commandLabel, boolean isAsync) {<a name="line.678"></a>
|
||||
<span class="sourceLineNo">679</span> if (!cmd.hasPermission(issuer) || args.length > cmd.consumeInputResolvers || args.length == 0 || cmd.complete == null) {<a name="line.679"></a>
|
||||
<span class="sourceLineNo">680</span> return Collections.emptyList();<a name="line.680"></a>
|
||||
<span class="sourceLineNo">681</span> }<a name="line.681"></a>
|
||||
<span class="sourceLineNo">682</span><a name="line.682"></a>
|
||||
<span class="sourceLineNo">683</span> List<String> cmds = manager.getCommandCompletions().of(cmd, issuer, args, isAsync);<a name="line.683"></a>
|
||||
<span class="sourceLineNo">684</span> return filterTabComplete(args[args.length - 1], cmds);<a name="line.684"></a>
|
||||
<span class="sourceLineNo">685</span> }<a name="line.685"></a>
|
||||
<span class="sourceLineNo">686</span><a name="line.686"></a>
|
||||
<span class="sourceLineNo">687</span> /**<a name="line.687"></a>
|
||||
<span class="sourceLineNo">688</span> * Gets the actual args in string form the user typed<a name="line.688"></a>
|
||||
<span class="sourceLineNo">689</span> * This returns a list of all tab complete options which are possible with the given argument and commands.<a name="line.689"></a>
|
||||
<span class="sourceLineNo">690</span> *<a name="line.690"></a>
|
||||
<span class="sourceLineNo">691</span> * @param arg Argument which was pressed tab on.<a name="line.691"></a>
|
||||
<span class="sourceLineNo">692</span> * @param cmds The possibilities to return.<a name="line.692"></a>
|
||||
<span class="sourceLineNo">693</span> * @return All possible options. This may be empty.<a name="line.693"></a>
|
||||
<span class="sourceLineNo">694</span> */<a name="line.694"></a>
|
||||
<span class="sourceLineNo">695</span> private static List<String> filterTabComplete(String arg, List<String> cmds) {<a name="line.695"></a>
|
||||
<span class="sourceLineNo">696</span> return cmds.stream()<a name="line.696"></a>
|
||||
<span class="sourceLineNo">697</span> .distinct()<a name="line.697"></a>
|
||||
<span class="sourceLineNo">698</span> .filter(cmd -> cmd != null && (arg.isEmpty() || ApacheCommonsLangUtil.startsWithIgnoreCase(cmd, arg)))<a name="line.698"></a>
|
||||
<span class="sourceLineNo">699</span> .collect(Collectors.toList());<a name="line.699"></a>
|
||||
<span class="sourceLineNo">700</span> }<a name="line.700"></a>
|
||||
<span class="sourceLineNo">701</span><a name="line.701"></a>
|
||||
<span class="sourceLineNo">702</span> /**<a name="line.702"></a>
|
||||
<span class="sourceLineNo">703</span> * Executes the precommand and sees whether something is wrong. Ideally, you get false from this.<a name="line.703"></a>
|
||||
<span class="sourceLineNo">704</span> *<a name="line.704"></a>
|
||||
<span class="sourceLineNo">705</span> * @param commandOperationContext The context to use.<a name="line.705"></a>
|
||||
<span class="sourceLineNo">706</span> * @param cmd The command executed.<a name="line.706"></a>
|
||||
<span class="sourceLineNo">707</span> * @param issuer The issuer who executed the command.<a name="line.707"></a>
|
||||
<span class="sourceLineNo">708</span> * @param args The arguments the issuer provided.<a name="line.708"></a>
|
||||
<span class="sourceLineNo">709</span> * @return Whether something went wrong.<a name="line.709"></a>
|
||||
<span class="sourceLineNo">710</span> */<a name="line.710"></a>
|
||||
<span class="sourceLineNo">711</span> private boolean checkPrecommand(CommandOperationContext commandOperationContext, RegisteredCommand cmd, CommandIssuer issuer, String[] args) {<a name="line.711"></a>
|
||||
<span class="sourceLineNo">712</span> Method pre = this.preCommandHandler;<a name="line.712"></a>
|
||||
<span class="sourceLineNo">713</span> if (pre != null) {<a name="line.713"></a>
|
||||
<span class="sourceLineNo">714</span> try {<a name="line.714"></a>
|
||||
<span class="sourceLineNo">715</span> Class<?>[] types = pre.getParameterTypes();<a name="line.715"></a>
|
||||
<span class="sourceLineNo">716</span> Object[] parameters = new Object[pre.getParameterCount()];<a name="line.716"></a>
|
||||
<span class="sourceLineNo">717</span> for (int i = 0; i < parameters.length; i++) {<a name="line.717"></a>
|
||||
<span class="sourceLineNo">718</span> Class<?> type = types[i];<a name="line.718"></a>
|
||||
<span class="sourceLineNo">719</span> Object issuerObject = issuer.getIssuer();<a name="line.719"></a>
|
||||
<span class="sourceLineNo">720</span> if (manager.isCommandIssuer(type) && type.isAssignableFrom(issuerObject.getClass())) {<a name="line.720"></a>
|
||||
<span class="sourceLineNo">721</span> parameters[i] = issuerObject;<a name="line.721"></a>
|
||||
<span class="sourceLineNo">722</span> } else if (CommandIssuer.class.isAssignableFrom(type)) {<a name="line.722"></a>
|
||||
<span class="sourceLineNo">723</span> parameters[i] = issuer;<a name="line.723"></a>
|
||||
<span class="sourceLineNo">724</span> } else if (RegisteredCommand.class.isAssignableFrom(type)) {<a name="line.724"></a>
|
||||
<span class="sourceLineNo">725</span> parameters[i] = cmd;<a name="line.725"></a>
|
||||
<span class="sourceLineNo">726</span> } else if (String[].class.isAssignableFrom((type))) {<a name="line.726"></a>
|
||||
<span class="sourceLineNo">727</span> parameters[i] = args;<a name="line.727"></a>
|
||||
<span class="sourceLineNo">728</span> } else {<a name="line.728"></a>
|
||||
<span class="sourceLineNo">729</span> parameters[i] = null;<a name="line.729"></a>
|
||||
<span class="sourceLineNo">730</span> }<a name="line.730"></a>
|
||||
<span class="sourceLineNo">731</span> }<a name="line.731"></a>
|
||||
<span class="sourceLineNo">732</span><a name="line.732"></a>
|
||||
<span class="sourceLineNo">733</span> return (boolean) pre.invoke(this, parameters);<a name="line.733"></a>
|
||||
<span class="sourceLineNo">734</span> } catch (IllegalAccessException | InvocationTargetException e) {<a name="line.734"></a>
|
||||
<span class="sourceLineNo">735</span> this.manager.log(LogLevel.ERROR, "Exception encountered while command pre-processing", e);<a name="line.735"></a>
|
||||
<span class="sourceLineNo">736</span> }<a name="line.736"></a>
|
||||
<span class="sourceLineNo">737</span> }<a name="line.737"></a>
|
||||
<span class="sourceLineNo">738</span> return false;<a name="line.738"></a>
|
||||
<span class="sourceLineNo">739</span> }<a name="line.739"></a>
|
||||
<span class="sourceLineNo">740</span><a name="line.740"></a>
|
||||
<span class="sourceLineNo">741</span> /**<a name="line.741"></a>
|
||||
<span class="sourceLineNo">742</span> * @deprecated Unstable API<a name="line.742"></a>
|
||||
<span class="sourceLineNo">743</span> */<a name="line.743"></a>
|
||||
<span class="sourceLineNo">744</span> @Deprecated<a name="line.744"></a>
|
||||
<span class="sourceLineNo">745</span> @UnstableAPI<a name="line.745"></a>
|
||||
<span class="sourceLineNo">746</span> public CommandHelp getCommandHelp() {<a name="line.746"></a>
|
||||
<span class="sourceLineNo">747</span> return manager.generateCommandHelp();<a name="line.747"></a>
|
||||
<span class="sourceLineNo">748</span> }<a name="line.748"></a>
|
||||
<span class="sourceLineNo">749</span><a name="line.749"></a>
|
||||
<span class="sourceLineNo">750</span> /**<a name="line.750"></a>
|
||||
<span class="sourceLineNo">751</span> * @deprecated Unstable API<a name="line.751"></a>
|
||||
<span class="sourceLineNo">752</span> */<a name="line.752"></a>
|
||||
<span class="sourceLineNo">753</span> @Deprecated<a name="line.753"></a>
|
||||
<span class="sourceLineNo">754</span> @UnstableAPI<a name="line.754"></a>
|
||||
<span class="sourceLineNo">755</span> public void showCommandHelp() {<a name="line.755"></a>
|
||||
<span class="sourceLineNo">756</span> getCommandHelp().showHelp();<a name="line.756"></a>
|
||||
<span class="sourceLineNo">757</span> }<a name="line.757"></a>
|
||||
<span class="sourceLineNo">758</span><a name="line.758"></a>
|
||||
<span class="sourceLineNo">759</span> public void help(Object issuer, String[] args) {<a name="line.759"></a>
|
||||
<span class="sourceLineNo">760</span> help(manager.getCommandIssuer(issuer), args);<a name="line.760"></a>
|
||||
<span class="sourceLineNo">761</span> }<a name="line.761"></a>
|
||||
<span class="sourceLineNo">762</span><a name="line.762"></a>
|
||||
<span class="sourceLineNo">763</span> public void help(CommandIssuer issuer, String[] args) {<a name="line.763"></a>
|
||||
<span class="sourceLineNo">764</span> issuer.sendMessage(MessageType.ERROR, MessageKeys.UNKNOWN_COMMAND);<a name="line.764"></a>
|
||||
<span class="sourceLineNo">765</span> }<a name="line.765"></a>
|
||||
<span class="sourceLineNo">766</span><a name="line.766"></a>
|
||||
<span class="sourceLineNo">767</span> public void doHelp(Object issuer, String... args) {<a name="line.767"></a>
|
||||
<span class="sourceLineNo">768</span> doHelp(manager.getCommandIssuer(issuer), args);<a name="line.768"></a>
|
||||
<span class="sourceLineNo">769</span> }<a name="line.769"></a>
|
||||
<span class="sourceLineNo">770</span><a name="line.770"></a>
|
||||
<span class="sourceLineNo">771</span> public void doHelp(CommandIssuer issuer, String... args) {<a name="line.771"></a>
|
||||
<span class="sourceLineNo">772</span> help(issuer, args);<a name="line.772"></a>
|
||||
<span class="sourceLineNo">773</span> }<a name="line.773"></a>
|
||||
<span class="sourceLineNo">774</span><a name="line.774"></a>
|
||||
<span class="sourceLineNo">775</span> public void showSyntax(CommandIssuer issuer, RegisteredCommand<?> cmd) {<a name="line.775"></a>
|
||||
<span class="sourceLineNo">776</span> issuer.sendMessage(MessageType.SYNTAX, MessageKeys.INVALID_SYNTAX,<a name="line.776"></a>
|
||||
<span class="sourceLineNo">777</span> "{command}", manager.getCommandPrefix(issuer) + cmd.command,<a name="line.777"></a>
|
||||
<span class="sourceLineNo">778</span> "{syntax}", cmd.syntaxText<a name="line.778"></a>
|
||||
<span class="sourceLineNo">779</span> );<a name="line.779"></a>
|
||||
<span class="sourceLineNo">780</span> }<a name="line.780"></a>
|
||||
<span class="sourceLineNo">781</span><a name="line.781"></a>
|
||||
<span class="sourceLineNo">782</span> public boolean hasPermission(Object issuer) {<a name="line.782"></a>
|
||||
<span class="sourceLineNo">783</span> return hasPermission(manager.getCommandIssuer(issuer));<a name="line.783"></a>
|
||||
<span class="sourceLineNo">784</span> }<a name="line.784"></a>
|
||||
<span class="sourceLineNo">785</span><a name="line.785"></a>
|
||||
<span class="sourceLineNo">786</span> public boolean hasPermission(CommandIssuer issuer) {<a name="line.786"></a>
|
||||
<span class="sourceLineNo">787</span> return getRequiredPermissions().isEmpty() || getRequiredPermissions().stream().allMatch(permission -> manager.hasPermission(issuer, permission));<a name="line.787"></a>
|
||||
<span class="sourceLineNo">788</span> }<a name="line.788"></a>
|
||||
<span class="sourceLineNo">789</span><a name="line.789"></a>
|
||||
<span class="sourceLineNo">790</span> public Set<String> getRequiredPermissions() {<a name="line.790"></a>
|
||||
<span class="sourceLineNo">791</span> return this.permissions;<a name="line.791"></a>
|
||||
<span class="sourceLineNo">792</span> }<a name="line.792"></a>
|
||||
<span class="sourceLineNo">793</span><a name="line.793"></a>
|
||||
<span class="sourceLineNo">794</span> public boolean requiresPermission(String permission) {<a name="line.794"></a>
|
||||
<span class="sourceLineNo">795</span> return getRequiredPermissions().contains(permission);<a name="line.795"></a>
|
||||
<span class="sourceLineNo">796</span> }<a name="line.796"></a>
|
||||
<span class="sourceLineNo">797</span><a name="line.797"></a>
|
||||
<span class="sourceLineNo">798</span> public String getName() {<a name="line.798"></a>
|
||||
<span class="sourceLineNo">799</span> return commandName;<a name="line.799"></a>
|
||||
<span class="sourceLineNo">800</span> }<a name="line.800"></a>
|
||||
<span class="sourceLineNo">801</span><a name="line.801"></a>
|
||||
<span class="sourceLineNo">802</span> public ExceptionHandler getExceptionHandler() {<a name="line.802"></a>
|
||||
<span class="sourceLineNo">803</span> return exceptionHandler;<a name="line.803"></a>
|
||||
<span class="sourceLineNo">804</span> }<a name="line.804"></a>
|
||||
<span class="sourceLineNo">805</span><a name="line.805"></a>
|
||||
<span class="sourceLineNo">806</span> public RegisteredCommand getDefaultRegisteredCommand() {<a name="line.806"></a>
|
||||
<span class="sourceLineNo">807</span> return ACFUtil.getFirstElement(this.subCommands.get(DEFAULT));<a name="line.807"></a>
|
||||
<span class="sourceLineNo">808</span> }<a name="line.808"></a>
|
||||
<span class="sourceLineNo">809</span><a name="line.809"></a>
|
||||
<span class="sourceLineNo">810</span> public String setContextFlags(Class<?> cls, String flags) {<a name="line.810"></a>
|
||||
<span class="sourceLineNo">811</span> return this.contextFlags.put(cls, flags);<a name="line.811"></a>
|
||||
<span class="sourceLineNo">812</span> }<a name="line.812"></a>
|
||||
<span class="sourceLineNo">813</span><a name="line.813"></a>
|
||||
<span class="sourceLineNo">814</span> public String getContextFlags(Class<?> cls) {<a name="line.814"></a>
|
||||
<span class="sourceLineNo">815</span> return this.contextFlags.get(cls);<a name="line.815"></a>
|
||||
<span class="sourceLineNo">816</span> }<a name="line.816"></a>
|
||||
<span class="sourceLineNo">817</span><a name="line.817"></a>
|
||||
<span class="sourceLineNo">818</span> public List<RegisteredCommand> getRegisteredCommands() {<a name="line.818"></a>
|
||||
<span class="sourceLineNo">819</span> List<RegisteredCommand> registeredCommands = new ArrayList<>();<a name="line.819"></a>
|
||||
<span class="sourceLineNo">820</span> registeredCommands.addAll(this.subCommands.values());<a name="line.820"></a>
|
||||
<span class="sourceLineNo">821</span> return registeredCommands;<a name="line.821"></a>
|
||||
<span class="sourceLineNo">822</span> }<a name="line.822"></a>
|
||||
<span class="sourceLineNo">823</span>}<a name="line.823"></a>
|
||||
<span class="sourceLineNo">806</span> public BaseCommand setExceptionHandler(ExceptionHandler exceptionHandler) {<a name="line.806"></a>
|
||||
<span class="sourceLineNo">807</span> this.exceptionHandler = exceptionHandler;<a name="line.807"></a>
|
||||
<span class="sourceLineNo">808</span> return this;<a name="line.808"></a>
|
||||
<span class="sourceLineNo">809</span> }<a name="line.809"></a>
|
||||
<span class="sourceLineNo">810</span><a name="line.810"></a>
|
||||
<span class="sourceLineNo">811</span> public RegisteredCommand getDefaultRegisteredCommand() {<a name="line.811"></a>
|
||||
<span class="sourceLineNo">812</span> return ACFUtil.getFirstElement(this.subCommands.get(DEFAULT));<a name="line.812"></a>
|
||||
<span class="sourceLineNo">813</span> }<a name="line.813"></a>
|
||||
<span class="sourceLineNo">814</span><a name="line.814"></a>
|
||||
<span class="sourceLineNo">815</span> public String setContextFlags(Class<?> cls, String flags) {<a name="line.815"></a>
|
||||
<span class="sourceLineNo">816</span> return this.contextFlags.put(cls, flags);<a name="line.816"></a>
|
||||
<span class="sourceLineNo">817</span> }<a name="line.817"></a>
|
||||
<span class="sourceLineNo">818</span><a name="line.818"></a>
|
||||
<span class="sourceLineNo">819</span> public String getContextFlags(Class<?> cls) {<a name="line.819"></a>
|
||||
<span class="sourceLineNo">820</span> return this.contextFlags.get(cls);<a name="line.820"></a>
|
||||
<span class="sourceLineNo">821</span> }<a name="line.821"></a>
|
||||
<span class="sourceLineNo">822</span><a name="line.822"></a>
|
||||
<span class="sourceLineNo">823</span> public List<RegisteredCommand> getRegisteredCommands() {<a name="line.823"></a>
|
||||
<span class="sourceLineNo">824</span> List<RegisteredCommand> registeredCommands = new ArrayList<>();<a name="line.824"></a>
|
||||
<span class="sourceLineNo">825</span> registeredCommands.addAll(this.subCommands.values());<a name="line.825"></a>
|
||||
<span class="sourceLineNo">826</span> return registeredCommands;<a name="line.826"></a>
|
||||
<span class="sourceLineNo">827</span> }<a name="line.827"></a>
|
||||
<span class="sourceLineNo">828</span>}<a name="line.828"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -82,8 +82,8 @@
|
||||
<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> @Override<a name="line.76"></a>
|
||||
<span class="sourceLineNo">077</span> public List<String> tabComplete(CommandIssuer issuer, String alias, String[] args, boolean isAsync) throws IllegalArgumentException {<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span> return command.tabComplete(issuer, alias, ApacheCommonsLangUtil.addAll(baseArgs, args), isAsync);<a name="line.78"></a>
|
||||
<span class="sourceLineNo">077</span> public List<String> tabComplete(CommandIssuer issuer, RootCommand rootCommand, String[] args, boolean isAsync) throws IllegalArgumentException {<a name="line.77"></a>
|
||||
<span class="sourceLineNo">078</span> return command.tabComplete(issuer, rootCommand, args, isAsync);<a name="line.78"></a>
|
||||
<span class="sourceLineNo">079</span> }<a name="line.79"></a>
|
||||
<span class="sourceLineNo">080</span><a name="line.80"></a>
|
||||
<span class="sourceLineNo">081</span> @Override<a name="line.81"></a>
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
<span class="sourceLineNo">122</span> Set<String> completions = new HashSet<>();<a name="line.122"></a>
|
||||
<span class="sourceLineNo">123</span> getChildren().forEach(child -> {<a name="line.123"></a>
|
||||
<span class="sourceLineNo">124</span> if (!commandsOnly) {<a name="line.124"></a>
|
||||
<span class="sourceLineNo">125</span> completions.addAll(child.tabComplete(sender, alias, args, isAsync));<a name="line.125"></a>
|
||||
<span class="sourceLineNo">125</span> completions.addAll(child.tabComplete(sender, this, args, isAsync));<a name="line.125"></a>
|
||||
<span class="sourceLineNo">126</span> }<a name="line.126"></a>
|
||||
<span class="sourceLineNo">127</span> completions.addAll(child.getCommandsForCompletion(sender, args));<a name="line.127"></a>
|
||||
<span class="sourceLineNo">128</span> });<a name="line.128"></a>
|
||||
|
||||
Reference in New Issue
Block a user