Kanal ve Özel Loglama Modülü m_loggit.c

/* * ================================================================== * Filename:             m_loggit.c * Description:          Real-time Logging * Written by:         MartinCo * ================================================================== */#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>#include <fcntl .h>#include "h.h"// ==================================================================// Definitions & macros// ================================#define MyMod            LoggitModInfo->handle#define DelHook(x)        if (x) HookDel(x); x = NULLDLLFUNC char        *loggit_privmsg(aClient *, aClient *, aClient *, char *, int);DLLFUNC char        *loggit_chanmsg(aClient *, aClient *, aChannel *, char *, int);// ==================================================================// Module header// ==================================================================ModuleHeader MOD_HEADER(m_loggit)  = {    "Loggit",    "$Id: m_loggit.c,v 3.6 2007 MartinCo Exp $",    "Loggit",    "3.2-b8-1",    NULL    };ModuleInfo        *LoggitModInfo;static Hook        *HookPrivMsg;static Hook        *HookChanMsg;static FILE *fp;DLLFUNC int MOD_INIT(m_loggit)(ModuleInfo *modinfo){    int ret = MOD_SUCCESS;              LoggitModInfo    = modinfo;    HookPrivMsg    = HookAddPCharEx(MyMod, HOOKTYPE_USERMSG, loggit_privmsg);    HookChanMsg    = HookAddPCharEx(MyMod, HOOKTYPE_CHANMSG, loggit_chanmsg);    return ret;}DLLFUNC int MOD_LOAD(m_loggit)(int module_load){    return MOD_SUCCESS;}DLLFUNC int MOD_UNLOAD(m_loggit)(int module_unload){    DelHook(HookChanMsg);    DelHook(HookPrivMsg);    return MOD_SUCCESS;}// ==================================================================// Functions for nicknames, channel names and prefixes// ==================================================================DLLFUNC char *loggit_privmsg(aClient *cptr, aClient *sptr, aClient *acptr, char *text, int notice){    time_t calender_time;    struct tm tdate;    calender_time = time(NULL);    tdate = *localtime(&calender_time);    FILE * pFile;    pFile = fopen ("privmsg.log", "a");    fprintf (pFile, "%02d-%02d-%02d %02d:%02d [%s > %s] %s\n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, cptr->name, acptr->name, text);    fclose (pFile);    return text;}DLLFUNC char *loggit_chanmsg(aClient *cptr, aClient *sptr, aChannel *chptr, char *text, int notice){    time_t calender_time;    struct tm tdate;    calender_time = time(NULL);    tdate = *localtime(&calender_time);    FILE * pFile;    pFile = fopen ("chanmsg.log", "a");    fprintf (pFile, "%02d-%02d-%02d %02d:%02d [%s] [%s] %s\n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, chptr->chname, cptr->name, text);        fclose (pFile);    return text;}</fcntl></string></stdlib></stdio></sys></time>

Bu module sayesinde ve özel konuşmalarını ( siz online olmasanız bile ) kaydedebilecek ve inceleyebileceksiniz. Sistem, özel konuşmaları Unreal klasörü içerisine privmsg. olarak, konuşmalarını ise yine aynı klasöre chanmsg.log olarak kaydediyor. İstediğiniz değişiklikleri yapıp kullanmak da mümkün.

Alıntıdır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir