- for(chanuser = user->channel; chanuser; chanuser = chanuser->next_chan) {
- if(chanuser->chan == chan)
- return 1;
+ if(isModeSet(chan->modes, 'd') || isModeSet(chan->modes, 'D')) {
+ for(chanuser = chan->user; chanuser; chanuser = chanuser->next_user) {
+ if(chanuser->user == user)
+ return 1;
+ }
+ } else {
+ for(chanuser = user->channel; chanuser; chanuser = chanuser->next_chan) {
+ if(chanuser->chan == chan)
+ return 1;
+ }