• 注册
  • MOD模组 MOD模组 关注:27 内容:16398

    聊天延迟修复 (Chat Lag Fix)

  • 查看作者
  • 打赏作者
  • 当前位置: SodaMC > MOD模组 > 正文
  • 潮涌核心
    反派

    聊天延迟修复 (Chat Lag Fix)


    解决Minecraft客户端因接收聊天消息而导致的卡顿问题(适用于1.17和1.16版本)


    ---

    在1.18版本中您不再需要此模组

    Mojang已经修复了其API中的错误,该错误导致返回错误而不是空列表。当加入世界时,Minecraft将获取方块列表。尤其是在您的网络连接较慢时,此模组仍然可以通过减少HTTP请求的时间来提高世界加载速度。

    这位Mojang员工的评论证实了该错误已被修复: 链接

    此错误仍然影响1.17和1.16版本,但仅在收到第一条聊天消息时: 链接

    技术细节:当接收聊天消息时,Minecraft在渲染线程中发送HTTP请求来检查您的玩家方块列表。当前帧在此请求完成之前不会完成渲染,从而导致卡顿。此模组允许聊天消息通过,直到可以获取到方块列表为止。

    为什么现在发生这种情况而以前没有呢?:Mojang的API发生了一些变化。加入世界时,方块列表通常会正常加载,但是对于已迁移到Microsoft账户的用户,Mojang的API开始返回错误,导致在接收消息时以2分钟的间隔获取方块列表。

    关于错误发生原因的注释
    
    // 代码的简化视图。
    private static final long BLOCKLIST_REQUEST_COOLDOWN = 120;
    private Instant nextRequest;
    private final blockList Set<UUID>;
    
    // 当接收到聊天消息时调用此方法
    public boolean isBlockedPlayer(UUID playerID) {
        // 如果我们尚未获取方块列表,则获取它
        // 注意当出现错误时,fetchBlockList返回null
        // 
        if (this.blockList == null) {
            this.blockList = fetchBlockList();
            // 如果仍然没有获取到,则假定玩家未被屏蔽
            if (this.blockList == null) {
                return false;
            }
        }
        return this.blockList.contains(playerID);
    }
    
    public Set<UUID> fetchBlockList() {
        // 至少每2分钟检查一次。
        // 这就是为什么每隔2分钟或更长时间才会发生卡顿的原因
        if (this.nextRequest == null || Instant.now().isAfter(this.nextRequest)) {
            return null;
        }
        // 重置2分钟计时器
        this.nextRequest = Instant.now().plusSeconds(BLOCKLIST_REQUEST_COOLDOWN);
        try {
            // 发送HTTP请求
            BlockListResponse response = minecraftClient.get(routeBlocklist, BlockListResponse.class);
            return response.getBlockedProfiles();
        } catch (/<em> 异常 </em>/) {
            // 如果出现错误则返回null
            return null;
        }
    }
    已复制!

    如果您想要亲自查看未修改的内容,请查看com.mojang.authlib.yggdrasil.YggdrasilUserApiService,记住这些方法在渲染线程上调用,因此会阻塞帧的完成。

    错误演示GIF

    聊天延迟修复 (Chat Lag Fix)

    来自Modrinth

    2.1.0

    chatlagfix-1.16.5+1.17.1-2.1.0.jar下载mc1.17-2.1.0#Release
    展开
    版本: mc1.17-2.1.0
    支持游戏: 1.16.4, 1.16.5, 1.17, 1.17.1
    类型: Fabric
    Release
    下载次数: 5,829

    2.0.2

    chatlagfix-1.16.5-2.0.2-0.11.3.jar下载mc1.16.5-2.0.2#Release
    展开
    版本: mc1.16.5-2.0.2
    支持游戏: 1.16.4, 1.16.5
    类型: Fabric
    Release
    下载次数: 248

    2.0.2

    chatlagfix-1.17.1-2.0.2-java16.jar下载mc1.17.x-2.0.2#Release
    展开
    版本: mc1.17.x-2.0.2
    支持游戏: 1.17, 1.17.1
    类型: Fabric
    Release
    下载次数: 253

  • 收录

  • 请登录之后再进行评论

    登录
  • Soda任务 图片
  • 偏好设置
  • 主题
  • 帖子间隔 侧栏位置: