OOP plugin not working

If that’s the entirety of plugin — you never create an object instance of your class. Class itself is merely a definition. Just like functions don’t do anything unless called, definition does nothing unless object of it is created.

Thus new My_Custom_Plugin();.

Note the if you want to be a good citizen you should allow others access to that instance in some way, if they want to interact with your code for some purpose. Unfortunately WP has no established mechanisms for it and typical low effort solution is to simply store the instance in a global variable (with reasonably unique name).