From aba2920bf883aec8ece8f00acec6dfb13914a57f Mon Sep 17 00:00:00 2001 From: eleksir Date: Sun, 2 Oct 2016 01:48:58 +0300 Subject: [PATCH] add on_unload script routines to clean out hooks --- znc-extras.pl | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/znc-extras.pl b/znc-extras.pl index 06a47cd..1832380 100644 --- a/znc-extras.pl +++ b/znc-extras.pl @@ -3,21 +3,22 @@ my $ShowMode = "mode \00310%s\003 \002%s\002 by \002%s\002"; my $ModName = "*savebuff"; -Xchat::register('ZNC-Buffer','1.00','Display the on-join buffer for ZNC nicely'); +Xchat::register('ZNC-Buffer','1.00','Display the on-join buffer for ZNC nicely', \&freehook); -Xchat::hook_server('PRIVMSG',\&ProcessPMSG); -Xchat::hook_server('MODE',\&ShowModes); -Xchat::hook_print('Channel Operator',\&DontDisplay); -Xchat::hook_print('Channel DeOp',\&DontDisplay); -Xchat::hook_print('Channel Voice',\&DontDisplay); -Xchat::hook_print('Channel DeVoice',\&DontDisplay); -Xchat::hook_print('Channel Ban',\&DontDisplay); -Xchat::hook_print('Channel UnBan',\&DontDisplay); -Xchat::hook_print('Channel Mode Generic',\&DontDisplay); -Xchat::hook_print('Channel Set Key',\&DontDisplay); -Xchat::hook_print('Channel Set Limit',\&DontDisplay); -Xchat::hook_print('Channel Remove Keyword',\&DontDisplay); -Xchat::hook_print('Channel Remove Limit',\&DontDisplay); +my @hooks; +push @hooks, Xchat::hook_server('PRIVMSG',\&ProcessPMSG); +push @hooks, Xchat::hook_server('MODE',\&ShowModes); +push @hooks, Xchat::hook_print('Channel Operator',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel DeOp',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Voice',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel DeVoice',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Ban',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel UnBan',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Mode Generic',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Set Key',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Set Limit',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Remove Keyword',\&DontDisplay); +push @hooks, Xchat::hook_print('Channel Remove Limit',\&DontDisplay); sub ShowMode { my ($Channel,$Modes,$Nick) = @_; @@ -90,3 +91,11 @@ sub ShowModes { return Xchat::EAT_NONE; } + +sub freehooks { + foreach (@hooks) { + HexChat::unhook($_); + } + + return HexChat::EAT_ALL; +}