/* * This file is part of PlaceholderAPI * * PlaceholderAPI * Copyright (c) 2015 - 2024 PlaceholderAPI Team * * PlaceholderAPI free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * PlaceholderAPI is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package me.clip.placeholderapi; import net.kyori.adventure.text.Component; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Optional; public abstract class PlaceholderHook { @Deprecated @Nullable public String onRequest(final OfflinePlayer player, @NotNull final String params) { if (player != null && player.isOnline()) { return onPlaceholderRequest(player.getPlayer(), params); } return onPlaceholderRequest(null, params); } @Deprecated @Nullable public String onPlaceholderRequest(final Player player, @NotNull final String params) { return null; } @Nullable public Component onPlaceholderComponentRequest(final OfflinePlayer player, @NotNull final String params) { final String result = onRequest(player, params); return result == null ? null : Component.text(result); } }