Appearance
Permissions
Every command of AppelTools is behind a permission node. The nodes live under appeltools.command, grouped per category, and they are declared in one place: common/Types/Permissions.java.
The plugin never grants a node itself. It only asks the permission provider (LuckPerms on both sides) whether the player has it. If you use another provider, the node names stay the same.
How the nodes are put together
Most categories have a root node that stands for the whole category, plus a node per command:
appeltools.command.teleport the whole category
appeltools.command.teleport.back one commandA command with a root node and a node of its own asks for both:
/tp needs appeltools.command.teleport
/back needs appeltools.command.teleport.backWARNING
Some commands ask for more than one node, and a player needs all of them. The gamemodes are the clearest example:
/gamemode creative
needs appeltools.command.gamemode
and appeltools.command.gamemode.creativeGranting only appeltools.command.gamemode.creative is therefore not enough — the category node is needed as well. The same holds for /2fasetup, /verify and the /atp and /atv subcommands; the tables below spell out which nodes each of them asks for.
To hand out a whole category at once, give the root and the commands, or use the wildcard that LuckPerms offers:
/lp user Steve parent add appeltools.command.teleport.* trueThe commands that have no node are the ones every player may use: the private messages, the ignores, /rules, /chat, /pchat and the /help of the plugin itself.
Teleport
| Node | Command |
|---|---|
appeltools.command.teleport | /tp |
appeltools.command.teleport.back | /back |
appeltools.command.teleport.here | /tphere |
appeltools.command.teleport.pos | /tppos |
appeltools.command.teleport.ask | /tpask |
appeltools.command.teleport.ahere | /tpahere |
appeltools.command.teleport.accept | /tpaccept |
appeltools.command.teleport.deny | /tpdeny |
appeltools.command.teleport.acancel | /tpacancel |
appeltools.command.teleport.auto | /tpauto |
appeltools.command.teleport.toggle | /tptoggle |
appeltools.command.teleport.bypasscooldown | skips the teleport cooldown |
Homes
| Node | Command |
|---|---|
appeltools.command.home | the category |
appeltools.command.home.home | /home |
appeltools.command.home.sethome | /sethome |
appeltools.command.home.delhome | /delhome |
appeltools.command.home.delhomeconfirm | /delhomeconfirm |
appeltools.command.home.renamehome | /renamehome |
Comfort
| Node | Command |
|---|---|
appeltools.command.speed | /speed, /walkspeed, /flyingspeed |
appeltools.command.speed.fly | /fly |
appeltools.command.gamemode | the category — needed by every gamemode |
appeltools.command.gamemode.adventure | /adventure |
appeltools.command.gamemode.creative | /creative |
appeltools.command.gamemode.spectator | /spectator |
appeltools.command.gamemode.survival | /survival |
appeltools.command.gamemode.setother | changing another player's gamemode |
A gamemode asks for both the category node and its own node:
/gamemode creative
needs appeltools.command.gamemode
and appeltools.command.gamemode.creativeEconomy
| Node | Command |
|---|---|
appeltools.command.economy | /economy — the admin side |
appeltools.command.economy.balance | /balance |
appeltools.command.economy.baltop | /baltop |
appeltools.command.economy.pay | /pay |
appeltools.command.economy.togglepay | /togglepay |
appeltools.command.economy.transactionhistory | the log of your own balance |
appeltools.command.economy.transactionhistory.other | the log of someone else's balance |
Staff
| Node | Command |
|---|---|
appeltools.command.staff | the category |
appeltools.command.staff.freeze | /freeze |
appeltools.command.staff.notesgui | /notesgui |
appeltools.command.staff.staffchat | /staffchat, /staffchattoggle, /chat staff |
appeltools.command.staff.stafflist | /stafflist |
appeltools.command.staff.versionlist | /versionlist |
appeltools.command.staff.staffnotes | /notes |
appeltools.command.staff.reports | /reports |
appeltools.command.staff.staffspy | /staffspytoggle |
appeltools.command.staff.stats | /stats |
appeltools.command.staff.seen | /seen |
appeltools.command.staff.alts | /alts |
appeltools.command.staff.geoip | /geoip |
appeltools.command.staff.broadcast | /broadcast |
Admin
| Node | Command |
|---|---|
appeltools.command.admin | the category |
appeltools.command.admin.reload | /atp reload, /atv reload |
appeltools.command.admin.modules | /atp modules, /atv modules |
appeltools.command.admin.debug | the /atp debug and /atv debug subcommands |
appeltools.command.admin.restart | /restartproxy, /restartserver |
appeltools.command.admin.maintenance | /maintenance |
appeltools.command.admin.maintenance.bypass | playing during the maintenance |
appeltools.command.admin.pluginupdater | /atp updater, /atv updater |
appeltools.command.admin.servers | /servers |
appeltools.command.admin.health | /atp health |
The subcommands of /atp and /atv ask for more than one node:
| Command | Needs |
|---|---|
/atp reload | appeltools.command.admin and appeltools.command.admin.reload |
/atp health | appeltools.command.admin and appeltools.command.admin.health |
/atp modules | appeltools.command.admin and appeltools.command.admin.modules |
/atp debug | appeltools.command.admin and appeltools.command.admin.debug |
/atp 2fa reset | appeltools.command.admin and appeltools.command.twofactor.reset |
/atp updater | appeltools.command.admin and appeltools.command.admin.pluginupdater |
/atv reload | appeltools.command.admin and appeltools.command.staff and appeltools.command.admin.reload |
/atv modules | appeltools.command.admin and appeltools.command.staff and appeltools.command.admin.modules |
/atv debug | appeltools.command.admin and appeltools.command.staff and appeltools.command.admin.debug |
/atv updater | appeltools.command.admin and appeltools.command.staff and appeltools.command.admin.pluginupdater |
TIP
The proxy commands ask for appeltools.command.staff as well. Give the administrators that node, or they cannot use the /atv subcommands.
Friends
| Node | Command |
|---|---|
appeltools.command.friends | the category |
appeltools.command.friends.add | /friends add |
appeltools.command.friends.accept | /friends accept |
appeltools.command.friends.deny | /friends deny |
appeltools.command.friends.list | /friends list |
appeltools.command.friends.remove | /friends remove |
appeltools.command.friends.requests | /friends requests and /friends pending |
appeltools.command.friends.notifications | /friends notifications |
appeltools.command.friends.toggle | /friends toggle |
Parties
| Node | Command |
|---|---|
appeltools.command.parties | the category |
appeltools.command.parties.invite | /party invite |
appeltools.command.parties.leave | /party leave |
appeltools.command.parties.list | /party list |
appeltools.command.parties.promote | /party promote |
appeltools.command.parties.demote | /party demote |
appeltools.command.parties.transfer | /party transfer |
appeltools.command.parties.remove | /party remove |
appeltools.command.parties.warp | /party warp |
appeltools.command.parties.accept | /party accept |
appeltools.command.parties.disband | /party disband |
appeltools.command.parties.mute | /party mute |
appeltools.command.parties.allinvite | /party allinvite |
appeltools.command.parties.chat | /party chat |
appeltools.command.parties.admin.join | /party admin join |
appeltools.command.parties.admin.list | /party admin list |
appeltools.command.parties.admin.disband | /party admin disband |
Moderation
| Node | Command |
|---|---|
appeltools.command.moderation.ban | /ban |
appeltools.command.moderation.tempban | /tempban |
appeltools.command.moderation.kick | /kick |
appeltools.command.moderation.ipkick | /ipkick |
appeltools.command.moderation.mute | /mute |
appeltools.command.moderation.tempmute | /tempmute |
appeltools.command.moderation.ipmute | /ipmute |
appeltools.command.moderation.tempipmute | /tempipmute |
appeltools.command.moderation.ipban | /ipban |
appeltools.command.moderation.tempipban | /tempipban |
appeltools.command.moderation.unban | /unban |
appeltools.command.moderation.unmute | /unmute |
appeltools.command.moderation.ipunban | /ipunban |
appeltools.command.moderation.ipunmute | /ipunmute |
appeltools.command.moderation.history | /history |
appeltools.command.moderation.report | /report |
Two-factor authentication
| Node | What it does |
|---|---|
appeltools.command.twofactor | makes the player subject to the two-factor: they have to verify themselves before they may play |
appeltools.command.twofactor.setup | /2fasetup |
appeltools.command.twofactor.verify | /verify |
appeltools.command.twofactor.reset | /atp 2fa reset |
The two commands ask for both the root node and their own:
| Command | Needs |
|---|---|
/2fasetup | appeltools.command.twofactor and appeltools.command.twofactor.setup |
/verify | appeltools.command.twofactor and appeltools.command.twofactor.verify |
TIP
The root node is the important one. A player who has appeltools.command.twofactor has to run /verify before he may move, chat, run a command, take damage or open his inventory. A player who does not have it is never touched by the two-factor at all.
The commands without a node
These work for every player, on every server:
| Command | What it does |
|---|---|
/message | a private message |
/reply | an answer to the last private message |
/ignore | ignore a player |
/unignore | stop ignoring a player |
/messagetoggle | switch the private messages on or off |
/chat all|party|message | choose the chat channel |
/pchat | write in the party chat |
/rules | the rules of the network |
/atp help, /atv help | the list of the commands the player may use |
/chat staff needs appeltools.command.staff.staffchat, and the Discord slash commands are guarded by the Discord roles of the bot, not by a Minecraft node.