@Override
	public void runCheck(Event event, SGPlayer player) {
	
		if(player == null || event == null)return;
		if(sgPermissions.hasPermission(player, SGPermissibleNodes.MOVEMENT_MOREPACKETS) || !sgConfig.isCheckEnabled(this))return;
		
		Player sgPlayer = player.getPlayer();
		PlayerMoveEvent evt = (PlayerMoveEvent)event;
		
		if(SGMovementUtil.getSafeLocation(player.getPlayer()) == null)
			SGMovementUtil.setSafeLocation(player.getPlayer());

		//Get System time
		long time = System.currentTimeMillis();
		
		//If the player's packet difference is less than
		//that of the legal amount, they've failed the check
		if(isTooMuch(time - player.getLastPacketTime())) {
			
			player.addVL(SGCheckTag.MOVEMENT_MOREPACKETS, packetDifference(player.getLastPacketTime()));
			player.setLastPacketTime(time);
			evt.setTo(player.getSafeLocation());
			
			publishCheck(getClass(), sgPlayer, SGCheckTag.MOVEMENT_MOREPACKETS);
			
			return;
		} else {
			
			player.reduceVL(SGCheckTag.MOVEMENT_MOREPACKETS);
			player.setLastPacketTime(time);
			return;
		}
		
	}