ProjectAres/Commons/bukkit/src/main/java/tc/oc/commons/bukkit/nick/IdentityProvider.java

45 lines
1.2 KiB
Java

package tc.oc.commons.bukkit.nick;
import javax.annotation.Nullable;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import tc.oc.api.docs.PlayerId;
import tc.oc.api.docs.Session;
import tc.oc.api.docs.UserId;
import tc.oc.api.users.UserSearchResponse;
public interface IdentityProvider {
Identity createIdentity(PlayerId playerId, @Nullable String nickname);
default Identity createIdentity(PlayerId playerId) {
return createIdentity(playerId, null);
}
Identity createIdentity(Player player, @Nullable String nickname);
Identity createIdentity(CommandSender player);
Identity createIdentity(Session session);
Identity createIdentity(UserSearchResponse response);
Identity currentIdentity(CommandSender player);
Identity currentIdentity(PlayerId playerId);
default Identity currentOrConsoleIdentity(@Nullable PlayerId playerId) {
return playerId == null ? consoleIdentity() : currentIdentity(playerId);
}
Identity consoleIdentity();
@Nullable Identity onlineIdentity(String name);
void changeIdentity(Player player, @Nullable String nickname);
boolean revealAll(CommandSender viewer);
boolean reveal(CommandSender viewer, UserId userId);
}