package net.citizensnpcs.commands; import java.util.Collection; import java.util.stream.Collectors; import org.bukkit.command.CommandSender; import com.google.common.base.Joiner; import net.citizensnpcs.Citizens; import net.citizensnpcs.api.command.Arg; import net.citizensnpcs.api.command.Arg.CompletionsProvider; import net.citizensnpcs.api.command.Command; import net.citizensnpcs.api.command.CommandContext; import net.citizensnpcs.api.command.Requirements; import net.citizensnpcs.api.command.exception.CommandException; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.templates.Template; import net.citizensnpcs.api.npc.templates.TemplateRegistry; import net.citizensnpcs.api.util.Messaging; import net.citizensnpcs.util.Messages; @Requirements(selected = true, ownership = true) public class TemplateCommands { private final TemplateRegistry registry; public TemplateCommands(Citizens plugin) { this.registry = plugin.getTemplateRegistry(); } @Command( aliases = { "template", "tpl" }, usage = "apply (template namespace:)[template name]", desc = "", modifiers = { "apply" }, min = 2, permission = "citizens.templates.apply") public void apply(CommandContext args, CommandSender sender, NPC npc, @Arg(value = 1, completionsProvider = TemplateCompletions.class) String templateName) throws CommandException { Template template = null; if (templateName.contains(":")) { template = registry.getTemplateByNamespacedKey(templateName); } else { Collection