/*
 * @author     ucchy
 * @license    LGPLv3
 * @copyright  Copyright ucchy 2020
 */
package com.github.ucchyocean.lc3.bridge;

import java.util.UUID;

import net.luckperms.api.LuckPerms;
import net.luckperms.api.LuckPermsProvider;
import net.luckperms.api.model.user.User;
import net.md_5.bungee.api.plugin.Plugin;

/**
 * LuckPerms連携クラス
 * @author ucchy
 */
public class LuckPermsBridge {

    private LuckPerms api;

    // コンストラクタは外から利用不可
    private LuckPermsBridge(LuckPerms api) {
        this.api = api;
    }

    /**
     * LuckPermsをロードする
     * @param plugin LuckPermsのインスタンス
     * @return ロードされたLuckPermsBridge
     */
    public static LuckPermsBridge load(Plugin plugin) {

        // LuckPermsが指定されたかどうかを確認
        if ( plugin == null ) return null;

        // ロードされているならLuckPermsBridgeのインスタンスを作成して返す
        return new LuckPermsBridge(LuckPermsProvider.get());
    }

    /**
     * プレイヤーのprefixを取得します。
     * @param uniqueId プレイヤーのUUID
     * @return プレイヤーのprefix
     */
    public String getPlayerPrefix(UUID uniqueId) {
        User user = api.getUserManager().getUser(uniqueId);
        String prefix = user.getCachedData().getMetaData().getPrefix();
        return (prefix != null) ? prefix : "";
    }

    /**
     * プレイヤーのsuffixを取得します。
     * @param uniqueId プレイヤーのUUID
     * @return プレイヤーのsuffix
     */
    public String getPlayerSuffix(UUID uniqueId) {
        User user = api.getUserManager().getUser(uniqueId);
        String suffix = user.getCachedData().getMetaData().getSuffix();
        return (suffix != null) ? suffix : "";
    }
}