MachinaCraft
Plugin under development!
This plugin has not been updated since MC version 1.5 so some if not all features will not work. While I find the time to update and expand it please use starcomedon's fork of this same plugin. you can find it Here!
What is MachinaCraft?
MachinaCraft is a framework for machines made up out of blocks, activated by right-clicking on a lever. It is modular and includes several plugins that can make repetitive tasks easier, such as digging or building in a line, even placing and clearing bodies of water. Because it is modular, other plugins can also use MachinaCraft to make their own activatable machines.
How do I build a Machina?
Similar to crafting something on a crafting table, but in the game world. Place blocks in the world in a predefined way and put a lever on the right block. Rightclick the lever, and if you built it correctly, the Machina will activate.
A demonstration please!
- Plugin Showcase by WoopaGaming
- A video series in German by BukkitDE - 1, 2, 3
Machina Plugin Info & Permissions
These are the Machina plugins available right now, included in the download:
- MachinaDrill
- MachinaBuilder
- MachinaPump
- HoverPad
- MachinaFactory
- MachinaPlanter
- MachinaRedstoneBridge
On their respective pages you can find pictures, instructions how to build them, and the permission nodes available for them.
Plugins that work with MachinaCraft
- SignShop 2 can activate a machina with a sign, possibly with a cost.
Permissions
To enable all machinacraft permissions at once, replace your server's permissions.yml with the included permissions.yml. (or add the contents if you already have something there)
This works even if you do not have a permissions plugin.
If you do have a permissions plugin and want more control, you can change the default in permissions.yml to 'op' and use the global permission node:
machinacraft
Troubleshooting
Are you having trouble getting MachinaCraft to work? Take a look at the Troubleshooting page.
Anti Cheating Plugins
Does your server use an anti cheating plugin such as NoCheatPlus? See MachinaCraft and other plugins.
Plugin Developers
MachinaCraft allows other plugins to register a blueprint for the Machina they implement. When a player rightclicks a lever, MachinaCraft will ask each registered blueprint to detect itself at that location. If successful, a new Machina is created from that blueprint.
MachinaCraft will periodically ask the Machina to check its integrity, and if successful send a heartbeat in which it can take action. The Machina can inform MachinaCraft when it should receive the next heartbeat, what its new location is (if any), or deactivate itself.
Included is an optional framework that:
- Simplifies specifying the blueprint
- Implements the integrity check for your Machina using the above blueprint
- Can move a Machina 1 block up, down, north, east, south, west
- Can teleport the Machina to a location
- Can rotate the Machina
- Can detect collisions for move, teleport, rotate actions
- Supports blocks that have additional data such as torches, levers, rails, and blocks with inventory such as furnaces and chests
- Support for optional modules.
Plugin developers looking for an example can take a look at the code for MachinaCraft.
On Hiatus
Short version: I'm on hiatus from Minecraft and developing this plugin, but the source code is available for anyone who wants to fork this and continue development.
Long version: As some of you may know, I haven't updated MachinaCraft in some time and I wanted to explain a little bit. Minecraft has taken a back seat for me in the last couple months. Also, the server I play on is Forge-based rather than Bukkit-based, which means I haven't been able to play with the results of my own plugin for a long time now. That has been a real motivation killer which is why there hasn't been any real development activity.
So it hasn't been an easy decision but I'm now officially on hiatus. My apologies to you who were hoping for more updates and even more features or cool machines - unfortunately I won't be the one implementing them. The project is open source however, and I hope there is someone out there who is willing to pick up the torch - you've got my blessing if you do.
Last but not least, a thanks to everyone who visited this site, helped out others with their questions when I wasn't around to answer them, or just had fun with the plugin! :)
To plugin developers
You're free to fork the project and continue under a new name, or use this project page to release an update, just contact me and I'll add you as an author. If you do want to pick up development I'd be happy to give some pointers via PM or irc (#bukkitdev) to help you get familiarized with the code.
The source code is available on the repository under the machinacraft4 branch.
Im using groupmanager, essentials latest update - whenver i add permissions I'm told they aren't working on any group but owner.
@slixxkilla
My guess is that the Quickbench event handler for blockplace events can't handle a null item in the player's hand. I'll make my event give it an AIR item instead since this is what CraftBukkit does internally, but I'm not sure plugins should be counting on the item to be not null.
@jenks1999
Please explain, what's not working with PEX when you give it machinadrill.* permission? And does it work when you use machinadrill.all?
Requesting permissions to be PEX compatible please for example:
- machinadrill.* - machinabuilder.* - machinapump.* - hoverpad.* - machinafactory.*
When using Quickbench and MachinaDrill (Haven't tested others.) here is what i get.
(since it is using chest I assume this is the problem so for now no quick bench. lol
4/15/2012 10:22:58 PM [SEVERE] Could not pass event ArtificialBlockPlaceEvent to QuickBench
4/15/2012 10:22:58 PM org.bukkit.event.EventException
4/15/2012 10:22:58 PM at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
4/15/2012 10:22:58 PM at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
4/15/2012 10:22:58 PM at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
4/15/2012 10:22:58 PM at me.lyneira.MachinaCore.EventSimulator.blockPlacePretend(EventSimulator.java:110)
4/15/2012 10:22:58 PM at me.lyneira.MachinaCore.Movable.canMove(Movable.java:327)
4/15/2012 10:22:58 PM at me.lyneira.MachinaDrill.Drill.doMove(Drill.java:212)
4/15/2012 10:22:58 PM at me.lyneira.MachinaDrill.Drill.heartBeat(Drill.java:138)
4/15/2012 10:22:58 PM at me.lyneira.MachinaCore.MachinaRunner.run(MachinaRunner.java:56)
4/15/2012 10:22:58 PM at com.bergerkiller.bukkit.nolagg.examine.TimedWrapper.run(TimedWrapper.java:20)
4/15/2012 10:22:58 PM at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
4/15/2012 10:22:58 PM at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:517)
4/15/2012 10:22:58 PM at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
4/15/2012 10:22:58 PM at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
4/15/2012 10:22:58 PM Caused by: java.lang.NullPointerException
4/15/2012 10:22:58 PM at com.exphc.QuickBench.QuickBenchListener.isQuickBench(QuickBench.java:91)
4/15/2012 10:22:58 PM at com.exphc.QuickBench.QuickBenchListener.onBlockPlace(QuickBench.java:486)
4/15/2012 10:22:58 PM at sun.reflect.GeneratedMethodAccessor330.invoke(Unknown Source)
4/15/2012 10:22:58 PM at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
4/15/2012 10:22:58 PM at java.lang.reflect.Method.invoke(Unknown Source)
4/15/2012 10:22:58 PM at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301)
4/15/2012 10:22:58 PM ... 12 more
and to sum it up yes im getting the message about the redstone bridge needing permissions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Also I think there is a glitch. I don't know why but when I did what you said it still said Redstone-Bridge does not have building permit or something like that and I did what you said I deleted the server permissions and replaced it with the permissions you gave me but still the same result
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ what I want is that permissions are optional. In other words there should be a config in the core that says "Permissions = false" or "Permissions = true" so if its false then the fake person has all permissions like he is op and if true then what you say so if you want to just make everyone be able to do it then make if false.
@sexysteve865
Permissions look fine to me, are they getting a message they don't have permission when they try to activate?
@acer2020
I'm not sure what you're asking, what are you trying to achieve?
how do i disable permissions ?
@Lyneira
still not working for my groups, here's my donator group permissions. http://pastie.org/3790201
Love the diamond tip idea. Amazing plugin so far. One suggestion: multiple pipe block options with value support. ie: 4 diff pipes that don't intersect or cross 5:0, 5:1, 5:2, 5:3
@xBladeM6x
Of course there will be a message to players. :) The latest release now lets you configure the depth limit. The drill can now be made with either a diamond or iron block. Staying true to vanilla minecraft, the diamond block can break obsidian and the iron block cannot.
@Lyneira
Another favor, add a message when someone is too low. So they're not like "YO DAWG. WHY IS MUH FUGGIN DRILL BORKED?"
@xBladeM6x
Interesting request, I'll add it! It won't prevent a vertical drill from digging down to bedrock, but it would prevent activating any drill below the depth limit. That should keep diamonds from being farmed too easily. :)
Is there a way to limit how low they can active the drills? Because while I do like them a lot, I want the option to disallow them at Y = 21 and below. People are getting diamonds waaaaaaaaaaaaaaaaaaaaay too easy.
The permissions.yml file worked. Thank you.
@NEREVAR117
I'll think about adding some more configurability to the drill.
Re permissions: If you don't use a permissions plugin, all you need to do is drag-and-drop the included permissions.yml into your bukkit server folder. That will allow all players access.
Could you add extra options or variety to the drills? Like a Diamond head drilling faster? Perhaps iron footpads so lava doesn't burn and stop the machine? Could you add a config option so that a space in the floor won't stop it?
Edit: Also, can you add a non-permissions option? I want to use this on a small server with friends, but I don't want to bother with a permissions plugin as we only use this and McMMO. Can you add an option to the config to let non-OPs use the devices?
@sexysteve865
Well the permission I recommend for machinabuilder is still machinabuilder.all, or if you prefer machinabuilder.activate and machinabuilder.deactivate-own.
@Lyneira
I did peek at that and I feel like a noob, but I use groupmanager for permissions etc, so I was suing machinabuilder.use for my elder group but now its different, so what im asking is what do I put to replace that since that isnt working.