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
-
View User Profile
-
Send Message
Posted May 9, 2012@Tsunero
Those are all controlled by permissions. If you want to be able to change the default permission settings you'll need to use a permission plugin.
-
View User Profile
-
Send Message
Posted May 8, 2012Is there any configuration to make it so ops can be targeted by spells? In my test server we're all ops, and it's not great for testing to be unable to target ops.
(edit) Also, is there a way to make it take the cost from ops as well as enforce the cooldowns? This turned out to be very popular among everyone on my server, and, unfortunately, the ops have a rather large advantage.
-
View User Profile
-
Send Message
Posted May 8, 2012@Tsunero
I would need to see the actual file. I'm still assuming you're just doing something wrong.
-
View User Profile
-
Send Message
Posted May 8, 2012I mean won't generate effects as in, I have
effects:
- pos1 ender
- pos2 cloud 10
But they don't generate anymore.
-
View User Profile
-
Send Message
Posted May 8, 2012<<reply 693939="">>
That's extremely kind of you nisovin, i will definitely try to fix it myself when i have time, thanks :)
-
View User Profile
-
Send Message
Posted May 8, 2012@Tsunero
I'm not sure what you mean by "won't generate effects", but adding new files for spells should work fine, so I must assume you're doing something wrong.
-
View User Profile
-
Send Message
Posted May 8, 2012I exploded my configuration, but now new config files for custom spells I add won't generate effects. Am I doing something wrong? Or is there any way to un explode the files, without a very long time writing them all back in one big file?
-
View User Profile
-
Send Message
Posted May 7, 2012@nisovin
thanks! :D maybe it works as I want, workarounding the dependance of item held in hand if i hook into spell changed event and instead of using the event spell, i'll get active spell with the function you wrote me! I'll test ;) thank you!
-
View User Profile
-
Send Message
Posted May 7, 2012@robbcap
You would just create a PotionEffectSpell with a cast item of whatever potion you want.
@Faldonboy
You could try to use such a delay, but if the player is no longer online, or the server is reloaded, or the plugin is reloaded, then the delay will never go off. The ender dragon effect is not currently possible.
@Faldonboy
It's like any other yaml list, just put in multiple entries.
@fuzyfeet
Not currently.
@oceanor
I've added a SpellSelectionChangedEvent to the most recent dev build. Keep in mind that the spell selection is dependent on which item they have in their hand. You can also get the currently selected spell with MagicSpells.getSpellbook(player).getActiveSpell(item).
@Seremoth
You will need to add a spell-class option to each spell. You can look at the default config to figure out what you need to use. If you can't figure it out, just give me your config and I'll do it for you.
-
View User Profile
-
Send Message
Posted May 7, 2012Apologies for my possibly ignorant question but i get this in the log "[WARNING] [MagicSpells] Spell 'list' does not have a spell-class property" and so on for all of the spells resulting to no spells loaded.
I use the latest version 2.6.1 and latest Bukkit RB. I have made no changes to the config. Made a google and faq search but nothing :( Btw thank you for adding the ability to cast with punches!
-
View User Profile
-
Send Message
Posted May 7, 2012Is there a way to give an enchanted item via Conjure or Materialize?
-
View User Profile
-
Send Message
Posted May 7, 2012@nisovin
hi! i'm updating my plugin for manabar with more options, and i've tried to add a label with the name of selected spell.. using the SpellCastedEvent it was successfull, but it's a lot better if i can listen to spell change event..
here is the problem, i think is broken http://code.google.com/p/nisovin-minecraft-bukkit-plugins/source/browse/trunk/MagicSpells/src/com/nisovin/magicspells/events/SpellEvent.java
it can't find handlers, but with other event files yes.. perhaps HandlerList things are missing? or i'm watching wrong file? i just need to get the spell name when is changed..
-
View User Profile
-
Send Message
Posted May 6, 2012New question about incantations, can you have multiple incantations for a single spell? if so how? would it just be separated by a comma?
-
View User Profile
-
Send Message
Posted May 6, 2012@robbcap
How about a multispell, one self buff and one targeted buff?
-
View User Profile
-
Send Message
Posted May 6, 2012Would a command delay of 1-2 hours be to long to attempt on an external command spell or will it be able to do it?
Also, any chance you could add the purple light-show dragons give off on death to the effects we can use?
-
View User Profile
-
Send Message
Posted May 6, 2012@woodendinosaur
Yes but i want it to not a spash and then you can hit it in the air and it will automaticly be added to you and if you hit someone else he will also get it so its unlimited
-
View User Profile
-
Send Message
Posted May 6, 2012@robbcap
Can you make a strength potion a splash potion? Then throw it at both of your feet?
-
View User Profile
-
Send Message
Posted May 6, 2012Can anybody tell me how to add a potion to someone or yourself when you hit in the air with a potion like strengh potion you hit in the air and, Boom its added to you and the one you hit
-
View User Profile
-
Send Message
Posted May 6, 2012@Faldonboy
@faldonboy
i was playing around with the idea of making a couple of channeled spells myself. Namely a summon ghast spell, and a toggle weather spell.
-
View User Profile
-
Send Message
Posted May 5, 2012Thanks! I love the incantations already
One question though, will you ever expand on the channeled spells? I'd love to see more of them or be able to customize what they do. You could come up with some amazing things that require teamwork if they were expanded on.
@fuzyfeet
Not case sensitive as of now, I have one that summons a dragon by saying dragon!
and it works with Dragon! DrAgoN! or anything else in-between.