diff -r 59aeae623ac6 -r ed4676536ed9 examples/privacy.lua --- 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: --