Merge pull request #167 from envizar/command
This commit is contained in:
commit
65d768667c
2 changed files with 16 additions and 4 deletions
|
@ -26,12 +26,18 @@ public class CreateCommand implements CommandHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(CommandContext context) throws CommandExecutionException {
|
public void run(CommandContext context) throws CommandExecutionException {
|
||||||
context.setUsage(context.getLabel() + " create <id> <type>");
|
context.setUsage(context.getLabel() + " create <id> [<type>]");
|
||||||
Player player = context.ensureSenderIsPlayer();
|
Player player = context.ensureSenderIsPlayer();
|
||||||
|
|
||||||
String id = context.popString();
|
String id = context.popString();
|
||||||
if (npcRegistry.getById(id) != null) context.halt(Component.text("NPC with that ID already exists.", NamedTextColor.RED));
|
if (npcRegistry.getById(id) != null) context.halt(Component.text("NPC with that ID already exists.", NamedTextColor.RED));
|
||||||
NpcTypeImpl type = context.parse(NpcTypeImpl.class);
|
|
||||||
|
NpcTypeImpl type;
|
||||||
|
if (context.argSize() == 1) {
|
||||||
|
type = context.parse(NpcTypeImpl.class);
|
||||||
|
} else {
|
||||||
|
type = typeRegistry.getByName("player");
|
||||||
|
}
|
||||||
|
|
||||||
NpcEntryImpl entry = npcRegistry.create(id, player.getWorld(), type, new NpcLocation(player.getLocation()));
|
NpcEntryImpl entry = npcRegistry.create(id, player.getWorld(), type, new NpcLocation(player.getLocation()));
|
||||||
entry.enableEverything();
|
entry.enableEverything();
|
||||||
|
|
|
@ -21,9 +21,14 @@ public class ToggleCommand implements CommandHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(CommandContext context) throws CommandExecutionException {
|
public void run(CommandContext context) throws CommandExecutionException {
|
||||||
context.setUsage(context.getLabel() + " toggle <id>");
|
context.setUsage(context.getLabel() + " toggle <id> [<enable/disable>]");
|
||||||
NpcImpl npc = context.parse(NpcEntryImpl.class).getNpc();
|
NpcImpl npc = context.parse(NpcEntryImpl.class).getNpc();
|
||||||
boolean enabled = !npc.isEnabled();
|
boolean enabled;
|
||||||
|
if (context.argSize() == 1) {
|
||||||
|
enabled = context.popString().equalsIgnoreCase("enable");
|
||||||
|
} else {
|
||||||
|
enabled = !npc.isEnabled();
|
||||||
|
}
|
||||||
npc.setEnabled(enabled);
|
npc.setEnabled(enabled);
|
||||||
context.send(Component.text("NPC has been " + (enabled ? "enabled" : "disabled"), NamedTextColor.GREEN));
|
context.send(Component.text("NPC has been " + (enabled ? "enabled" : "disabled"), NamedTextColor.GREEN));
|
||||||
}
|
}
|
||||||
|
@ -31,6 +36,7 @@ public class ToggleCommand implements CommandHandler {
|
||||||
@Override
|
@Override
|
||||||
public List<String> suggest(CommandContext context) throws CommandExecutionException {
|
public List<String> suggest(CommandContext context) throws CommandExecutionException {
|
||||||
if (context.argSize() == 1) return context.suggestCollection(npcRegistry.getModifiableIds());
|
if (context.argSize() == 1) return context.suggestCollection(npcRegistry.getModifiableIds());
|
||||||
|
if (context.argSize() == 2) return context.suggestLiteral("enable", "disable");
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue