Skip to content

Commit 2286bc4

Browse files
Kevin Grosspatrikjuvonen
andauthored
race: Fix #139 (#143)
* Fix for #139 * indentation * Add errorCode export in votemanager * Remove duplicate errorCode in race and use new votemanager errorCode export * Error out instead if trying to set an already defined error code Co-authored-by: Patrik Juvonen <[email protected]>
1 parent 95e6a5a commit 2286bc4

File tree

4 files changed

+36
-1
lines changed

4 files changed

+36
-1
lines changed

[gamemodes]/[race]/race/meta.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<include resource="votemanager"/>
77
<include resource="helpmanager" />
88

9+
<script src="race_errorcodes.lua" type="shared"/>
910

1011
<script src="_common.lua" type="server"/>
1112
<script src="_joiner.lua" type="server"/>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
errorCode = {}
2+
3+
local function loadAdditionalErrorCodes()
4+
-- Load error codes from votemanager resource if it's running
5+
local votemanagerResource = getResourceFromName("votemanager")
6+
if (votemanagerResource) then
7+
if (getResourceState(votemanagerResource) == "running") then
8+
local votemanagerErrorCodes = exports.votemanager:getErrorCodes()
9+
10+
assert(type(votemanagerErrorCodes) == "table", "Error codes returned from votemanager are not of table type. Got [" .. type(votemanagerErrorCodes) .. "].")
11+
12+
for key, code in pairs(votemanagerErrorCodes) do
13+
-- If the error code is defined already, error out
14+
assert(errorCode[key] == nil, "Error code conflict! Error code '" .. key .. "' already defined in race!")
15+
errorCode[key] = code
16+
end
17+
else
18+
outputDebugString("Could not load error codes from votemanager because it is not running.", 1)
19+
end
20+
else
21+
outputDebugString("Could not load error codes from votemanager because it is not available.", 1)
22+
end
23+
end
24+
if (localPlayer) then
25+
addEventHandler("onClientResourceStart", resourceRoot, loadAdditionalErrorCodes)
26+
else
27+
addEventHandler("onResourceStart", resourceRoot, loadAdditionalErrorCodes)
28+
end

[managers]/votemanager/meta.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
<info author="jbeta" description="Vote manager resource" type="script" version="1.1.0" />
33
<include resource="helpmanager" />
44

5-
<script src="votemanager_errorcodes.lua" type="server"/>
5+
<script src="votemanager_errorcodes.lua" type="shared"/>
6+
<export function="getErrorCodes" type="shared"/>
67
<script src="votemanager_server.lua" type="server"/>
78
<export function="startPoll"/>
89
<export function="stopPoll"/>

[managers]/votemanager/votemanager_errorcodes.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,9 @@ errorCode = {
1616
noGamemodeRunning = 33,
1717
mapIsntCompatible = 34,
1818
twoModesNeeded = 35,
19+
onlyOneCompatibleMap = 36
1920
}
21+
22+
function getErrorCodes()
23+
return errorCode
24+
end

0 commit comments

Comments
 (0)