魔兽科普汇聚WoW玩家们专属综合资讯门户网站!

AceCommQueue

AceCommQueue 是一款魔兽世界插件,主要用于界面框架、头像、动作条或冷却显示优化、插件库、数据接口或依赖支持。建议根据自己的版本和插件环境先测试兼容性。

免费下载 举报 收藏插件
插件详情

插件中文资料库

中文说明、玩家点评、适用场景和替代推荐,方便快速判断是否适合你。

玩家一句话点评
AceCommQueue 适合需要运行库、界面增强或玩法辅助的玩家,建议结合自己的职业和版本先测试再长期使用。
适用场景
  • 界面布局、头像框、姓名板和动作条优化

AceCommQueue 插件下载与使用指南

本页整理了 AceCommQueue 的功能用途、适用人群、安装方法和常见问题,方便玩家快速判断是否需要安装。

适合谁用

AceCommQueue 是一款 运行库 类插件,适合需要优化界面、提升操作效率或补充游戏信息提示的魔兽世界玩家。

基本信息

  • 插件作者:Pmptasty
  • 插件分类:运行库
  • 适配版本:4.4.2,3.4.5,1.15.7,12.0.0,11.2.7,1.15.8,5.5.2,5.5.3
  • 累计下载:2,614

安装方法

  1. 点击上方下载按钮获取 AceCommQueue插件文件。
  2. 解压后将插件文件夹放入 World of Warcraft/_retail_/Interface/AddOns 目录。
  3. 重启游戏或在角色界面点击插件,确认 AceCommQueue 已启用。
  4. 如果插件不生效,请检查版本是否匹配,或关闭同类冲突插件后重试。

使用建议

AceCommQueue 安装后建议先在角色界面确认已启用,进入游戏后根据插件提供的命令、小地图按钮或设置面板进行调整。如遇到报错,可先单独启用该插件排查冲突。

AceCommQueue 常见问题

这个插件适合哪些玩家?

AceCommQueue 适合需要 运行库 类功能的玩家,特别是希望提升游戏便利性、界面管理或战斗信息获取效率的用户。

下载后怎么安装?

下载后解压到 Interface/AddOns 目录,然后重启游戏并在角色界面启用插件。

为什么插件不显示或不生效?

常见原因是目录多套一层、游戏版本不匹配、依赖插件缺失或同类插件冲突。

有没有类似插件可以替代?

可以查看本页的替代插件推荐和相关插件区域,按下载量和分类选择同类工具。

插件 AI 问答

可以问:这个插件正式服能用吗、和 DBM 冲突吗、怎么设置、有没有替代插件。

AceCommQueue 是一款魔兽世界插件,主要用于界面框架、头像、动作条或冷却显示优化、插件库、数据接口或依赖支持。建议根据自己的版本和插件环境先测试兼容性。

插件用途

AceCommQueue 主要面向需要运行库功能的玩家,用来改善游戏体验、减少重复操作或补充默认界面没有直接提供的信息。

适用场景

  • 界面框架、头像、动作条或冷却显示优化
  • 插件库、数据接口或依赖支持

使用建议

安装后建议先在角色选择界面或插件管理器中确认已启用,再进入游戏测试是否与现有整合包、WA 和其他插件冲突。如遇报错,可以先禁用同类插件排查。

AceCommQueue-1.0 - Transparent Send-Queue for AceComm-3.0

Are your addon's large AceComm messages arriving garbled with CRC errors? Does your guild communication addon silently drop or corrupt multi-chunk messages under load? AceCommQueue-1.0 is the solution.

AceCommQueue-1.0 is a lightweight, transparent queuing library that sits between your addon and AceComm-3.0, ensuring that only one message per channel is ever in-flight through ChatThrottleLib at a time — eliminating the chunk-interleaving bug that causes CRC failures on receivers.

The Problem

AceComm-3.0 splits large messages into FIRST/NEXT/LAST chunks and hands them all to ChatThrottleLib (CTL) at once. CTL maintains separate priority rings — ALERT, NORMAL, BULK — and drains ALERT before NORMAL before BULK.

If a second message is submitted on the same prefix immediately after a large first message, and the two use different CTL priorities, CTL can drain the second message's chunks ahead of remaining chunks from the first message. The receiver's AceComm spool is keyed on prefix + sender. When a new FIRST frame arrives mid-stream, the partial spool is overwritten — the assembled payload is garbage and the CRC check fails.

BULK  message: FIRST ─── NEXT ─── NEXT ─── LAST
NORMAL message:            FIRST ─ LAST
                                ↑
                      receiver spool corrupted here

This bug is silent. No error is printed. The message simply never arrives. It hits any addon that sends multiple large messages in rapid succession using different CTL priorities.

The Solution

AceCommQueue-1.0 maintains an app-level queue per (prefix, distribution, target). Only one message is ever active in CTL at a time for that combination. The next queued message is not submitted until CTL's callback confirms the previous message's final chunk was handed off.

Between messages, higher-priority items drain first (ALERT > NORMAL > BULK), so an urgent message pushed onto the queue still goes out before pending lower-priority traffic — matching CTL's own intent.

Core Features

Fully Transparent Integration

  • Zero Call-Site Changes: Embed once in OnInitialize — all existing self:SendCommMessage(...) calls are automatically queued
  • Wrapper-Safe: Captures whatever SendCommMessage is present at embed time — compatible with your existing wrappers
  • LibStub-Versioned: Standard LibStub upgrade semantics — multiple addons can embed the library without conflicts
  • Queue State Preserved: Internal queues survive LibStub upgrades across repeated /reload cycles

Priority-Aware Draining

  • ALERT drains before NORMAL before BULK — mirrors CTL's own priority ordering
  • Urgent messages (ALERT) are never held behind lower-priority backlog
  • Per-channel queues: separate queues per (prefix, distribution, target) so unrelated channels never block each other

Suppression Compatible

  • Works with send-suppression wrappers (e.g. in-raid guards) — suppressing wrappers just call the callback with (arg, 0, 0, nil) to unblock the queue cleanly
  • Never stalls: the 0 >= 0 condition satisfies last-chunk detection regardless of real send

Debug & Diagnostics

  • Optional runtime debug output via AceCommQueue:SetDebug(true)
  • Optional slash command registration: ACQ:RegisterSlashCommand("/acq")
  • Slash command lets you toggle debug output and inspect live queue state without a reload

How It Works

Integration (Three Steps)

  1. Load the library in your .toc before your own files:
    Libs\LibStub\LibStub.lua
    Libs\AceCommQueue-1.0\AceCommQueue-1.0.lua
  2. Embed after AceComm in OnInitialize:
    AceComm must be embedded first, then any custom wrappers, then AceCommQueue last so it wraps the complete chain.
  3. Done. Use self:SendCommMessage(...) as normal — queueing is fully transparent.

Suppression Wrappers

If your addon has a wrapper that sometimes suppresses sends (e.g. an in-raid guard), install it before calling ACQ:Embed(self), and have it call callbackFn(callbackArg, 0, 0, nil) when suppressing. This satisfies last-chunk detection and unblocks the queue so it never stalls permanently.

Why Use AceCommQueue-1.0?

Correctness

  • Eliminates the silent CRC-corruption bug that affects any addon sending large multi-chunk messages in rapid succession
  • No lost messages, no garbage payloads, no confusing intermittent failures under guild channel load

Zero Overhead

  • Single Lua file, no external dependencies beyond LibStub and AceComm-3.0
  • No polling, no frame update hooks — purely callback-driven
  • Queue drain happens in the same CTL callback that already fires per chunk

Drop-In

  • No refactoring of call sites required
  • Compatible with all WoW Classic versions (Era, BCC, Wrath)
  • Ships as a standalone addon or embedded in your own Libs folder

Slash Commands

Register with LibStub("AceCommQueue-1.0"):RegisterSlashCommand("/acq"). Available commands:

  • /acq debug on|off — Enable or disable debug output
  • /acq queues — Print current queue state for all active channels

Requirements

  • LibStub
  • AceComm-3.0 (part of Ace3)

Recent Updates

v1.0.0 (Latest Release)

  • Initial public release — transparent per-(prefix, distribution, target) send queue on top of AceComm-3.0; prevents ChatThrottleLib priority-bucket reordering from interleaving chunks across messages; queue drains via CTL callback on last chunk; priority ordering preserved (ALERT > NORMAL > BULK); fully transparent to existing call sites; includes optional /acq slash commands for debug output and live queue inspection

Bug Reports & Feature Requests

Found a bug or have a suggestion?

  • CurseForge page: TBD

If you have any questions, comments or anything else, please feel free to reach out on Discord!

Credits

Developed by:

  • Pimptasty - Author

Special Thanks:

  • The Old Gods guild community for real-world testing
  • Ace3 library maintainers for the excellent framework
  • WoW Classic community for feedback and support

License

AceCommQueue-1.0 is open-source software. See LICENSE file for details.

CurseForge: https://www.curseforge.com/wow/addons/acecommqueue

用户评价

暂无 / 5,0 条评价
免费插件下载后可以评价;付费插件 / WA 购买后可以评价;委托订单完成后可以评价。
暂无评价。

相关推荐

继续看看这些内容

全站搜索