NPC Commands: Difference between revisions

From Citizens Wiki

No edit summary
No edit summary
Line 34: Line 34:


There are several more options available for <code>/npc command</code> not explained here, so type <code>/npc help command</code> in-game to see them.
There are several more options available for <code>/npc command</code> not explained here, so type <code>/npc help command</code> in-game to see them.
== Old Method ==
The old method, which in some cases can still be the better method, is to use Denizen - information for that follows below.
=== Prerequisite ===
Denizen is a scripting engine that directly integrates Citizens to add more features and options to server owners. Learn about Denizen [https://guide.denizenscript.com/guides/background/what-is-denizen.html on the guides here] and download Denizen [https://ci.citizensnpcs.co/job/Denizen/ on the Citizens Jenkins build server here].
=== How To Make a Click Command ===
The standard way to get click-commands set up in Denizen is to write an assignment script with a click action or trigger. There's a [https://guide.denizenscript.com/guides/npcs/assignment-scripts.html guides page explaining how to do this here].
=== Easier Denizen-Based Option ===
If you'd rather not bother with scripting yourself and instead would prefer to use an in-game command, you can use a premade [https://forum.denizenscript.com/viewtopic.php?f=13&t=149 script available here]. Simply download the script linked in that forum post, save it into "plugins/Denizen/scripts" as a .dsc file, and then use "/ex reload" to load the script. At that point, you can select any NPC and use "/npccommand set [command]" (view the forum post linked previously for additional command usage information).
This is more or less equivalent to a slightly more advanced version of the "/npc command" option.


== Additional Support ==
== Additional Support ==


If confused, join the [https://discord.gg/Q6pZGSR Citizens+Denizen shared Discord] to ask for help!
If confused, join the [https://discord.gg/Q6pZGSR Citizens+Denizen shared Discord] to ask for help!

Revision as of 11:03, 10 September 2020

NPC Click Commands

One of the common things Citizens users want is the ability to have NPCs run a command when right-clicked.

This is available within Citizens via the "/npc command" command. For details, refer to /npc help command.

By default, "/npc command" will run commands as the server. Use "-p" to run as the player who clicked instead.

For example: Use /npc command add -p help to make an NPC automatically execute "/help" as the player when clicked.

To auto-fill the player name, use "<p>". To autofill the NPC ID, use "<n>".

For example: Use /npc command add kick <p> to make an NPC automatically kick the player when clicked.

Note as well that if you have PlaceholderAPI installed, you can use PAPI placeholders within commands.

Permissions

By default, anybody can click the NPC to cause a command to execute, without any permission requirement.

If -p is used, it will execute as-player, meaning any permissions check the command itself has will be required for the player.

If -o is used, it will execute as-op, meaning the player will be treated as if they were a server operator, and thus usually permissions won't be expected (unless you have a permissions plugin that doesn't respect op, or a protection plugin that disables op).

Generally, it's best to execute as-server (don't specify -p or -o to use the default as-server), which will not require any permissions. You will need to use <p> to fill in the playername wherever the command requires one.

If you want to add your own additional permissions requirement, use --permission my.perm.here when adding the command.

Bungee

On Bungee servers, this supports the Bungee server command, like /npc command add -p server MyServerName.

Other Options

There are several more options available for /npc command not explained here, so type /npc help command in-game to see them.

Additional Support

If confused, join the Citizens+Denizen shared Discord to ask for help!