Inactive [MECH] DropChest v0.8.3 - Chests that absorb dropped items [1.1-R3]

Discussion in 'Inactive/Unsupported Plugins' started by narrowtux, Feb 9, 2011.

  1. Offline

    narrowtux

    DropChest - Chests that absorb dropped items
    Version 0.8.2
    [​IMG]
    Important! When migrating from 0.6 to any above version, you have to move the DropChest.txt from server/plugins/DropChest.txt to server/plugins/DropChest/DropChest.txt
    This is because I have to follow the Bukkit plugin saves guidelines.

    This plugin automatically adds dropped items to near chests. That is very useful for automatic farming and monster traps that gather loot.
    Features
    • automatically suck dropped items that are near a chest to that chest
    • customizable warning if the chest is nearly full
    • list your DropChests and watch how much percent is still free
    • Permissions
    • Filter
    • Storage Minecart support
    • Dispenser and Furnace support
    • Item information
    • Chest protection
    • Automatic Owner tracking
    • Double-Chest support
    Download

    DropChest.jar
    GitHub Project (Source Download)
    Download development version

    Donate, if you want to support me ;)

    Video



    Usage
    Commands
    Show commands (open)

    To add a chest to the "watchlist", type
    Code:
    /dropchest add [radius]
    After that, rightclick the chest that you want to add. Radius is the radius in which the Chest should suck items. Default value is 2.

    To remove a chest from the "watchlist", just type
    Code:
    /dropchest remove chestid
    where chestid is the number of the chest that you get when you call /dropchest list

    You can list the chests that are on the watchlist via
    Code:
    /dropchest list
    You can adjust the radius of a chest via
    Code:
    /dropchest setradius chestid radius
    You can check which id and radius the Chest in front of you has:
    Code:
    /dropchest which
    after that, rightclick on the Chest to get information about it.
    If you are sitting in front of the console, or don't want to rightclick, you can use
    Code:
    /dropchest info chest
    It will generate the same output as /dc which.

    You can teleport to a chest via
    Code:
    /dropchest tp chestid
    where chestid is the ID of the dropchest

    You can set the name of a DropChest via
    Code:
    /dropchest setname {chestid} {newname}
    The name is displayed in chest is full warnings, and in the DropChest list!

    If you migrate from 0.6 to 0.7, you can set the owner of a dropchest by typing:
    Code:
    /dropchest setowner {chest} {newowner}
    You can protect a chest by typing
    Code:
    /dropchest protect {chest} {on|off}
    You can always use /dc instead of /dropchest if you are lazy.

    Another very helpful command is /dcitem:
    Code:
    /dcitem [NAME|id]
    
    This can be used to obtain the name of an item by it's id or get an id of the item-name.
    This doesn't work with all names, though.

    Use the new command /chestinfo {name|id} to get info about what's inside the chest.
    Omit the argument and rightclick on any chest to get info about that.
    Example:
    Code:
    >/dcitem 4
    4 is COBBLESTONE
    >/dcitem cobblestone
    COBBLESTONE is 4
    

    Show Configuration (open)

    You can configure DropChest by pasting the contents of the following block to plugins/DropChest/dropchest.cfg
    Code:
    #Should the dropchest drop items when it gets a redstone signal?
    droponredstone=true
    #How long should the dropchest not suck items after it has dropped them
    waitafterdrop=10
    #Should users be able to protect chests like in LWC?
    usercanprotectchest=true
    #Which is the default radius if you omit the radius argument in /dropchest add?
    defaultradius=2
    #Which should be the maximum radius for players that have not dropchest.setBig and aren't ops?
    fallbackradius=15
    #At which fill-status should the chest warn you?
    warnfillstatus=90
    #Which message should appear as warning?
    #You can use this variables (example):
    # $owner : the owner of the chest (narrowtux)
    # $name  : the name of the chest (my superduper mobtower chest/#42)
    # $fill  : The fill status, in percent (81)
    warnmessage=$owner, your chest $name is nearly full($fill%).
    

    Filter / Storage Minecarts
    Show Filter/Storage Minecarts (open)

    Filters have changed in version 0.6. There are now 3 seperate filters that are for sucking items, pulling items from passing minecarts and pushing them to passing minecarts.
    You can now set the filters by either using commands or using the interactive mode. Let me show you the interactive mode first:
    to begin, type
    Code:
    /dropchest filter {suck|push|pull}
    Note: choose one of suck, push or pull, please (for example /dropchest filter suck)
    Then you will enter the interactive mode. In this mode you can edit the selected filter by hitting the chest with the desired item in your hand.
    To edit another filter, type the above command again.
    To finish your filter, type
    Code:
    /dropchest filter finish
    Commands mode:
    Code:
    /dropchest filter {suck|push|pull} {chestid} {itemid|itemtype|clear}
    Call the filter-command like above, as second argument, use the chest-ID, and as third argument, either type the item-ID, the name of the item (as they appear here: org.bukkit.Material) or type clear to clear this filter.
    Please note! The suck filter acts different from the Pull/Push-Filter when it's empty. When the suck-filter is empty, the chest will suck every item. When a Pull/Push filter is empty, it won't take or give any items to a passing minecart.

    Show Permissions nodes (open)

    You can use these nodes:
    • dropchest - To get the right to use DropChest
    • dropchest.create - To call /dropchest add
    • dropchest.remove - To call /dropchest remove chestid
    • dropchest.radius.set - To set the radius of a Chest to something else than 2
    • dropchest.radius.setBig - To have unlimited radius
    • dropchest.which - To have access to the /dropchest which command
    • dropchest.teleport - To be able to teleport via /dropchest tp chestid
    • dropchest.filter - To set or reset filters
    • dropchest.filter.set - To set filters in interactive mode
    • dropchest.filter.reset - To reset filters in interactive mode (click with nothing in hand)
    • dropchest.list - To have access to /dc list and /dc info
    • dropchest.destroy - To be able to break a dropchest without removing it before.
    • dropchest.protect - To be able to protect a chest
    • dropchest.moderator - To be able to modify a dropchests properties even if you're not the owner. Also, ops and the console can do that.
    You can use these variables:

    • dropchestmaxradius - To adjust the maximum radius for a group or a user
    How to use variables:

    Code:
    users:
      narrowtux:
        info:
          dropchestmaxradius: 1000
    
    This is just an example and this also works with groups!

    Changelog
    Version 0.8.2
    • Fixed the loading issue.
    Version 0.8.1
    • Supports SuperPermissions (when no Permissions plugin was found)
    • Fixed show stopping bugs.
    • Use YAML as persistence storage. You can find the new file at plugins/DropChest/dropchests.yml
    Show Changelog (open)

    Version 0.8
    • Performance improvements
    • Fixed a bug that caused dropchest to eat stacks in storage minecarts (thanks @Tenebria )
    • Implemented per-chest delay (thanks @Gibbers )
    • Made /dc list per player. Use /dc list {pagenum} all to see all showcases (works without all in the console)
    Version 0.7.9
    • Fixed bug where items were lost when a chest/minecart was full on pushing/pulling
    • Little code cleanup
    Version 0.7.8
    • Fixed a bug where, for example, if you had several ItemStacks of 1 block each, only 1 ItemStack would be pulled to the chest or pushed to the MineCart, the others would be deleted.
    • Minecarts can now be over/under DropChests to be handled
    Thanks M-Type!
    Version 0.7.7
    • Double Chest support
    Version 0.7.6

    • Fixed some issues when using a Permissions implementation that is not complete (in this case EssentialsGroupManager as reported by @Kartus )
    Version 0.7.5

    • you can add all items to a filter by using the keyword "all" instead of the material-type
    • you can obtain info about a dropchest without having to rightclick (/dc info {chest}). However, the output is the same as when you would have called /dc which
    Version 0.7.4

    • warnfillstatus=-1 now disables the "chest is full"-warning
    Version 0.7.3

    • Fixed a bug that came with a new Bukkit release
    Version 0.7.2

    • /dc which now says something again, thanks to @Liger_XT5.
    Version 0.7.1

    • Removed debug messages :D
    Version 0.7

    • Configuration added
    • DropChests can drop their contents when a redstone input is present
    • Now, only the owner of a dropchest can adjust it's properties
    • The owner of a dropchest can protect the chest. So other players can't open it.
    • Customizable warning message and fill threshold.
    • Warnings will now be displayed to the owner of a chest, if he is online.
    • And made compatible to Minecraft 1.5_01. Older versions of craftbukkit won't work!
    Version 0.6.9

    • /dc which even more fancy
    • Removed debug message reported by @Reterg
    • Implemented the /item command which tells you what item this id is or vice-versa.
    Version 0.6.8

    • /dc which now looks fancy and shows the filtered items, too.
    Version 0.6.7

    • Added dropchest-id to the /dc which output.
    Version 0.6.6

    • Fixed NullPointerException on startup
    Version 0.6.5

    • Fixed /dc which
    • Refactored some code
    • You can now also use names of dropchests in the commands.
    Version 0.6.4

    • Fixed chunk unload that results in crash
    Version 0.6.3

    • Updated to bukkit-version 602
    • Tried to fix Thread-Exceptions. Breaking DropChests still not fixed, maybe happens later this day ;)
    Version 0.6.2

    • Permissions not required anymore.
    • Thread-Safe. No more ConcurrentModificationCheck Exceptions!
    Version 0.6.1

    • Fixed loading issues. You have to move your old DropChest.txt to the folder DropChest/ in your plugin directory!
    Version 0.6

    • Seperate filters for sucking, pushing to minecarts, pulling from minecarts
    • Multiple users can add dropchests at the same time now!
    • Added a name to the DropChests
    • Fixed Minecraft 1.3-Bug (method net.minecraft.server.Entity.q() was not available any more)
    I'm working on extended furnace handling, that fuels automatically go to the fuel slot and so on. This is still buggy so I didn't released it, it comes in the next version.


    Version 0.5.1
    • Multiworld works now
    • Paginated /dc list
    • Persistent DropChest IDs
    Version 0.5

    • Added support for Storage Minecarts
    • Added support for Dispensers and Furnaces
    Version 0.4.2

    • Fixed bug that Tearlow described.
    Version 0.4.1

    • Fixed loading bug when migration from versions 0.3 or below
    Version 0.4

    • Added filters.
    Version 0.3.1

    • Multiple world support
    • Since the Craftbukkit version from feb, 13 at 12:00 CET, Chests that are destroyed by Players are rebuilt
    • Worked around NullPointerException when Permissions is not loaded properly
    • Files now hosted on github ;) that non-members also can download DropChest
    Version 0.3

    • Permissions support.
    • Configure the maximum radius for each single user or group (via Permissions)
    • Fixes bug with unhandled Exception in the EntityWatcher-Timer.
    • /dropchest can be called via /dc for short
    • /dropchest without arguments just lists the commands that the user can execute, as well as his maximum radius.
    • Oh, and I corrected the Pythagoras formula for radius calculation. Shame on me...
    Version 0.2.3


    This is quite a huge bugfix update. Permissions come next ;)
    • Broken DropChests are now automatically removed from the list
    • changed package name from com.bukkit.narrowtux.DropChest to com.narrowtux.DropChest to prevent not loading issues coming up next monday
    • Added command "which", that allows you to see which id a chest has and if it is already a dropchest.
    • Linked against the most recent versions of Bukkit and Craftbukkit. The Bukkit guys have fixed a lot of bugs that affected this plugin. In my tests, there were no more nullPointerExceptions or similar errors. Also, DropChest now also works on very fresh placed Chests
    • And a currently constant maximum radius of 20 blocks
    Version 0.2.2

    • DropChest are now removed when you call /dropchest remove chestid
    • DropChest now have a minimum radius of 2
    • Fixed some saving issues
    Version 0.2.1

    • Fixed a problem where the radius has not been saved
    Version 0.2

    • Added a radius
    Version 0.1

    • First Release of DropChest
     
  2. Offline

    YoungDwayne

    When You Going To Update This To 953? Also Known As 1.7.2
     
  3. Offline

    narrowtux

    Already works with it.
     
  4. Offline

    YoungDwayne

    Oh I Didnt Know That, You Should Put That Then Instead Of 950 put 953
     
  5. Offline

    bk1138

    Thank you very much for this plugin, it is terrific. Now that we have pistons, I have set up an automated mushroom farm and wheat farm where I can flush out the "finished product" with the flip of a lever, and the output is stored automatically into a chest. Now if only someone made an auto-seeding setup things would be perfect :)

    Oh, and this works find in b953/mc1.7.2 for those who are wondering

    I did have support for a feature sugestion:

    I would like to also request the ability to work with a furnace's "input" and "output" fields as well as a storage minecart. It would be great to be able to set up a chest that will push uncooked porkchops, and then pull cooked porkchops from a furnace :)

    It would be even better if it could also push fuel into the furnace, but I would certainly settle for just the push/pull into the furnace so I can set up an auto-cooker :)

    [Edited to include previous discussion of furnaces]
     
  6. Offline

    jamescosten

    DropChest/dropchest.cfg not found. in the console, it didnt come with the download and all that there is is a txt file
     
  7. Offline

    Zalastax

    @jamescosten
    Read the entire main post and you will find out that you shall create it yourself and copy these lines into it:
    Code:
    #Should the dropchest drop items when it gets a redstone signal?
    droponredstone=true
    #How long should the dropchest not suck items after it has dropped them
    waitafterdrop=10
    #Should users be able to protect chests like in LWC?
    usercanprotectchest=true
    #Which is the default radius if you omit the radius argument in /dropchest add?
    defaultradius=2
    #Which should be the maximum radius for players that have not dropchest.setBig and aren't ops?
    fallbackradius=15
    #At which fill-status should the chest warn you?
    warnfillstatus=90
    #Which message should appear as warning?
    #You can use this variables (example):
    # $owner : the owner of the chest (narrowtux)
    # $name  : the name of the chest (my superduper mobtower chest/#42)
    # $fill  : The fill status, in percent (81)
    warnmessage=$owner, your chest $name is nearly full($fill%).
     
  8. Offline

    narrowtux

    You can enable dropOnRedstone in the config, and then trigger redstone every 60 seconds on it ;)
    Currently not :D
     
  9. Offline

    jamescosten

    And how do i create a cfg file on Mac?? Not in main thread is it ?
     
  10. Offline

    narrowtux

    Go into textedit, then choose format->to plain text, then paste the contents, then save as dropchest.cfg
    I just thought, creating a text-file would be common sense, so I didn't explain this.
     
  11. Offline

    jamescosten

    Ok well, firstly macs dont like cfg files, i will try plain text and let you know.

    23:03:18 [INFO] DropChest version 0.7.9 is enabled!

    Nice thank you, perhpas a little note in thread for all mac users??!

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

    Zalastax

    @jamescosten
    At least I thought that it was possible to create files with your own extension/change on existing and then open in the program of your choice (like on Windows or Linux). If that's not the case it should be added and if that's the case Mac suck!
     
  13. Offline

    narrowtux

    I don't know what you're complaining about, I'm using a Mac too, and it never "complained" about a cfg file.
    When you just enter dropchest.cfg in the textedit, it'll save as .cfg and it's done!
     
  14. Offline

    jamescosten

    All im saying is that i couldnt see in the thread to make my own .cfg file, and when i tried i didnt realise i had to change to plain text. Im sure others have made the same mistake. Im just using the plain old text edit software that came with mac and the standard is .txt file, when i went to change it and error came up.

    In the future i will know how to do it .
     
  15. Offline

    narrowtux

    Hmm, okay.
    In Showcase, the config is auto-generated, I'll add this soon to DropChest anyway, so it saves you from having to create messy files :p
     
  16. Offline

    Homegamer

    I found a bug:

    I made a Dropchest in my CreativeWorld, so that there are no drops. But this also adds the Items in my "normal" world.


    Homegamer
     
  17. Offline

    Zalastax

    @narrowtux
    I wanted to create a dropchest that couldn't suck so I tried to set the radius to 0, but that didn't work.
    I understood that this might bee something that you left in since you didn't had configurations?
    I looked in the code and found this:
    Code:
    public void setRadius(int radius) {
    if(radius<2)
    radius = 2;
    this.radius = radius;
    }
    would it be possible to have it to be like this instead? Or will that mess some other code up?
    Code:
    public void setRadius(int radius) {
    if(radius<0)
    radius = 2;
    this.radius = radius;
    }
    Thanks!
     
  18. Offline

    narrowtux

    Wouldn't mess anything up in the code I just did that to prevent that some OMG THIS DOESN'T WORK WHEN I TYPE /dc add 0 !!!!!111
    but I can change this now ;)
     
  19. Offline

    Zalastax

    Why won't /dc add 0 work?
    I'll see if I will help you with something in the plugin but I don't know Java. I'm learning C and Android kernel but Java would be nice to know too because it's used a lot in Android.
     
  20. Offline

    narrowtux

    No, I just wandet to say, that I added this to make it idiot-proof ;)
     
  21. Offline

    Exanimo

    Great plugin!
    Been using it this weekend and i've setup something pretty great i think due to this.

    2 "feature" ideas:

    - Command to set a dropchest to push all items
    - Command to set a dropchest to pull all items.
    I have a dropbox at my house which transports everything to a general magazine and sorts it there. Having a final chest at the end to pull out items not yet having a spot would be nice, can act as an overflow aswell if a certain chest is full so the cart will keep having space.

    Would it be possible to push to/pull from a minecart when it passes underneath?
     
  22. Offline

    narrowtux

    Use keyword all instead of the type to achieve this.
     
  23. Offline

    Zalastax

    @narrowtux
    To make it idiot proof you could ad a warning message if radius is 0. Like "Radius is 0, the chest won't pull anything".
    I'm creating a vending machine and could make a video of it. When I'm done.

    Future idea: isolator blocks, individuall setting for each chest. If that block is in the way, the chest won't pull in that direction. Maybe it's impossible with current pull algorithm?

    @narrowtux
    It seems like double chests aren't very good implemented.
    You can make a double chest to a dropchest twice (adding it on each single chest).
    If you power the one that isn't a dropchest, it won't throw out stuff.
    If you power the one that is a dropchest, it only throw out half of the stuff.

    To solve these problems you would need to make it that a double chest is a single dropchest and not that if a single chest that is a dropchest and gets full it checks for chests nearby.
    Is that hard to do? I assume that if you make a variable for each chest that says isDoublechest and have some more variables telling where it is you could solve this.

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

    Exanimo

    I got a question: When creating a dropchest it standards sucks all items.... if i create a suck item for that chest, does it only suck thát item then?

    I got 2 chests on top of each other (with 1 block space in between ofc) and a minecart system runs passed the lower one. But i want to power the lower one to drop the items and then be able to suck it with the top chest to make room in the lower.
    Next to those 2 i got 2 more, and then 2 more, etcetera and each chest holds a specific item but i can't set all the top ones to suck all as stuff would end up in the wrong chest.
     
  25. Offline

    Zalastax

    @Exanimo
    Yes it will only suck the item filtered.
    I have one question for you though. When I have a block over the power rail the chest get stuck and stops. Does the same thing happen to you?
    If you want the lower one to not suck anything you can set the filter to FIRE because that can never be dropped.
     
  26. Offline

    Exanimo

    Thanks for the tips! Will try that tonight!

    Concerning your question, i don't have any place with a block 1 block above a powerrail... always 2 or more (so i can do maintenance in my tunnels).
    However i dó have a spot where i have just 1 block room over a regular track (glass block) and the minecart doesn't get stuck there.
    I'll try it with a powerrail tonight and will let you know.
     
  27. Offline

    Zalastax

    @Exanimo
    You don't need to test it. I just though that the chests pulled items from minecarts.

    @narrowtux
    Is it possible to get the chests to drop items according to the direction they are facing?
    I will try to find world.DropItem and see if we could apply the rules for chest facing on it.
     
  28. Offline

    narrowtux

    That's possible when the direction is stored in the data-value. I don't know if it is.
     
  29. Offline

    Zalastax

    @narrowtux
    I looked in the bukkit api for chests and didn't find the direction.
    But there are certain rules that makes it possible to figure out witch way it should be directed.
    http://www.minecraftwiki.net/wiki/Talk:Chest Westward Chests seems to tell about the rules for single chests but the same rules apply to double chests (west before east, and south before north).
     
  30. Offline

    narrowtux

    That's correct.
    I just support adding items to the doublechest inventory at the moment. Adding support for the blocks that it notices that I clicked the second block of a dropchest isn't impossible, but it requires some changes everywhere in the code. Because of that I didn't implement that yet.
     
  31. Offline

    Zalastax

    @narrowtux
    Where is the API for world.dropItem?
    I wanted to look on it so I searched all files in the project but didn't find more than the function call in dropAll()

    I will look into a function checking the direction of the chest when I have looked into the API for world.dropItem.
     

Share This Page