Permissions - TheComputerGeek2/MagicSpells GitHub Wiki

Command permissions:

They are documented on this page!

Other permissions:

The ability for players to learn and cast spells can be fully configured using the available permission nodes, listed below. You can use any permissions management plugin that supports Bukkit's built-in system.

By default, normal users do not know any spells when they first log in, other than help and list, but they can learn to cast any spell cast-able spell. Server operators [op] will already know all spells, and will be able to teach spells to other players using /c teach <player> '<spell>' . If you would like to change this on your server, you can use these permission nodes.

Important:

  • Please note that when it says spellname you should fill in the internal name of the spell, which is the spell section header name in the config file. Don't use the redefined name you provide with the name configuration option, don't use anything from the spell-class option, and don't just leave spellname there, obviously. Alternatively, you can change the permission name for a spell with the permission-name option.
  • Many of the permissions in this plugin default to true (for ease of setting up the plugin for people who have never used it before). If you wish to completely control the permissions, you can make all permissions default to false by setting the default-all-perms-false option to true in the general.yml file.

General:

magicspells.noreagents - Allows the player to cast without needing or consuming reagents (default op-only)
magicspells.nocooldown - The player is not affected by spell cooldowns (default op-only)
magicspells.notarget - The player cannot be targeted by any spells (default false)
magicspells.silent - The player will not broadcast the cast messages (str-cast-self, str-cast-others, etc) when casting spells (default false)

Learning:

magicspells.learn.spellname
magicspells.learn.*

A player with the magicspells.learn.spellname node will be able to learn the specified spell (from teach spell, a spellbook, a tome, etc.). If they don't have this permission, they will not be able to learn the spell. This permission does not give them the spell, it just allows them to learn it. This defaults to true for all players. The magicspells.learn.* node will permit you to learn all spells. Example: magicspells.learn.blink

Granting:

magicspells.grant.spellname
magicspells.grant.*

You can automatically grant spells to a user (so they don't have to learn them) by giving them the magicspells.grant.spellname permission. A player with this permission will be taught the spell permanently the moment they log in. If a player gains this permission node while logged in it will not automatically give them the spell. Removing this permission node will not unlearn the spell. This will override the learn permission (this will give them the spell even if they don't have the learn permission for that spell). This defaults to false for all players. The magicspells.grant.* node will grant all spells. Example: magicspells.grant.blink

Temporary Granting:

magicspells.tempgrant.spellname
magicspells.tempgrant.*

This permission node is pretty much the same as the grant node, except the player's spell book does not have to be reloaded, the spell removed, or anything. As long as the player has the permission, they will have the spell. When the permission is removed, they won't have the spell.

Casting:

magicspells.cast.spellname
magicspells.cast.*

A player must have the magicspells.cast.spellname permission to cast a spell. This permission does not give them the spell, it just allows them to cast it (if they already have it). For many servers, modifying this permission node will not be necessary. It can be used if you want to deny access to certain spells on certain worlds. This defaults to true for all players. The magicspells.cast.* node will permit you to cast all spells. Example: magicspells.cast.blink

Teaching:

magicspells.teach.spellname
magicspells.teach.*

The magicspells.teach.spellname permission is required if a player needs to teach a spell to another player. This also affects the creation of spellbooks and (optionally) scrolls. Keep in mind that even if a player has this permission, they will not be able to teach spells unless they have learned the "teach" spell themselves. This defaults to true for all players. The magicspells.teach.* node will permit you to teach all spells. Example: magicspells.teach.blink

Mana Ranks:

Mana ranks can be assigned using the permission magicspells.rank.(rank)

Advanced:

magicspells.advanced.*
magicspells.advanced.list - Allows you to use the List Spell to see a list of that player's known spells (`/cast list <player>`)
magicspells.advanced.forget - Allows you to use the Forget Spell to force a player to forget a spell (`/cast forget <player>`)
magicspells.advanced.scroll - Allows you to use the Scroll Spell to create a base scroll (`/cast scroll -base <spell> [uses]`)
magicspells.advanced.imbue - Allows you to imbue (bind) spells to a scroll for a certain amount of time (`/cast imbue <spell> [uses]`)
⚠️ **GitHub.com Fallback** ⚠️