Skip to content

Commit def90a4

Browse files
authored
Update anope.tcl
Added /global command Added buffer2sc to get server and channel from buffer
1 parent 2b3d352 commit def90a4

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

tcl/anope.tcl

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,19 @@ set CS_ADESC "Alias for chanserv"
3939
|| aop add|del %(nicks) %(irc_server_channels)\
4040
} cs_op {}
4141

42+
::weechat::hook_command global $SCRIPT_NAME "your global message here" "Send a message to all users" {} global_msg {}
4243
array set SERVICES_NAMES {
4344
"chanserv" "ChanServ"
4445
"nickserv" "NickServ"
4546
"hostserv" "HostServ"
47+
"global" "Global"
4648
}
4749

4850
array set SERVICES_DESC {
4951
"chanserv" "Channel management service name"
5052
"nickserv" "Channel management service name"
5153
"hostserv" "Channel management service name"
54+
"global" "Global messaging system"
5255
}
5356
proc anope_setup {} {
5457
set slist [::weechat::infolist_get "irc_server" "" ""]
@@ -64,28 +67,47 @@ proc anope_setup {} {
6467
::weechat::infolist_free $slist
6568
}
6669

70+
proc global_msg {data buffer args} {
71+
lassign server schannel [buffer2sc $buffer]
72+
if {$server eq $::weechat::WEECHAT_RC_ERROR} {
73+
return $::weechat::WEECHAT_RC_ERROR
74+
}
75+
::weechat::command "" "/msg [::weechat::config_get_plugin "${server}.global"] GLOBAL [join $args]"
76+
return $::weechat::WEECHAT_RC_OK
77+
}
78+
6779
proc cs_op {data buffer args} {
68-
set btype [::weechat::buffer_get_string $buffer "localvar_type"]
80+
lassign server schannel [buffer2sc $buffer]
81+
if {$server eq $::weechat::WEECHAT_RC_ERROR} {
82+
return $::weechat::WEECHAT_RC_ERROR
83+
}
6984
lassign {*}$args csact csflag nick channel
85+
if {$channel eq ""} {
86+
set channel $schannel
87+
}
88+
if {([string tolower $csflag] ni [list "add" "del"]) || ($nick eq "") || ($channel eq "")} {
89+
::weechat::print $buffer "Usage: /cs $::CS_ARGS"
90+
return $::weechat::WEECHAT_RC_ERROR
91+
}
92+
::weechat::command $server "/msg [::weechat::config_get_plugin "${server}.chanserv"] $csact $channel $csflag $nick"
93+
94+
return $::weechat::WEECHAT_RC_OK
95+
}
96+
97+
proc buffer2sc { buffer } {
98+
set btype [::weechat::buffer_get_string $buffer "localvar_type"]
7099
switch $btype {
71100
channel {
72-
lassign [split [::weechat::buffer_get_string $buffer "localvar_name"] {.}] server channel
101+
set sc [split [::weechat::buffer_get_string $buffer "localvar_name"] {.}]
73102
}
74103
server {
75-
set server [::weechat::buffer_get_string $buffer "localvar_channel"]
104+
set sc {[::weechat::buffer_get_string $buffer "localvar_channel"] ""}
76105
}
77106
default {
78107
::weechat::print $buffer "Sorry but you need to be in a server or a channel to use this command"
79108
return $::weechat::WEECHAT_RC_ERROR
80109
}
81110
}
82-
if {([string tolower $csflag] ni [list "add" "del"]) || ($nick eq "") || ($channel eq "")} {
83-
::weechat::print $buffer "Usage: /cs $::CS_ARGS"
84-
return $::weechat::WEECHAT_RC_ERROR
85-
}
86-
::weechat::command $server "/msg [::weechat::config_get_plugin "${server}.chanserv"] $csact $channel $csflag $nick"
87-
88-
return $::weechat::WEECHAT_RC_OK
89111
}
90112

91113
anope_setup

0 commit comments

Comments
 (0)