The messy hopper protection stuff can be shifted back to the handleMoveItemEvent because it will only ever be called once per event now