PowerfulPermsHook.java

package dev.aura.bungeechat.hook;

import com.github.cheesesoftware.PowerfulPermsAPI.PermissionManager;
import com.github.cheesesoftware.PowerfulPermsAPI.PermissionPlayer;
import com.github.cheesesoftware.PowerfulPermsAPI.PowerfulPermsPlugin;
import dev.aura.bungeechat.api.account.BungeeChatAccount;
import dev.aura.bungeechat.api.hook.BungeeChatHook;
import dev.aura.bungeechat.api.hook.HookManager;
import java.util.Optional;
import net.md_5.bungee.api.ProxyServer;

public class PowerfulPermsHook implements BungeeChatHook {
  private final PermissionManager permissionManager;

  public PowerfulPermsHook() {
    PowerfulPermsPlugin plugin =
        (PowerfulPermsPlugin)
            ProxyServer.getInstance().getPluginManager().getPlugin("PowerfulPerms");
    permissionManager = plugin.getPermissionManager();
  }

  @Override
  public Optional<String> getPrefix(BungeeChatAccount account) {
    return getPlayer(account).map(PermissionPlayer::getPrefix);
  }

  @Override
  public Optional<String> getSuffix(BungeeChatAccount account) {
    return getPlayer(account).map(PermissionPlayer::getSuffix);
  }

  private Optional<PermissionPlayer> getPlayer(BungeeChatAccount account) {
    return Optional.ofNullable(permissionManager.getPermissionPlayer(account.getUniqueId()));
  }

  @Override
  public int getPriority() {
    return HookManager.PERMISSION_PLUGIN_PREFIX_PRIORITY;
  }
}