Added command help and fixed a general help command implementation.
This commit is contained in:
parent
5ee13b7af9
commit
1a8a8e0e21
53
src/com/massivecraft/mcore1/cmd/HelpCommand.java
Normal file
53
src/com/massivecraft/mcore1/cmd/HelpCommand.java
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
package com.massivecraft.mcore1.cmd;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.massivecraft.mcore1.MPlugin;
|
||||||
|
import com.massivecraft.mcore1.cmd.MCommand;
|
||||||
|
|
||||||
|
public class HelpCommand extends MCommand
|
||||||
|
{
|
||||||
|
private HelpCommand()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
this.addAliases("?", "h", "help");
|
||||||
|
this.setDesc("");
|
||||||
|
this.addOptionalArg("page","1");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void perform()
|
||||||
|
{
|
||||||
|
if (this.commandChain.size() == 0) return;
|
||||||
|
MCommand parentCommand = this.commandChain.get(this.commandChain.size()-1);
|
||||||
|
|
||||||
|
ArrayList<String> lines = new ArrayList<String>();
|
||||||
|
|
||||||
|
lines.addAll(p().txt.parse(parentCommand.getHelp()));
|
||||||
|
|
||||||
|
for(MCommand subCommand : parentCommand.getSubCommands())
|
||||||
|
{
|
||||||
|
if (subCommand.visibleTo(sender))
|
||||||
|
{
|
||||||
|
lines.add(subCommand.getUseageTemplate(this.commandChain, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer pagenumber = this.argAs(0, Integer.class, 1);
|
||||||
|
if (pagenumber == null) return;
|
||||||
|
sendMessage(p().txt.getPage(lines, pagenumber, "Help for command \""+parentCommand.getAliases().get(0)+"\""));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MPlugin p()
|
||||||
|
{
|
||||||
|
if (this.commandChain.size() == 0) return null;
|
||||||
|
return this.commandChain.get(this.commandChain.size()-1).p();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static HelpCommand instance = new HelpCommand();
|
||||||
|
public static HelpCommand getInstance()
|
||||||
|
{
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
@ -95,6 +95,13 @@ public abstract class MCommand
|
|||||||
public String getDescPermission() { return this.descPermission; }
|
public String getDescPermission() { return this.descPermission; }
|
||||||
public void setDescPermission(String val) { this.descPermission = val; }
|
public void setDescPermission(String val) { this.descPermission = val; }
|
||||||
|
|
||||||
|
// FIELD: help
|
||||||
|
// This is a multi-line help text for the command.
|
||||||
|
protected List<String> help = new ArrayList<String>();
|
||||||
|
public void setHelp(List<String> val) { this.help = val; }
|
||||||
|
public void setHelp(String... val) { this.help = Arrays.asList(val); }
|
||||||
|
public List<String> getHelp() { return this.help; }
|
||||||
|
|
||||||
// FIELD: visibilityMode
|
// FIELD: visibilityMode
|
||||||
protected VisibilityMode visibilityMode;
|
protected VisibilityMode visibilityMode;
|
||||||
public VisibilityMode getVisibilityMode() { return this.visibilityMode; }
|
public VisibilityMode getVisibilityMode() { return this.visibilityMode; }
|
||||||
|
Loading…
Reference in New Issue
Block a user