GeometricMagic Reloaded
Note: cakenggt is the original developer of this plugin. However, he discontinued development of this project, so I am continuing it for him.
This plugin contains optional Vault integration. If you want to use the Vault transmutation system instead of the XP system, you need to set the value of transmutation.cost in the config file to 'vault'. Along with Vault, you will also need a Vault-compatible economy plugin.
Geometric Magic
GeometricMagic adds the functionality of Geometric Magic, like that shown in Fullmetal Alchemist and more. Through redstone designs on the ground, one can do wondrous things such as teleport, transmute blocks, and build grand sculptures with little to no effort.
Features
- Transmutation (change blocks of one type into another with energy costs, or magnify a small template)
- Teleportation (works better if the player actually puts time into calculating where they want to end up)
- Set-Circles (circles with a specific purpose which can be activated remotely through Alkahestry)
- Philosopher's Stone (an item that will magnify your alchemical power, the construction of which comes with a terrible price)
- Storage (store up to 1225 blocks in a file for later use)
Permissions
v2.4 and onwards contains new permissions! However, by default you do not need to set any permissions up. The only reason why you would need to set permissions up would be if you wanted to restrict access to standard features to certain groups/players, or if you wanted to allow some groups/players to use transmutation circles larger than the default size of 1.
Permission | Effect(s) | Default value |
geometricmagic.* | Gives full access to the plugin | OP |
geometricmagic.standard | Gives standard access to the plugin | True |
geometricmagic.teleportation | Gives access to the teleportation circle | True |
geometricmagic.micro | Gives access to the micro circle | True |
geometricmagic.transmutation.* | Gives access to all sizes of transmutation circles | OP |
geometricmagic.transmutation.<Odd # from 1-9> | Gives access to size (x) transmutation circles | 1: True, Other: OP |
geometricmagic.storage.* | Gives access to all sizes of storage circles | True |
geometricmagic.storage.<Odd # from 1-9> | Gives access to size (x) storage circles | True |
geometricmagic.set | Gives access to all set circles and /setcircle | True |
geometricmagic.set.* | Gives access to all set circles | True |
geometricmagic.bypass.* | Gives access to all bypasses | OP |
geometricmagic.bypass.cooldown | Allows bypassing of cooldowns | OP |
geometricmagic.bypass.crafting | Allows bypassing of crafting restriction | OP |
geometricmagic.bypass.hunger | Allows bypassing of hunger costs | OP |
geometricmagic.bypass.sacrifice | Allows bypassing of loss of alchemical abilities | OP |
geometricmagic.command.setcircle | Gives access to /setcircle | True |
geometricmagic.command.circles | Gives access to /circles | True |
geometricmagic.command.geometricmagic | Gives access to /geometricmagic | True |
geometricmagic.command.geometricmagic.reload | Gives access to /geometricmagic reload | OP |
TL;DR: By default, you shouldn't have to change any permissions. If you want to completely prevent a user from using any features in this plugin, set geometricmagic.standard to false. If you want to give a user full access to this plugin, including all sizes of transmutation circles and the /geometricmagic reload command, set geometricmagic.* to true.
Commands
There are 3 commands included in this plugin:
- /setcircle #### - Binds set circle #### for use when right clicking with flint. 0 resets
- /circles - Displays a list of set circles
- /geometricmagic [reload] - Displays plugin help or executes given sub-command (Only sub-command is reload at the moment, which reloads the plugin's config file
Creation
Bug Reports
Please post these on GitHub. Please provide (at minimum) the following information:
- What the most likely cause of the issue was (such as what you were doing at the time)
- Any errors displayed in the console (Please use pastie.org for these!)
- The version numbers of the plugin and of Craftbukkit (Don't say 'latest'!)
- Any additional information you can provide, such as potentially conflicting plugins
To-Do
- Balance changes
- Leveling system
- Multiple people required for some advanced circles
- More than just flint for linking circles to items
- Add command to list learnt circles
- Add circles that are harder to learn
- Limit amount of souls that can be used
- Configuration option for disabling villagers dropping souls
- Prevent player soul farming
- Third system for stored alchemy value: alchemy points
- Cooldown on lightning to prevent spam
- More configuration for souls
- Name items (fire could be called 'soul')
- Other circle designs
- More circles with varying effects (suggestions please?)
Contributors
- cakenggt (BukkitDev, GitHub) - Original plugin
- ryvix (BukkitDev) / ty2u (GitHub) - Code contributions
- Goldkoron (BukkitDev) - Video
Servers using GeometricMagic
Please notify me via PM if you want your server to be listed here, making sure to list the server's name and the IP.
Note: Geometric Magic implements a notification system for updates, and in versions newer than 2.8.5 can be disabled by changing autoNotify in the config to false.
Geometric Magic also collects anonymous statistics via PluginMetrics, data of which can be found here. This can be disabled by setting opt-out to true in 'plugins/PluginMetrics/config.yml'.
@janie177
For the time being, simply removing players' permission to use those circles which bypass area protection should work just fine. I know that I haven't been great with releasing updates lately, mainly because summer break just started and I've kind of been relaxing a bit more. I'll try to get an update out to fix some of these issues and maybe add in some new features soon, although I can't guarantee when that will be, exactly (Although it will probably be within the following week).
As for this issue that you say allows players cloning infinite diamond blocks, I would really appreciate it if you could maybe send me a PM (or an e-mail, [email protected]) about that so I can get that fixed as well, because that sounds pretty major.
@Hoot215
I got the spawn protected by worldguard and factions. still everything explodes. And there is a way for people to clone infinite diamond blocks.
@janie177
If you don't want your players using those circles, simply remove their permission to use them. I am aware that some of the set circles bypass protection, and I suppose I should fix that. Thank you for reminding me.
EDIT: I think I misread your comment a little bit. If they are destroying the spawn using transmutation circles, then it should be sufficient to simply protect the spawn area using a plugin like WorldGuard.
Some of my players are able to make holes in the spawn using explosions after transmutation.
@machado197328
For the set circle explosions, I could add in a new circle which doesn't damage blocks, but you would also have to remove players' permission to use the other explosive set circles. As for transmutation, I should say first of all that as of v2.5, there is an event simulator, which prevents transmutation from occurring in protected areas, so you don't need to worry about that. As for vertical adjustment of transmutation circles, that sounds like a cool idea. I'll look into it.
hey man i see that you're taking this seriosly and i thank god for that, i have a few suggestions that shouldn't be too hard to release and will make this plugins just what i've been looking for.
-the setcircle of explosion, you think it's possible to prevent block damage?, it would be awesome
-the transmutaion circle suggestions
- i was imagining with we could transmutate into water too, make a giant wave that carry the mobs away would be nice.( and then transmute into ice or lava heheh)
-you think it's possible not allowing the alchemy on near protected areas? or some sort of way that people don't feel pushed to transmute a giant block of dirt out of nowhere right in the middle of the city. I mean.. after a while, it could vanish by himself (after a long cooldown, let's say 3 or 4 min)
-the last and probably the cooler, in trasmutation circle, if you could increase down that area surrounded by redstone, making possible to create holes to swallow our enemies.
thxx for your reading
Version 2.6.1 was just released! Here's the entry from the changelog page:
v2.6.1 (FIX, Beta)
Download (Warning: Not approved by BukkitDev): LINK
Version 2.6 was just released! Here's the entry from the changelog page:
v2.6 (FIX)
Download (Warning: Not approved by BukkitDev): LINK
@RyuuAinaki
Okay, I just looked into it, and it turns out that I made a mistake with permissions for set circles. The bug was that players weren't getting geometricmagic.set.* and geometricmagic.setcircle when they should have been by default. I'll release a fix for this in a few minutes. In the meantime, you can simply set those permissions that I listed above manually if you want a quick fix.
I would like to report that having used GeometricMagic Reloaded (2.4) on my personal server with my friends, I must say that my friend HagurumaToss is a big fan of FMA and really enjoys using it, but both he and I had a big issue with it lately, dealing with one big issue; the /setcircle command.
In 2.4 - With and without Essentials, Multiverse, and PermissionsPlugin, all features but /setcircle work without error, save for the set circle 1222 causing experience to be removed rather then gained, but at first, we couldn't get /setcircle to work. After toying with the permissions a bit, it seems that geometricmagic.setcircle is set to false, even for ops and admins. Eventually, I got it to work, but only to give me flint; if I actually set a circle, it causes an internal error. trying to setting the circle with /setcircle or using the flint also causes a number of errors to come up on the server window: [SEVERE] Could not pass event PlayerInteractEvent to GeometricMagic org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:287) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:636) at net.minecraft.server.Packet15Place.handle(SourceFile:39) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at me.cakenggt.GeometricMagic.GeometricMagicPlayerListener.isCircle(GeometricMagicPlayerListener.java:113) at me.cakenggt.GeometricMagic.GeometricMagicPlayerListener.onPlayerInteract(GeometricMagicPlayerListener.java:89) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ... 12 more
In 2.4.2 and 2.5 - Even without any other plugins installed, and I reset bukkit to it's default settings, I cannot get anything to work; I keep getting the message that, when I use any set circle, I get the in-game error message "You do not have permission to use circle [X,X,X,X] or set circle doesn't exist." /setcircle still gives flint, teleportation and transmutation works, but all set circles are effectively broken now. Error message for internal error on 2.5: [SEVERE] Could not pass event PlayerInteractEvent to GeometricMagic org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:287) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:636) at net.minecraft.server.Packet15Place.handle(SourceFile:39) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at me.cakenggt.GeometricMagic.GeometricMagicPlayerListener.checkSacrifices(GeometricMagicPlayerListener.java:1874) at me.cakenggt.GeometricMagic.GeometricMagicPlayerListener.onPlayerInteract(GeometricMagicPlayerListener.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ... 12 more
I do hope you get this resolved soon.
Version 2.5 was just released! Here's the entry from the changelog page:
v2.5
Note: If you experience issues with transmutation not working, please delete your config and allow it to regenerate (although you should not have to do this, and if you do, please post a ticket on GitHub or a comment here).
Link for those who are impatient (Warning: Not approved by BukkitDev staff): LINK
@Hoot215
that sounds exactly like what im looking for :D
@zbrain
I was thinking along those lines, with the addition of increasing the cool down time based on the size of the transmutation circle. It'd also increase based on the cost of the set circle. And of course, the same would go for the teleportation circle (a longer distance = more cool down time).
@Hoot215
Sounds good im willing to wait for how ever long it takes, It would be really nice if different circles could have different cool downs, so you could still teleport ever 5 secs but you still have to wait a minute before you can transmutate something
@zbrain
I'm glad that someone else appreciates the idea :)
As for a cool down timer, that is definitely possible, and I like that idea, although I won't be able to implement it in time for the next release (which should be in a few minutes). However, I'll keep that in mind for the release after next.
@Hoot215
Awesome man, I like the idea of a gui :)
Do you think that there could be a way (or is there a current way) that you could set a cool down timer between the uses of circles? Might decrees the urge of some of my users to transmog 9x9 girds worth of stone into air. :P
@machado197328
Oh, okay.
As for human transmutation, how exactly are you using it? The proper usage is to type /setcircle once to receive flint (which you did), and then to type /setcircle ####, with #### being the number of the set circle you want to use. Then you just right click wherever you want to use it. Or are you trying to use it by pointing at a circle you want to activate and right clicking it? Because that's not really how it works.
yeah.. about the setcircles problem, i wasn't using arrows xD... but the human transmutation still not working, the strage is that, i see the message of the taboo, type /setcircle, receive the flint, but when i try to ''wand'' a set circle on it, doesn't show any message or error, just.. doesn't work
Version 2.4.2 was just released! Here's the entry from the changelog page:
v2.4.2 (FIX, Beta)
Link for those who are impatient (Warning: Not approved by BukkitDev staff): LINK
@ryvix
Yeah, that would make sense.
@machado197328
Are you sure you're doing it properly? I'll look into this issue and see if I can replicate it. Also, are there any errors in the console? Please describe in detail exactly what happens.
Also, I just did a /facepalm when I noticed something pretty major wrong with the code. I'll fix that up ASAP and make a new beta release.