--- a/examples/privacy.lua Wed Mar 31 00:28:04 2010 +0300
+++ b/examples/privacy.lua Wed Mar 31 01:25:19 2010 +0300
@@ -9,8 +9,13 @@
main.command ( 'blocklist',
function ( args )
+ local connection = main.connection ()
+ if not connection then
+ print "You are not online!"
+ return
+ end
local action = args[1]
- local conn = lm.connection.bless ( main.connection () )
+ local conn = lm.connection.bless ( connection )
local who = main.current_buddy ()
privacy.list ( conn, 'mcabber',
function ( list )
@@ -66,33 +71,31 @@
local privacy_handler = lm.message_handler.new ( privacy.iq_handler )
local privacy_handler_registered = false
-hooks_d['hook-post-connect'].privacy =
+privacy_pc_handler =
function ( args )
- privacy.active ( lm.connection.bless ( main.connection () ), 'mcabber',
- function ()
- print ( 'Server blocklist activated' )
- end,
- function ()
- -- list may be absent, so, we will not pollute log with errors
- end )
- lm.connection.bless( main.connection () ):handler ( privacy_handler, 'iq', 'normal' )
- privacy_handler_registered = true
- hooks_d['hook-post-connect'].privacy =
- function ( args )
- privacy.active ( lm.connection.bless ( main.connection () ), 'mcabber',
- function ()
- print ( 'Server blocklist activated' )
- end,
- function ()
- -- list may be absent, so, we will not pollute log with errors
- end )
+ local connection = main.connection ()
+ if connection then
+ privacy.active ( lm.connection.bless ( connection ), 'mcabber',
+ function ()
+ print ( 'Server blocklist activated' )
+ end,
+ function ()
+ -- list may be absent, so, we will not pollute log with errors
+ end )
+ lm.connection.bless( connection ):handler ( privacy_handler, 'iq', 'normal' )
+ privacy_handler_registered = true
+ end
+ end
+main.hook ( 'hook-post-connect', privacy_pc_handler )
+main.hook ( 'hook-pre-disconnect',
+ function ( args )
+ if privacy_handler_registered then
+ local connection = main.connection ()
+ if connection then
+ lm.connection.bless( connection ):handler ( privacy_handler, 'iq' )
end
- hooks_d['hook-quit'].privacy =
- function ( args )
- if privacy_handler_registered then
- lm.connection.bless( main.connection () ):handler ( privacy_handler, 'iq' )
- end
- end
+ privacy_handler_registered = false
+ end
end
--- vim: se ts=4: --
+-- vim: se ts=4 sw=4: --