PistonChest
You can now give pistons certain abilities which extend their basic boring nature.
Supports:
- LWC (command 'pcpassword <password>' allows the user to assign a password to a piston, to give to LWC password protected chests)
- Lockette
- Secure Chests
About:
Whenever you place a piston it will be registered in your name. This prevents players from destroying them or claiming them for themselves. PistonChest supports the above plugins which can prevent a piston from accessing a chest if they do not have permission. In this plugin there are certain abilities which modify how the piston behaves, and can be combined to create the ultimate machine. The basic ability is being able to push and retrieve blocks and items from a chest. In order to add an ability the player must use the specified tool (default: stick) then right click on their piston to bring up a GUI from where they can either add items to use abilities or simply turn them on and off. See below for a list of abilities...
To Install,
- Copy and paste the 'PistonChest.jar' file into the plugin folder...
No more need for Commands!
Use a stick by default to modify your piston functionality! (Version 1.8)
NEW VERSION UPDATES AND FIXES
Videos
Commands and Permissions
- /pcreload - pistonchest.reload - Reloads the config file
- /pcregister - pistonchest.register - Registers an unregistered Piston. (Pistons are registered on place by default).
- /pcunregister - pistonchest.unregister - Unregisters a piston that is registered by you. (Allows other people to claim it)
- /pcpassword - pistonchest.password - Assigns a password to unlock a password protected chest (For LWC).
- /pcdetails - pistonchest.details - Gets the details of the clicked piston.
- /pcability - pistonchest.ability - Gives pistons certain abilities.
Config
Change Log:
Abilities:
Type '/pcability <add/remove> <ability>' then click on the piston, to manage piston abilities. Abilities can be combined to make the ultimate piston machines!
chest_access
Description:
Gives the piston the ability to push and pull blocks/items in and out of chests.
How To:
super_push
Description:
Gives pistons the ability to shoot blocks/items. Note: To increase the power of the piston, surround it with obsidian. Works 1 block all the way around.
How To:
chest_dispenser
Description:
Gives pistons the ability to push blocks from a chest.
How To:
Ultimate Setup
Please note you will have to adjust the obsidian according to how far the chest is away, and what item is being fired. (Players and monsters encounter wind resistance).
Is it possible to stop the piston from being able to push bedrock or obsidian?
@TinCow
Yer I think my method of accessing the database was long and required alot of memory. And when using heaps of pistons at once it kinda just lags heaps. uses heaps of memory. hah.
But i changed it so let me know how it goes :) May have to wait till the update gets approved though. its still pending. its the 1.6.2 version
@kevupton
Thanks. I'll test it this evening and get back to you.
For the record, the plugin worked fine when it was being used normally (one piston pushing into one chest). It started malfunctioning after one of my users added it to a smooth stone generator. He had the thing setup such that six pistons pushed simultaneously into six chests. At that point it started putting out the memory errors and causing lag.
@TinCow
Ok this should be improved in the 1.6.2 update
Using 1.6.1, I'm getting serious errors on Bukkit 1.4.5-R0.1. The plugin appeared to work fine at first, but quickly started spamming the console with the following text, and causing significant server lag:
@nkomosim
@breakabledog
@adamber
Has been fixed :)
@ger999
@Cubanrevel
@Chemical_Datas
@7eggert
@breakabledog
Ok Guys, I have fixed the database error! Sorry for the late reply, I have been fairly busy. It will be in version 1.6.1
@kevupton
I was testing you plugin is very interesting. I try it on my server and it work. but when I went in to the console it was flooded with this error === [INFO] Error processing piston info! === any patch for this.
Thank you Cubanrevel
Not having much luck with the pulling items from chests...every time I do the piston breaks and drop the piston item..
Can you add more customization on the config file so you can pick what pistons can do eg. Pull items out of a chest. Also could you add secure chest support?
Dose anybody have a working database that I could use? When he introduced the databases, thier not generating right for me. Somthing about a few missing tables called pistions and events....
@Jahb57
But It Wont do Items D:
will version for 1.3.2 ?
Hey, is there any way to disable people from pushing bedrock into chests? I don't want people getting bedrock on my server...
@kevupton
Can you Update to 1.3.2 Or Fix The DB Bug? :(
I was so happy to see that all other features works again (Item to Chests, Item to Furnace, Item From Furnace and and and)
and now this.. :(
Looking at the error message, there is an error in the database. You can recreate it by deleting everything but the config file from the directory.
------I just installed the version with the DB, and I got two database files: PistonChest.db with 0 bytes pistonchest.db with some KB
(I guess you tested on windows where you'd get exactly one file.)
(Suggestion: If you start typing things twice, use a (global or local) constant. If you decide to make it configurable, changing it will be much easier. HTH)
Getting the same error @nkomosimi Tell me if anyone has got a solution. C:
Huge error spam...
19:13:42 [INFO] java.sql.SQLException: [SQLITE_ERROR] SQL error or missing datab ase (no such table: pistons) 19:13:42 [SEVERE] Could not pass event BlockPhysicsEvent to PistonChest org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:332) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at net.minecraft.server.World.m(World.java:430) at net.minecraft.server.World.applyPhysics(World.java:418) at net.minecraft.server.World.update(World.java:371) at net.minecraft.server.World.setTypeIdAndData(World.java:353) at net.minecraft.server.TileEntityPiston.i(TileEntityPiston.java:85) at net.minecraft.server.BlockPiston.b(BlockPiston.java:124) at net.minecraft.server.WorldServer.a(WorldServer.java:797) at net.minecraft.server.WorldServer.Q(WorldServer.java:784) at net.minecraft.server.WorldServer.doTick(WorldServer.java:165) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:560) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at me.kevupton.pistonchest.PistonDatabase.getPiston(PistonDatabase.java: 209) at me.kevupton.pistonchest.Integration.hasAccess(Integration.java:42) at me.kevupton.pistonchest.PistonChest.onPistonExtend(PistonChest.java:2 12) at sun.reflect.GeneratedMethodAccessor472.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:330) ... 17 more
Would it be possible to check the chest first? If the chest is full, have the block simply collide with the chest (as it would normally without this plugin - piston wouldn't activate). As of right now, if the box is full, every new item will be deleted.
not sure whats causing this. another plugin perhaps?
19:13:42 [INFO] java.sql.SQLException: [SQLITE_ERROR] SQL error or missing datab ase (no such table: pistons) 19:13:42 [SEVERE] Could not pass event BlockPhysicsEvent to PistonChest org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:332) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at net.minecraft.server.World.m(World.java:430) at net.minecraft.server.World.applyPhysics(World.java:418) at net.minecraft.server.World.update(World.java:371) at net.minecraft.server.World.setTypeIdAndData(World.java:353) at net.minecraft.server.TileEntityPiston.i(TileEntityPiston.java:85) at net.minecraft.server.BlockPiston.b(BlockPiston.java:124) at net.minecraft.server.WorldServer.a(WorldServer.java:797) at net.minecraft.server.WorldServer.Q(WorldServer.java:784) at net.minecraft.server.WorldServer.doTick(WorldServer.java:165) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:560) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.NullPointerException at me.kevupton.pistonchest.PistonDatabase.getPiston(PistonDatabase.java: 209) at me.kevupton.pistonchest.Integration.hasAccess(Integration.java:42) at me.kevupton.pistonchest.PistonChest.onPistonExtend(PistonChest.java:2 12) at sun.reflect.GeneratedMethodAccessor472.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:330) ... 17 more