Unreal3.2.x Ame/me komutlarını kısıtlamak

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
Sunucunuz üzerinde noaction modülü ile AME ve ME komutlarını kısıtlamanız mümkün olacaktır. Şu anda ilgili modülde sadece operlerin kullanılmasına izin verilmiş, bu komutları isterseniz rumuzu şifreli olan kullanıcılara kullandırtabilirsiniz isterseniz de oper üstü yetkililer içinde değiştirebilirsiniz.

Örnek Rumuzu kayıtlı kullanıcılar için,
!IsAnOper(sptr) satırını  !IsARegNick(sptr) şeklinde değiştirirseniz sunucuda sadece kayıtlı olan kişiler kullanabilir.

Örnek Services Admin için,
!IsAnOper(sptr) satırını  IsSAdmin(sptr) olarak değiştirmeniz gerekmektedir.

Örnek Network Admin için,
!IsAnOper(sptr) satırını !IsNetAdmin(sptr) şeklinde değiştirmeniz halinde ilgili komutları sadece network adminlerin kullanmasını sağlamış olursunuz.

Böylece kullanılan koşulların azda olsa, ne işe yaradığınıda öğrenmiş oldunuz diye düşünüyorum.

m_action.c modülü;

Kod:
 /**************************************************  
  *  Channel message that disables CTCP            *
  *  ACTION's (/me's or /ame's) on channels.       *
  *  Diablo [email protected]                  *
  *  Version 1.0                               *
  **************************************************/
  
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "proto.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

static char *noaction_msg = NULL;

ModuleInfo NoActionModInfo;

static Hook *CheckChanMsg = NULL, *HookConfRun = NULL, *HookConfTest = NULL;

DLLFUNC char *m_noaction(aClient *, aClient *, aChannel *, char *, int);

ModuleHeader Mod_Header
  = {
	"m_noaction v1.0",
    "Channel message that disables CTCP ACTION's",
	"Diablo",
	"3.2-b8-1",
	NULL 
    };

DLLFUNC int Mod_Test(ModuleInfo *modinfo)
{
	return MOD_SUCCESS;
}
DLLFUNC int	Mod_Init(ModuleInfo *modinfo)
{
	noaction_msg = strdup("Sending of actions has been disabled."); 
	CheckChanMsg = HookAddPCharEx(NoActionModInfo.handle, HOOKTYPE_CHANMSG, m_noaction);
	return MOD_SUCCESS;
}

DLLFUNC int	Mod_Load(int module_load)
{
	return MOD_SUCCESS;
}

DLLFUNC int	Mod_Unload(int module_unload)
{
	return MOD_SUCCESS;
}

DLLFUNC char *m_noaction(aClient *cptr, aClient *sptr, aChannel *chptr, char *text, int notice)
{
    
	if (!IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr) && *text == 1 && !myncmp(text+1, "ACTION ", 7))
	{
       sendto_one(sptr, ":%s NOTICE %s :%s %s", me.name, sptr->name, chptr->chname, noaction_msg);
       return NULL;
    } else
	  return text;
}
 
Üst