+static MODCMD_FUNC(cmd_service_offchannel) {
+ struct service *service;
+
+ if (!(service = service_find(argv[1]))) {
+ reply("MCMSG_UNKNOWN_SERVICE", argv[1]);
+ return 0;
+ }
+
+ if(!service->trigger) {
+ reply("MCMSG_NO_TRIGGER", service->bot->nick);
+ return 0;
+ }
+
+ if(argc < 3) {
+ if(offchannel_allowed[(unsigned char)service->trigger])
+ reply("MCMSG_OFFCHANNEL_IS_ON", service->bot->nick, service->trigger);
+ else
+ reply("MCMSG_OFFCHANNEL_IS_OFF", service->bot->nick, service->trigger);
+ return 1;
+ }
+
+ if(enabled_string(argv[2])) {
+ offchannel_allowed[(unsigned char)service->trigger] = 1;
+ reply("MCMSG_OFFCHANNEL_ON", service->bot->nick, service->trigger);
+ } else if(disabled_string(argv[2])) {
+ offchannel_allowed[(unsigned char)service->trigger] = 0;
+ reply("MCMSG_OFFCHANNEL_OFF", service->bot->nick, service->trigger);
+ } else {
+ reply("MSG_INVALID_BINARY", argv[2]);
+ return 0;
+ }
+
+ return 1;
+}
+