examples/room_priv.lua
changeset 73 b3ebfb8eb798
parent 34 8206d7cb1447
child 74 9d1d5939ac9f
equal deleted inserted replaced
72:d049c92d0809 73:b3ebfb8eb798
     1 
     1 
     2 -- ROOM NICK COMPLETION
     2 -- ROOM NICK COMPLETION
     3 
     3 
       
     4 -- global
     4 room_cid = main.command ( 'priv',
     5 room_cid = main.command ( 'priv',
     5 	function ( args )
     6 	function ( args )
     6 		main.run ( 'room privmsg ' .. args )
     7 		main.run ( 'room privmsg ' .. args )
     7 	end, false, {} )
     8 	end, false, {} )
     8 
     9 
     9 commands_help['priv'] = "nick message\n\nSends private message to room participant. Nick completion available! ;)"
    10 commands_help['priv'] = "nick message\n\nSends private message to room participant. Nick completion available! ;)"
    10 
    11 
    11 registered_nicks = {}
    12 local registered_nicks = {}
    12 
    13 
    13 function register_nicks ()
    14 -- global, used in binding
       
    15 function room_priv_register_nicks ()
    14 	for k, nick in pairs ( registered_nicks ) do
    16 	for k, nick in pairs ( registered_nicks ) do
    15 		main.del_completion ( room_cid, nick )
    17 		main.del_completion ( room_cid, nick )
    16 	end
    18 	end
    17 	local buddy = main.current_buddy ()
    19 	local buddy = main.current_buddy ()
    18 	if buddy then
    20 	if buddy then
    27 			end
    29 			end
    28 		end
    30 		end
    29 	end
    31 	end
    30 end
    32 end
    31 
    33 
    32 room_priv_pgup_action = main.binding ( '338' )
    34 -- XXX
    33 room_priv_pgdn_action = main.binding ( '339' )
    35 local room_priv_pattern = "roster%s+(up|down)"
    34 main.binding ( '338', ('lua main.run ( %q ); register_nicks ()'):format ( room_priv_pgup_action ) )
    36 local room_priv_restore = {}
    35 main.binding ( '339', ('lua main.run ( %q ); register_nicks ()'):format ( room_priv_pgdn_action ) )
    37 for key, binding in pairs ( main.binding () ) do
       
    38 	if binding:match ( room_priv_pattern ) then
       
    39 		room_priv_restore[key] = binding
       
    40 		main.binding ( key, ('lua main.run ( %q ); room_priv_register_nicks ()'):format ( binding )
       
    41 	end
       
    42 end
    36 
    43 
    37 hooks_d['hook-quit'].room_priv =
    44 hooks_d['hook-quit'].room_priv =
    38 	function ( args )
    45 	function ( args )
    39 		main.binding ( '338', room_priv_pgup_action )
    46 		for key, binding in pairs ( room_priv_restore ) do
    40 		main.binding ( '339', room_priv_pgdn_action )
    47 			main.binding ( key, binding )
       
    48 		end
    41 	end
    49 	end
    42 
    50 
    43 -- vim: se ts=4: --
    51 -- vim: se ts=4: --