[INACTIVE][MECH]BukkitPiston v0.54 - Pistons plugin for SMP [860]

Discussion in 'Inactive/Unsupported Plugins' started by redspider, Apr 12, 2011.

  1. Offline

    redspider

    BukkitPiston - Piston plugin for SMP:

    Since I don't have the time to continue developing, I've decided to release the source code.
    Hopefully someone can create a new mod out of it.

    Source


    Version: v0.54

    This mod changes iron blocks (by default) into pistons, which extend, when powered with redstone or redstone torches.
    Much like the original piston mod by Hippoplatimus. Right click on a face to change the orientation.
    Power it with redstone to make it push max. 16 blocks. (obisidan, iron and bedrock won't be pushed!)
    It is possible to change the piston properties like strength or block type. Take a look at the config.ini in the plugin/BukkitPiston folder.
    If you get an error like ebean.properties not found, create an empty file named "ebean.properties" in the bukkit main folder

    Download

    Jar File (doesn't contain config file)

    Support


    thx @MinecraftTutorialify for the vid

    thx @marvinody for the vid


    Changelog:
    Version 0.54
    • fixed: updated to 860 (fixed nether, saving problems, etc)
    • added: autosave (interval is changeable in config file)
    • changed: max worldname length is now 255
    If you had problems with that (open)

    open bukkitpiston.db with an sqllite editor of your choice (e.g. http://sourceforge.net/projects/sqlitebrowser/)
    and modify the table bp_piston_bodys (edit, modify table)
    edit the field world_name to varchar(255) (use the ...)
    same with the table bp_piston_owner.


    Version 0.53
    • fixed: exception on pushing sand
    • fixed: config.ini was not read
    • ebean.properties is created, if not present
    • known bug: /reload causes exception
    Version 0.52 (Beta)

    • Minecarts are pushed in the direction, in which they are driving
    • Sugarcane / crops fixed (thx meskeba)
    • Nullpointer event fix (runecraft and some other plugins)
    • Config file is generated if not present
    • Pistons are stored in a database (thx @Sammy for his tutorial)
    • A LOT of code refactoring
    Version 0.51

    • Few event fixes, you should REPLACE ALL PISTONS if you use worldguard or any other world protection plugin, to reset the owner
    • Owner is used as the one, who pushes the blocks
    • Protection plugins might work, not tested. (owner dependent, not activator)
    Version 0.5

    • Piston material is always immovable!
    • Added block place / break events
    • A few other fixes involving redstone
    • Config option to choose tools which can change the piston orientation
    • Warning if save file is readonly
    • Option to restrict changes in direction to owner (only pistons placed since 0.5)
    • Option to restrict building pistons to ops
    • Piston strength corrected
    Prior changelog (open)


    Version 0.43
    • Fixed iron duplication bug
    Version 0.42

    • Piston extension is a few ticks delayed, to ease the build of toggled blocks
    Version 0.41

    • Fixed PistonBlockStrength was not used
    • Integrated powered & detector rail in default config
    Version 0.4

    • Fixed player was hurt when a block was above the piston extension, player still gets hurt on purpose, when squashed
    • Custom cancellable event fired upon extension / contraction
    • Config file (set strength, change piston block id, set immovable, destructible stuff etc. (don't mess with this too much!))
    • Improved player / sand movement
    • 1.5 support (ready when you are, bukkit)
    Version 0.3

    • Flying sand / gravel !! (thx gmfreaky)
    • Piston won't stay extended when power source is destroyed by piston
    • Content of chest / furnace / dispenser will be moved, too
    Version 0.2

    • Some bugfixing
    Version 0.1

    • Internal release


    Future plans / Known bugs (open)

    here's a rough timeline, no guaranty though:
    0.6 piston edit mode via command, sand pushed like in the original pistons, block crushing
    0.7 improved x/yml config file
    0.8 sticky pistons
    0.9 permission plugin support
    1.0 final release
     
    zhuowei, CamudX, Geen117 and 7 others like this.
  2. Offline

    monir

    When reloading the server sometimes i get java error why is that?
     
  3. Offline

    Avous

    @redspider

    Does NOT work with permissions 3.0 CB build 818

    Code:
    2011-06-02 11:58:57 [INFO] Something went wrong with WorldGuard or Permissions detection, please advise author
    It's just spammed and on a previous permissions version. (2.7.3) it spams This

    Code:
    2011-06-02 12:15:53 [SEVERE] Could not pass event PLAYER_JOIN to BukkitPiston
    java.lang.StackOverflowError
        at org.bukkit.craftbukkit.entity.CraftPlayer.getHandle(CraftPlayer.java:26)
        at org.bukkit.craftbukkit.entity.CraftHumanEntity.getName(CraftHumanEntity.java:20)
        at org.bukkit.craftbukkit.entity.CraftPlayer.isOp(CraftPlayer.java:33)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:103)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.isOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer$$EntityBean$BukkitPiston.setOp(PersistentPlayer.java:1)
        at com.bukkit.redspider.bukkitPiston.PersistentPlayer.isOp(PersistentPlayer.java:105)
    Finally it conflicts with mcMMO
     
  4. Offline

    redspider

    i'm not sure, but i think its a problem with the bukkit persistence.
    would be an option
    i'll look into this soon
     
  5. Offline

    Dayanto

    The pistons seem to not work at all in the nether. I definately prefer this mod to the other bukkit mod, but I guess I have to use the other one until this works properly there. =/
     
  6. Offline

    Deages

  7. Offline

    Avous

    @Deages

    Don't really care they wont be highly configurable I'm still looking forward to this being updated way more so than real pistons.
     
  8. Offline

    TheTennessee

    Is there any way to make it so the pistons ONLY destroy the block if say... another block is preventing it from pushing it? Like... I set cobblestone to breakable, but only when another block is blocking its movement. So... if trying to push cobblestone into obsidian, it would instead deal damage to the cobblestone block it was pushing.

    Or better yet, as someone mentioned, if a block is between two other blocks, and said block can be pushed, will it destroy the block stuck between the two pistons? Could it anyhow? I think that's the only functionality it is missing.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 13, 2016
  9. Offline

    redspider

    just a feedback: i'm working on the nether and the permission problem.
    it seems like jeb already finished the pistons. they will be in 1.7.
    so there won't be sticky pistons or block crushing in this mod.
     
  10. Offline

    johndango

    I read that people had problems with the piston's orientation changing after a reset. Even after updating to the newest version I am still seeing this behavior. Any ideas?
     
  11. Offline

    Gangsta_hotdog

    Is there a way to stop this from setting off tnt?
     
  12. hi, how can i make this thing so it doesnt destroy rails? i changed it so that 66 (rails) are not destructible...i also tried making 66 replaceable but that didn't work.
     
  13. Offline

    Kmus255

    actually my pistons reset after server reboot :(
     
  14. Offline

    NeonJ

    Is there a video or pictures?
     
  15. Offline

    harakiwi

    a piston in bukkit is an iron block (3x3 iron bars)
    if powered by redstone (for example) it expands in 2 iron blocks.
    there's no animation or special model like the original pistons will have
     
  16. Offline

    redspider

    yes, now there is.
    hm, seems to be new since 1.6. i'll look into this...
    remove it from any list and they'll be pushable
    it doesn't
     
  17. Offline

    Gangsta_hotdog

    Yes it does, when you set it up the a repeater it does. Not sure why..
     
  18. Offline

    Alakutevainen

    @gangsta, tnt is blowing because you have redstone aimed directly at it, like this
    [redstone]-------[piston base][piston direction & tnt]

    Put redstone like | or anyhow else and it just pushes forward.
     
  19. Offline

    JKing

    Ello guys, well im going to post a video on your mod if you dont mind, its just a simple way of use for the pistons, Which are gates, ive been able to make one even tho i have no experence with redstone wirings...>.>, but if you let me ill post the video, addcredits and everything. Oh and a susgestion, can you add a function that when piston throw sand up, they dont only send one layer and more then 3? that would help the me a lot!.
     
  20. Offline

    redspider

    feel free to post a video. there are some other problems, which have priority. but sand is on my todo ist.
     
  21. Offline

    Avous

    @redspider

    Thanks for the update but I'm not entirely sure I'll like 1.7 pistons. they lack options like flinging players/blocks and no comment if they crush blocks when a piston pushes a block into a immovable block. so do you plan to scrap this project and restart using real pistons adding features to them?
     
    ledhead900 likes this.
  22. Offline

    rshook

    hello, (SORRY FOR MY ENGLISH, I'M FRENCH !) i love this plugin but, i can't install him on my server, i have the following error in my console :
    12:15:23 [INFO] DataSourcePool [BukkitPiston] autoCommit[false] transIsolation[S
    ERIALIZABLE] min[2] max[20]
    12:15:25 [GRAVE] FATAL: DataSourcePool [BukkitPiston] is down!!!
    12:15:25 [INFO] Reseting DataSourcePool [BukkitPiston] min:2 max:20 free:0 busy:
    0 waiting:0 highWaterMark:0 waitCount:0 hitCount:0
    12:15:25 [INFO] Busy Connections:

    12:15:25 [GRAVE] Could not load 'plugins\bukkitPiston.jar' in folder 'plugins':

    com.avaje.ebeaninternal.server.lib.sql.DataSourceException: com.mysql.jdbc.excep
    tions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driv
    er has not received any packets from the server.
    at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.<init>(DataSour
    cePool.java:210)
    at com.avaje.ebeaninternal.server.lib.sql.DataSourceManager.getDataSourc
    e(DataSourceManager.java:210)
    at com.avaje.ebeaninternal.server.lib.sql.DataSourceGlobalManager.getDat
    aSource(DataSourceGlobalManager.java:63)
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.getDataSourc
    eFromConfig(DefaultServerFactory.java:427)
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.setDataSourc
    e(DefaultServerFactory.java:388)
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer
    (DefaultServerFactory.java:168)
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer
    (DefaultServerFactory.java:64)
    at com.avaje.ebean.EbeanServerFactory.create(EbeanServerFactory.java:78)

    i use bukkit build #860 and i know how install a plugin. Please :( help me... (in french, if possible :D) Thank you !
     
  23. Offline

    redspider

    can't say for sure, yet. we'll see, what the real pistons will be capable of, but i don't think i'll change them.

    seems like a problem with the database. do you use a extern sql database?
     
  24. Offline

    rshook

    I don't understand ? I don't use Sqlite, think you can help me ? with 'Team Viewer' ???
     
  25. Offline

    RustyDagger

    personally redspider i think if you don't add to them some one else will. how ever i dont think i will use the plugin unless I get huge pressure from my player base.

    I'm so sick of my pistons not saving i should really upgrade to the newer version with auto save :/

    Causing so many dupe issues because when it don't save it and its extended it don't remember it as a piston so it don't make the other half disappear.
     
  26. Offline

    goomma

    what about sticky pistons :(
     
  27. Offline

    Blechbuexse


    .classpath in bukkitPiston.jar

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6"/>
        <classpathentry kind="lib" path="C:/Users/Aram/Desktop/bukkitserver/craftbukkit-0.0.1-SNAPSHOT.jar"/>
        <classpathentry kind="output" path="bin"/>
    </classpath>
    
    C:/Users/Aram/Desktop/bukkitserver/craftbukkit-0.0.1-SNAPSHOT.jar??? im not Aram :)

    sry for my english i'm german
     
  28. Offline

    redspider

    whoops... *fixed
     
  29. Offline

    Blechbuexse

    thanks :)

    bug:
    Server crashes when I remove Piston activated, they must necessarily switch off when I remove them.
     
  30. Offline

    redspider

    serverlog?
     
  31. Offline

    ho0k

    So let me get this right, if the server reboots, all the Pistons reset their push direction? We were thinking of using this mod in the meantime as a placeholder for Jeb's Pistons.
     

Share This Page