anchor.diff:  				user.visible_message("<span class='danger'>[user.name] shoves [target.name] into [target_collateral_human.name]!</span>",
   					"<span class='danger'>You shove [target.name] into [target_collateral_human.name]!</span>", null, COMBAT_MESSAGE_RANGE)
   				log_combat(user, target, "shoved", "into [target_collateral_human.name]")
  +			else if(target_disposal_bin)
  +				target.Knockdown(SHOVE_KNOCKDOWN_SOLID)
  +				target.forceMove(target_disposal_bin)
  +				user.visible_message("<span class='danger'>[user.name] shoves [target.name] into \the [target_disposal_bin]!</span>",
  +					"<span class='danger'>You shove [target.name] into \the [target_disposal_bin]!</span>", null, COMBAT_MESSAGE_RANGE)
  +				log_combat(user, target, "shoved", "into [target_disposal_bin] (disposal bin)")
   
   		else
   			user.visible_message("<span class='danger'>[user.name] shoves [target.name]!</span>",
  
positive.code: 		if(!target.resting)
  			target.adjustStaminaLoss(5)
  
  
  		var/turf/target_oldturf = target.loc
  		var/shove_dir = get_dir(user.loc, target_oldturf)
  		var/turf/target_shove_turf = get_step(target.loc, shove_dir)
  		var/mob/living/carbon/human/target_collateral_human
  		var/obj/structure/table/target_table
  		var/shove_blocked = FALSE //Used to check if a shove is blocked so that if it is knockdown logic can be applied
  
  		//Thank you based whoneedsspace
  
negative.code: 		else
  			target.Move(target_shove_turf, shove_dir)
  			if(get_turf(target) == target_oldturf)
  				target_table = locate(/obj/structure/table) in target_shove_turf.contents
  				target_disposal_bin = locate(/obj/machinery/disposal/bin) in target_shove_turf.contents
  				shove_blocked = TRUE
  
  		if(shove_blocked && !target.buckled)
  			var/directional_blocked = FALSE
  			if(shove_dir in GLOB.cardinals) //Directional checks to make sure that we're not shoving through a windoor or something like that
  				var/target_turf = get_turf(target)
  