In a case where code is in a class that doesn't have @SideOnly annotation, you're right that you it is best to only reference classes that are known to be loaded. However, in this case if you're on the client it is probably best to use the Minecraft method to get the player. So this is a case where you can use your proxy. In your client proxy create a method called getPlayer() that returns the Minecraft.getMinecraft().player and in the server proxy create a method with same name that returns null. To be doubly sure, in the event you can also check if the world is remote. Anyway, using the proxy will ensure that the whatever side you're on, the method called only references classes that exist on that side.