Skip to content

Welcome API

欢迎模块的对外 API。

导入

java
import cn.mcloli.dreamrealms.modules.welcome.api.WelcomeAPI;
import cn.mcloli.dreamrealms.modules.welcome.data.WelcomeSession;

方法

模块状态

java
// 检查模块是否可用
boolean available = WelcomeAPI.isAvailable();

新玩家检查

java
// 检查玩家是否为新玩家(首次进服)
boolean isNew = WelcomeAPI.isNewPlayer(player);
boolean isNew = WelcomeAPI.isNewPlayer(uuid);

会话管理

java
// 检查是否有活跃的欢迎会话
boolean hasSession = WelcomeAPI.hasActiveSession(player);

// 获取欢迎会话
WelcomeSession session = WelcomeAPI.getSession(player);
if (session != null) {
    UUID newPlayerUuid = session.getNewPlayerUuid();
    String newPlayerName = session.getNewPlayerName();
    long createTime = session.getCreateTime();
}

欢迎者信息

java
// 获取已欢迎新玩家的人数
int count = WelcomeAPI.getWelcomerCount(newPlayer);

// 获取欢迎者 UUID 集合
Set<UUID> welcomers = WelcomeAPI.getWelcomers(newPlayer);

// 检查是否已欢迎过
boolean welcomed = WelcomeAPI.hasWelcomed(welcomer, newPlayer);

历史数据

java
// 获取玩家历史被欢迎次数(从数据库)
int historyCount = WelcomeAPI.getHistoryWelcomeCount(player);

API 方法列表

方法说明
isAvailable()检查模块是否可用
isNewPlayer(Player/UUID)检查是否为新玩家
hasActiveSession(Player/UUID)检查是否有活跃会话
getSession(Player/UUID)获取欢迎会话
getWelcomerCount(Player/UUID)获取欢迎者数量
getWelcomers(Player/UUID)获取欢迎者集合
hasWelcomed(Player, Player)检查是否已欢迎
getHistoryWelcomeCount(Player/UUID)获取历史被欢迎次数

WelcomeSession 数据类

java
WelcomeSession session = WelcomeAPI.getSession(newPlayer);
if (session != null) {
    // 新玩家信息
    UUID uuid = session.getNewPlayerUuid();
    String name = session.getNewPlayerName();

    // 会话信息
    long createTime = session.getCreateTime();
    boolean online = session.isNewPlayerOnline();

    // 欢迎者信息
    int count = session.getWelcomerCount();
    Set<UUID> welcomers = session.getWelcomers();
    boolean welcomed = session.hasWelcomed(playerUuid);
}

使用示例

java
public class MyPlugin extends JavaPlugin {

    // 检查玩家是否为新玩家并给予特殊待遇
    public void handlePlayer(Player player) {
        if (!WelcomeAPI.isAvailable()) return;

        if (WelcomeAPI.isNewPlayer(player)) {
            player.sendMessage("欢迎新玩家!");

            // 检查是否有活跃会话
            if (WelcomeAPI.hasActiveSession(player)) {
                int welcomers = WelcomeAPI.getWelcomerCount(player);
                player.sendMessage("已有 " + welcomers + " 人欢迎你!");
            }
        } else {
            // 老玩家,检查历史被欢迎次数
            int history = WelcomeAPI.getHistoryWelcomeCount(player);
            if (history > 0) {
                player.sendMessage("你曾被 " + history + " 人欢迎过!");
            }
        }
    }

    // 检查玩家是否可以欢迎新玩家
    public boolean canWelcome(Player welcomer, Player newPlayer) {
        if (!WelcomeAPI.hasActiveSession(newPlayer)) {
            return false; // 没有活跃会话
        }
        if (WelcomeAPI.hasWelcomed(welcomer, newPlayer)) {
            return false; // 已经欢迎过
        }
        return true;
    }
}

Released under the GPL-3.0 License.