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

    Shrockerharder

    Can u make the chest have a sign attached to it like lockette plugin? When the chest drops, a sign is on the chest saying something about the person's death, cause any chests can be found anywhere. The dead person's chest should at least have some word on it that explains to the explorer about the chest. Thank you :)
     
  3. Offline

    narrowtux

    I don't know exactly what you mean. This is no dead mans chest plugin, so it wouldn't make any sense placing an additional sign.
    You can obtain all information about a DropChest by typing /dc which and then rightclicking the chest.
     
  4. Offline

    Morrolan

    Have you thought about adding a feature which lets you set a configurable delay before it picks an item up?
    My issue is this: You have to throw an item into some flowing water. This item will fall onto a pressureplate and open a door. Now since I don't want this item to get lost I placed a dropchest there, which then stores that item. however, the item gets 'eaten' before it had the chance to activate the pressure plate. And if I lower the radius of the chest the item doesn't get eaten at all, since it's too far away.
     
  5. Offline

    Shrockerharder

    Oh
    ... Sorry about that, i post it in the wrong thread... But Still Its a great plugin! Nice work!
     
  6. Offline

    lipe123

    I'm not sure how to troubleshoot or provide the needed info but I had to disable dropchest today on my server because it was causing the entire server to bog down and lag like crazy. Maxed out the CPU usage for the core assigned to java and made the server unplayable.

    I'm running CB1000 and these plugins: AfkKick, AntiXRay, Azimuth, bAntiCaps, BlockCrusher, BlockHat, ButtonWarp, CommandSigns, CraftBukkitUpToDate, CraftProxyLiter, DCReason, Essentials, EssentialsChat, EssentialsGeoIP, EssentialsProtect, EssentialsSpawn, GravelClay, HeroicDeath, iConomyChestShop, LagMeter, LimitSpawns, LogBlockQuestioner, mcbans, MCDocs, BukkitCompat, mcMMO, MobBounty, Money2XP, NSCommand, PermissionsEx, PickBoat, PistonSmelter, PlgRailBoost, PlugMan, PumpkinDiver, pvparena, RetractableBridge, SpamHammer, Spout, Stargate, Tombstone, WolfPound, WordFilter, WorldEdit, WorldGuard, Permissions, dynmap, LWC, LogBlock, MobArena, NoCheat.

    I first disabled every plugin that was updated in the last 24h but it had no effect on DC, it must have been sometihing else that caused it.
     
  7. Offline

    DerKB

    Greetings,

    i got a bit of a problem with your Lib that gets downloadet from this plugin, a one time download at install is fine, a notice that the lib has been updated is fine, BUT not a download of a new lib version without any question asked or a way to disable the download.

    I use an older RB for some reasons, now your lib jumps in and gets updated and starts downloading "Spout" what i can not use as for not running RB 1000, i get errors this way and have to fix it all around.

    So auto downloading some stuff, fine nice idea, auto updating stuff, also fine until I can say if it should do so or not.
    Forcing a auto update without letting me (the Admin) say if i want to update or not is a bad way, brakes more then it gives out.

    So i like to suggest an option for ALL your plugins to disable the auto updating for all dependencies.
    Like written above, the first initial download goes fine for me, but not the auto updating and downloading later.

    Regards
    DerKB
     
  8. Offline

    narrowtux

    DropChest actually doesn't use NarrowtuxLib, but why are you sticking on an older Craftbukkit build?
    CB 1000 has been promoted stable 1 month before!
     
  9. Offline

    DerKB

    Well, if not, it might be PistonChest, did think both use the lib, but it seems to be the other one of your nice plugins.

    And the point to stay on an older build, well i got some trouble with two of my plugins that will not work together on RB 1000, both are key features and loosing even one would brake a lot of stuff, so i have to stick on RB 953 for some more time, till i get a workaround ready or we start a fresh map what is in plan for MC 1.8.

    But to bring up my point,
    as a long term administrator of server environments, i know how nice it is to have some auto updating stuff going on, BUT there is ever a point were you do not like something to do so, solutions for most of them is a config were i can disabel the auto updating.

    So it would be real nice to have the option to disable ANY auto updating, you did something like that for Spout in your libĀ“s config, so should not be a big deal for you to implement such a feature.

    Oh and you got a PM with an other question i do not like to ask here in the open, was something a i came along while i was fixing the mess that was going on.

    Regards
    DerKB
     
  10. Offline

    lipe123

    figured out my problem, some guy made a cobble gen and it was running for 3 days. There was so much drops near the dropchest that the game ran at like 0.00005 fps near it. I had to log in, walk 1 step, log out and repeat until i got close enough to place lava on the drops.

    Not sure if its worth it to add a if drops > 100 then ignore all dropchest functions for a little future proofing and possibly spamming the chat with a red message "chest #xx is being swamped with drops please investigate"

    Would be really cool to prevent this kinda thing.
     
  11. Offline

    Darsith

    Any reason why the plugin restart now would completely turn off the drop chests? (also asking this on his thread).

    When I installed the restartnow plugin, that one worked perfectly, but the drop chests were not picking up items at any range (old and newly created alike). Needless to say drop chest takes priority :p
     
  12. Offline

    Jdbye

    Everyone on my server can see the "Your chest is almost full" messages and it confuses them. This bug has existed for a while, any chance you could fix it?
     
  13. Offline

    narrowtux

    Were there error messages on startup?
     
  14. Offline

    spelmyst

    It still doesn't work for me. No errors, it just doesn't pick anything up. :(
    I'm on CB1000, of course it hasn't worked for me since 766.
     
  15. Offline

    Aramillio

    @narrowtux could you add support for receiving payment and add the ability to heal someone who puts the correct (configurable) item into the chest? I set up a fountain and i want people to throw items into it and the chests to suck them up but be able to reward a player for throwing items in
     
  16. Offline

    FireballCH

    Is it in 0.7.9 implemented? Would be great ;)
     
  17. Offline

    Darsith

    none what so ever. I could use the drop chests (command wise) but the chests were not sucking items up. Forgot to try if they pushed/pulled before I got rid of the restart plugin (I almost had a full blown riot on my hands).
     
  18. Offline

    narrowtux

    This is a nice idea, however, it shouldn't be implemented in dropchest, but in a seperate plugin. That is already possible, DropChest has an API for that.
     
  19. Offline

    Aramillio

    might i convince you to write such a plugin?
     
  20. Offline

    FireballCH

    @narrowtux, please dont forget the missing feature to show the message "Your chest... is nearly full" only for the owners.
     
  21. Offline

    Wispborne

    I saw a while back that somebody want to be able to set a delay before a suck because he wanted to be able to take something off of a pressure plate. We had the exact same dilemma, so we changed the mod to have a five second delay (currently hardcoded). If he changes it so the delay is set by command, zero by default, would you like the source?

    We both have 3 years of programming experience, well versed in Java/C#. I haven't seen it yet, but I'm sure he didn't make a mess of the code. We use svn rather than git, so it seems that it's just easier to send you the source instead of trying to change the repository ourselves (if that's even possible). This is currently being used on my server, latest version and all that. Works perfectly, makes our sugar cane farm fully automated (using dispenser/water flow instead of repeaters for delay).

    tl;dr My friend added a delay before items are sucked up. If he changes the hardcoded five second delay to a set command, do you want the source?

    ps. I've posting this on his behalf because he's coding right now :p
     
  22. Offline

    narrowtux

    Yeah, when you finished it, you can submit a pull request on github, and I will likely accept it.
     
  23. Offline

    jycs

    Crash...
    Now, no connexion is possible on my server.
     
  24. Offline

    narrowtux

    restart? :D
     
  25. Can you change /dc list to show only your chests? And maybe per-player chest IDs?
     
  26. Offline

    narrowtux

    The first thing would be easy. The second one would mean a complete rework of the code.
     
  27. Ok, please make that first thing and maybe something like /dc list all (for admins, that lists all chests, with new permission node). Hmm that second thing... can you chage IDs to something like #1 - playername?
     
  28. Offline

    narrowtux

    they can already assign custom names, so that won't be that kind of issue :p
     
  29. I know, but it will be much better to automaticaly set name to ID - Playername, for better orientation in /dc list.
    And it would be super cool, if chests could pulse lever, next to (or attached to?) chest, when it absorbs item. Or maybe configurable item-pickup-timer?

    Anyway, this plugin is GREAT!
     
  30. Offline

    SilencShadoW

    Hey Guy,
    ur plugin is awesome. But can u update it plz? since 1000+ i cant change the radius without an "a internal error occured" ... i cant change the radius :(

    "/dropchest" give me following error:
    Code:
    2011-08-17 22:07:36 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'dropchest' in plugin DropChest v0.7.9
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:352)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:737)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:701)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:694)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:89)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.UnsupportedOperationException: Unsupported operation
        at com.platymuus.bukkit.permcompat.PermissionHandler.getUserPermissionInteger(PermissionHandler.java:139)
        at com.narrowtux.DropChest.DropChest.getMaximumRadius(DropChest.java:697)
        at com.narrowtux.DropChest.DropChest.onCommand(DropChest.java:615)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
     
  31. I have no problems on 1060 build. All commands working right.
     

Share This Page