-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2serverWin.pl
More file actions
127 lines (118 loc) · 4.08 KB
/
2serverWin.pl
File metadata and controls
127 lines (118 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/perl
# Copyright 2012 Gene Cumm
## Permission is hereby granted, free of charge, to any person
## obtaining a copy of this software and associated documentation
## files (the "Software"), to deal in the Software without
## restriction, including without limitation the rights to use,
## copy, modify, merge, publish, distribute, sublicense, and/or
## sell copies of the Software, and to permit persons to whom
## the Software is furnished to do so, subject to the following
## conditions:
##
## The above copyright notice and this permission notice shall
## be included in all copies or substantial portions of the Software.
##
## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
## EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
## OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
## NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
## HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
## WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
## OTHER DEALINGS IN THE SOFTWARE.
Xchat::register('2serverWin','0.01','Move WALLOPS and Global Notices to the server window');
Xchat::hook_print('Notice',\&PrntMsgToServerWinNotice, {data=>'Notice'});
Xchat::hook_server('NOTICE',\&SrvMsgToServerWinNotice, {data=>'Notice'});
# Xchat::hook_server('Notice',\&MsgToServerWin);
# Xchat::hook_server('Notice',\&MsgToServerWin, {data=>'Notice'});
Xchat::hook_print('Receive Wallops',\&PrntMsgToServerWinWallops, {data=>'WALLOPS'});
# Xchat::hook_server('WALLOPS',\&MsgToServerWin);
# Xchat::hook_server('WALLOPS',\&SrvMsgToServerWin, {data=>'Receive Wallops'});
# Xchat::hook_server('Server Notice',\&MsgToServerWin);
sub PrefixToNick {
my $n = $_[0];
if (($n =~ s/:([^!@]+)([!@].*)?/$1/) >= 1) {
return $n;
} else { # non-prefix arg
return "";
}
}
sub FindServerWinContext {
my $cid = $_[0];
my $c;
foreach $c (Xchat::get_list('channels')) {
if ((${$c}{id} eq $cid)) { # connection ID
if (${$c}{type} == 1) { # server
return ${$c}{context};
}
}
}
}
sub SrvMsgToServerWinNotice {
my @msg = @{$_[0]};
my @msge = @{$_[1]};
my $evt = $_[2];
if ( (substr($msg[0], 0, 1)) ne ":") {
$p1 = 1;
} else {
$p1 = 2;
}
# if ($p1 =~ /^.*\*.*$/) {
if (index($msg[$p1], '*') >= 0) {
my $srv = Xchat::get_info('server');
my $cid = Xchat::get_info('id');
my $cxt = Xchat::get_context();
Xchat::set_context(FindServerWinContext($cid));
Xchat::emit_print($evt, PrefixToNick($msg[0]), substr($msge[$p1+1], 1));
Xchat::command('GUI COLOR 3');
Xchat::command('GUI FLASH');
Xchat::set_context($cxt);
return Xchat::EAT_ALL;
}
return Xchat::EAT_NONE;
}
sub PrntMsgToServerWinNotice {
my @msg = @{$_[0]};
my $evt = $_[1];
if ($msg[1] =~ /^\[Global Notice\] .*$/) {
my $cid = Xchat::get_info('id');
my $cxt = Xchat::get_context();
Xchat::set_context(FindServerWinContext($cid));
# Xchat::emit_print('Notice', $msg[0], 'TN-'.$msg[1]);
Xchat::emit_print($evt, $msg[0], $msg[1]);
Xchat::command('GUI COLOR 3');
# Xchat::command('GUI FLASH');
Xchat::set_context($cxt);
return Xchat::EAT_ALL;
# return Xchat::EAT_NONE;
}
}
sub PrntMsgToServerWinWallops {
my @msg = @{$_[0]};
my $evt = $_[1];
my $cid = Xchat::get_info('id');
my $cxt = Xchat::get_context();
Xchat::set_context(FindServerWinContext($cid));
Xchat::emit_print('Notice', $msg[0].'/Wallops', $msg[1]);
Xchat::command('GUI COLOR 3');
# Xchat::command('GUI FLASH');
Xchat::set_context($cxt);
return Xchat::EAT_ALL;
# return Xchat::EAT_NONE;
}
sub SrvMsgToServerWin {
my @msg = @{$_[0]};
my @msge = @{$_[1]};
my $evt = $_[2];
my $srv = Xchat::get_info('server');
my $cid = Xchat::get_info('id');
my $cxt = Xchat::get_context();
Xchat::set_context(FindServerWinContext($cid));
# Xchat::emit_print("Channel Message", "srv", "-srv-".$msge[0].'-opt-'.$_[2].":");
Xchat::emit_print($evt, PrefixToNick($msg[0]), substr($msge[2], 1));
Xchat::command('GUI COLOR 3');
Xchat::command('GUI FLASH');
Xchat::set_context($cxt);
return Xchat::EAT_ALL;
return Xchat::EAT_NONE;
}