Minecraft Bukkit中Bukkit.getServer().getOfflinePlayer最终实现源码位置查询
Bukkit开发相关问题解答
Server接口的实现类
Bukkit官方仓库仅提供API层的接口定义,org.bukkit.Server接口的实际实现类是CraftBukkit/Spigot服务端核心内的org.bukkit.craftbukkit.<版本标识>.CraftServer,其中<版本标识>对应你使用的服务端版本号(例如1.20.1对应的版本标识为v1_20_R1)。
getOfflinePlayer方法的最终实现位置
两个重载的getOfflinePlayer方法的具体逻辑都在上述CraftServer类中:
getOfflinePlayer(String name):先匹配当前在线的同名玩家,匹配成功直接返回对应实例;未匹配到则优先查询本地缓存的玩家名称-UUID映射,缓存未命中时会请求Mojang官方接口查询UUID,最终构造离线玩家实例返回。getOfflinePlayer(UUID uuid):先匹配当前在线的同UUID玩家,匹配成功直接返回对应实例;未匹配到则读取服务端playerdata目录下对应UUID的玩家数据文件,构造离线玩家实例返回。
提示:仅查看Bukkit API仓库的代码只能找到接口定义,所有实际执行的业务逻辑都存储在CraftBukkit/Spigot的实现仓库中,不会出现在Bukkit API仓库内。
内容的提问来源于stack exchange,提问作者ope
相关产品推荐
相关产品推荐

