IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Unreal IRCd (https://www.ircforumlari.net/unreal-ircd/)
-   -   m_privdeaf (https://www.ircforumlari.net/unreal-ircd/166902-m_privdeaf.html)

raskolnikov 21 Aralık 2008 00:11

m_privdeaf
 
arkadaşlar özelli kapatma modülü kurulmuş vaziyette. ancak özelinie +D alan kullanıcıya mesaj yazıldığında şu an özeli kapalı mesajını statusde notice olarak veriyor. peki +D alan kullanıcının whoisine Özel mesaj kabul etmiyor yazısını nasıl ekleriz yardımcı olursanız sevinirim.

EceLMeriC 21 Aralık 2008 00:46

Cevap: m_privdeaf
 
m_privdeaf modulunu kopyalarmisin buraya.

raskolnikov 21 Aralık 2008 01:01

Cevap: m_privdeaf
 
#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
#ifndef DYNAMIC_LINKING
ModuleHeader m_privdeaf_Header
#else
#define m_privdeaf_Header Mod_Header
ModuleHeader Mod_Header
#endif
= {
"m_privdeaf", /* Name of module */
"v0.0.6", /* Version */
"private messages deaf (+D)", /* Short description of module */
"3.2-b8-1",
NULL
};
static long UMODE_PRIVDEAF = 0;
static Umode *UmodePrivdeaf = NULL;
static Hook *CheckMsg;
DLLFUNC char *privdeaf_checkmsg(aClient *, aClient *, aClient *, char *, int);
DLLFUNC int MOD_INIT(m_privdeaf)(ModuleInfo *modinfo)
{
UmodePrivdeaf = UmodeAdd(modinfo->handle, 'D', UMODE_GLOBAL, umode_allow_all, &UMODE_PRIVDEAF);
if (!UmodePrivdeaf)
{
config_error("m_privdeaf: Could not add usermode 'D': %s", ModuleGetErrorStr(modinfo->handle));
return MOD_FAILED;
}
CheckMsg = HookAddPCharEx(modinfo->handle, HOOKTYPE_USERMSG, privdeaf_checkmsg);
ModuleSetOptions(modinfo->handle, MOD_OPT_PERM);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_privdeaf)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_privdeaf)(int module_unload)
{
return MOD_SUCCESS;
}
DLLFUNC char *privdeaf_checkmsg(aClient *cptr, aClient *sptr, aClient *acptr, char *text, int notice)
{
if ((acptr->umodes & UMODE_PRIVDEAF) && !IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr))
{
sendnotice(sptr, "Mesajınız '%s' nickine gönderil(e)medi. - (Şuan Özeli Kapalı [+D])", acptr->name);
return NULL;
} else
return text;
}

EceLMeriC 21 Aralık 2008 01:14

Cevap: m_privdeaf
 
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
// SWhois mesaj kismini burdan degistir.
char Swhois[]="is Bu Kisinin Ozeli Suan Kapalidir.";
#ifndef DYNAMIC_LINKING
ModuleHeader m_privdeaf_Header
#else
#define m_privdeaf_Header Mod_Header
ModuleHeader Mod_Header
#endif
= {
"m_privdeaf", /* Name of module */
"v0.0.6", /* Version */
"private messages deaf (+D)", /* Short description of module */
"3.2-b8-1",
NULL
};
static long UMODE_PRIVDEAF = 0;
static Umode *UmodePrivdeaf = NULL;
static Hook *CheckMsg;
DLLFUNC char *privdeaf_checkmsg(aClient *, aClient *, aClient *, char *, int);
DLLFUNC int MOD_INIT(m_privdeaf)(ModuleInfo *modinfo)
{
UmodePrivdeaf = UmodeAdd(modinfo->handle, 'D', UMODE_GLOBAL, umode_allow_all, &UMODE_PRIVDEAF);
if (!UmodePrivdeaf)
{
config_error("m_privdeaf: Could not add usermode 'D': %s", ModuleGetErrorStr(modinfo->handle));
return MOD_FAILED;
}
CheckMsg = HookAddPCharEx(modinfo->handle, HOOKTYPE_USERMSG, privdeaf_checkmsg);
ModuleSetOptions(modinfo->handle, MOD_OPT_PERM);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_privdeaf)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_privdeaf)(int module_unload)
{
return MOD_SUCCESS;
}
DLLFUNC char *privdeaf_checkmsg(aClient *cptr, aClient *sptr, aClient *acptr, char *text, int notice)
{
if ((acptr->umodes & UMODE_PRIVDEAF) && !IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr))
{
acptr->user->swhois = strdup(SWhois);
sendnotice(sptr, "Mesajınız '%s' nickine gönderil(e)medi. - (Şuan Özeli Kapalı [+D])", acptr->name);
return NULL;
} else
return text;
}

bu sekilde denermisin, sunucu ozelime yazmisiniz sanirim ama pc basinda yoktum. kolay gelsin.

raskolnikov 21 Aralık 2008 01:31

Cevap: m_privdeaf
 
şu hatayı verdi

nsigned-char -export-dynamic -fPIC -DPIC -shared -DDYNAMIC_LINKING \
-o m_privdeaf.so m_privdeaf.c
m_privdeaf.c: In function `privdeaf_checkmsg':
m_privdeaf.c:67: error: `SWhois' undeclared (first use in this function)
m_privdeaf.c:67: error: (Each undeclared identifier is reported only once
m_privdeaf.c:67: error: for each function it appears in.)
m_privdeaf.c:72:2: warning: no newline at end of file
make[2]: *** [custommodule] Error 1
make[2]: Leaving directory `/home/
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
make[1]: *** [custommodule] Error 2
make[1]: Leaving directory `/home/
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
make: *** [custommodule] Error 2

EceLMeriC 21 Aralık 2008 01:34

Cevap: m_privdeaf
 
Kod:

acptr->user->swhois = strdup(SWhois);
satirini

Kod:

acptr->user->swhois = strdup(Swhois);
seklinde degis pardon uyku sersemligi vaktim geldi. :)

raskolnikov 21 Aralık 2008 01:59

Cevap: m_privdeaf
 
telnet ile ilgili bir hata yok ancak whoisine eklemedi

Özel mesaj kabul etmiyor diye bir şey. hala sadece statusde notice olarak gösteriyor. kullanıcının whoisinde özel mesaj kabul etmiyor yazısı yok maalesef.

EceLMeriC 21 Aralık 2008 02:20

Cevap: m_privdeaf
 
Yapmak istedigin, admin +D modu alinca adminin whoisinde 'ozelim kapalidir' diye bir swhois eklenmesini istemiyormusun?

+ m_privdeaf modulunun ustunde bir degisiklik yaptiginda restart atman gerekicek. Sadece rehash ile guncellenmiyor modul restart attiginda guncelleniyor.

raskolnikov 21 Aralık 2008 02:36

Cevap: m_privdeaf
 
tam olarak adminler içn değil. +D modunu userlerde kullanabiliyor nihayetinde. user bile nickini +D ye aldığında whoisinde özel mesaj kabul etmiyor yazdırmaya çalışıyoruz.mümkün olduğu kanısındayım çünkü bir süre önce yapmıştım diye hatırlıyorum şimdi unuttum. çaban için şimdiden minnettarım.

Style2 21 Aralık 2008 10:44

Cevap: m_privdeaf
 
unrealircd confundan modulunu gecici olarak deaktif et basina "#" koy daha sonra modulunu, make costommodule MODULEFILE=modulismi seklinde tekrar IRCd sistemine tanit ve unrealircd confundan "#" kaldir degisikliklerin aktif olucaktir.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 07:54.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net