Code serveur Bahamut
#1
Bonjour, je sais que je suis pas dans la bonne section du forum mais j'aurai aimé savoir si une personne pourrai m'aider à corriger le m_mode sur un serveur Bahamut (derniere version bahamut-1.8.6).

Soucis rencontré, quand je suis opérateur, je peux mass mode op/voice/deop/devoice et mode en flood.

J'aimerai qu'en fait, ca ne flood pas, si la personne a un certain mode sur lui ou sur un autre utilisateur et un mode existant sur le salon, qu'il ignore celui-ci et si cas contraire que ca mette le mode en conséquent.

Merci de m'aider :)

Le code ci-dessous:

Code :
int m_mode(aClient *cptr, aClient *sptr, int parc, char *parv[]) { int mcount = 0, chanop=0; aChannel *chptr; int subparc = 2; /* Now, try to find the channel in question */ if (parc > 1) { chptr = find_channel(parv[1], NullChn); if (chptr == NullChn) return m_umode(cptr, sptr, parc, parv); } else { sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS), me.name, parv[0], "MODE"); return 0; } if (!check_channelname(sptr, (unsigned char *) parv[1])) return 0; if (MyClient(sptr) && !IsOper(sptr)) { if (is_chan_op(sptr, chptr)) chanop = 1; } else chanop = 2; if (parc < 3) { *modebuf = *parabuf = '\0'; modebuf[1] = '\0'; channel_modes(sptr, modebuf, parabuf, chptr); sendto_one(sptr, rpl_str(RPL_CHANNELMODEIS), me.name, parv[0], chptr->chname, modebuf, parabuf); sendto_one(sptr, rpl_str(RPL_CREATIONTIME), me.name, parv[0], chptr->chname, chptr->channelts); return 0; } if(IsServer(cptr) && IsDigit(parv[2][0])) { ts_val modets = atol(parv[2]); if(modets != 0 && (modets > chptr->channelts)) return 0; subparc++; } mcount = set_mode(cptr, sptr, chptr, chanop, parc - subparc, parv + subparc, modebuf, parabuf); if (strlen(modebuf) > (size_t) 1) switch (mcount) { case 0: break; case -1: if (MyClient(sptr)) sendto_one(sptr, err_str(ERR_CHANOPRIVSNEEDED), me.name, parv[0], chptr->chname); else ircstp->is_fake++; break; default: sendto_channel_butserv_me(chptr, sptr, ":%s MODE %s %s %s", parv[0], chptr->chname, modebuf, parabuf); sendto_serv_butone(cptr, ":%s MODE %s %ld %s %s", parv[0], chptr->chname, chptr->channelts, modebuf, parabuf); } return 0; }

Edit Artix : ajout des balises Code
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles Le forum pour passer le temps