Skip to content

Commit a63ba3f

Browse files
committed
Better error and irc logging
1 parent 2a2bcfa commit a63ba3f

File tree

4 files changed

+66
-20
lines changed

4 files changed

+66
-20
lines changed

resources/irc/meta.xml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,30 @@
7171
examples="true,false"
7272
desc="Should all irc messages be sent to the server?"
7373
/>
74+
75+
<!-- Event logging -->
76+
<setting name="*irc-onResourceStart" value="true" friendlyname="output onResourceStart event" examples="true,false" />
77+
<setting name="*irc-onResourceStop" value="true" friendlyname="output onResourceStop event" examples="true,false" />
78+
<setting name="*irc-onPlayerJoin" value="true" friendlyname="output onPlayerJoin event" examples="true,false" />
79+
<setting name="*irc-onPlayerQuit" value="true" friendlyname="output onPlayerQuit event" examples="true,false" />
80+
<setting name="*irc-onPlayerChangeNick" value="true" friendlyname="output onPlayerChangeNick event" examples="true,false" />
81+
<setting name="*irc-onPlayerMute" value="true" friendlyname="output onPlayerMute event" examples="true,false" />
82+
<setting name="*irc-onPlayerUnmute" value="true" friendlyname="output onPlayerUnmute event" examples="true,false" />
83+
<setting name="*irc-onPlayerChat" value="true" friendlyname="output onPlayerChat event" examples="true,false" />
84+
<setting name="*irc-onSettingChange" value="true" friendlyname="output onSettingChange event" examples="true,false" />
85+
<setting name="*irc-onPlayerWasted" value="true" friendlyname="output onPlayerWasted event" examples="true,false" />
86+
<setting name="*irc-onPlayerFinish" value="true" friendlyname="output onPlayerFinish event" examples="true,false" />
87+
<setting name="*irc-onGamemodeMapStart" value="true" friendlyname="output onGamemodeMapStart event" examples="true,false" />
88+
<setting name="*irc-onPlayerToptimeImprovement" value="true" friendlyname="output onPlayerToptimeImprovement event" examples="true,false" />
89+
<setting name="*irc-onBan" value="true" friendlyname="output onBan event" examples="true,false" />
90+
<setting name="*irc-onUnban" value="true" friendlyname="output onUnban event" examples="true,false" />
91+
<setting name="*irc-onPlayerFreeze" value="true" friendlyname="output onPlayerFreeze event" examples="true,false" />
92+
<setting name="*irc-adminMessage" value="true" friendlyname="output adminMessage event" examples="true,false" />
93+
<setting name="*irc-onPollStuff" value="true" friendlyname="output onPollStuff events" examples="true,false" />
7494
</settings>
7595

7696
<!-- Don't touch anything below! -->
77-
<info author="MCvarial" version="1.0.4" type="misc" name="irc" description="Echobot to be used on irc" />
97+
<info author="MCvarial" version="1.0.5" type="misc" name="irc" description="Echobot to be used on irc" />
7898

7999
<export function="ircGetChannelFromName" type="server" http="false" />
80100
<export function="ircGetEchoChannels" type="server" http="false" />

resources/irc/scripts/echo.lua

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ local messages = {}
1313

1414
addEventHandler("onResourceStart",root,
1515
function (resource)
16+
if get("*irc-onResourceStart") ~= "true" then return end
1617
if getResourceInfo(resource,"type") ~= "map" then
1718
outputIRC("07* Resource '"..getResourceName(resource).."' started!")
1819
end
@@ -26,6 +27,7 @@ addEventHandler("onResourceStart",root,
2627

2728
addEventHandler("onResourceStop",root,
2829
function (resource)
30+
if get("*irc-onResourceStop") ~= "true" then return end
2931
if getResourceInfo(resource,"type") ~= "map" then
3032
outputIRC("07* Resource '"..(getResourceName(resource) or "?").."' stopped!")
3133
end
@@ -34,13 +36,15 @@ addEventHandler("onResourceStop",root,
3436

3537
addEventHandler("onPlayerJoin",root,
3638
function ()
39+
if get("*irc-onPlayerJoin") ~= "true" then return end
3740
messages[source] = 0
3841
outputIRC("03*** "..getPlayerName(source).." joined the game.")
3942
end
4043
)
4144

4245
addEventHandler("onPlayerQuit",root,
4346
function (quit,reason,element)
47+
if get("*irc-onPlayerQuit") ~= "true" then return end
4448
messages[source] = nil
4549
if reason then
4650
if element then
@@ -56,6 +60,7 @@ addEventHandler("onPlayerQuit",root,
5660

5761
addEventHandler("onPlayerChangeNick",root,
5862
function (oldNick,newNick)
63+
if get("*irc-onPlayerChangeNick") ~= "true" then return end
5964
setTimer(function (player,oldNick)
6065
local newNick = getPlayerName(player)
6166
if newNick ~= oldNick then
@@ -67,6 +72,7 @@ addEventHandler("onPlayerChangeNick",root,
6772

6873
addEventHandler("onPlayerMute",root,
6974
function (arg)
75+
if get("*irc-onPlayerMute") ~= "true" then return end
7076
if type(arg) ~= "nil" then return end
7177
local result = executeSQLSelect("ircmutes","serial,reason","serial = '"..getPlayerSerial(source).."'")
7278
if result and result[1] then
@@ -84,12 +90,14 @@ addEventHandler("onPlayerMute",root,
8490

8591
addEventHandler("onPlayerUnmute",root,
8692
function ()
93+
if get("*irc-onPlayerUnmute") ~= "true" then return end
8794
outputIRC("12* "..getPlayerName(source).." has been unmuted")
8895
end
8996
)
9097

9198
addEventHandler("onPlayerChat",root,
9299
function (message,type)
100+
if get("*irc-onPlayerChat") ~= "true" then return end
93101
messages[source] = messages[source] + 1
94102
if type == 0 then
95103
outputIRC("07"..getPlayerName(source)..": "..message)
@@ -115,6 +123,7 @@ addEventHandler("onPlayerChat",root,
115123

116124
addEventHandler("onSettingChange",root,
117125
function (setting,oldValue,newValue)
126+
if get("*irc-onSettingChange") ~= "true" then return end
118127
outputIRC("6Setting '"..tostring(setting).."' changed: "..tostring(oldValue).." -> "..tostring(newValue))
119128
end
120129
)
@@ -125,6 +134,7 @@ weapons[19] = "Rockets"
125134
weapons[88] = "Fire"
126135
addEventHandler("onPlayerWasted",root,
127136
function (ammo,killer,weapon,bodypart)
137+
if get("*irc-onPlayerWasted") ~= "true" then return end
128138
if killer then
129139
if getElementType(killer) == "vehicle" then
130140
local driver = getVehicleController(killer)
@@ -148,17 +158,29 @@ addEventHandler("onPlayerWasted",root,
148158
end
149159
end
150160
)
161+
162+
addEvent("onPlayerRaceWasted")
163+
addEventHandler("onPlayerRaceWasted",root,
164+
function (vehicle)
165+
if get("*irc-onPlayerRaceWasted") ~= "true" then return end
166+
if #getAlivePlayers() == 1 and currentmode ~= "Sprint" then
167+
outputIRC("12* "..getPlayerName(getAlivePlayers()[1]).." won the deathmatch!")
168+
end
169+
end
170+
)
151171

152172
addEvent("onPlayerFinish",true)
153173
addEventHandler("onPlayerFinish",root,
154174
function (rank,time)
175+
if get("*irc-onPlayerFinish") ~= "true" then return end
155176
outputIRC("12* "..getPlayerName(source).." finished (rank: "..rank.." time: "..msToTimeStr(time)..")")
156177
end
157178
)
158179

159180
addEvent("onGamemodeMapStart",true)
160181
addEventHandler("onGamemodeMapStart",root,
161182
function (res)
183+
if get("*irc-onGamemodeMapStart") ~= "true" then return end
162184
outputIRC("12* Map started: "..(getResourceInfo(res, "name") or getResourceName(res)))
163185
local resource = getResourceFromName("mapratings")
164186
if resource and getResourceState(resource) == "running" and exports.mapratings:getMapRating(getResourceName(res)) and exports.mapratings:getMapRating(getResourceName(res)).average then
@@ -170,6 +192,7 @@ addEventHandler("onGamemodeMapStart",root,
170192
addEvent("onPlayerToptimeImprovement",true)
171193
addEventHandler("onPlayerToptimeImprovement",root,
172194
function (newPos,newTime,oldPos,oldTime)
195+
if get("*irc-onPlayerToptimeImprovement") ~= "true" then return end
173196
if newPos == 1 then
174197
outputIRC("07* New record: "..msToTimeStr(newTime).." by "..getPlayerName(source).."!")
175198
end
@@ -178,31 +201,25 @@ addEventHandler("onPlayerToptimeImprovement",root,
178201

179202
addEventHandler("onBan",root,
180203
function (ban)
204+
if get("*irc-onBan") ~= "true" then return end
181205
outputIRC("12* Ban added by "..(getPlayerName(source) or "Console")..": name: "..(getBanNick(ban) or "/")..", ip: "..(getBanIP(ban) or "/")..", serial: "..(getBanSerial(ban) or "/")..", banned by: "..(getBanAdmin(ban) or "/").." banned for: "..(getBanReason(ban) or "/"))
182206
end
183207
)
184208

185209
addEventHandler("onUnban",root,
186210
function (ban)
211+
if get("*irc-onUnban") ~= "true" then return end
187212
outputIRC("12* Ban removed by "..(getPlayerName(source) or "Console")..": name: "..(getBanNick(ban) or "/")..", ip: "..(getBanIP(ban) or "/")..", serial: "..(getBanSerial(ban) or "/")..", banned by: "..(getBanAdmin(ban) or "/").." banned for: "..(getBanReason(ban) or "/"))
188213
end
189214
)
190215

191-
addEvent("onPlayerRaceWasted")
192-
addEventHandler("onPlayerRaceWasted",root,
193-
function (vehicle)
194-
if #getAlivePlayers() == 1 and currentmode ~= "Sprint" then
195-
outputIRC("12* "..getPlayerName(getAlivePlayers()[1]).." won the deathmatch!")
196-
end
197-
end
198-
)
199-
200216
------------------------------------
201217
-- Admin interaction
202218
------------------------------------
203219
addEvent("onPlayerFreeze")
204220
addEventHandler("onPlayerFreeze",root,
205221
function (state)
222+
if get("*irc-onPlayerFreeze") ~= "true" then return end
206223
if state then
207224
outputIRC("12* "..getPlayerName(source).." was frozen!")
208225
else
@@ -214,6 +231,7 @@ addEventHandler("onPlayerFreeze",root,
214231
addEvent("aMessage",true)
215232
addEventHandler("aMessage",root,
216233
function (Type,t)
234+
if get("*irc-adminMessage") ~= "true" then return end
217235
if Type ~= "new" then return end
218236

219237
for i,channel in ipairs (ircGetEchoChannels()) do
@@ -251,6 +269,7 @@ addEventHandler("onPollModified",root,
251269
addEvent("onPollStart")
252270
addEventHandler("onPollStart",root,
253271
function ()
272+
if get("*irc-onPollStuff") ~= "true" then return end
254273
if pollTitle then
255274
outputIRC("14* A vote was started ["..tostring(pollTitle).."]")
256275
end
@@ -260,6 +279,7 @@ addEventHandler("onPollStart",root,
260279
addEvent("onPollStop")
261280
addEventHandler("onPollStop",root,
262281
function ()
282+
if get("*irc-onPollStuff") ~= "true" then return end
263283
if pollTitle then
264284
pollTitle = nil
265285
outputIRC("14* Vote stopped!")
@@ -270,6 +290,7 @@ addEventHandler("onPollStop",root,
270290
addEvent("onPollEnd")
271291
addEventHandler("onPollEnd",root,
272292
function ()
293+
if get("*irc-onPollStuff") ~= "true" then return end
273294
if pollTitle then
274295
pollTitle = nil
275296
outputIRC("14* Vote ended!")
@@ -280,6 +301,7 @@ addEventHandler("onPollEnd",root,
280301
addEvent("onPollDraw")
281302
addEventHandler("onPollDraw",root,
282303
function ()
304+
if get("*irc-onPollStuff") ~= "true" then return end
283305
if pollTitle then
284306
pollTitle = nil
285307
outputIRC("14* A draw was reached!")

resources/irc/scripts/loading.lua

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ addEventHandler("onResourceStart",resourceRoot,
4646
end
4747
end
4848
if #missingRights ~= 0 then
49-
outputDebugString("IRC: "..#missingRights.." missing rights: ")
49+
outputDebugString("irc is missing "..#missingRights.." rights: ")
5050
for i,missingRight in ipairs (missingRights) do
5151
outputDebugString(" - "..missingRight)
5252
end
@@ -99,8 +99,10 @@ addEventHandler("onResourceStart",resourceRoot,
9999
end
100100
xmlUnloadFile(aclFile)
101101
else
102-
outputServerLog("IRC: could not start resource, the acl file can't be loaded!")
103-
outputServerLog("IRC: restart the resource to retry")
102+
outputDebugString("could not start the irc resource, the acl file can't be loaded!")
103+
outputDebugString("try to start the resource again to retry")
104+
startupCancelled = true
105+
cancelEvent()
104106
return
105107
end
106108

@@ -149,11 +151,11 @@ function internalConnect ()
149151
local secure = xmlNodeGetAttribute(server,"secure") == "true" or false
150152
local nspass = xmlNodeGetAttribute(server,"nickservpass") or xmlNodeGetAttribute(server,"nickserverpass") or false
151153
if not host then
152-
outputServerLog("IRC: problem with server #"..i..", no host given!")
154+
outputDebugString("problem with irc server #"..i..", no host given!")
153155
elseif not nick then
154-
outputServerLog("IRC: problem with server #"..i..", no nick given!")
156+
outputDebugString("problem with irc server #"..i..", no nick given!")
155157
elseif not channels then
156-
outputServerLog("IRC: problem with server #"..i..", no channels given!")
158+
outputDebugString("problem with irc server #"..i..", no channels given!")
157159
else
158160
local server = ircConnect(host,nick,port,password,secure)
159161
if server then
@@ -164,14 +166,16 @@ function internalConnect ()
164166
ircJoin(server,gettok(channel,1,32),gettok(channel,2,32))
165167
end
166168
else
167-
outputServerLog("IRC: problem with server #"..i..", could not connect ("..tostring(getSocketErrorString(sockError)..")"))
169+
outputDebugString("problem with irc server #"..i..", could not connect ("..tostring(getSocketErrorString(sockError)..")"))
168170
end
169171
end
170172
end
171173
xmlUnloadFile(settingsFile)
172174
else
173-
outputServerLog("IRC: could not start resource, the settings.xml can't be parsed!")
174-
outputServerLog("IRC: restart the resource to retry")
175+
outputDebugString("could not start the irc resource, the settings.xml can't be parsed!")
176+
outputDebugString("try to start the resource again to retry")
177+
startupCancelled = true
178+
cancelEvent()
175179
return
176180
end
177181
end

resources/irc/scripts/servers.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ function func_ircConnect (host,nick,port,password,secure)
158158
return server
159159
end
160160
if sockError then
161-
outputServerLog("IRC: Failed to connect to "..tostring(host).." reason: "..getSocketErrorString(sockError))
161+
outputDebugString("irc failed to connect to "..tostring(host).." reason: "..getSocketErrorString(sockError))
162162
end
163163
return false
164164
end

0 commit comments

Comments
 (0)