package tc.oc.projectares.api;

import javax.annotation.Nullable;

public class PlayerManager {
    public static @Nullable Player getPlayer(org.bukkit.entity.Player bukkit) {
        throw new UnsupportedOperationException();
    }
}

@@ -54,46 +54,694 @@
 on.N
-ullable;%0A%0Apublic class PlayerManager %7B
+onnull;%0Aimport javax.annotation.Nullable;%0A%0Aimport tc.oc.projectares.api.backend.BackendManager;%0A%0Aimport com.google.common.base.Preconditions;%0A%0A/**%0A * Provides an entry point for getting and querying API players.%0A *%0A * @see Player%0A */%0Apublic class PlayerManager %7B%0A    /**%0A     * Gets the API's player instance that corresponds to the Bukkit player%0A     * instance specified.%0A     *%0A     * @param bukkit Bukkit %7B@link org.bukkit.entity.Player%7D instance to%0A     *               indicate which player to search for%0A     * @return API %7B@link Player%7D instance that corresponds to the Bukkit%0A     *         instance%0A     * @throws NullPointerException if the specified instance is null%0A     */
 %0A   
@@ -782,16 +782,25 @@
 tPlayer(
+@Nonnull 
 org.bukk
@@ -838,48 +838,114 @@
     
-throw new UnsupportedOperationException(
+Preconditions.checkNotNull(bukkit, %22bukkit%22);%0A%0A        return BackendManager.getBackend().getPlayer(bukkit
 );%0A 

Add documentation and implementation to PlayerManager.