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.
Your welcome :D
I just saw the new update and I am excited to try the new stuff!
@Taeila_Fae
Thank you, that's very helpful information!
I've parked it on a page so people who also have trouble with this can find it more easily:
@xBladeM6x
I gave my construction group the:
- nocheat.checks.blockbreack.noswing - nocheat.checks.blockbreak.direction - nocheat.checks.blockbreak.reach - nocheat.checks.blockplace.direction - nocheat.checks.blockplace.reach
permissions and they are able to turn their machines on.
@Lyneira
Is there any way to configure nocheat to work with machina? I had to get rid of it for now, however it would be nice to add it again, for obvious reasons. I just don't think I'm willing to give up machina to do it.
@Lyneira Great plugin but block log plugins do no work with it :(
So this is a ultimate griefer tool.
@xBladeM6x
Awesome, that's quite a huge underground cavern! Glad you're having fun with it! :)
@Lyneira
Thought you might appreciate this:
http://www.youtube.com/watch?v=zlK52jpeVQ0&feature=youtu.be
@kuroneko42
Is there something broken with the latest release? I haven't updated the version number on the file because 1.2 doesn't have a recommended build yet. But from what I can tell my code hasn't broken with bukkit 1.2.3-R0.2, so it should work just fine.
Any plans to upgrade this to 1.2?
Lyneira: Thank you! Works beautifully now. :D
@grolthok
Found the cause of those errors when using CraftBukkit 1.1-R6 and fixed them, try the latest version: MachinaCraft v2.1.1
Same error as below. Horizontal drilling is fine, but vertical drilling on any surface is borked:
line break [0m 2012-03-08 05:06:46 [SEVERE] Could not pass event PlayerInteractEvent to MachinaCore org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:441) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:168) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:285) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:634) 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:112) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at me.lyneira.MachinaPump.Blueprint.detect(Blueprint.java:42) at me.lyneira.MachinaCore.MachinaCore.onLever(MachinaCore.java:62) at me.lyneira.MachinaCore.MachinaCoreListener.playerInteract(MachinaCoreListener.java:49) at sun.reflect.GeneratedMethodAccessor5.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:301) ... 12 more 2012-03-08 05:06:50 [SEVERE] Could not pass event PlayerInteractEvent to MachinaCore org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:441) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:168) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:285) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:634) 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:112) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at me.lyneira.MachinaPump.Blueprint.detect(Blueprint.java:42) at me.lyneira.MachinaCore.MachinaCore.onLever(MachinaCore.java:62) at me.lyneira.MachinaCore.MachinaCoreListener.playerInteract(MachinaCoreListener.java:49) at sun.reflect.GeneratedMethodAccessor5.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:301) ... 12 more
Fail ... I need help ...
13:52:45 [SEVERE] Could not pass event PlayerInteractEvent to MachinaCore org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:441) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEven t(CraftEventFactory.java:168) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.j ava:285) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:634) 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:112) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) Caused by: java.lang.NullPointerException at me.lyneira.MachinaPump.Blueprint.detect(Blueprint.java:42) at me.lyneira.MachinaCore.MachinaCore.onLever(MachinaCore.java:62) at me.lyneira.MachinaCore.MachinaCoreListener.playerInteract(MachinaCore Listener.java:49) 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.ja va:301) ... 12 more
Does it work with 1.2
Update please?
@OMG_Spedwards
You can find permission node info on each plugin's information page:
Are there any permissions? I don't want all my members making them.
It would be awesome if you could like.. set a pre made schematic onto a builder and once started will start building the schematic in a zigzag like pattern and will deactivate when it does not have the required materials to make it.
Example: 5x5 dirt house schematic will need 88 dirt blocks to create, once it runs out of dirt the machina will stop
Schematics: something similar to worldedit, where you make a cuboid then save the schematic onto the root/schematics folder of the server.
Maybe bind a schematic onto an ingame item... lets say paper?
like "/blueprint dirthouse" will read "root/schematics/dirthouse.schematic" and will attach the blueprint onto the paper ( similar to how bookworm works i guess? )
then you can place that schematic into the builder machina and it will start building it?
thanks for listening to my rant. <3 MachinaCraft
its possible the seasons plugin is changing the effect the snow has , but i noticed that when it had stalled there was allways snow involved. like forming on it or just in front where it had time to form before it moved on ( in a area it had allready cleared). So it may not be specifically your plugin i guess.
Thanks for the reply
@stevevbrewer
Try your server (after you backup your world if you're worried) with only the machinacraft plugins and groupmanager? Then run the commands to give players permission, and it should work. After that you can start adding other plugins back one by one to see which one is blocking MachinaCraft.
@webname
The drill should go right through snow, but I can look into fixing it on the builder :)