DropsToInventory
With this plugin blocks and drops of animals, creatures and players will not drop on the ground. Instead they will be transferred directly to inventory of the player who broke the block / killed the entity.
Another rewrite for Bukkit/Spigot/Paper 1.18 (1.18.2): This is a very simplistic implementation that tries to be simple and fast and without any configuration, commands or permissions. I'd like to fix this at least for some major things but I give no guarantees that I'll ever get to it.
If you want anything more complex look somewhere else - I stumbled across "Drops2Inventory Plus" on Spigot and it looks decent (though it's paid).
Please see the GitHub repository for more information (present in the README).
@Amunak
Ah I see I see
@KevinEssence
The problem is it is not my fault. Bukkit has a function that tells me what a block drops when you break it, but it works only for some blocks and with the "correct", unenchanted tools. So unless someone wants to keep an updated list of what each block drops with what enchant and with what chance this cannot really be fixed.
Great plugin! When using a fortune pick, the block drops on floor. How does one go about this? Oh just noticed this is a current issue already.
@ooarashi
Thank you for the positive response. I know that a workaround could be made; I had, however, neither time nor the lust to do it. The bug indeed is not likely to get fixed - it was just ignored with the stance "hey, you shouldn't be using this anyway".
I'll look if it's possible to add the workaround quickly, and I may implement it without the default lists. I have little experience with the amount of drops from enchanted items, so I'd like someone to fill that, at least. Would you volunteer? :-)
Hi, Amunak, I love this plugin. I was using PlayerMagnet but trading items between players was cumbersome. I would like to be rid of PlayerMagnet, but...
DropsToInventory would be the perfect solution for me if not for the enchantment bugs. There is a workaround though. Since you know what block is being broken from BlockBreakEvent and what the vanilla drops are (from play experience or MinecraftWiki) you could make lists for silkBlocks and fortuneBlocks containing only the blocks effected by those enchantments and what they are supposed to drop.
You could then add tests for the specific enchantments, look up the custom lists for what blocks are supposed to drop given the relative enchantment and enchantment level, then pull the air swap on the block being broken and send the calculated drops to the player's inventory.
I may be going out on a limb here, but I don't think the enchantment bug in Bukkit is likely to be fixed. Using my Google-fu I stumbled onto https://bukkit.atlassian.net/browse/BUKKIT-5088 where getDrops is unable to obtain the real stack size of a drop due to internal Minecraft bugs. I'm guessing the enchantment bug is a related problem.
Anyway, I downloaded your source and tried to add the workaround described above myself. Unfortunately I'm a newbie and I'm having trouble wrapping my brain around the functions involved. I understand what needs to be done but not how write it.
I'll continue poking at it but I'm not likely to make much progress very quickly. Any chance you could take a crack at this workaround?
Thanks!
Example lists:
Something like that... maybe?
@arturek1666
No, most likely not. Anything that modifies drops and block destruction in general will probably be incompatible.
Is this plugin work with Other Drops.
@TheDavroar Which ones do you mean? Try to add them to the config file if it doesn't work.
Does it still work with the most recent block types?
@yuk75
Exactly. I don't really know how to make this work properly without making huge changes to the code in a way that'd supply what's broken in Bukkit.
Also Bukkit programmers said they won't fix these issues, because it's too hard to do... It's sad.
@Amunak
Essentially you removed snow and all the blocks you had issues with, and didn't add quartz?
I built this against Bukkit 1.5.1. I've also edited the "safe blocks" list in the config, so please update this (either recreate it by deleting your config or use the list from github). Another fix is with the update URL, it changed, so I updated it.
You can download the update when it's approved or you can use my dropbox.
@Amunak
I should add it's doing it to snow blocks....I noticed only after loosing like 4 stacks ha ha. I've been building igloos. Lucky I'm an op so I can give my losses back XD.
@yuk75
Oh, I'll take a look into it. I suppose it's another Bukkit bug. To patch this just remove / comment out those blocks from your config's SafeBlocks section and you will be able to pick them up.
I love this but come with bug reports! This doesn't pick up vines (shears) or snow (shovel) or grass (shears) or leaves (shears), despite harvesting them. It also doesn't allow them to drop to be picked up.
@mig4ng
Unfortunately it does not because of a bug in bukkit. I was able to make up for the unbreaking enchantment and even that posed more problems than I'd like :)
Good plugin ;)
works with fortune?
I just fixed another major durability bug. Please download v. 1.2.3 as soon as it gets approved or use the Dropbox link (at the top of the page).
I hope this release will last for some time and is free of most bugs. For the problematic code see the newest commit on github.
New version is up! Please regenerate your config files or you'll wonder why they don't work. I have added a new feature - entities (like mobs and players) will (after death) drop their inventory to inventory of the player who killed them. See the change log for other changes and configuration for instructions on how to configure.