Skip to content

Commit 58f26f7

Browse files
committed
Fixed some errors if the resource is missing rights, the server doesn't have the sockets module loaded or when the logfile is used by another proces.
1 parent 6d4f8fb commit 58f26f7

File tree

4 files changed

+56
-60
lines changed

4 files changed

+56
-60
lines changed

resources/irc/scripts/irccommands.lua

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,11 @@ addEventHandler("onIRCResourceStart",root,
152152
local player = getPlayerFromPartialName(name)
153153
if player then
154154
if isPedInVehicle(player) then
155-
setVehicleFrozen(getPedOccupiedVehicle(player),true)
156-
setTimer(setVehicleFrozen,time,1,getPedOccupiedVehicle(player),false)
155+
setElementFrozen(getPedOccupiedVehicle(player),true)
156+
setTimer(setElementFrozen,time,1,getPedOccupiedVehicle(player),false)
157157
end
158-
setPedFrozen(player,true)
159-
setTimer(setPedFrozen,time,1,player,false)
158+
setElementFrozen(player,true)
159+
setTimer(setElementFrozen,time,1,player,false)
160160
outputChatBox(getPlayerName(player).." was frozen by "..ircGetUserNick(user).." ("..reason..")",root,255,0,0)
161161
ircSay(channel,"12* "..getPlayerName(player).." was frozen by "..ircGetUserNick(user).." ("..reason..")")
162162
else
@@ -171,9 +171,9 @@ addEventHandler("onIRCResourceStart",root,
171171
local player = getPlayerFromPartialName(name)
172172
if player then
173173
if isPedInVehicle(player) then
174-
setVehicleFrozen(getPedOccupiedVehicle(player),false)
174+
setElementFrozen(getPedOccupiedVehicle(player),false)
175175
end
176-
setPedFrozen(player,false)
176+
setElementFrozen(player,false)
177177
outputChatBox(getPlayerName(player).." was unfrozen by "..ircGetUserNick(user),root,255,0,0)
178178
ircSay(channel,"12* "..getPlayerName(player).." was unfrozen by "..ircGetUserNick(user))
179179
else
@@ -350,17 +350,17 @@ addEventHandler("onIRCResourceStart",root,
350350
if player then
351351
table.remove(t,1)
352352
str = table.concat(t," ")
353-
triggerClientEvent(player,"doCrun",root,str,true)
353+
triggerClientEvent(player,"doCrun",resourceRoot,str,true)
354354
else
355355
if #getElementsByType("player") == 0 then
356356
ircNotice(user,"No player ingame!")
357357
return
358358
end
359359
for i,player in ipairs (getElementsByType("player")) do
360360
if i == 1 then
361-
triggerClientEvent(player,"doCrun",root,str,true)
361+
triggerClientEvent(player,"doCrun",resourceRoot,str,true)
362362
else
363-
triggerClientEvent(player,"doCrun",root,str,false)
363+
triggerClientEvent(player,"doCrun",resourceRoot,str,false)
364364
end
365365
end
366366
end

resources/irc/scripts/loading.lua

Lines changed: 41 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,45 @@ local adTimer
1313
------------------------------------
1414
addEventHandler("onResourceStart",resourceRoot,
1515
function ()
16-
-- Parse rights file.
16+
-- Parse functions file.
17+
local functionsFile = fileOpen("scripts/functions.txt",true)
18+
if functionsFile then
19+
for i,line in ipairs (split(fileRead(functionsFile,fileGetSize(functionsFile)),44)) do
20+
if gettok(line,1,21) ~= "--" then
21+
local functionName = gettok(line,2,32)
22+
_G[(functionName)] = function (...)
23+
local args = {...}
24+
for i,arg in ipairs (args) do
25+
local expectedArgType = gettok(line,(2+i),32)
26+
if expectedArgType and type(arg) ~= expectedArgType and not (expectedArgType or string.find(expectedArgType,")")) then
27+
outputServerLog("IRC: Bad argument #"..i.." @ '"..gettok(line,2,32).."' "..expectedArgType.." expected, got "..type(arg))
28+
return
29+
end
30+
end
31+
if _G[("func_"..functionName)] then
32+
return _G[("func_"..functionName)](...)
33+
else
34+
outputServerLog("Function '"..functionName.."' does not exist")
35+
return false
36+
end
37+
end
38+
end
39+
end
40+
fileClose(functionsFile)
41+
else
42+
outputServerLog("IRC: could not start resource, the functions file can't be loaded!")
43+
outputServerLog("IRC: restart the resource to retry")
44+
return
45+
end
46+
47+
-- Is the sockets module loaded?
48+
if not sockOpen then
49+
outputServerLog("IRC: could not start resource, the sockets module isn't loaded!")
50+
outputServerLog("IRC: restart the resource to retry")
51+
return
52+
end
53+
54+
-- Parse rights file.
1755
local rightsFile = fileOpen("scripts/rights.txt",true)
1856
if rightsFile then
1957
local missingRights = {}
@@ -29,6 +67,7 @@ addEventHandler("onResourceStart",resourceRoot,
2967
outputServerLog(" - "..missingRight)
3068
end
3169
outputServerLog("Please give the irc resource these rights or it will not work properly!")
70+
return
3271
end
3372
else
3473
outputServerLog("IRC: could not start resource, the rights file can't be loaded!")
@@ -60,37 +99,6 @@ addEventHandler("onResourceStart",resourceRoot,
6099
end
61100
end
62101

63-
-- Parse functions file.
64-
local functionsFile = fileOpen("scripts/functions.txt",true)
65-
if functionsFile then
66-
for i,line in ipairs (split(fileRead(functionsFile,fileGetSize(functionsFile)),44)) do
67-
if gettok(line,1,21) ~= "--" then
68-
local functionName = gettok(line,2,32)
69-
_G[(functionName)] = function (...)
70-
local args = {...}
71-
for i,arg in ipairs (args) do
72-
local expectedArgType = gettok(line,(2+i),32)
73-
if expectedArgType and type(arg) ~= expectedArgType and not (expectedArgType or string.find(expectedArgType,")")) then
74-
outputServerLog("IRC: Bad argument #"..i.." @ '"..gettok(line,2,32).."' "..expectedArgType.." expected, got "..type(arg))
75-
return
76-
end
77-
end
78-
if _G[("func_"..functionName)] then
79-
return _G[("func_"..functionName)](...)
80-
else
81-
outputServerLog("Function '"..functionName.."' does not exist")
82-
return false
83-
end
84-
end
85-
end
86-
end
87-
fileClose(functionsFile)
88-
else
89-
outputServerLog("IRC: could not start resource, the functions file can't be loaded!")
90-
outputServerLog("IRC: restart the resource to retry")
91-
return
92-
end
93-
94102
-- parse acl file
95103
local aclFile = xmlLoadFile("acl.xml")
96104
if aclFile then
@@ -108,21 +116,6 @@ addEventHandler("onResourceStart",resourceRoot,
108116
outputServerLog("IRC: restart the resource to retry")
109117
return
110118
end
111-
112-
-- Is the sockets module loaded?
113-
if not sockOpen then
114-
outputServerLog("IRC: could not start resource, the sockets module isn't loaded!")
115-
outputServerLog("IRC: restart the resource to retry")
116-
return
117-
end
118-
119-
-- start irc addons
120-
for i,resource in ipairs (getResources()) do
121-
local info = getResourceInfo(resource,"addon")
122-
if info and info == "irc" then
123-
startResource(resource)
124-
end
125-
end
126119

127120
triggerEvent("onIRCResourceStart",root)
128121
internalConnect()
@@ -131,7 +124,7 @@ addEventHandler("onResourceStart",resourceRoot,
131124

132125
addEventHandler("onResourceStop",resourceRoot,
133126
function ()
134-
for i,server in ipairs (ircGetServers()) do
127+
for i,server in ipairs (ircGetServers() or {}) do
135128
ircDisconnect(server,"resource stopped")
136129
end
137130
servers = {}

resources/irc/scripts/logging.lua

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ addEventHandler("onResourceStart",resourceRoot,
1717

1818
if fileExists("irc.log") then
1919
logfile = fileOpen("irc.log")
20-
fileSetPos(logfile,fileGetSize(logfile))
21-
writeLog("\n------ new log ------")
20+
if logfile then
21+
fileSetPos(logfile,fileGetSize(logfile))
22+
writeLog("\n------ new log ------")
23+
end
2224
else
2325
logfile = fileCreate("irc.log")
2426
writeLog("\n------ new log ------")
@@ -41,6 +43,7 @@ addEventHandler("onResourceStop",resourceRoot,
4143
)
4244

4345
function writeLog (text)
46+
if not logfile then return end
4447
fileWrite(logfile,getTimeStamp().." "..text.."\n")
4548

4649
local size = fileGetSize(logfile)

resources/irc/scripts/rights.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
kickPlayer,addBan,removeBan,getPlayerIP,getPlayerSerial,setPlayerFrozen,setPlayerMuted,killPed,startResource,stopResource,restartResource,callRemote
1+
kickPlayer,addBan,removeBan,getPlayerIP,getPlayerSerial,setPlayerFrozen,setPlayerMuted,killPed,startResource,stopResource,restartResource,callRemote,fileOpen,fileRead

0 commit comments

Comments
 (0)