Skip to content
Nathan Wolf edited this page Apr 9, 2015 · 7 revisions

Installation

Magic requires Spigot or CraftBukkit, just place Magic.jar into the plugins folder. This is all you need to do to experiment with spells, by default only ops can get wands (though anyone can cast any spells if they get ahold of a wand with spells!)

See these files for updated documentation on specific configuration parameters:

https://github.com/elBukkit/MagicPlugin/blob/master/CONFIGURATION.md https://github.com/elBukkit/MagicPlugin/blob/master/SPELLS.md https://github.com/elBukkit/MagicPlugin/blob/master/WANDS.md

And this page for more for information on customizing Magic.

Permissions

By default, all players have access to the wand and all spells. This can be limited by negating the following permission nodes:

  • Magic.wand.use : Player can use a wand
  • Magic.wand.craft : Player can craft a wand
  • Magic.wand.enchant : Player can enchant a wand
  • Magic.cast.<spellname> : Player can cast a specific spell

Use negated permissions to remove the ability to cast a spell!

There are several permissions that ops have by default that will let them bypass restrictions:

  • Magic.bypass : The player may bypass most restriction checks.
  • Magic.bypass_build : The player may cast spells that are otherwise build-restricted
  • Magic.bypass_pvp : The player may cast spells that are otherwise PVP-restricted
  • Magic.bypass_restricted : The player may build with restricted materials

By default, players have access to no commands. Magic command permissions follow the format "Magic.commands.<command>.<subcommand>". For example:

  • Magic.commands.spells : Player can use /spells
  • Magic.commands.wand : Player can use /wand
  • Magic.commands.wand.wand. : Player can use /wand to get a specific wand. All wands are available by default.
  • Magic.commands.wand.add : Player can use /wand add
  • Magic.commands.wand.add.spell. : Player may add a specific spell to a wand. All spells are allowed by default.
  • Magic.commands.wand.add.material : Player may add a material to a wand. True by default.
  • Magic.commands.wand.remove : Player can use /wand remove
  • Magic.commands.wand.name : Player can use /wand name
  • Magic.commands.wand.list : Player can use /wand list
  • Magic.commands.wand.fill : Player can use /wand fill
  • Magic.commands.wand.configure : Player can use /wand configure
  • Magic.commands.wandp : Player can use /wandp
  • Magic.commands.wandp.wand. : Player can use /wandp to give a specific wand. All wands are available by default.
  • Magic.commands.wandp.add : Player can use /wandp add
  • Magic.commands.wandp.add.spell. : Player may add a specific spell to a wand remotely. All spells are allowed by default.
  • Magic.commands.wandp.add.material : Player may add a material to a wand remotely. True by default.
  • Magic.commands.wandp.remove : Player can use /wandp remove
  • Magic.commands.wandp.name : Player can use /wandp name
  • Magic.commands.wandp.list : Player can use /wandp list
  • Magic.commands.wandp.fill : Player can use /wandp fill
  • Magic.commands.wandp.configure : Player can use /wandp configure
  • Magic.commands.cast : Player can use /cast

And also the following admin-oriented commands:

  • Magic.commands.magic.load : Reload spells.yml, wands.yml, config.yml and messages.yml. (And the defaults)
  • Magic.commands.magic.[save|clean|search|list| .. etc] : All commands follow the same pnode format.

This list may not be complete, check plugin.yml for a full list of permissions

Commands

The default permissions give several commands to ops:

Wand Commands

  • /wand : Create a new, empty wand.
  • /wand <name> : Create a new wand from one of the preset wands defined in wands.yml
  • /wand list : List available wand templates from wands.yml
  • /wand add <spell> : Add a new spell to the currently held wand.
  • /wand fill : Fill a wand with all known (permissible) spells.
  • /wand remove <spell> : Remove a spell from the currently held wand.
  • /wand configure <property> <value> : Configure wand properties (see below)
  • /wand upgrade <property> <value> : Configure wand properties, but never lower any values (see below)
  • /wand combine <wand> : Add a wand template to an existing wand (upgrade it)
  • /wand add material <material> : Add a new material to the currently held wand.
  • /wand remove material <material> : Remove a material from the currently held wand.
  • /wand name <name> : Name a wand (note that you can also rename a wand on an anvil)
  • /wand describe : List all of a wand's properties, advanced, use with "configure"
  • /wand unlock : Unlock a locked wand to make it editable. ("/wand configure locked "true to lock)
  • /wand enchant : Create a wand out of the item you are holding
  • /wand unenchant : Unenchant (destroy) the wand you are holding.
  • /wand enchant <xp levels> : Add a number of XP levels to a wand, as if via enchanting - does not actually cost XP.
  • /wand enchant xp : Add all of your XP levels (consuming the XP) to your wand. Can be used in command blocks for a leveling system.
  • /wandp <player> <etc...> : Use /wand commands on a specific player.

Wand configuration parameters for "configure" and "upgrade":

https://github.com/elBukkit/MagicPlugin/blob/master/WANDS.md

The mgive Command

The /mgive command works a lot like the vanilla and Esssentials /give commands. It can be used to give any item to any player, including Magic items like wands, spells and upgrades. It can also be used to give XP to players, which currently may be needed as a work-around to wands blocking XP given by the /xp command.

  • /mgive [player] <item> [amount] : The general, flexible format of the command. The "item" is the only required parameter.
  • /mgive NathanWolf elder : Give NathanWolf an Elder Wand
  • /mgive fling 32 : Give yourself 32 "fling" spells. Spells will stack, and can be placed in chests or given to players.
  • /mgive NathanWolf xp 200 : Give NathanWolf 200 XP, which will work event if he is holding a wand.
  • /mgive NathanWolf gold_nugget 32 : Give NathanWolf 32 gold nuggets. Item format must follow Bukkit's Material enum.
  • /mgive spell:wolf : Give yourself the "wolf" spell. The "spell:", "wand:", and "upgrade:" prefixes can be used to differentiate between items with the same name.
  • /mgive book:engineering : The "book:<category>" item will create a "Spell Book" containing all the spells in that category, with lore and costs descriptions.
  • /mgive book:all : Give a "master" spellbook that contains all spells, organized by category.

Utility Commands

  • /magic load : Reload config files, update spell configurations.
  • /magic save : Force saving of player data. Also saves other data, like lost wands and image maps.
  • /magic commit : Commit all changes (like casting "Commit" on all players)
  • /magic cancel : Cancel all in-progress construction batches.
  • /magic list [wands | automata | maps | tasks] <player> : List all lost wands, maps or automata. The "tasks" parameter can be used to check for runaway tasks in any plugin.
  • /magic clean <player> : Clear unowned lost wands, or a specific player's lost wands.
  • /magic clean ALL : Clear all wands from all worlds.
  • /spells : Lists all spells that a player knows about. A player may view detailed information about any spells they have permission to cast. This command is safe to give to players, though it removes some of the mystery. Players can see the same information in-game about spells they have on their wands (via the lore tooltips).

The Cast Command

The /cast in-game command is very powerful. It lets you cast any spell directly, but (more importantly) it lets you use "command line parameters" to play around with the configurable spell system. Many spells in Magic are based on the same "building block" spell, using parameters. And, by tweaking those parameters yourself, you can create some interesting and powerful spells. A server admin can then make them "official" spells by adding them to spells.yml, so players can use the new spell on their wands.

As an example, the "boom", "kamikazee", "kaboom" and "nuke" spells are all variants of "BoomSpell", tweaking the "size" parameter (mainly). A "nuke" for instance is "size 20" - want to see what a 10x nuke would look like? Try /cast boom size 200 ... but be forewarned, it's not pretty!

Parameters to the cast command follow the same name and format as in spells.yml, and are passed in pairs - e.g. /cast <spell> <param> <value> <param> <value>. Browsing through the default spells.yml is the best way to get a feel for what your options are.

Detailed parameter documentation: https://github.com/elBukkit/MagicPlugin/blob/master/SPELLS.md

Clone this wiki locally