@@ -39,16 +39,19 @@ set CS_ADESC "Alias for chanserv"
39
39
|| aop add|del %(nicks) %(irc_server_channels)\
40
40
} cs_op {}
41
41
42
+ ::weechat::hook_command global $SCRIPT_NAME " your global message here" " Send a message to all users" {} global_msg {}
42
43
array set SERVICES_NAMES {
43
44
" chanserv" " ChanServ"
44
45
" nickserv" " NickServ"
45
46
" hostserv" " HostServ"
47
+ " global" " Global"
46
48
}
47
49
48
50
array set SERVICES_DESC {
49
51
" chanserv" " Channel management service name"
50
52
" nickserv" " Channel management service name"
51
53
" hostserv" " Channel management service name"
54
+ " global" " Global messaging system"
52
55
}
53
56
proc anope_setup {} {
54
57
set slist [::weechat::infolist_get " irc_server" " " " " ]
@@ -64,28 +67,47 @@ proc anope_setup {} {
64
67
::weechat::infolist_free $slist
65
68
}
66
69
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
+
67
79
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
+ }
69
84
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" ]
70
99
switch $btype {
71
100
channel {
72
- lassign [split [::weechat::buffer_get_string $buffer " localvar_name" ] {.}] server channel
101
+ set sc [split [::weechat::buffer_get_string $buffer " localvar_name" ] {.}]
73
102
}
74
103
server {
75
- set server [::weechat::buffer_get_string $buffer " localvar_channel" ]
104
+ set sc { [::weechat::buffer_get_string $buffer " localvar_channel" ] " " }
76
105
}
77
106
default {
78
107
::weechat::print $buffer " Sorry but you need to be in a server or a channel to use this command"
79
108
return $::weechat::WEECHAT_RC_ERROR
80
109
}
81
110
}
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
89
111
}
90
112
91
113
anope_setup
0 commit comments