- Katılım
- 4 Şub 2020
- Mesajlar
- 395
- Tepkime puanı
- 142
- Puanları
- 43
- Konum
- ircland
- Web sitesi
- www.ircalem.net
Modulun amacı, sunucuya ilk bağlantıyı yaptığımız zaman belirli bir süre ile nickin değiştirilmesini kısıtlamaktır.
Süre dolduktan sonra nickinizi değiştirebiliyorsunuz.
unrealircd.conf set bloğuna nickdelay 20; satırını ekliyoruz. Süreyi saniye cinsinden istediğiniz gibi değiştirebilirsiniz. Modulu ekte paylaşıyorum.
NOT: Modul; Gottem rumuzlu yabancı bir programcının kodladığı modullerde ki kaynak kodlar kullanılarak düzenlenmiştir.
(Unreal3.2.10.6 da test edilmiştir.)
m_nickdelay.c modülü;
** Nick değiştirmek için lütfen 20 saniye bekleyin.
Süre dolduktan sonra nickinizi değiştirebiliyorsunuz.
unrealircd.conf set bloğuna nickdelay 20; satırını ekliyoruz. Süreyi saniye cinsinden istediğiniz gibi değiştirebilirsiniz. Modulu ekte paylaşıyorum.
NOT: Modul; Gottem rumuzlu yabancı bir programcının kodladığı modullerde ki kaynak kodlar kullanılarak düzenlenmiştir.
(Unreal3.2.10.6 da test edilmiştir.)
m_nickdelay.c modülü;
Kod:
/* Gottem'in kodladığı modullerde ki parça kodlardan esinlenerek editlenmiştir. */
/* Düzenleme > dEathLeSs */
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
static Cmdoverride *m_nickdelay_override = NULL;
static ModuleInfo *m_nickdelay_modinfo = NULL;
#define MYCONF "nickdelay"
#define ACIKLAMA "Sunucu girişinde nick değiştirmeyi süreli kısıtlama"
#define MODULE "m_nickdelay"
DLLFUNC int m_nickdelay(Cmdoverride *anoverride, aClient *cptr, aClient *sptr, int parc, char *parv[]);
DLLFUNC int nickdelay_configtest(ConfigFile *cf, ConfigEntry *ce, int type, int *errs);
DLLFUNC int nickdelay_configrun(ConfigFile *cf, ConfigEntry *ce, int type);
int nickdelay_rehash(void);
int muhDelay = 10;
ModuleHeader MOD_HEADER(m_nickdelay)
= {
MODULE,
ACIKLAMA,
ACIKLAMA,
"3.2-b8-1",
NULL
};
DLLFUNC int MOD_TEST(m_nickdelay)(ModuleInfo *modinfo) {
HookAddEx(modinfo->handle, HOOKTYPE_CONFIGTEST, nickdelay_configtest);
return MOD_SUCCESS;
}
DLLFUNC int MOD_INIT(m_nickdelay)(ModuleInfo *modinfo)
{
m_nickdelay_modinfo = modinfo;
HookAddEx(modinfo->handle, HOOKTYPE_REHASH, nickdelay_rehash);
HookAddEx(modinfo->handle, HOOKTYPE_CONFIGRUN, nickdelay_configrun);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_nickdelay)(int module_load)
{
m_nickdelay_override = CmdoverrideAdd(m_nickdelay_modinfo->handle, "NICK", m_nickdelay);
if (!m_nickdelay_override)
{
sendto_realops("m_nickdelay: Override Eklenemedi: %s", ModuleGetErrorStr(m_nickdelay_modinfo->handle));
return MOD_FAILED;
}
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_nickdelay)(int module_unload)
{
CmdoverrideDel(m_nickdelay_override);
return MOD_SUCCESS;
}
DLLFUNC int m_nickdelay(Cmdoverride *anoverride, aClient *cptr, aClient *sptr, int parc, char *parv[])
{
if (MyClient(sptr) && !IsOper(sptr) && !IsULine(sptr) && (TStime() - sptr->firsttime < muhDelay))
{
sendnotice(sptr, "*** Nick değiştirmek için lütfen \2%d\2 saniye bekleyin.", muhDelay);
return 0;
}
return CallCmdoverride(m_nickdelay_override, cptr, sptr, parc, parv);
}
DLLFUNC int nickdelay_configtest(ConfigFile *cf, ConfigEntry *ce, int type, int *errs) {
int errors = 0;
int i;
if(type != CONFIG_SET)
return 0;
if(!ce || !ce->ce_varname)
return 0;
if(strcmp(ce->ce_varname, MYCONF))
return 0;
if(!ce->ce_vardata || !strlen(ce->ce_vardata)) {
config_error("%s:%i: no argument given for set::%s (should be an integer of >= 10)", ce->ce_fileptr->cf_filename, ce->ce_varlinenum, MYCONF); // Rep0t error
errors++;
*errs = errors;
return -1;
}
for(i = 0; ce->ce_vardata[i]; i++) {
if(!isdigit(ce->ce_vardata[i])) {
config_error("%s:%i: set::%s must be an integer of >= 10", ce->ce_fileptr->cf_filename, ce->ce_varlinenum, MYCONF);
errors++;
break;
}
}
if(!errors && atoi(ce->ce_vardata) < 10) {
config_error("%s:%i: set::%s must be an integer of >= 10", ce->ce_fileptr->cf_filename, ce->ce_varlinenum, MYCONF);
errors++;
}
*errs = errors;
return errors ? -1 : 1;
}
DLLFUNC int nickdelay_configrun(ConfigFile *cf, ConfigEntry *ce, int type) {
if(type != CONFIG_SET)
return 0;
if(!ce || !ce->ce_varname || !ce->ce_vardata)
return 0;
if(strcmp(ce->ce_varname, MYCONF))
return 0;
muhDelay = atoi(ce->ce_vardata);
return 1;
}
int nickdelay_rehash(void) {
muhDelay = 60;
return HOOK_CONTINUE;
}