I have some not-great news, tl;dr I am not sure when or if Magic is going to support 1.20.5
Development of this plugin has been slowed for a while now, basically reduced to maintenance and updates for new MC versions. I haven't had the time nor energy to do much else with it.
Unfortunately, 1.20.5 has several major internal changes, most particularly the treatment of NBT data, which has caused major issues for updating Magic. I've spent quite a few hours on it already but there's no real clean end or fix in sight.
So for now I am afraid I will have to say the plugin will not be updated.
This may change in the future, but I can't make any guarantees. If Magic does get updated, it will be via one of two methods:
I patch up all the uses of NBT and let the plugin hobble forward full of band-aids.
I re-work Magic internally to make a version that doesn't rely on MC internals, and only uses the Spigot API
Approach #2 is one I've considered doing and even started work on several times in the past. It would be an ideal solution for me since it would make the plugin future-proof, no longer requiring updates for each new version of Spigot/Minecraft.
However, it is a lot of work and would come with several trade-offs. Probably many systems would not make the cut, such as custom mob AI and schematic loading.
Additionally, it's very unlikely that such a plugin would be backwards-compatible with existing Magic items. I would make sure that configs work and are forward-compatible (minus missing systems like mob AI), but the plugin would be unable to read NBT data saved by previous versions of the plugin. Meaning any server that wanted to move to this new version would basically have to reset all Magic items.
I know none of this is good news, but I'm hoping you understand where I am at and that I just don't have time to dedicate to the now-monumental task of keeping this plugin updated.
It's been a joy working for and with many of you over the years, and I hope you all continue to thrive, with or without Magic.
- NathanWolf
Server Compatibility
Please make sure you download the correct version for your server:
Magic is a plugin that adds powerful magic wands, items, mobs and more to your server. With over 200 spells, a variety of wand templates, and complete customization, you can use Magic to craft a unique experience for your server.
The default experience is an "RPG lite" extension to survival. Other examples are included, such as a Harry Potter setup, Star Wars, GTA-Style guns and cars, elemental bending and more.
Magic is infinitely customizable, allowing you to script your own spells, actions, items, mobs and anything else you see done in the included example configurations.
Live Demo
If you'd like to try out Magic, please go to our development server:
This plugin uses bstats for metrics collection. The information sent to bstats.org is completely anonymous, publicly viewable, and includes the following metrics:
A unique identifier
The server's version of Java
Whether the server is in offline or online mode
The plugin's version
The server's version
The OS version/name and architecture
The core count for the CPU
The number of players online
The Metrics version
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true, or by editing this plugin's config.yml and changing "metrics_level" to 0.
I really wanted to integrate this on my server since it would go perfectly with MobArena. I had everything setup but found 2 issues I couldn't work around cleanly.
The MobArenas come with a block protection mode but I use WorldGuard regions to ensure the areas are protected all the time. I also have TNT block damage disabled on all worlds. PvP is also disabled since I only make cooperative MobArenas.
None of the offensive spells would work inside the arena stating the no permission has been given but it is directly related to the worldguard config option being set to true in Magic's config file. With WorldGuard not allowing PvP, I would expect any spells that hit a player would simply not harm a player but the wand/spell is completely disabled...meaning it cannot be used to fight mobs either.
The other issue are spells that can damage blocks are also completely disabled rather than just block damage being disabled. The huge ghast fireball (icbm) could still be used to kill mobs but just not destroy any blocks, much like the existing TNT and Charged Creepers.
If those two issues could be resolved, I could re-install this plugin and make it work, otherwise I would have to disable worldguard integration which basically bypasses all worldguard settings which would allow destruction of the arenas and kill teammates.
Oh, well unfortunately anything that messes with the player inventory too much (especially saving/restoring items) is bound to mess up the wands. This is, unfortunately, a Bukkit issue- a dev has to go outside the API to preserve custom NBT data, this is not something most devs do. The alternative is that I somehow integrate with the plugin so that magic steps in to preserve the wand data.
So that's the bad news, the good news regarding the soul bind comment, that is on my todo list, just no one has really asked for it yet. Wands already remember their owners, though, so this will be easy to finish up. My plan was to prevent a player from using another player's wand, though they can still pick it up and keep it in their inventory. Let me know if that sounds good, I can try and get that in for 2.9.8! Assuming the inventory stuff isn't a total deal breaker.
I am the only one who uses creative but I make the wands in survival and give them to the players. I don't want to give them the command so that other users cannot get ahold of them. I've been trying to figure out a way to limit the wands to just that player (was going to soulbind but can't without lore or it breaks).
I do have a bunch of things that mess with inventories, off the top of my head, GameModeInventories and ClickSort, but there are probably at least a few others.
Do you have any other plugins installed? I have seen at least one other server with this same issue, but I do not know what it is. Something is causing Magic to not recognize the wands.
Let me know if there are any errors in the server logs, what version of CB and Magic you're running, and any other relevant plugins and I will definitely try to help!
I put the plugin on my server and I can create wands and such and /cast. But when i right click a wand, it doesn't do anything. I can't open up the inventory for spells and i'm using the admin wand with OP. Mana doesn't regenerate at all and I can't craft wands by putting a blaze rod + nether star. I haven't configured anything, I just let it run default stuff
Wands with only one spell will use the spell'a description rather than the wand description. I could change this I think so it still uses the wand description if set.
Other than the description there is no way to add additional lore right now.
As for the wands breaking, that is distressing! Do they use creative mode? So you have any weird inventory plugins like dtlTraders or multiverse inventory or backpacks, anything like that?
1. wands keep breaking for players and I have to replace them
2. wands with only one spell do not have a description
3. Is there a way to add additional lines of lore?
And to be clear, when I say something "won't happen before 3.0", that really just means I'm not adding any new features until official release. After that, there are a lot of little things I want to do, including a list of requests from people. I cannot make any guarantees about when, if ever, any of it will be implemented.
Basically, I do this in my free/spare time, I have a full-time job and a family, and really am not going to be making any deadlines here :)
Thanks @Gitpw3d - though, worth mentioning, is that the block populator (what puts wands in chests) is disabled by default.
Other options including giving out wands with command blocks (like for a quest reward), Essentials shop signs and kits, and (hopefully soon) dtlTraders.
elsmaker i will wait til 3.0 i believe this will fix it but i only just found this plugin so whats your estimate this plugin will be updated to 3.0 also i found a alias for the other cast "magicspellscast"
I don't know if I am missing something obvious or not, but I can't seem to make customized versions of the default spells. If I try to copy the code from a default spell, say for example 'boom' and alter it to create a less powerful version of it, it doesn't work. I've tried this with many spells and none of them work. The only one I've gotten to work is the "PotionEffectSpell" class. I mean there isn't very much room for error, I'm literally just copy/pasting and changing values. Is this a bug, not meant to happen, or am I doing something wrong? Thanks in advance!
Oh, one more thing I feel the need to mention- players should *not* have access to /cast. That command is meant for admins to do very specific (often very powerful) things, or to test something out before making it into a new or modified spell.
Magic is all about the wands at this point, it's really the only way players should be casting spells with this plugin.
It makes sense, but is unfortunately not that simple since falling blocks can have a velocity (like the Toss/Volley/Blast spells), or you could modify terrain after checking for the landing position, cast a spell multiple times in the same place, etc.
I do hope to be able to undo falling blocks by tracking the entities until they despawn into blocks, but this is probably not happening until after 3.0.
I also want to find a way to rollback explosions, but this gets even trickier.
Oh, I see- I do try to use "maxhealth" when restoring health, but if ils is not using the Bukkit-supported max health functionality, then I'm not sure what I can do.
If I get a chance, I'll download that plugin and try and use it with Magic.
In the meantime, I suggest you just remove all health-related properties from any wands you want to use. Setting "health_regeneration: 0" should make it so wands don't mess with health at all.
As for the commands- I believe you can use Bukkit aliases to change command names:
Thank you for the quick reply, I will be adding this to my server but I will have to disable the falling blocks. Isn't it possible to check where the block is spawned and then check the amount of air blocks or passable blocks below where it will fall and then the last position is the where the block will fall into and you rollback that position and the beginning position? If that makes sense.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I really wanted to integrate this on my server since it would go perfectly with MobArena. I had everything setup but found 2 issues I couldn't work around cleanly.
The MobArenas come with a block protection mode but I use WorldGuard regions to ensure the areas are protected all the time. I also have TNT block damage disabled on all worlds. PvP is also disabled since I only make cooperative MobArenas.
None of the offensive spells would work inside the arena stating the no permission has been given but it is directly related to the worldguard config option being set to true in Magic's config file. With WorldGuard not allowing PvP, I would expect any spells that hit a player would simply not harm a player but the wand/spell is completely disabled...meaning it cannot be used to fight mobs either.
The other issue are spells that can damage blocks are also completely disabled rather than just block damage being disabled. The huge ghast fireball (icbm) could still be used to kill mobs but just not destroy any blocks, much like the existing TNT and Charged Creepers.
If those two issues could be resolved, I could re-install this plugin and make it work, otherwise I would have to disable worldguard integration which basically bypasses all worldguard settings which would allow destruction of the arenas and kill teammates.
Thanks for making such an awesome plugin,
LHammonds
@diannetea
Oh, well unfortunately anything that messes with the player inventory too much (especially saving/restoring items) is bound to mess up the wands. This is, unfortunately, a Bukkit issue- a dev has to go outside the API to preserve custom NBT data, this is not something most devs do. The alternative is that I somehow integrate with the plugin so that magic steps in to preserve the wand data.
So that's the bad news, the good news regarding the soul bind comment, that is on my todo list, just no one has really asked for it yet. Wands already remember their owners, though, so this will be easy to finish up. My plan was to prevent a player from using another player's wand, though they can still pick it up and keep it in their inventory. Let me know if that sounds good, I can try and get that in for 2.9.8! Assuming the inventory stuff isn't a total deal breaker.
@NathanWolf
I am the only one who uses creative but I make the wands in survival and give them to the players. I don't want to give them the command so that other users cannot get ahold of them. I've been trying to figure out a way to limit the wands to just that player (was going to soulbind but can't without lore or it breaks).
I do have a bunch of things that mess with inventories, off the top of my head, GameModeInventories and ClickSort, but there are probably at least a few others.
@AsukaDyna
Do you have any other plugins installed? I have seen at least one other server with this same issue, but I do not know what it is. Something is causing Magic to not recognize the wands.
Let me know if there are any errors in the server logs, what version of CB and Magic you're running, and any other relevant plugins and I will definitely try to help!
@broluigi
Yes, please see the "Plugin Integration" page for details. WG regions will be respected for build and pvp flags.
I put the plugin on my server and I can create wands and such and /cast. But when i right click a wand, it doesn't do anything. I can't open up the inventory for spells and i'm using the admin wand with OP. Mana doesn't regenerate at all and I can't craft wands by putting a blaze rod + nether star. I haven't configured anything, I just let it run default stuff
Does this obey worldguard? I am planning on using this for my server but i want this to work on every world except the spawn world
@diannetea
Haha no worries!
Wands with only one spell will use the spell'a description rather than the wand description. I could change this I think so it still uses the wand description if set.
Other than the description there is no way to add additional lore right now.
As for the wands breaking, that is distressing! Do they use creative mode? So you have any weird inventory plugins like dtlTraders or multiverse inventory or backpacks, anything like that?
a few things. I feel like a bug :P
1. wands keep breaking for players and I have to replace them 2. wands with only one spell do not have a description 3. Is there a way to add additional lines of lore?
@Gitpw3d
3.0 will be done "when it's done" :)
And to be clear, when I say something "won't happen before 3.0", that really just means I'm not adding any new features until official release. After that, there are a lot of little things I want to do, including a list of requests from people. I cannot make any guarantees about when, if ever, any of it will be implemented.
Basically, I do this in my free/spare time, I have a full-time job and a family, and really am not going to be making any deadlines here :)
@Sodacan22
Thanks @Gitpw3d - though, worth mentioning, is that the block populator (what puts wands in chests) is disabled by default.
Other options including giving out wands with command blocks (like for a quest reward), Essentials shop signs and kits, and (hopefully soon) dtlTraders.
@jbz131
That should be working, I've tested it pretty recently. You don't even need to copy+paste, for instance something like this
Will modify boom's power, but leave the rest default.
To be clear, you are modifying /plugins/Magic/spells.yml?
If you want, pastebin me your file and I will check it out when I get a chance.
elsmaker i will wait til 3.0 i believe this will fix it but i only just found this plugin so whats your estimate this plugin will be updated to 3.0 also i found a alias for the other cast "magicspellscast"
@Sodacan22 on deafult you can find them as loot or craft then with a blaze rod and nether start(of corse you can chest it in)
how to get + use spells?
I don't know if I am missing something obvious or not, but I can't seem to make customized versions of the default spells. If I try to copy the code from a default spell, say for example 'boom' and alter it to create a less powerful version of it, it doesn't work. I've tried this with many spells and none of them work. The only one I've gotten to work is the "PotionEffectSpell" class. I mean there isn't very much room for error, I'm literally just copy/pasting and changing values. Is this a bug, not meant to happen, or am I doing something wrong? Thanks in advance!
@Gitpw3d
Oh, one more thing I feel the need to mention- players should *not* have access to /cast. That command is meant for admins to do very specific (often very powerful) things, or to test something out before making it into a new or modified spell.
Magic is all about the wands at this point, it's really the only way players should be casting spells with this plugin.
@TheRedHun1
It makes sense, but is unfortunately not that simple since falling blocks can have a velocity (like the Toss/Volley/Blast spells), or you could modify terrain after checking for the landing position, cast a spell multiple times in the same place, etc.
I do hope to be able to undo falling blocks by tracking the entities until they despawn into blocks, but this is probably not happening until after 3.0.
I also want to find a way to rollback explosions, but this gets even trickier.
Thanks for your praise and interest!
@Gitpw3d
Oh, I see- I do try to use "maxhealth" when restoring health, but if ils is not using the Bukkit-supported max health functionality, then I'm not sure what I can do.
If I get a chance, I'll download that plugin and try and use it with Magic.
In the meantime, I suggest you just remove all health-related properties from any wands you want to use. Setting "health_regeneration: 0" should make it so wands don't mess with health at all.
As for the commands- I believe you can use Bukkit aliases to change command names:
http://wiki.bukkit.org/Bukkit.yml
I have not tried it myself, but I think command-name collisions like the one you're having is what this is meant to replace.
Scoreboard mana display is now on my TODO, but probably won't happen until after 3.0
This all said, in my opinion trying to use two different magic spell plugins at the same time is just going to be messy and confusing....
Thank you for the quick reply, I will be adding this to my server but I will have to disable the falling blocks. Isn't it possible to check where the block is spawned and then check the amount of air blocks or passable blocks below where it will fall and then the last position is the where the block will fall into and you rollback that position and the beginning position? If that makes sense.