Adds one self-contained module. Opening a profession window reports its recipe list to the guild-chat relay, which forwards it to errorguild.com, so the site can answer "who can make this". Nothing else in the addon is touched. It is quiet by design: * The ONLY trigger is the player opening a profession window, which they have to do to use it. There is no automatic scan and there must not be one -- casting the profession spell unattended was tried and cannot be made to work: the cast answers "Unknown unit." unless self-targeted, three UI addons wrap CastSpellByName, and the window it opens reports "UNKNOWN" until its data arrives, so an early read publishes a partial list or an empty one. * Every open after the first costs one integer comparison. A confirmed profession whose window still has the same row count cannot have changed, so the rows are not walked, nothing is built and nothing is sent. * Bursts are batched. Buying out a trainer produces one message, not thirty; a bare skill-level change is throttled to one per five minutes. * A count is only believed once two consecutive looks agree on a non-zero number, and an empty read is never published -- a report of nothing is a bad read, not an empty profession. * Nothing is written to the SavedVariable until the website acknowledges it, so a dropped message means the work is redone later, never a silent hole. * It prints nothing, ever. /profsync forgets everything so the next open re-sends; /profsync status prints a diagnostic dump. Those are the only output. Traffic goes out on the GUILD addon channel rather than a whisper: four addons in a normal install ship ChatThrottleLib and every one of them takes three arguments, with nowhere to put a whisper target. Recipe ids are sorted, delta-encoded and written as a base-64 varint carrying 5 data bits per character, so a 150-recipe profession fits in two messages. No bit library is needed, which matters -- vanilla's Lua 5.0 has none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
53 lines
1.7 KiB
TeX
53 lines
1.7 KiB
TeX
## Interface: 11200
|
|
## Title: shootyepgp | |cff808080<ERROR>|r
|
|
## Title-zhCN: shootyepgp EPGP插件 | |cff808080<ERROR>
|
|
## Notes: Effort Points/Gear Points Loot System
|
|
## Notes-zhCN: 贡献点/装备点拾取制度系统
|
|
## Author: Roadblock / Horyoshi
|
|
## X-Website: https://github.com/cinecom/shootyepgp/
|
|
## X-Category: Guild
|
|
## X-Credits: shooty, Qcat(zhCN)
|
|
## Version: 10.20.3 <ERROR>
|
|
## X-Alpha:
|
|
## OptionalDeps: Ace2
|
|
## SavedVariables: sepgp_saychannel, sepgp_groupbyclass, sepgp_groupbyarmor, sepgp_groupbyrole, sepgp_raidonly, sepgp_dbver, sepgp_debug, sepgp_fubar, sepgp_sound, RaidStrikeDB, RaidStrikeResetTime
|
|
## SavedVariablesPerCharacter: sepgp_main, sepgp_log, sepgp_looted, sepgp_decay, sepgp_minep, sepgp_reservechannel, sepgp_progress, sepgp_discount, sepgp_altspool, sepgp_altpercent, sepgp_autobidwindow, sepgp_profsync
|
|
|
|
Libs\AceLibrary\AceLibrary.lua
|
|
Libs\AceOO-2.0\AceOO-2.0.lua
|
|
Libs\AceEvent-2.0\AceEvent-2.0.lua
|
|
Libs\AceAddon-2.0\AceAddon-2.0.lua
|
|
Libs\AceHook-2.1\AceHook-2.1.lua
|
|
Libs\AceConsole-2.0\AceConsole-2.0.lua
|
|
Libs\AceModuleCore-2.0\AceModuleCore-2.0.lua
|
|
Libs\AceDB-2.0\AceDB-2.0.lua
|
|
Libs\AceDebug-2.0\AceDebug-2.0.lua
|
|
Libs\AceLocale-2.2\AceLocale-2.2.lua
|
|
|
|
Libs\Deformat-2.0\Deformat-2.0.lua
|
|
Libs\Babble-Class-2.2\Babble-Class-2.2.lua
|
|
Libs\Babble-Zone-2.2\Babble-Zone-2.2.lua
|
|
Libs\Crayon-2.0\Crayon-2.0.lua
|
|
Libs\Compost-2.0\Compost-2.0.lua
|
|
Libs\Dewdrop-2.0\Dewdrop-2.0.lua
|
|
Libs\Tablet-2.0\Tablet-2.0.lua
|
|
Libs\Gratuity-2.0\Gratuity-2.0.lua
|
|
Libs\FuBarPlugin-2.0\FuBarPlugin-2.0.lua
|
|
|
|
extra_features.lua
|
|
localization.lua
|
|
shootyepgp.lua
|
|
migrations.lua
|
|
prices.lua
|
|
standings.lua
|
|
bids.lua
|
|
loot.lua
|
|
reserves.lua
|
|
alts.lua
|
|
logs.lua
|
|
matrix.lua
|
|
raidstrike.lua
|
|
bench.lua
|
|
snowball.lua
|
|
altnames.lua
|
|
profsync.lua |