MagicSpells
Note: MagicSpells is being maintained on this GitHub fork and you can find help at the official Discord.
Info
MagicSpells is a Minecraft Bukkit plugin that creates magic spells your players can use. Its main purpose is to give your players access to certain abilities that you might not want to give them unlimited access to. However, instead of just giving them access to boring commands, they instead get more interesting spells. Each spell can be configured in many ways:
- Reagent costs (the cost of using the spell, including items, mana, health, hunger, experience, and item durability)
- Cooldowns (the amount of time a player must wait between uses)
- Durations (how long certain effects last)
- Ranges (how far away spells can be used from their target)
- Many more options, depending on the spell
Spells can be cast by using the /cast command, swinging a configurable wand item, or both. It's also possible to have them triggered from other actions the player may take. It's all customizable.
Usage
Before a player can cast a spell, they must already know it. There are several ways a player can learn a spell:
- Taught with the teach spell
- Learned from a spellbook
- Learned from a tome
- Gained from a grant permission
- Purchased from a shop
- Being a server op (they know all spells) For example, a server op can teach Bob the blink spell by typing: ''/cast teach bob blink''.
Once a spell is learned, it can be cast either by using the ''/cast'' command or by using a wand item. Now that Bob knows the blink spell, he can either cast it by command, by typing ''/cast blink'', or he can cast it with a wand item. To select the spell, he holds the wand in his hand and right clicks. Right clicking will cycle through any spells assigned to the item he is holding. When he has the one he wants, he left clicks to cast.
If Bob does not have the required reagents for the spell, or if he has cast it recently and it is still on cooldown, he will not be able to cast the spell and will instead receive an error message.
If mana is enabled, a player can use the ''/mana'' command to see how much mana they currently have. Mana can also be configured so it is displayed on the experience bar.
Useful Links
Videos
You need to grant them first, then cast forget. Which is like a miny reload, only reload that players spellbook.
No, I'm not sure I'm doing it right.
And granting spells to someone who does not know them did NOT add them back to the list.
Maybe it's a PEX problem.
@keenerb
Are you sure you did it right? Once you've forgotten a spell you can't use it anymore. But keep in mind that if you do a /cast forget *, any permission granted spells will be immediately relearned.
nisovin, what you're describing was the first thing I tried.
Even after I forget the spells I still have them until I /cast reload as op or from console.
@keenerb
Seems like you're going about this all wrong. You shouldn't be granting and removing grant.* like that, and you also shouldn't be using /cast reload like that. Doing a /cast reload resets all cooldowns, cancels all active buff spells, and stuff like that. It's not something you want to do often.
All you should really have to do is give grant perms for all spells you want them to have. If you want to do some kind of change class thing, you'd revoke all grant spells, do a /cast forget *, then grant the new nodes.
Please alter magicspells behavior so that ops can /cast teach a spell they don't know. A permission node, .teachunknown perhaps?
Scripting spell groups and creating user-chooseable classes is far more complicated that it should be, this would help TREMENDOUSLY.
For example, allowing someone the pain spell in commandhelper currently involves: give grant.* permission /cast reload remove grant.* permission /cast reload give cast.pain permission increment through every cast.spell permission individually If they don't have cast.spell, /cast forget spell goto next spell
The current behaviour also makes it almost impossible to remove spells individually without way more effort than it's worth.
@gummby8
Make sure this property has one number cast-item:
If it does and wand still is able to be used as cast item, perhaps your character has its binds saved to the wand still because that was the previous cast item: (this is just a guess)
Typing /cast forget (player)* allows you to basically reload your characters spells from what you have saved in config since last restart and what you have in permissions to grant which ever spells you want for that player, also clearing all binds at the same time. Try this after you changed the cast item: you want for that spell (save,restart) then log in and use that command.. See if the previous item still allows you to scroll through your spells if soo then idk, I sorry
How do you get rid of the stick being the default wand? I want to make a different item the default wand. I set the other item to the cast item in every spell config...but the damn stick still rotates through every spell too!
Ok I added/set check plugins: false on combust and it still only works on monsters for my players, with target-players: true. Also with fireball I have targetplayers: false but they take damage. Maybe its because I have require entity target to false? I guess I can switch spells around, Fireball was that classes monster only spell and combust was for players but I can't get them to work like that.
I also did some test with the explode spell and added damage to it but I guess it doesn't work like that because it didn't work. However setting radius to 0 made no environmental damage which is cool. Anyway to make it so players take damage from this spell?
Spell Idea: Fire Storm. Have Ghast fireballs rain down from the sky doing no land damage but player and entity damage for a set period of time and in a small radius around the caster.
Ok cool, will do. Also I was wondering about the explode spell. Can I add damage: to it so it can do a set amount of heart/s damage and set its radius to 0 making it have no environmental damage? Because this spell is an easy way to bypass towny protected towns at the moment.
@Sk8Sanctified
Try setting check-plugins to false and see what happens.
Cripple also only works on monsters though I added the target-players: true
This is my combust but it only works on mobs :/
@nisovin
Found it, thank you. Last thing :P What are the color codes.
@notcam45
There's an example command spell at the end of the default config, it's called "gianttree".
I hate to sound clueless, but no where in the config can i find anything about external spells.
If you're taking suggestions, I have one. If its possible, to have a permission node(s) that allows players to have more mana then others incase someone wants to have a mage that upon leveling up gets more mana.
@notcam45
This was added long ago.
http://dev.bukkit.org/server-mods/magicspells/pages/configuration/external-spells/
@oceanor
Thanks, it should be fixed in 2.1.2. I've also created a link to your plugin on this main page.
So to be clear, no one knows how to put a white space in the world name, for the configuration of nomagic zones?