π Permissions
Every node starts with polaroidchat.. Nothing is granted by default except the root command
itself, so a fresh install gives players nothing until you say otherwise.
A sensible starting set
polaroidchat.menu
polaroidchat.msg
polaroidchat.block
polaroidchat.mention
polaroidchat.colors.hex
polaroidchat.colors.formats
polaroidchat.channel.global
polaroidchat.toggle.all
Wildcards
Every family has one, and there is one for the lot.
polaroidchat.all Β· polaroidchat.admin.all Β· polaroidchat.block.all Β·
polaroidchat.colors.all Β· polaroidchat.customcolor.all Β· polaroidchat.history.all Β·
polaroidchat.interactive.all Β· polaroidchat.mention.all Β· polaroidchat.msgspy.all Β·
polaroidchat.nick.all Β· polaroidchat.tag.all Β· polaroidchat.channel.all Β·
polaroidchat.toggle.all
Nicks
| Node | Grants |
|---|---|
nick.set / nick.reset | Changing and clearing your own |
nick.set.others / nick.reset.others | Doing it to someone else |
nick.cooldown.bypass | Never waiting between changes |
realname | Seeing who is behind a nick |
Colours
| Node | Grants |
|---|---|
colors.legacy | All sixteen classics |
colors.legacy.<code> | One of them β 0β9, aβf |
colors.hex | Every HEX swatch |
colors.hex.<key> | One swatch, by its key in menus/color_hex.yml |
colors.gradient / colors.gradient.<key> | The same, for gradients |
colors.animate / colors.animate.<key> | The same, for animated effects |
colors.formats | Bold, italic, underline, strikethrough |
colors.formats.<style> | One of them |
customcolor.hex | Typing a HEX code of their own |
customcolor.gradient | Typing a gradient of their own |
customcolor.gradient.slots.<n> | How many stops it may have β 3 to 8 |
filter | The filter button in the colour menus |
Adding a swatch adds its node. Write a new colour into menus/color_hex.yml and
polaroidchat.colors.hex.<its key> exists on the next reload. Nothing else to register.
Channels
| Node | Grants |
|---|---|
channel.<id> | Speaking there |
channel.<id>.read | Reading it from another channel |
channel.user / channel.user.read | Player-made channels |
channel.close | Closing someone else's channel |
channel.spy | Reading every channel at once |
channel.bypass | Ignoring a channel's own limits |
The four shipped ids are global, world, local and private.
Talking
| Node | Grants |
|---|---|
msg | Private messages |
msg.bypass | Reaching someone who turned them off |
block / block.others | Blocking, and doing it for someone else |
mention | Pinging by name |
mention.here / mention.everyone | Pinging a room, or the server |
emoji.list Β· sprites Β· keywords | The three list commands |
tag.glyph Β· tag.sprite Β· tag.head | Writing those tags in a message |
interactive.<keyword> | One keyword β item, inventory, ender, and yours |
interactive.commands | Making a command clickable |
interactive.cooldown.bypass | No wait between keywords |
vanish.bypass | Finding a player another plugin is hiding |
Staff
| Node | Grants |
|---|---|
admin / admin.reload | Administration, and reloading |
msgspy / msgspy.others | Reading private messages |
clearchat | Clearing chat |
clearchat.exempt | Not being cleared |
Tiers: granting an amount, not a yes
Four settings are not on-or-off but how many, and each is a small table in the config where every key you write becomes a permission.
history:
nick:
stack: false
default: 3
vip: 5
mvp: 10
That grants three slots to everyone, five to whoever holds
polaroidchat.history.nick.slots.vip, and ten for .mvp. The names are yours β write patron: 7
and polaroidchat.history.nick.slots.patron exists.
defaultis the floor and needs no permission.stack: falsegives the largest tier a player holds.stack: trueadds every tier they hold on top of the default.
It works the same for history.color_nick, history.color_chat, history.blocklist,
nick.cooldowns (where the lowest wins, since it is a wait), and
user_channels.slots.create / .join / .members in channels.yml.