Player-specific hook similar to OnItemRemovedFromContainer?Suggestion
A hook (or hooks) similar to OnItemAddedToContainer and OnItemRemovedFromContainer that applies specifically to players looting would be very useful, I think. Currently, these are called any time an item is added/removed, regardless of the source or destination. This can be filtered, but there's still no great way of determining the player doing the looting. There are workarounds for this, but none are all that elegant, and any time you try to tweak or expand things, you start getting more and more errors. If you search for past forum topics related to these hooks, you'll see what I mean.
OnLootEntity provides specific player information, but only calls when someone opens a container, rather than when they add/remove something.

A hook that sort of combines these two would be great. It could call any time a player adds or removes an item from a container (or other player) and provides:
- The name/ID of the player doing the looting
- The entity they are looting
- The owner of the entity they are looting (or player name/ID, if it's a player being looted)
- The item being added/removed
- The amount of said item being added/removed

The current hooks also do not call if an item is being added or removed to a stack, or if partial stacks are being moved. It also provides no information if the entity being looted is a player, and seems to give errors if it's not filtered out entirely.

Not sure if any of this is possible, but there are a lot of potential use cases for this, and I definitely feel it would be worthwhile to add. Your consideration would be very much appreciated.
This is the same as OnItemRemoved.. and ..Added.., just with stacks integration. It's logical that it doesnt work for stacks, because item isnt removed, it just changes the amount field mainly, no item removal/addition. You can use CanMoveItem or something like that instead of requesting new hooks, because you can actually get all the needed information I guess.
CanMoveItem offers almost all the functionality listed in my original post, but not quite. It calls when a user attempts to move an item, not when an item has actually been moved. For example, if you try to move a pickaxe into a box with 0 free slots, the plugin is called. This seems like a fault with the hook, in my opinion, because CanMoveItem shouldn't be calling if the item cannot actually be moved. It also assumes you've moved the entire amount that you're attempting to move, even if you haven't. If you try to deposit 1000 wood into a box that will only allow 200 more wood, it still shows that 1000 wood has been moved.

-----

If we could get a new plugin called OnMoveItem (or something), that works exactly the same as CanMoveItem and provides the same parameters, but a.) only calls when an item has sucessfully been moved, and b.) can display the actual amount of said item that has been moved- that would be perfect.
Try using CanAcceptItem.then
I'm using CanAcceptItem as well to filter certain things, but that only checks whether the container is technically capable of accepting the item (wood -> TC = CanAccept, wood -> mailbox = CannotAccept) and calls whether it actually accepts it or not. It doesn't take into account whether or not the container is full and doesn't handle stacking. Tried CanStackItem as well, but this calls if an item attempts to stack, not if it actually does, which doesn't help.

Unless I'm missing something major here, I'm pretty sure this cannot be accomplished without a new hook that is able to take all these things into account.

Merged post

And there's also the issue of swapping an item in a container with another in your inventory. Only the deposited item gets taken into account.