[BUG] Lua Error while saving, when Repeat is left empty for Loop
Opened this issue ยท 0 comments
Describe the bug
Saving a macro causes a Lua Error, when Repeat is left empty for a Loop.
To Reproduce
Steps to reproduce the behavior:
- Type '/gse' in Chat Frame
- Click on 'New'
- Click on '1'
- Add loop
- Remove 2 from Repeat
- Click on 'Save"
- Lua Error
- Macro is still saved
- Can't edit or create new macros
- Deleting the macro and reloading UI resolves issue
Expected behavior
Prohibit leaving Repeat empty for a Loop when saving a macro.
Desktop (please complete the following information):
- OS: Windows 10 (19043)
- Game Version: 9.1.0 (39262)
GSE Version
- Version: 3.0.11
- Downloaded From: Ajour (Curse)
Additional context
{
["Variables"] = {
},
["Actions"] = {
[1] = {
[1] = "/say Hello",
["Type"] = "Action"
},
[2] = {
[1] = {
[1] = "/say Hello",
["Type"] = "Action"
},
["Type"] = "Loop",
["Repeat"] = "",
["StepFunction"] = "Sequential"
}
},
["InbuiltVariables"] = {
}
}
Message: Interface\AddOns\GSE\API\Storage.lua:1315: 'for' limit must be a number
Time: Fri Jul 2 11:08:19 2021
Count: 1
Stack: Interface\AddOns\GSE\API\Storage.lua:1315: 'for' limit must be a number
[string "@interface\AddOns\GSE\API\Storage.lua"]:1315: in function <Interface\AddOns\GSE\API\Storage.lua:1297>
[string "=(tail call)"]: ?
[string "@interface\AddOns\GSE\API\Storage.lua"]:1427: in functionCompileTemplate' [string "@Interface\AddOns\GSE\API\Storage.lua"]:512: in function
OOCUpdateSequence'
[string "@interface\AddOns\GSE\API\Events.lua"]:439: in function `?'
[string "@interface\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua"]:55: in function <...ce\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua:50>Locals: action =
{
1 ={
}
Type = "Loop"
Repeat = ""
StepFunction = "Sequential"
}
metaData ={
}
actionList ={
1 = "/say Hello"
}
returnActions ={
}
loop = nil
(for index) = 1
(for limit) = nil
(for step) = 1
(*temporary) = 1
(*temporary) = 2
(*temporary) = nil
(*temporary) = "/say Hello"
(*temporary) ={
1 = "/say Hello"
Type = "Action"
}
(*temporary) = "
"
(*temporary) = "/say Hello"
(*temporary) = nil
(*temporary) = 1
(*temporary) = 2
(*temporary) = nil
(*temporary) = "'for' limit must be a number"
Statics ={
StringFormatEscapes ={
}
Patrons ={
}
CastCmds ={
}
TranslationShadow = "SHADOW"
CommPrefix = "GSE"
Priority = "Priority"
TranslationHash = "HASH"
SpecIDClassList ={
}
CoreLoadedMessage = "GS-CoreLoaded"
MacroResetSkeleton = "if %s then
self:SetAttribute('step', 1)
self:SetAttribute('loopiter', 1)
end
"
SpecIDHashList ={
}
StringReset = ""
CleanStrings ={
}
Class = "Class"
ReloadMessage = "Reload"
DebugModules ={
}
SourceLocal = "Local"
TranslationKey = "KEY"
Sequential = "Sequential"
Actions ={
}
TranslatorMode ={
}
GSE3OnClick = "local step = self:GetAttribute('step')
step = tonumber(step)
self:SetAttribute('macrotext', macros[step] )
step = step % #macros + 1
if not step or not macros[step] then -- User attempted to write a step method that doesn't work, reset to 1
print('Invalid step assigned by custom step sequence', self:GetName(), step or 'nil', '')
step = 1
end
self:SetAttribute('step', step)
self:CallMethod('UpdateIcon')
"
ActionsIcons ={
}
Global = "Global"
BaseSpellTable ={
}
QuestionMark = "INV_MISC_QUESTIONMARK"
Spec = "Spec"
SystemVariableDescriptions ={
}
MacroCommands ={
}
TableMetadataFunction ={
}
All = "All"
PrintKeyModifiers = "print("Right alt key " .. tostring(IsRightAltKeyDown()))
print("Left alt key " .. tostring(IsLeftAltKeyDown()))
print("Any alt key " .. tostring(IsAltKeyDown()))
print("Right ctrl key " .. tostring(IsRightControlKeyDown()))
print("Left ctrl key " .. tostring(IsLeftControlKeyDown()))
print("Any ctrl key " .. tostring(IsControlKeyDown()))
print("Right shft key " .. tostring(IsRightShiftKeyDown()))
print("Left shft key " .. tostring(IsLeftShiftKeyDown()))
print("Any shft key " .. tostring(IsShiftKeyDown()))
print("Any mod key " .. tostring(IsModifierKeyDown()))
print("GetMouseButtonClicked() " .. GetMouseButtonClicked() )
"
SampleMacros ={
}
SourceTransmission = "Transmission"
SequenceDebug = "SEQUENCEDEBUG"
SpecIDList ={
}
SystemVariables ={
}
}
buildAction = defined @interface\AddOns\GSE\API\Storage.lua:1229
GSE ={
ResetButtons = defined @interface\AddOns\GSE\API\Storage.lua:473
StartOOCTimer = defined @interface\AddOns\GSE\API\Events.lua:425
ReportTargetProtection = defined @interface\AddOns\GSE\API\Options.lua:876
RequestSequence = defined @interface\AddOns\GSE\API\Serialisation.lua:306
CloneSequence = defined @interface\AddOns\GSE\API\Storage.lua:38
modules ={
}
CancelTimer = defin