Code
23 Eylül 2015, 16:29
cd ircservices*-*pico -w modules/nickserv/main.cGirip;
#include "nickserv.h"
#include "ns-local.h"altina;
#define SUNUCU "SUNUCUADI"Ekleyin.
static void do_register(User *u);altina;
static void do_kills(User *u);
static void do_killat(User *u);
Ekleyin.
(KILLS Sadece OPERS Kanalina rapor eder, KILLAT ise belirtilen kullaniciyi sunucudan atar. Hangisini tercih ederseniz kullanabilirsiniz. 2'sinide kullanabilirsiniz.)
{ "REGISTER", do_register, NULL, NICK_HELP_REGISTER, -1,-1 },altina;
{ "KILLS", do_kills, NULL, -1, -1,-1 },
{ "KILLAT", do_killat, NULL, -1, -1,-1 },Ekleyin.
{ "SET INFO", NULL, NULL, NICK_HELP_SET_INFO, -1,-1 },altina;
{ "SET HELPER", NULL, NULL, -1 -1,-1 },
{ "SET VIP", NULL, NULL, -1 -1,-1 },
Ekleyin.
/************************************************** ***********************/
static void do_identify(User *u)
{
char *pass = strtok_remaining();
NickInfo *ni = NULL;
NickGroupInfo *ngi = NULL;Satirlari üzerine;
/************************************************** ***********************/
//toXic
static void do_killat(User *u)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
User *u2;
char *sebep;
sebep = strtok_remaining();
NickGroupInfo *ngi;
ngi = get_ngi(ni);
// char buf[NICKMAX+32];
if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}
if (!ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Bu Komuta Erisiminiz Yoktur..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Sadece Ozel Kullanicilar Kullanabilir..", u->nick);
return;
}
if (!sebep) {
send_cmd(s_NickServ, "NOTICE %s Sebep girmediniz.", u->nick);
return;
}
if (!(u2 = get_user(nick))) {
send_cmd(s_NickServ, "NOTICE %s Kullanici suanda sunucuda yok.", u->nick);
return;
}
if (irc_stricmp(nick, u->nick) == 0) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
} else if (ni->status & NS_GUESTED) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else {
ni = ni2;
}
}
send_cmd(s_NickServ, "NOTICE %s isleminiz, belirtiliyor.", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OperLog \2%s\2 Helperi, \2%s\2 kullanicisini \2%s\2 sebepten dolayi atilmasini istiyor.", u->nick,u2->nick, sebep);
//snprintf(buf, sizeof(buf), "Sunucu Kurallarina Uymadiginiz icin \2%s\2 Tarafindan Atildiniz..", u->nick);
//kill_user(s_NickServ, nick, buf);
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
FILE *dosya_yaz;
dosya_yaz = fopen("kill.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s KILLED -> %s Sebep -> %s\n", asctime (timeinfo), u->nick, u2->nick, sebep);
fclose(dosya_yaz);
}
}
/************************************************** ***********************/
static void do_kills(User *u) {
NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
User *u2;
char *sebep;
sebep = strtok_remaining();
NickGroupInfo *ngi;
ngi = get_ngi(ni);
if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}
if (!ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Bu Komuta Erisiminiz Yoktur..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Sadece \2HELPERLAR\2 Kullanabilir..", u->nick);
return;
}
if (!sebep) {
send_cmd(s_NickServ, "NOTICE %s Sebep girmediniz.", u->nick);
return;
}
if (!(u2 = get_user(nick))) {
send_cmd(s_NickServ, "NOTICE %s Kullanici suanda sunucuda yok.", u->nick);
return;
}
if (irc_stricmp(nick, u->nick) == 0) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
} else if (ni->status & NS_GUESTED) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else {
ni = ni2;
}
send_cmd(s_NickServ, "NOTICE %s Talebiniz, gonderilmistir.", u->nick);
send_cmd(s_NickServ, "PRIVMSG #Opers \2%s\2 Helperi, \2%s\2 kullanicisinin \2%s\2 sebepten Banlanmasini istiyor.", u->nick, u2->nick, sebep);
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
FILE *dosya_yaz;
dosya_yaz = fopen("kills.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s KILLTALEP -> %s Sebep -> %s\n", asctime (timeinfo), u->nick, u2->nick, sebep);
fclose(dosya_yaz);
}
}
}
Ekleyin.
call_callback_2(module, cb_identified, u, old_authstat);
}
}satirlari üzerinede;
if (ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Merhaba \2%s\2", u->nick, u->nick);
send_cmd(s_NickServ, "NOTICE %s \2HELPER\2 Statusunde sunucuya giris yaptiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Helper ozellikleri, sistem tarafindan size verilmistir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Bunlar disinda, \2/NS KILLAT NICK SEBEP\2 komutu ile", u->nick);
send_cmd(s_NickServ, "NOTICE %s Kurallara uygunsuz davranis gosteren kullanicilari atabilirsiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s KILL Atimlari, surekli takip altindadir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s iyi gorevler dileriz..", u->nick);
send_cmd(s_NickServ, "CHGHOST %s Helper.%s.%s", u->nick, u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGNAME %s %s HELP Takimi", SUNUCU, u->nick);
send_cmd(s_NickServ, "CHGIDENT %s IRCdSVS", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +hW :1", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OPERLOG %s Helper statusunde sunucuya giris yapmistir.", u->nick);
}
else if (ngi->vip==1) {
send_cmd(s_NickServ, "NOTICE %s Merhaba \2%s\2", u->nick, u->nick);
send_cmd(s_NickServ, "NOTICE %s \2VIP\2 Statusunde sunucuya giris yaptiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s VIP ozellikleri, sistem tarafindan size verilmistir.", u->nick);
send_cmd(s_NickServ, "CHGHOST %s VIP.%s.%s", u->nick, u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGNAME %s %s Ozel Kullanicisi", u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGIDENT %s VIP", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +W :1", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OPERLOG \2%s\2 VIP statusunde sunucuya giris yapmistir.", u->nick);
}
notice_lang(s_NickServ, u, NICK_INFO_REALNAME,
nick, ni->last_realname); altina;
if (ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s :\2%s\2 Services \2Helper\2 (SH)", u->nick, ni->nick);
}
else if (ngi->vip==1) {
send_cmd(s_NickServ, "NOTICE %s :\2%s\2 Ozel \2VIP\2 Kullanicidir. (VP)", u->nick, ni->nick);
}
Ekleyin.
pico -w modules/nickserv/set.c
Girip;
static void do_set_kill(User *u, NickGroupInfo *ngi, char *param);altina;
static void do_set_helper(User *u, NickGroupInfo *ngi, char *param);
static void do_set_vip(User *u, NickGroupInfo *ngi, char *param);Ekleyin.
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, param);altina;
} else if (stricmp(cmd, "HELPER") == 0) {
do_set_helper(u, ngi, param);
} else if (stricmp(cmd, "VIP") == 0) {
do_set_vip(u, ngi, param);Ekleyin.
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, NULL);
altina;
} else if (stricmp(cmd, "HELPER") == 0) {
do_set_helper(u, ngi, NULL);
} else if (stricmp(cmd, "VIP") == 0) {
do_set_vip(u, ngi, NULL);ekleyin.
/************************************************** ***********************/
static void do_set_language(User *u, NickGroupInfo *ngi, char *param)
{
int langnum;
satirlari üzerine;
/************************************************** ***********************/
static void do_set_helper(User *u, NickGroupInfo *ngi, char *param)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (!is_services_admin(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services ROOT Adminler Kullanabilir.", u->nick);
return;
}
if (stricmp(param, "ON") == 0) {
ngi->helper = 1;
send_cmd(s_NickServ, "NOTICE %s :Kullanici Artik bir helper Kullanicisidir..",u->nick);
put_nickgroupinfo(ngi);
} else if (stricmp(param, "OFF") == 0) {
ngi->helper = 0;
send_cmd(s_NickServ, "NOTICE %s :Kullanici helper statusunden silinmistir.",u->nick);
} else {
send_cmd(s_NickServ, "NOTICE %s Hatali bir Kullanim.", u->nick);
send_cmd(s_NickServ, "NOTICE %s :\2Kullanimi, /NS SET NICK helper ON/OFF \2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Eklemek icin, \2/NS SET NICK helper ON\2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Silmek icin, \2/NS SET NICK helper OFF\2", u->nick);
return;
}
put_nickgroupinfo(ngi);
}
/************************************************** ***********************/
static void do_set_vip(User *u, NickGroupInfo *ngi, char *param)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (!is_services_root(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services ROOT Adminler Kullanabilir.", u->nick);
return;
}
if (stricmp(param, "ON") == 0) {
ngi->vip = 1;
send_cmd(s_NickServ, "NOTICE %s :Kullanici Artik bir VIP Kullanicisidir..",u->nick);
put_nickgroupinfo(ngi);
} else if (stricmp(param, "OFF") == 0) {
ngi->vip = 0;
send_cmd(s_NickServ, "NOTICE %s :Kullanici VIP statusunden silinmistir.",u->nick);
} else {
send_cmd(s_NickServ, "NOTICE %s Hatali bir Kullanim.", u->nick);
send_cmd(s_NickServ, "NOTICE %s :\2Kullanimi, /NS SET NICK VIP ON/OFF \2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Eklemek icin, \2/NS SET NICK VIP ON\2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Silmek icin, \2/NS SET NICK VIP OFF\2", u->nick);
return;
}
put_nickgroupinfo(ngi);
}
Ekleyin.
pico -w modules/nickserv/nickserv.hGirip;
int32 authcode; /* Authentication code (used by mail-auth module) */
time_t authset; /* Time authentication code was set */
int16 authreason; /* Reason auth. code was set; see NICKAUTH_* below */satirlari üzerine;
int helper;
int vip;Ekleyin.
pico modules/database/version4.cGirip;
SAFE(write_string(ngi->info, f));altina; (Burada eğer sonradan ekleme yaptiysaniz en son ekleme yaptiğiniz kodun altina ekleyin.)
SAFE(write_string(ngi->helper, f));
SAFE(write_string(ngi->vip, f));Ekleyip;
make&&make install ile derleyip servislerinizi resetleyin. (Resetlemeden önce /OS Update Komutunu kullanin.)
/NS Set NICK HELPER ON
/NS SET NICK VIP ON
komutu ile kendinizi ekleyip sonra tekrar version4.c dosyasinda;
SAFE(read_string(&ngi->info, f));altina;
SAFE(read_string(&ngi->helper, f));
SAFE(read_string(&ngi->vip, f));Ekleyin.
Yine derleme işleminden sonra servislerinizi resetleyin.
Eğer ekleme ve silme işlemlerini basitce dosya üzerinden takip etmek istiyorsaniz;
pico -w modules/operserv/main.cGirip;
static void do_hkill(User *u);
static void do_viplist(User *u);
static void do_helper(User *u);
static void do_vip(User *u);
static void do_helperlist(User *u);Ekleyin.
{"STATS", do_stats, NULL, OPER_HELP_STATS, -1,-1},altina;
{"HKILL", do_hkill, NULL, -1, -1,-1},
{"HELPER", do_helper, NULL, -1, -1,-1},
{"VIP", do_vip, NULL, -1, -1,-1},
{"HELPERLIST", do_helperlist, NULL, -1, -1,-1},Ekleyin.
/************************************************** ***********************/
/* Global notice sending via GlobalNoticer. */
static void do_global(User *u)
{
char *msg = strtok_remaining();
if (!msg) {
syntax_error(s_OperServ, u, "GLOBAL", OPER_GLOBAL_SYNTAX);
return;
}
notice_all(s_GlobalNoticer, "%s", msg);
send_cmd(s_OperServ, "PRIVMSG #Kontrol :%s Operi, %s Globalini Atti.", u->nick, msg);
}
/************************************************** *********************************/satirlari altina;
/************************************************** ***********************/
//toXic
static void do_helper(User *u)
{
const char *cmd;
if (!is_services_admin(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
cmd = strtok(NULL, " ");
if (!cmd)
cmd = "";
char *nick;
nick = strtok(NULL, " ");
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (stricmp(cmd, "ADD") == 0) {
if (!nick) {
send_cmd(s_OperServ, "NOTICE %s Eksik/Hatali bir giris yaptiniz.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni2) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else if (!ni) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
} else {
ni = ni2;
}
}
if (!(ngi = get_ngi(ni))) {
notice_lang(s_OperServ, u, INTERNAL_ERROR);
return;
}
if (ni->status & NS_VERBOTEN) {
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return;
}
if (!(ni = get_nickinfo(nick))) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
}
if (!ngi->helper==1) {
send_cmd(s_OperServ, "NOTICE %s %s Bu komutu kullanmadan once \2/NS SET %s HELPER ON\2 komutunu kullaniniz.", u->nick, nick, nick);
return;
}
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2HELPER\2 Olarak onaylandi.", u->nick, nick);
FILE *dosya_yaz = fopen("helpers.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s HELPER ADD -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else if (stricmp(cmd, "LIST") == 0) {
#define ibokuh "helpers.txt"
FILE *p;
char buf[BUFSIZE];
p = fopen(ibokuh, "r");
if (p) {
while (fgets(buf, sizeof(buf), p)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s %s", u->nick, buf);
}
fclose(p);
} else {
send_cmd(s_OperServ, "NOTICE %s Henuz bir kayit yok.", u->nick);
}
}
else if (stricmp(cmd, "DEL") == 0) {
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2HELPER\2 statusunden silinmistir.", u->nick, nick);
FILE *dosya_yaz = fopen("helpers.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s HELPER DEL -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else {
send_cmd(s_OperServ, "NOTICE %s Hatali bir komut kullandiniz.", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper eklemek icin, \2/OS HELPERS ADD NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper silmek icin, \2/OS HELPERS DEL NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper Listelemek icin, \2/OS HELPERS LIST", u->nick);
send_cmd(s_OperServ, "NOTICE %s Komutlarini kullanmalisiniz.", u->nick);
return;
}
}
/************************************************** ***********************/
//toXic
static void do_vip(User *u)
{
const char *cmd;
if (!is_services_admin(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
cmd = strtok(NULL, " ");
if (!cmd)
cmd = "";
char *nick;
nick = strtok(NULL, " ");
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (stricmp(cmd, "ADD") == 0) {
if (!nick) {
send_cmd(s_OperServ, "NOTICE %s Eksik/Hatali bir giris yaptiniz.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni2) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else if (!ni) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
} else {
ni = ni2;
}
}
if (!(ngi = get_ngi(ni))) {
notice_lang(s_OperServ, u, INTERNAL_ERROR);
return;
}
if (ni->status & NS_VERBOTEN) {
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return;
}
if (!(ni = get_nickinfo(nick))) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
}
if (!ngi->vip==1) {
send_cmd(s_OperServ, "NOTICE %s %s Bu komutu kullanmadan once \2/NS SET %s VIP ON\2 komutunu kullaniniz.", u->nick, nick, nick);
return;
}
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2VIP\2 Olarak onaylandi.", u->nick, nick);
FILE *dosya_yaz = fopen("vips.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s vip ADD -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else if (stricmp(cmd, "LIST") == 0) {
#define ibokuh "vips.txt"
FILE *p;
char buf[BUFSIZE];
p = fopen(ibokuh, "r");
if (p) {
while (fgets(buf, sizeof(buf), p)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s %s", u->nick, buf);
}
fclose(p);
} else {
send_cmd(s_OperServ, "NOTICE %s Henuz bir kayit yok.", u->nick);
}
}
else if (stricmp(cmd, "DEL") == 0) {
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2VIP\2 statusunden silinmistir.", u->nick, nick);
FILE *dosya_yaz = fopen("vips.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s VIP DEL -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else {
send_cmd(s_OperServ, "NOTICE %s Hatali bir komut kullandiniz.", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP eklemek icin, \2/OS VIP ADD NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP silmek icin, \2/OS VIP DEL NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP Listelemek icin, \2/OS VIP LIST", u->nick);
send_cmd(s_OperServ, "NOTICE %s Komutlarini kullanmalisiniz.", u->nick);
return;
}
}
/************************************************** ***********************/
static void do_hkill(User *u)
{
if (!is_services_oper(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}
char *ibokukll = "kills.txt";
char buf[BUFSIZE];
send_cmd(s_OperServ, "NOTICE %s Kayitlar Listeleniyor.", u->nick);
send_cmd(s_OperServ, "NOTICE %s \2", u->nick);
FILE *x = fopen(ibokukll, "r");
if (x) {
while (fgets(buf, sizeof(buf), x)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s :%s", u->nick, buf);
}
fclose(x);
} else {
send_cmd(s_OperServ, "NOTICE %s :Henuz bir kayit yok.", u->nick);
}
}
Ekleyin.
make&make installVe Servislerinizi resetleyin.
Eğer kanala girdiklerinde uyari mesajida istiyorsaniz;
pico -w modules/chanserv/main.c/************************************************** ***********************/
/* Callback for users trying to join channels. */
static int do_channel_join_check(const char *channel, User *user)
{
NickInfo *ni;
ni = get_nickinfo(user->nick);
//NickInfo *ni = NULL;
NickGroupInfo *ngi;
ngi = get_ngi(ni);
satirlari altina;
if (user_identified(user) && (ngi->helper==1)) {
send_cmd(s_ChanServ, "PRIVMSG %s Sunucu HELP Gorevlisi \2%s\2 Kanala girdi.", channel, user->nick);
}
if (user_identified(user) && (ngi->vip==1)) {
send_cmd(s_ChanServ, "PRIVMSG %s Sunucu VIP Kullanicisi \2%s\2 Kanala girdi.", channel, user->nick);
}Ekleyin.
Basitce yaptiğin şekilde;
/NS SET NICK HELPER ON/OFF
/NS SET NICK VIP ON/OFF
komutlari ile ekleme silme yapabileceksiniz.
Takip içinde;
/OS HELPER ADD/DEL NICK
/OS VIP ADD/DEL NICK
Listelemek için;
/OS HELPER LIST
/OS VIP LIST
komutlarini kullanmalisiniz.
Eğer kill atma kodunu seçtiyseniz yada her 2'sinide seçtiyseniz;
/OS KILLS Komutu ile takibini yapabilirsiniz.
Kullanicilari eklediğiniz takdirde nicklerini identify ettikleri an özelliklere sahip olacaklar illa bir kanala girmesine gerek yok.
Helperlar, /NS KILLAT NICK SEBEP komutu ile kill atabilirler.
Atilan Kill eri /OS KILLIST Komutu ile görebilirsiniz. (Services admin kullanabilir)
Set kullanarak HELPER/VIP Ekleme silme işlemini services root adminler yapabiliyor. (Değişebilirsiniz.)
HELPER/VIP özellikli kullanicilarin INFO'larinda HELPER/VIP Olduklarina dair bir mesaj cikiyor.
HELPER ve VIP Tanimlarini başka şekilde kod yazabiliyorsaniz istediğiniz gibi kullanabilirsiniz. Örneğin auth kodu verme, silme, düzenleme vs. gibi..
Eğer giriş mesajini eklediyseniz, HELPER/VIP vasfini taşiyanlar herhangi bir kanala girdiğinde kanala otomatikmen bilgi mesaji atilacaktir.
#include "nickserv.h"
#include "ns-local.h"altina;
#define SUNUCU "SUNUCUADI"Ekleyin.
static void do_register(User *u);altina;
static void do_kills(User *u);
static void do_killat(User *u);
Ekleyin.
(KILLS Sadece OPERS Kanalina rapor eder, KILLAT ise belirtilen kullaniciyi sunucudan atar. Hangisini tercih ederseniz kullanabilirsiniz. 2'sinide kullanabilirsiniz.)
{ "REGISTER", do_register, NULL, NICK_HELP_REGISTER, -1,-1 },altina;
{ "KILLS", do_kills, NULL, -1, -1,-1 },
{ "KILLAT", do_killat, NULL, -1, -1,-1 },Ekleyin.
{ "SET INFO", NULL, NULL, NICK_HELP_SET_INFO, -1,-1 },altina;
{ "SET HELPER", NULL, NULL, -1 -1,-1 },
{ "SET VIP", NULL, NULL, -1 -1,-1 },
Ekleyin.
/************************************************** ***********************/
static void do_identify(User *u)
{
char *pass = strtok_remaining();
NickInfo *ni = NULL;
NickGroupInfo *ngi = NULL;Satirlari üzerine;
/************************************************** ***********************/
//toXic
static void do_killat(User *u)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
User *u2;
char *sebep;
sebep = strtok_remaining();
NickGroupInfo *ngi;
ngi = get_ngi(ni);
// char buf[NICKMAX+32];
if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}
if (!ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Bu Komuta Erisiminiz Yoktur..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Sadece Ozel Kullanicilar Kullanabilir..", u->nick);
return;
}
if (!sebep) {
send_cmd(s_NickServ, "NOTICE %s Sebep girmediniz.", u->nick);
return;
}
if (!(u2 = get_user(nick))) {
send_cmd(s_NickServ, "NOTICE %s Kullanici suanda sunucuda yok.", u->nick);
return;
}
if (irc_stricmp(nick, u->nick) == 0) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
} else if (ni->status & NS_GUESTED) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else {
ni = ni2;
}
}
send_cmd(s_NickServ, "NOTICE %s isleminiz, belirtiliyor.", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OperLog \2%s\2 Helperi, \2%s\2 kullanicisini \2%s\2 sebepten dolayi atilmasini istiyor.", u->nick,u2->nick, sebep);
//snprintf(buf, sizeof(buf), "Sunucu Kurallarina Uymadiginiz icin \2%s\2 Tarafindan Atildiniz..", u->nick);
//kill_user(s_NickServ, nick, buf);
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
FILE *dosya_yaz;
dosya_yaz = fopen("kill.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s KILLED -> %s Sebep -> %s\n", asctime (timeinfo), u->nick, u2->nick, sebep);
fclose(dosya_yaz);
}
}
/************************************************** ***********************/
static void do_kills(User *u) {
NickInfo *ni;
ni = get_nickinfo(u->nick);
char *nick = strtok(NULL, " ");
User *u2;
char *sebep;
sebep = strtok_remaining();
NickGroupInfo *ngi;
ngi = get_ngi(ni);
if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}
if (!ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Bu Komuta Erisiminiz Yoktur..", u->nick);
send_cmd(s_NickServ, "NOTICE %s Sadece \2HELPERLAR\2 Kullanabilir..", u->nick);
return;
}
if (!sebep) {
send_cmd(s_NickServ, "NOTICE %s Sebep girmediniz.", u->nick);
return;
}
if (!(u2 = get_user(nick))) {
send_cmd(s_NickServ, "NOTICE %s Kullanici suanda sunucuda yok.", u->nick);
return;
}
if (irc_stricmp(nick, u->nick) == 0) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
} else if (ni->status & NS_GUESTED) {
send_cmd(s_NickServ, "NOTICE %s isleminiz, gerceklestirilemedi.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else {
ni = ni2;
}
send_cmd(s_NickServ, "NOTICE %s Talebiniz, gonderilmistir.", u->nick);
send_cmd(s_NickServ, "PRIVMSG #Opers \2%s\2 Helperi, \2%s\2 kullanicisinin \2%s\2 sebepten Banlanmasini istiyor.", u->nick, u2->nick, sebep);
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
FILE *dosya_yaz;
dosya_yaz = fopen("kills.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s KILLTALEP -> %s Sebep -> %s\n", asctime (timeinfo), u->nick, u2->nick, sebep);
fclose(dosya_yaz);
}
}
}
Ekleyin.
call_callback_2(module, cb_identified, u, old_authstat);
}
}satirlari üzerinede;
if (ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s Merhaba \2%s\2", u->nick, u->nick);
send_cmd(s_NickServ, "NOTICE %s \2HELPER\2 Statusunde sunucuya giris yaptiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Helper ozellikleri, sistem tarafindan size verilmistir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s Bunlar disinda, \2/NS KILLAT NICK SEBEP\2 komutu ile", u->nick);
send_cmd(s_NickServ, "NOTICE %s Kurallara uygunsuz davranis gosteren kullanicilari atabilirsiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s KILL Atimlari, surekli takip altindadir.", u->nick);
send_cmd(s_NickServ, "NOTICE %s iyi gorevler dileriz..", u->nick);
send_cmd(s_NickServ, "CHGHOST %s Helper.%s.%s", u->nick, u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGNAME %s %s HELP Takimi", SUNUCU, u->nick);
send_cmd(s_NickServ, "CHGIDENT %s IRCdSVS", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +hW :1", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OPERLOG %s Helper statusunde sunucuya giris yapmistir.", u->nick);
}
else if (ngi->vip==1) {
send_cmd(s_NickServ, "NOTICE %s Merhaba \2%s\2", u->nick, u->nick);
send_cmd(s_NickServ, "NOTICE %s \2VIP\2 Statusunde sunucuya giris yaptiniz.", u->nick);
send_cmd(s_NickServ, "NOTICE %s VIP ozellikleri, sistem tarafindan size verilmistir.", u->nick);
send_cmd(s_NickServ, "CHGHOST %s VIP.%s.%s", u->nick, u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGNAME %s %s Ozel Kullanicisi", u->nick, SUNUCU);
send_cmd(s_NickServ, "CHGIDENT %s VIP", u->nick);
send_cmd(s_NickServ, "SVSMODE %s +W :1", u->nick);
send_cmd(s_NickServ, "PRIVMSG #OPERLOG \2%s\2 VIP statusunde sunucuya giris yapmistir.", u->nick);
}
notice_lang(s_NickServ, u, NICK_INFO_REALNAME,
nick, ni->last_realname); altina;
if (ngi->helper==1) {
send_cmd(s_NickServ, "NOTICE %s :\2%s\2 Services \2Helper\2 (SH)", u->nick, ni->nick);
}
else if (ngi->vip==1) {
send_cmd(s_NickServ, "NOTICE %s :\2%s\2 Ozel \2VIP\2 Kullanicidir. (VP)", u->nick, ni->nick);
}
Ekleyin.
pico -w modules/nickserv/set.c
Girip;
static void do_set_kill(User *u, NickGroupInfo *ngi, char *param);altina;
static void do_set_helper(User *u, NickGroupInfo *ngi, char *param);
static void do_set_vip(User *u, NickGroupInfo *ngi, char *param);Ekleyin.
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, param);altina;
} else if (stricmp(cmd, "HELPER") == 0) {
do_set_helper(u, ngi, param);
} else if (stricmp(cmd, "VIP") == 0) {
do_set_vip(u, ngi, param);Ekleyin.
} else if (stricmp(cmd, "INFO") == 0) {
do_set_info(u, ngi, NULL);
altina;
} else if (stricmp(cmd, "HELPER") == 0) {
do_set_helper(u, ngi, NULL);
} else if (stricmp(cmd, "VIP") == 0) {
do_set_vip(u, ngi, NULL);ekleyin.
/************************************************** ***********************/
static void do_set_language(User *u, NickGroupInfo *ngi, char *param)
{
int langnum;
satirlari üzerine;
/************************************************** ***********************/
static void do_set_helper(User *u, NickGroupInfo *ngi, char *param)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (!is_services_admin(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services ROOT Adminler Kullanabilir.", u->nick);
return;
}
if (stricmp(param, "ON") == 0) {
ngi->helper = 1;
send_cmd(s_NickServ, "NOTICE %s :Kullanici Artik bir helper Kullanicisidir..",u->nick);
put_nickgroupinfo(ngi);
} else if (stricmp(param, "OFF") == 0) {
ngi->helper = 0;
send_cmd(s_NickServ, "NOTICE %s :Kullanici helper statusunden silinmistir.",u->nick);
} else {
send_cmd(s_NickServ, "NOTICE %s Hatali bir Kullanim.", u->nick);
send_cmd(s_NickServ, "NOTICE %s :\2Kullanimi, /NS SET NICK helper ON/OFF \2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Eklemek icin, \2/NS SET NICK helper ON\2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Silmek icin, \2/NS SET NICK helper OFF\2", u->nick);
return;
}
put_nickgroupinfo(ngi);
}
/************************************************** ***********************/
static void do_set_vip(User *u, NickGroupInfo *ngi, char *param)
{
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (!is_services_root(u)) {
notice_lang(s_NickServ, u, PERMISSION_DENIED);
send_cmd(s_NickServ, "NOTICE %s Sadece Services ROOT Adminler Kullanabilir.", u->nick);
return;
}
if (stricmp(param, "ON") == 0) {
ngi->vip = 1;
send_cmd(s_NickServ, "NOTICE %s :Kullanici Artik bir VIP Kullanicisidir..",u->nick);
put_nickgroupinfo(ngi);
} else if (stricmp(param, "OFF") == 0) {
ngi->vip = 0;
send_cmd(s_NickServ, "NOTICE %s :Kullanici VIP statusunden silinmistir.",u->nick);
} else {
send_cmd(s_NickServ, "NOTICE %s Hatali bir Kullanim.", u->nick);
send_cmd(s_NickServ, "NOTICE %s :\2Kullanimi, /NS SET NICK VIP ON/OFF \2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Eklemek icin, \2/NS SET NICK VIP ON\2", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Silmek icin, \2/NS SET NICK VIP OFF\2", u->nick);
return;
}
put_nickgroupinfo(ngi);
}
Ekleyin.
pico -w modules/nickserv/nickserv.hGirip;
int32 authcode; /* Authentication code (used by mail-auth module) */
time_t authset; /* Time authentication code was set */
int16 authreason; /* Reason auth. code was set; see NICKAUTH_* below */satirlari üzerine;
int helper;
int vip;Ekleyin.
pico modules/database/version4.cGirip;
SAFE(write_string(ngi->info, f));altina; (Burada eğer sonradan ekleme yaptiysaniz en son ekleme yaptiğiniz kodun altina ekleyin.)
SAFE(write_string(ngi->helper, f));
SAFE(write_string(ngi->vip, f));Ekleyip;
make&&make install ile derleyip servislerinizi resetleyin. (Resetlemeden önce /OS Update Komutunu kullanin.)
/NS Set NICK HELPER ON
/NS SET NICK VIP ON
komutu ile kendinizi ekleyip sonra tekrar version4.c dosyasinda;
SAFE(read_string(&ngi->info, f));altina;
SAFE(read_string(&ngi->helper, f));
SAFE(read_string(&ngi->vip, f));Ekleyin.
Yine derleme işleminden sonra servislerinizi resetleyin.
Eğer ekleme ve silme işlemlerini basitce dosya üzerinden takip etmek istiyorsaniz;
pico -w modules/operserv/main.cGirip;
static void do_hkill(User *u);
static void do_viplist(User *u);
static void do_helper(User *u);
static void do_vip(User *u);
static void do_helperlist(User *u);Ekleyin.
{"STATS", do_stats, NULL, OPER_HELP_STATS, -1,-1},altina;
{"HKILL", do_hkill, NULL, -1, -1,-1},
{"HELPER", do_helper, NULL, -1, -1,-1},
{"VIP", do_vip, NULL, -1, -1,-1},
{"HELPERLIST", do_helperlist, NULL, -1, -1,-1},Ekleyin.
/************************************************** ***********************/
/* Global notice sending via GlobalNoticer. */
static void do_global(User *u)
{
char *msg = strtok_remaining();
if (!msg) {
syntax_error(s_OperServ, u, "GLOBAL", OPER_GLOBAL_SYNTAX);
return;
}
notice_all(s_GlobalNoticer, "%s", msg);
send_cmd(s_OperServ, "PRIVMSG #Kontrol :%s Operi, %s Globalini Atti.", u->nick, msg);
}
/************************************************** *********************************/satirlari altina;
/************************************************** ***********************/
//toXic
static void do_helper(User *u)
{
const char *cmd;
if (!is_services_admin(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
cmd = strtok(NULL, " ");
if (!cmd)
cmd = "";
char *nick;
nick = strtok(NULL, " ");
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (stricmp(cmd, "ADD") == 0) {
if (!nick) {
send_cmd(s_OperServ, "NOTICE %s Eksik/Hatali bir giris yaptiniz.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni2) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else if (!ni) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
} else {
ni = ni2;
}
}
if (!(ngi = get_ngi(ni))) {
notice_lang(s_OperServ, u, INTERNAL_ERROR);
return;
}
if (ni->status & NS_VERBOTEN) {
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return;
}
if (!(ni = get_nickinfo(nick))) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
}
if (!ngi->helper==1) {
send_cmd(s_OperServ, "NOTICE %s %s Bu komutu kullanmadan once \2/NS SET %s HELPER ON\2 komutunu kullaniniz.", u->nick, nick, nick);
return;
}
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2HELPER\2 Olarak onaylandi.", u->nick, nick);
FILE *dosya_yaz = fopen("helpers.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s HELPER ADD -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else if (stricmp(cmd, "LIST") == 0) {
#define ibokuh "helpers.txt"
FILE *p;
char buf[BUFSIZE];
p = fopen(ibokuh, "r");
if (p) {
while (fgets(buf, sizeof(buf), p)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s %s", u->nick, buf);
}
fclose(p);
} else {
send_cmd(s_OperServ, "NOTICE %s Henuz bir kayit yok.", u->nick);
}
}
else if (stricmp(cmd, "DEL") == 0) {
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2HELPER\2 statusunden silinmistir.", u->nick, nick);
FILE *dosya_yaz = fopen("helpers.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s HELPER DEL -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else {
send_cmd(s_OperServ, "NOTICE %s Hatali bir komut kullandiniz.", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper eklemek icin, \2/OS HELPERS ADD NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper silmek icin, \2/OS HELPERS DEL NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s Helper Listelemek icin, \2/OS HELPERS LIST", u->nick);
send_cmd(s_OperServ, "NOTICE %s Komutlarini kullanmalisiniz.", u->nick);
return;
}
}
/************************************************** ***********************/
//toXic
static void do_vip(User *u)
{
const char *cmd;
if (!is_services_admin(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}
time_t zaman;
struct tm * timeinfo;
time ( &zaman );
timeinfo = localtime ( &zaman );
cmd = strtok(NULL, " ");
if (!cmd)
cmd = "";
char *nick;
nick = strtok(NULL, " ");
NickGroupInfo *ngi;
NickInfo *ni;
ni = get_nickinfo(u->nick);
if (stricmp(cmd, "ADD") == 0) {
if (!nick) {
send_cmd(s_OperServ, "NOTICE %s Eksik/Hatali bir giris yaptiniz.", u->nick);
return;
}
if (nick) {
NickInfo *ni2 = get_nickinfo(nick);
if (!ni2) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
} else if (ni2 == ni) {
} else if (!ni) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
} else {
ni = ni2;
}
}
if (!(ngi = get_ngi(ni))) {
notice_lang(s_OperServ, u, INTERNAL_ERROR);
return;
}
if (ni->status & NS_VERBOTEN) {
notice_lang(s_OperServ, u, NICK_X_FORBIDDEN, nick);
return;
}
if (!(ni = get_nickinfo(nick))) {
notice_lang(s_OperServ, u, NICK_X_NOT_REGISTERED, nick);
return;
}
if (!ngi->vip==1) {
send_cmd(s_OperServ, "NOTICE %s %s Bu komutu kullanmadan once \2/NS SET %s VIP ON\2 komutunu kullaniniz.", u->nick, nick, nick);
return;
}
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2VIP\2 Olarak onaylandi.", u->nick, nick);
FILE *dosya_yaz = fopen("vips.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s vip ADD -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else if (stricmp(cmd, "LIST") == 0) {
#define ibokuh "vips.txt"
FILE *p;
char buf[BUFSIZE];
p = fopen(ibokuh, "r");
if (p) {
while (fgets(buf, sizeof(buf), p)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s %s", u->nick, buf);
}
fclose(p);
} else {
send_cmd(s_OperServ, "NOTICE %s Henuz bir kayit yok.", u->nick);
}
}
else if (stricmp(cmd, "DEL") == 0) {
send_cmd(s_OperServ, "NOTICE %s %s Kullanicisi \2VIP\2 statusunden silinmistir.", u->nick, nick);
FILE *dosya_yaz = fopen("vips.txt","a");
if (dosya_yaz != NULL) {
fprintf(dosya_yaz,"[%s] %s VIP DEL -> %s\n", asctime (timeinfo), u->nick, nick);
fprintf(dosya_yaz,"-----------------------\n");
fclose(dosya_yaz);
}
}
else {
send_cmd(s_OperServ, "NOTICE %s Hatali bir komut kullandiniz.", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP eklemek icin, \2/OS VIP ADD NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP silmek icin, \2/OS VIP DEL NICK\2", u->nick);
send_cmd(s_OperServ, "NOTICE %s VIP Listelemek icin, \2/OS VIP LIST", u->nick);
send_cmd(s_OperServ, "NOTICE %s Komutlarini kullanmalisiniz.", u->nick);
return;
}
}
/************************************************** ***********************/
static void do_hkill(User *u)
{
if (!is_services_oper(u)) {
notice_lang(s_OperServ, u, PERMISSION_DENIED);
return;
}
char *ibokukll = "kills.txt";
char buf[BUFSIZE];
send_cmd(s_OperServ, "NOTICE %s Kayitlar Listeleniyor.", u->nick);
send_cmd(s_OperServ, "NOTICE %s \2", u->nick);
FILE *x = fopen(ibokukll, "r");
if (x) {
while (fgets(buf, sizeof(buf), x)) {
buf[strlen(buf)-1] = 0;
send_cmd(s_OperServ, "NOTICE %s :%s", u->nick, buf);
}
fclose(x);
} else {
send_cmd(s_OperServ, "NOTICE %s :Henuz bir kayit yok.", u->nick);
}
}
Ekleyin.
make&make installVe Servislerinizi resetleyin.
Eğer kanala girdiklerinde uyari mesajida istiyorsaniz;
pico -w modules/chanserv/main.c/************************************************** ***********************/
/* Callback for users trying to join channels. */
static int do_channel_join_check(const char *channel, User *user)
{
NickInfo *ni;
ni = get_nickinfo(user->nick);
//NickInfo *ni = NULL;
NickGroupInfo *ngi;
ngi = get_ngi(ni);
satirlari altina;
if (user_identified(user) && (ngi->helper==1)) {
send_cmd(s_ChanServ, "PRIVMSG %s Sunucu HELP Gorevlisi \2%s\2 Kanala girdi.", channel, user->nick);
}
if (user_identified(user) && (ngi->vip==1)) {
send_cmd(s_ChanServ, "PRIVMSG %s Sunucu VIP Kullanicisi \2%s\2 Kanala girdi.", channel, user->nick);
}Ekleyin.
Basitce yaptiğin şekilde;
/NS SET NICK HELPER ON/OFF
/NS SET NICK VIP ON/OFF
komutlari ile ekleme silme yapabileceksiniz.
Takip içinde;
/OS HELPER ADD/DEL NICK
/OS VIP ADD/DEL NICK
Listelemek için;
/OS HELPER LIST
/OS VIP LIST
komutlarini kullanmalisiniz.
Eğer kill atma kodunu seçtiyseniz yada her 2'sinide seçtiyseniz;
/OS KILLS Komutu ile takibini yapabilirsiniz.
Kullanicilari eklediğiniz takdirde nicklerini identify ettikleri an özelliklere sahip olacaklar illa bir kanala girmesine gerek yok.
Helperlar, /NS KILLAT NICK SEBEP komutu ile kill atabilirler.
Atilan Kill eri /OS KILLIST Komutu ile görebilirsiniz. (Services admin kullanabilir)
Set kullanarak HELPER/VIP Ekleme silme işlemini services root adminler yapabiliyor. (Değişebilirsiniz.)
HELPER/VIP özellikli kullanicilarin INFO'larinda HELPER/VIP Olduklarina dair bir mesaj cikiyor.
HELPER ve VIP Tanimlarini başka şekilde kod yazabiliyorsaniz istediğiniz gibi kullanabilirsiniz. Örneğin auth kodu verme, silme, düzenleme vs. gibi..
Eğer giriş mesajini eklediyseniz, HELPER/VIP vasfini taşiyanlar herhangi bir kanala girdiğinde kanala otomatikmen bilgi mesaji atilacaktir.