6 static CMD_BIND(neonserv_cmd_deop) {
8 struct UserNode *cuser;
9 struct ChanUser *chanuser;
10 struct ModeBuffer *modeBuf;
12 if(!checkChannelAccess(user, chan, "channel_canop", 1, 0)) {
13 reply(getTextBot(), user, "NS_ACCESS_DENIED");
16 modeBuf = initModeBuffer(client, chan);
17 for(i = 0; i < argc; i++) {
18 cuser = searchUserByNick(argv[i]);
20 chanuser = getChanUser(cuser, chan);
21 if(!chanuser) continue;
22 if(isNetworkService(cuser)) {
23 reply(getTextBot(), user, "NS_SERVICE_IMMUNE", cuser->nick);
26 if(isUserProtected(chan, cuser, user)) {
27 reply(getTextBot(), user, "NS_USER_PROTECTED", cuser->nick);
31 if(!(chanuser->flags & CHANUSERFLAG_OPPED)) continue;
32 modeBufferDeop(modeBuf, argv[i]);
34 freeModeBuffer(modeBuf);
35 if(done_users == argc)
36 reply(getTextBot(), user, "NS_DEOP_DONE", chan->name);
38 reply(getTextBot(), user, "NS_DEOP_FAIL", client->user->nick);