Unreal3.2 Kanal ve Özel mesajları belirtilen kanalda takip etme

Aytac

Developer
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
373
Tepkime puanı
17
Puanları
18
Konum
ircland
Web sitesi
www.ircalem.net
Modül adı: m_gmonitor.c (Gelişmiş kanal ve özel okuma modülü)

Amacı: Kanal ve Özel Mesajları belirtilen kanala yansıtma

Kod:
#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 OzelMonitor "#OzelTakip"
#define KanalMonitor "#KanalTakip"

#define ACIKLAMA "Kanal ve Özel Mesajları belirtilen kanala yansıtma by Entrance (Muaf rumuz ve kanal listesi eklendi by ¿)"

char *Nick_Listesi[] = {
	"OperServ",
	"Global",
	"NickServ",
	"ChanServ",
	"MemoServ",
	"StatServ",
	"HelpServ",
	"domain.com",
	"irc.domain.com",
	"services.domain.com",
};

char *Kanal_Listesi[] = {
	"#Admin",
	"#Opers",
	"#Yardim",
	"#Help",
	"#OperHelp",
};

static char *m_monitor(aChannel *, aClient *, aClient *, char *, int);
static char *m_kmonitor(aClient *, aClient *, aChannel *, char *, int);
static Hook *ozel, *kanal;

ModuleHeader MOD_HEADER(m_monitor)
= {
	"m_monitor",
	ACIKLAMA,
	ACIKLAMA,
	"3.2-b8-1",
	NULL
};

DLLFUNC int MOD_INIT(m_monitor)(ModuleInfo *modinfo)
{
	kanal = HookAddPCharEx(modinfo->handle, HOOKTYPE_CHANMSG, m_kmonitor);
	ozel= HookAddPCharEx(modinfo->handle, HOOKTYPE_USERMSG, m_monitor);
	return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_monitor)(int module_load)
{
	return MOD_SUCCESS;
}

DLLFUNC int MOD_UNLOAD(m_monitor)(int module_unload)
{
	return MOD_SUCCESS;
}

static char *m_monitor(aChannel *chptr, aClient *sptr, aClient *acptr, char *text, int notice) {
	int NickVar=0, ii=0;
	int Boyut = sizeof(Nick_Listesi)/sizeof(*Nick_Listesi);
	for (ii=0; ii<Boyut; ii++) {
		if (!stricmp(Nick_Listesi[ii], sptr->name)) {
			return text;
			return 0;
		}
		if (!stricmp(Nick_Listesi[ii], acptr->name)) {
			return text;
			return 0;
		}
	}
	if (IsULine(sptr) && IsServer(sptr))
	return text;
	if ((chptr = find_channel(OzelMonitor, NullChn)) != NullChn)
	sendto_channel_butone(&me, &me, chptr, ":Monitor PRIVMSG %s  :(\2%s\2) rumuzu, (\2%s\2) rumuzuna,  (\2%s\2) mesajını gönderdi.", 
	OzelMonitor, sptr->name, acptr->name, text);
	return text;
}

static char *m_kmonitor(aClient *sptr, aClient *acptr, aChannel *chptr, char *text, int notice) {
	int ChanVar=0, ii=0;
	int Boyut = sizeof(Kanal_Listesi)/sizeof(*Kanal_Listesi);
	for (ii=0; ii<Boyut; ii++) {
		if (!stricmp(Kanal_Listesi[ii], chptr->chname)) {
			return text;
			return 0;
		}
	}
	aChannel *kanal2;
	if (IsULine(sptr) && IsServer(sptr))
	return text;
	kanal2 = find_channel(KanalMonitor, NullChn);
	if (kanal2 != NullChn)
	sendto_channel_butone(&me, &me, kanal2, ":Monitor PRIVMSG %s :(\2%s\2) rumuzu,  (\2%s\2) kanalında, (\2%s\2) mesajını gönderdi.", kanal2->chname, sptr->name, chptr->chname, text);
	return text;
}
 
Üst