mooreatv / dynamicboxer Goto Github PK
View Code? Open in Web Editor NEWMultiboxing with dynamic teams wow addon
Multiboxing with dynamic teams wow addon
@Whatupdays reported:
38x DynamicBoxer\DynamicBoxer-v1.8.6.lua:533: attempt to get length of field 'orig' (a nil value)
DynamicBoxer\DynamicBoxer-v1.8.6.lua:533: in function <DynamicBoxer\DynamicBoxer.lua:532>
[C]: in function sort'
DynamicBoxer\DynamicBoxer-v1.8.6.lua:532: in functionSortTeam'
DynamicBoxer\DynamicBoxer-v1.8.6.lua:794: in function `ProcessMessage'
DynamicBoxer\DynamicBoxer-v1.8.6.lua:850: in function <DynamicBoxer\DynamicBoxer.lua:845>
(tail call): ?
Locals:
a = <table> {
slot = 8
fullName = "z-Tichondrius"
orig = "y"
new = "z"
}
b = <table> {
slotStr = "SLOT-1"
slot = -1
fullName = "x-Tichondrius"
new = "x"
}
(temporary) = 12
(temporary) = nil
(*temporary) = "attempt to get length of field 'orig' (a nil value)"
(changed toon names to x,y,z for privacy)
seems to be because of failing to find the character in the isboxer team and then propagating the -1
make the tab configurable (like tsm)
also related to mooreatv/MoLib#3
waiting for details of when would it not work/setup from DarkNight
follow up on #22 with my own debug/test setup
"Frm: Áz-WyrmrestAccord : 3 Áz-WyrmrestAccord Dih 1 msg 0 (lag 0)", -- [1]
"To : Áz-WyrmrestAccord : 1 Bladese-Blade'sEdge Pha 0 msg 0", -- [2]
"Frm: Áz-WyrmrestAccord : 3 Áz-WyrmrestAccord Dih 0 msg 1 (lag 0)", -- [3]
"To : Áz-WyrmrestAccord : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [4]
"To : Áz-WyrmrestAccord : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [5]
"Frm: Ironfour-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 1 msg 0 (lag 0)", -- [6]
"To : Ironfour-Kil'jaeden : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [7]
"To : Ironfour-Kil'jaeden : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [8]
"Frm: Iililil-Firetree : 5 Iililil-Firetree Wda 1 msg 0 (lag 0)", -- [9]
"To : Iililil-Firetree : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [10]
"To : Iililil-Firetree : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [11]
"To : Iililil-Firetree : 4 Ironfour-Kil'jaeden Foria 0 msg 1", -- [12]
"Frm: Iililil-Firetree : 5 Iililil-Firetree Wda 0 msg 1 (lag 0)", -- [13]
"To : Iililil-Firetree : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [14]
"To : Iililil-Firetree : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [15]
"To : Iililil-Firetree : 4 Ironfour-Kil'jaeden Foria 0 msg 1", -- [16]
"To : Iililil-Firetree : 5 Iililil-Firetree Wda 0 msg 1", -- [17]
"Frm: Ironfour-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 1 (lag 1)", -- [18]
"To : Ironfour-Kil'jaeden : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [19]
"To : Ironfour-Kil'jaeden : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [20]
"To : Ironfour-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 1", -- [21]
"To : Ironfour-Kil'jaeden : 5 Iililil-Firetree Wda 0 msg 1", -- [22]
"Frm: Irontwo-Kil'jaeden : 2 Irontwo-Kil'jaeden Viosa 1 msg 0 (lag 1)", -- [23]
"To : Irontwo-Kil'jaeden : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [24]
"To : Irontwo-Kil'jaeden : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [25]
"To : Irontwo-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 1", -- [26]
"To : Irontwo-Kil'jaeden : 5 Iililil-Firetree Wda 0 msg 1", -- [27]
"Frm: Irontwo-Kil'jaeden : 2 Irontwo-Kil'jaeden Viosa 0 msg 1 (lag 1)", -- [28]
"To : Irontwo-Kil'jaeden : 1 Bladese-Blade'sEdge Pha 0 msg 1", -- [29]
"To : Irontwo-Kil'jaeden : 2 Irontwo-Kil'jaeden Viosa 0 msg 1", -- [30]
"To : Irontwo-Kil'jaeden : 3 Áz-WyrmrestAccord Dih 0 msg 1", -- [31]
"To : Irontwo-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 1", -- [32]
"To : Irontwo-Kil'jaeden : 5 Iililil-Firetree Wda 0 msg 1", -- [33]
"Frm: Iililil-Firetree : 5 Iililil-Firetree Wda 0 msg 0 (lag 0)", -- [34]
"To : Iililil-Firetree : 1 Bladese-Blade'sEdge Pha 0 msg 0", -- [35]
"To : Iililil-Firetree : 2 Irontwo-Kil'jaeden Viosa 0 msg 0", -- [36]
"To : Iililil-Firetree : 3 Áz-WyrmrestAccord Dih 0 msg 0", -- [37]
"To : Iililil-Firetree : 4 Ironfour-Kil'jaeden Foria 0 msg 0", -- [38]
"To : Iililil-Firetree : 5 Iililil-Firetree Wda 0 msg 0", -- [39]
"Frm: Ironfour-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 0 (lag 0)", -- [40]
"To : Ironfour-Kil'jaeden : 1 Bladese-Blade'sEdge Pha 0 msg 0", -- [41]
"To : Ironfour-Kil'jaeden : 2 Irontwo-Kil'jaeden Viosa 0 msg 0", -- [42]
"To : Ironfour-Kil'jaeden : 3 Áz-WyrmrestAccord Dih 0 msg 0", -- [43]
"To : Ironfour-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 0", -- [44]
"To : Ironfour-Kil'jaeden : 5 Iililil-Firetree Wda 0 msg 0", -- [45]
"Frm: Irontwo-Kil'jaeden : 2 Irontwo-Kil'jaeden Viosa 0 msg 0 (lag 1)", -- [46]
"To : Irontwo-Kil'jaeden : 1 Bladese-Blade'sEdge Pha 0 msg 0", -- [47]
"To : Irontwo-Kil'jaeden : 2 Irontwo-Kil'jaeden Viosa 0 msg 0", -- [48]
"To : Irontwo-Kil'jaeden : 3 Áz-WyrmrestAccord Dih 0 msg 0", -- [49]
"To : Irontwo-Kil'jaeden : 4 Ironfour-Kil'jaeden Foria 0 msg 0", -- [50]
"To : Irontwo-Kil'jaeden : 5 Iililil-Firetree Wda 0 msg 0", -- [51]
"Frm: Áz-WyrmrestAccord : 3 Áz-WyrmrestAccord Dih 0 msg 0 (lag 1)", -- [52]
"To : Áz-WyrmrestAccord : 1 Bladese-Blade'sEdge Pha 0 msg 0", -- [53]
"To : Áz-WyrmrestAccord : 2 Irontwo-Kil'jaeden Viosa 0 msg 0", -- [54]
"To : Áz-WyrmrestAccord : 3 Áz-WyrmrestAccord Dih 0 msg 0", -- [55]
"To : Áz-WyrmrestAccord : 4 Ironfour-Kil'jaeden Foria 0 msg 0", -- [56]
"To : Áz-WyrmrestAccord : 5 Iililil-Firetree Wda 0 msg 0", -- [57]
investigate how wow std preferences work
info is enough (or even at some point debug)
if not in saved variables already, prompt to check the channel is the same on all windows/edit it so
prompt for a generated password (unless isboxer/innerspace could kindly do that for us)
and maybe auto downsize to party
could also be clickable to make party, follow etc
for manual mode, slaves could ask which slot they should use
and slash command for who should invite
right now we just use EMAApi.AddMember(realname)
because it goes back to original hardcoded isboxer list and upon reload there is channel join event so the other toons don't know one has been reloaded
adding a "first"/force option to the message to trigger broadcast
1x DynamicBoxer\DynamicBoxer-@[email protected]:36: bad argument #1 to 'gsub' (string expected, got nil)
[C]: in function `gsub'
DynamicBoxer\DynamicBoxer-@[email protected]:36: in main chunk
Locals:
(*temporary) = nil
(*temporary) = "#"
(*temporary) = ""
(*temporary) = "string expected, got nil"
right now I turned off isboxer registration of UPDATE_BINDINGS because it happened too early but that may cause issue if the player is using the update bindings UI
if the password is wrong, the join api call does succeed (!) but then later you get a dialog box prompting for password
we should catch CHANNEL_PASSWORD_REQUEST which fires in that case
if you just reload a same realm toon, it's initial force request is ignored because of
-- no point in resending if we are team complete (and not asked to resync)
if (DB.currentCount >= DB.expectedCount) and DB.firstMsg ~= 1 then
DB:Debug("Team is complete (and not asked for sync), aborting sync")
return
end
Learned a lot thanks to Darknight's help and testing
when doing dbox m or j on multiple slot the throttling kicks in and messages get delayed by 20s triggering the invalid/replay warning
need to make it that I can safely broadcast something in between /dbox init and /dbox show and copy paste to fix it; maybe /dbox init on master can start with current token and only change if you click randomize or hit a key
also make pasting into master's dbox show a no op/rejected
when 2 or more are out of realm, the first one out of realm to ping the master doesn't get the complete team list (because the 2nd one hasn't pinged yet)
need to flag team changes better (chg vs new mapping)
need a way to show version
maybe some way to copy/past logs/debug info
there was an issue where pasting was impossible on slot 5 (ok/validation failure, likely due to field max length set wrong)
there appears to be a bug where if you start from a cross realm isboxer team (vs virtual team or team from same realm) it doesn't work (or maybe only with realms with spaces or ' in them)
-slot1 should have dbox show up
-slot2-5 should hide the old token so one can broadcast copy/paste
tainting in combo box?
1x [ADDON_ACTION_BLOCKED] AddOn 'DynamicBoxer' tried to call the protected function 'CompactRaidFrame1:Show()'.
!BugGrabber\BugGrabber.lua:519: in function <!BugGrabber\BugGrabber.lua:519>
[C]: in function `Show'
FrameXML\CompactUnitFrame.lua:367: in function `CompactUnitFrame_UpdateVisible'
FrameXML\CompactUnitFrame.lua:299: in function `CompactUnitFrame_UpdateAll'
FrameXML\CompactUnitFrame.lua:150: in function <FrameXML\CompactUnitFrame.lua:54>
Locals:
InCombatSkipped
https://github.com/tekkub/libdatabroker-1-1
maybe post data that can be displayed by other addons etc
Right now it "works" but doesn't do the team complete step if you login fewer than the expected isboxer teamsize
we should find some way to tell it that "that's it" (maybe click somewhere on status window...)
some regression somewhere as it was working (not that it's a very interesting usecase for now)
1x DynamicBoxer\DynamicBoxer-v1.8.1.lua:769: attempt to index field 'frame' (a nil value)
DynamicBoxer\DynamicBoxer-v1.8.1.lua:769: in function <DynamicBoxer\DynamicBoxer.lua:760>
(tail call): ?
Locals:
self = DynBoxer {
0 = <userdata>
joinDone = false
configVersion = 1
refresh = 2
RealmAbbrev = <function> defined @DynamicBoxer\MoLib/MoLib.lua:178
optionsPanel = <unnamed> {
}
ChatFilter = <function> defined @DynamicBoxer\DBoxChat.lua:15
SlotCommand = <function> defined @DynamicBoxer\DynamicBoxer.lua:383
debugPrint = <function> defined @DynamicBoxer\MoLib/MoLib.lua:113
Help = <function> defined @DynamicBoxer\DynamicBoxer.lua:995
randomIdLen = 8
Disband = <function> defined @DynamicBoxer\DynamicBoxer.lua:539
format = <function> defined @DynamicBoxer\MoLib/MoLib.lua:74
firstMsg = 1
Slash = <function> defined @DynamicBoxer\DynamicBoxer.lua:1033
enabled = true
Warning = <function> defined @DynamicBoxer\MoLib/MoLib.lua:122
secureFutureThreshold = -5
HideTokenUI = <function> defined @DynamicBoxer\DBoxUI.lua:309
tokenMinLen = 22
expectedCount = 0
securePastThreshold = 45
PrintInfo = <function> defined @DynamicBoxer\MoLib/MoLib.lua:132
ExchangeTokenUI = <function> defined @DynamicBoxer\DBoxUI.lua:294
ShowTokenUI = <function> defined @DynamicBoxer\DBoxUI.lua:270
InfoPayload = <function> defined @DynamicBoxer\DynamicBoxer.lua:379
Channel = ""
SetupChange = <function> defined @DynamicBoxer\DynamicBoxer.lua:1014
Frame = <function> defined @DynamicBoxer\MoLib/MoLibUI.lua:15
SetupUI = <function> defined @DynamicBoxer\DBoxUI.lua:253
ToHex = <function> defined @DynamicBoxer\MoLib/MoLib.lua:289
Sync = <function> defined @DynamicBoxer\DynamicBoxer.lua:396
inUI = false
CreateToken = <function> defined @DynamicBoxer\DBoxUI.lua:238
extractRealmID = <function> defined @DynamicBoxer\MoLib/MoLib.lua:169
GetMyRegion = <function> defined @DynamicBoxer\MoLib/MoLib.lua:153
AddToMasterHistory = <function> defined @DynamicBoxer\DynamicBoxer.lua:462
CloneTable = <function> defined @DynamicBoxer\MoLib/MoLib.lua:45
AddHashKey = <function> defined @DynamicBoxer\MoLib/MoLib.lua:323
VerifySecureMessage = <function> defined @DynamicBoxer\MoLib/MoLib.lua:374
IsValidToken = <function> defined @DynamicBoxer\DBoxUI.lua:211
autoInviteSlot = 1
ShortName = <function> defined @DynamicBoxer\DynamicBoxer.lua:192
OnMasterUIShow = <function> defined @DynamicBoxer\DBoxUI.lua:95
OnShowUICancel = <function> defined @DynamicBoxer\DBoxUI.lua:89
GetMyFQN = <function> defined @DynamicBoxer\MoLib/MoLib.lua:249
RandomId = <function> defined @DynamicBoxer\MoLib/MoLib.lua:272
OnUICancel = <function> defined @DynamicBoxer\DBoxUI.lua:77
Print = <function> defined @DynamicBoxer\MoLib/MoLib.lua:67
DebugLogWrite = <function> defined @DynamicBoxer\DynamicBoxer.lua:325
UnHash = <function> defined @DynamicBoxer\MoLib/MoLib.lua:331
MoLibInstallInto = <function> defined @DynamicBoxer\MoLib/MoLib.lua:57
syncNum = 1
fontString = <unnamed> {
}
CreateOptionsPanel = <function> defined @DynamicBoxer\DBoxUI.lua:324
isboxeroutput = true
ReplaceAll = <function> defined @DynamicBoxer\MoLib/MoLib.lua:417
ForceInit = <function> defined @DynamicBoxer\DynamicBoxer.lua:1025
SetSaved = <function> defined @DynamicBoxer\DynamicBoxer.lua:1008
Join = <function> defined @DynamicBoxer\DynamicBoxer.lua:949
NumToHex = <table> {
}
Factions = <table> {
}
SendDirectMessage = <function> defined @DynamicBoxer\DynamicBoxer.lua:340
OnSlaveUIShow = <function> defined @DynamicBoxer\DBoxUI.lua:17
OnEvent = <function> def
for user to copy paste in each window (for channel secret mostly but can also be used for channel for added security)
it should fit in 255 chars/1 message but maybe not for teams more than 5 man
and/or with accentuated characters (double byte length, or more for asian characters)
My Slot 1 doesn't recognize or get recognized but my other slots. It use to work but now it doesn't after a update the other day. But now I can't get it working even after going back versions and reinstalling it from scratch. It was a awesome add-on while it worked for me.
login of another toon
BN_INFO_CHANGED
BN_FRIEND_INFO_CHANGED x 2
at log out of 1 toon
BN_FRIEND_INFO_CHANGED x 2
BN_INFO_CHANGED
for @Whatupdays
and maybe also auto invite (and auto kick)
so when adding new accounts there is a way to copy the current token without
doing a full init
as they aren't needed with the new streamlined 1.2.0 UI
maybe delayed pop up if it doesn't happen automatically
also consider real buttons for invite / disband / cogwheel
1x DynamicBoxer\DynamicBoxer-v0.1.4.lua:133: attempt to call field 'Character_LoadBinds' (a nil value)
DynamicBoxer\DynamicBoxer-v0.1.4.lua:133: in function `ReconstructTeam'
DynamicBoxer\DynamicBoxer-v0.1.4.lua:49: in function `LoadBinds'
ISBoxer\ISBoxer-1.0.lua:178: in function <ISBoxer\ISBoxer.lua:173>
Locals:
self = nil
prev = <function> defined @DynamicBoxer\DynamicBoxer.lua:79
(*temporary) = nil
(*temporary) = "attempt to call field 'Character_LoadBinds' (a nil value)"
DB = DynBoxer {
0 = <userdata>
DumpT = <table> {
}
EventD = <table> {
}
chatPrefix = "dbox0"
SplitFullname = <function> defined @DynamicBoxer\DynamicBoxer.lua:105
DumpInto = <function> defined @DynamicBoxer\MoLib/MoLib.lua:136
shortName = "Moorea"
Replace = <function> defined @DynamicBoxer\DynamicBoxer.lua:57
format = <function> defined @DynamicBoxer\MoLib/MoLib.lua:58
teamComplete = false
DynamicInit = <function> defined @DynamicBoxer\DynamicBoxer.lua:262
refresh = 3
deepmerge = <function> defined @DynamicBoxer\MoLib/MoLib.lua:22
ISBO = <table> {
}
Dump = <function> defined @DynamicBoxer\MoLib/MoLib.lua:145
name = "DynBoxer"
manifestVersion = "v0.1.4"
Error = <function> defined @DynamicBoxer\MoLib/MoLib.lua:86
maxIter = 3
MoLibInit = <function> defined @DynamicBoxer\MoLib/MoLib.lua:94
Secret = "PrototypeSecret12345"
ISBTeam = <table> {
}
myRealm = "Kil'jaeden"
Team = <table> {
}
ticker = <table> {
}
GetMyFQN = <function> defined @DynamicBoxer\MoLib/MoLib.lua:162
fullName = "Moorea-Kil'jaeden"
debug = 1
Slash = <function> defined @DynamicBoxer\DynamicBoxer.lua:301
Debug = <function> defined @DynamicBoxer\MoLib/MoLib.lua:80
Print = <function> defined @DynamicBoxer\MoLib/MoLib.lua:51
MoLibInstallInto = <function> defined @DynamicBoxer\MoLib/MoLib.lua:41
Help = <function> defined @DynamicBoxer\DynamicBoxer.lua:289
Join = <function> defined @DynamicBoxer\DynamicBoxer.lua:268
OnEvent = <function> defined @DynamicBoxer\DynamicBoxer.lua:253
isboxeroutput = true
Sync = <function> defined @DynamicBoxer\DynamicBoxer.lua:140
ProcessMessage = <function> defined @DynamicBoxer\DynamicBoxer.lua:169
SetSaved = <function> defined @DynamicBoxer\DynamicBoxer.lua:295
DebugEvCall = <function> defined @DynamicBoxer\MoLib/MoLib.lua:157
ISBH = <table> {
}
ReconstructTeam = <function> defined @DynamicBoxer\DynamicBoxer.lua:111
first = 1
}
test w bazooka for instance
in particular to sync after invite cross realm
so it seems that slot is stuck (while it is silently retrying until the 1min10s timeout/max retries)
short term: let's print periodic message while we retry so users know what's going on
maybe later: maybe just detect the flying and print a single message until it ends?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.