Tek komutla tüm kanallara topic atma modülü

Aytac

nicktag
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
379
Tepkime puanı
50
Puanları
28
Konum
ircland
Web sitesi
www.ircalem.net
Merhabalar,

Modülün amacı başlıkta da belirttiğim gibi, tüm kanallara tek bir komut ile TOPIC atabileceksiniz. Ancak bu modülden faydalanabilmeniz için, network admin statüsünde olmanız gerekmektedir.

Ek bilgi: modül içerisine yapımcısı tarafından gerekli açıklamalar yapılmış. Kurmadan önce, okumanızı tavsiye ederim..

m_topik.c modülü;

Kod:
/*
Modul istek üzerine irc.ayna.org sunucusuna BehroozWolf tarafindan 22/03/08 tarihinde yazilmistir. 
Son testi 24/03/08 gunu bitmistir.
-
12/04/08 tarihinde moduldeki core hatasi sky-dancer tarafindan duzeltilmistir.
-
Saygilarimla BehroozWolf..
-
Fixed : Sky-Dancer
*/

#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"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif

#define DelHook(x)    if (x) HookDel(x); x = NULL
DLLFUNC int m_topik(aClient *cptr, aClient *sptr, int parc, char *parv[]);

Hook	*HookJoin = NULL;

#define MSG_TOPIK       "TOPIK"
#define TOK_TOPIK       "QWEQW"


ModuleHeader MOD_HEADER(m_topik)
  = {
	"m_topic",	
	"22/03/2008",
	"Topic Modulu by BehroozWolf",
	"3.2-b8-1",
	NULL 
    };

DLLFUNC int MOD_INIT(topik)(ModuleInfo *modinfo)
{
	add_Command(MSG_TOPIK, TOK_TOPIK, m_topik, MAXPARA);

	return MOD_SUCCESS;
}

DLLFUNC int MOD_LOAD(topik)(int module_load)
{

	return MOD_SUCCESS;
}

DLLFUNC int MOD_UNLOAD(topik)(int module_unload)
{
	if (del_Command(MSG_TOPIK, TOK_TOPIK, m_topik) < 0)
	{
		sendto_realops("Modul silinirken \2%s\2 hatasi alindi.",
			MOD_HEADER(m_topik).name);
	}
	return MOD_SUCCESS;
}

DLLFUNC int m_topik(aClient *cptr, aClient *sptr, int parc, char *parv[]) {
	int i;
	char Temp[512];
	aChannel *chptr;
	if (!IsNetAdmin( sptr )) {
	sendto_one(sptr, ":%s NOTICE %s :Bu komutu kullanabilmeniz icin yeterli yetkiye sahip degilsiniz.", me.name, sptr->name);
	return 0;
	}
	if (parc < 2) {
		sendto_one(sptr, ":%s NOTICE %s :Yetersiz parametre..", me.name, sptr->name);
		sendto_one(sptr, ":%s NOTICE %s :Kullanimi; /topik metin", me.name, sptr->name);
	return 0;
	}

	for (i = 1; i < parc; i++)
		if (i == 1) strcpy(Temp, parv[i]);
	else {
		strcat(Temp, " ");
		strcat(Temp, parv[i]);
	}

	for (chptr = channel; chptr; chptr = chptr->nextch) {
		// 50 yazan yere kanal sayisini yazicaksiniz. 50(default) olarak 50 kisiden büyük kanallara topic atilacaktir.
		// Bunu siz kendinize göre düzenleyiniz..
		if (chptr->users >= 50) {
			sendto_channel_butserv(chptr, &me, ":%s TOPIC %s :%s", sptr->name, chptr->chname, Temp);
		}
	}
return 0;
}
 
Üst