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

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 19 Ocak 2006, 14:36   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
bs_autoassign Modulu beLki işinize yarar




cd anope*****
cd src/modules

pico bs_autoassign.c

anopenin ana dizininde
./Config

make

make install

servicesi basdan baslatin

sonra servicesden 1 bot yaratin

/bs autoassign botnick yazin

şifrelenen kanala o bot koruma botu olarak girsin her kanala girer

Not: eger yuklenmemisse modul /os modlist de gostermiyorsa moduLu /os modload bs_autoassign yazin kolay gelsin
* ChanServ sets mode: +r
* ChanServ sets mode: +q Mafya
* Sohbet (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
) has joined #romeo
* Sohbet sets mode: +ao Sohbet Sohbet

-ChanServ- Lütfen Dikkat
-
-ChanServ- Kanal Şifrenizi Lütfen Kimse iLe Paylaşmayiniz
-
-ChanServ- KanaL Güvenligi için Kanal Modlari iLe Oynamayiniz
-
-ChanServ- Kanal ile ilgili Bir Sorununuz oLdugunda #Help Kanalina Giriniz Oparatorlerden Yardim aliniz
-
-ChanServ- Server Yönetimi KaRaYiP.CoM Sizlere HayirLi MuhabbetLer DiLer
-

#include "module.h"
#define AUTHOR "SGR"
#define VERSION "1.17"
/* -----------------------------------------------------------
* Name: bs_autoassign
* Author: SGR <
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
>
* Date: 21/10/2003
* -----------------------------------------------------------
* Functions: m_bs_autoassign, do_autoassign
* Limitations: None Known.
* Tested: Ultimate(2.8.x), Unreal(3.2), Viagra.
* -----------------------------------------------------------
* This modules has 6 configurable options
*
* **** <COMEPLETED> ******
* I will endeavour to add a command for services admins to be
* able to change the default assigned bot 'on the fly' from
* within IRC. I know this is easy todo but i am currently far
* to god-dammed lazy to do it.
* **** </COMEPLETED> ******
*
* Thanks to rob for coding moduleGetLastBuffer() - the
* critical function call in this module.
*
* Change Log:
*
* 1: Works.
*
* 2: Added some extra error checking.
*
* 3: Added 'set bot' and help systems.
*
* 4: Fixed some typo's.
*
* 5: Slapped Certus with some IRC slapping fish.
*
* 6: Added ModuleHELP - thanks rob
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

*
* 7: Fixed a really freaky bug about changing the autoassign
* bot - can't see a reason for how it was caused, but
* fixed it nevertheless. There is only too possibilities:
* Rob, - for playing with something or PhyPhyt for
* playing with RAW.
*
* 8: Added an extra [totally unnecessary] return as technically
* all functions that are not void should end in one.
*
* 9: Added Support for Anope-1.7.x (revision 370+)
*
* -----------------------------------------------------------
*/
/* ---------------------------------------------------------------------- */
/* START OF CONFIGURATION BLOCK - please read the comments
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
*/
/* ---------------------------------------------------------------------- */
/* [REQUIRED] If you are using Anope-1.7.x or later, leave this alone.
* Otherwise change it to '#undef ANOPE17x' (no quotes).
*
* THIS IS IMPORTANT
*
*/
#undef ANOPE17x
/* Comment out '#define ForceBotJoinONReg' to make the bot obey BSMinUsers when the chan is registered.
* i.e. if only one user is in the channel when it is registered the botserv bot will NOT join. If there
* are 10 users however and BSMinUsers is set to 2, it will join automatically. If this is left, the bot
* will join the channel regardless. */
#define ForceBotJoinONReg
#define BotAutoAssignMsg1 "Kayit Ettiginiz Kanala Sistemimiz Tarafından Bir Kanal Koruma Botu Eklenmistir."
#define BotAutoAssignMsg2 "Bu Bot Kanalda %d yada daha fazla kisi oldugunda Kanal'a girecektir Sifrelediginiz kanal %s", BSMinUsers, chan
#define BotAutoAssignMsg3 "Eger Bu ücretsiz Bot u istemiyorsaniz Asagidaki Komutu Kullanabilirsiniz"
#define BotAutoAssignMsg4 "Botu Cikatmak icin /msg %s UNASSIGN %s", s_BotServ, chan
#define BotAutoAssignMsg5 "Bot Hakkinda Daha fazla Bilgi icin /msg %s HELP", s_BotServ
#define BotAutoAssignMsg6 "Lütfen Dikkat"
#define BotAutoAssignMsg7 "Kanal Şifrenizi Lütfen Kimse iLe Paylaşmayiniz"
#define BotAutoAssignMsg8 "KanaL Güvenligi için Kanal Modlari iLe Oynamayiniz"
#define BotAutoAssignMsg9 "Kanal ile ilgili Bir Sorununuz oLdugunda #Help Kanalina Giriniz Oparatorlerden Yardim aliniz"
#define BotAutoAssignMsg10 "Server Yönetimi KaRaYiP.CoM Sizlere HayirLi MuhabbetLer DiLer"
/* ---------------------------------------------------------------------- */
/* DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING */
/* ---------------------------------------------------------------------- */
static int do_autoassign(User * u, char *chan, char *nick);
int m_bs_autoassign(User *u);
int m_bs_set_autoassign(User *u);
void SGR_Module_Help_BOTSERV_AutoAssign(User *u);
int SGR_Module_Help_BOTSERV_AutoAssign_FULL(User *u);
char *botobe;
char *chanB;
int AnopeInit(int argc, char **argv)
{
int i, count = 0;
BotInfo *bi;
Command *c;
alog("Loading module bs_autoassign.so");
alog("[bs_autoassign] And the bot that will be assigned to all newly registered chans is... *drum roll*");
/* Get the 1st none private bot available and set it as the default auto assign bot. */
for (i = 0; i < 256; i++) {
for (bi = botlists[i]; bi; bi = bi->next) {
if (!(bi->flags & BI_PRIVATE)) {
count++;
botobe = bi->nick;
alog("[bs_autoassign] ::: %s ", botobe);
break;
}
}
/* if we have found the 1st don't bother looping them */
if (botobe != NULL) {
break;
}
}
/* carry on */
if (botobe == NULL) {
alog("[bs_autoassign] ERROR: no non-oper only %s Bot's available.", s_BotServ);
alog("[bs_autoassign] ERROR: NO NEW FEATURES AVAILABLE.");
alog("[bs_autoassign] Auto-Unloading (Please create a public bot and re-load)");
return MOD_STOP;
}
c = createCommand("REGISTER", m_bs_autoassign, NULL,-1,-1,-1,-1,-1);
moduleAddCommand(CHANSERV, c, MOD_TAIL);
c = createCommand("AUTOASSIGN",m_bs_set_autoassign,is_ services_admin,-1,-1,-1,-1,-1);
moduleAddCommand(BOTSERV, c, MOD_HEAD);
moduleAddHelp(c,SGR_Module_Help_BOTSERV_AutoAssign _FULL);
moduleSetBotHelp(SGR_Module_Help_BOTSERV_AutoAssig n);
alog("[bs_autoassign] The following bot will be assigned to all newly registered channels: %s ", botobe);
alog("[bs_autoassign] For more info see /msg %s HELP AUTOASSIGN", s_BotServ);
alog("[bs_autoassign] Yayness!(tm) - MODULE LOADED AND ACTIVE");
moduleAddAuthor(AUTHOR);
moduleAddVersion(VERSION);
return MOD_CONT;
}
void AnopeFini(void)
{
free(botobe);
free(chanB);
alog("Unloading module bs_autoassign.so");
}
void SGR_Module_Help_BOTSERV_AutoAssign(User *u)
{
if (is_services_admin(u)) {
notice(s_BotServ,u->nick, " AUTOASSIGN Set the auto-assigned bot.");
}
return;
}
int SGR_Module_Help_BOTSERV_AutoAssign_FULL(User *u)
{
if (is_services_admin(u)) {
notice(s_BotServ,u->nick, " ");
notice(s_BotServ,u->nick, "Syntax: AUTOASSIGN [nick]");
notice(s_BotServ,u->nick, " ");
notice(s_BotServ,u->nick, "Use this command without a nick to see the BotServ bot that is");
notice(s_BotServ,u->nick, "currently assigned to all newly registered channels. ");
notice(s_BotServ,u->nick, "Should a nick argument be provided, the bot will be changed to");
notice(s_BotServ,u->nick, "the specified bot, poviding the bot exists and is not PRIVATE.");
notice(s_BotServ,u->nick, " ");
}
return MOD_CONT;
}
int m_bs_set_autoassign(User *u)
{
char *setnewbot = strtok(NULL, " ");
BotInfo *bi;

if (!setnewbot) {
notice(s_BotServ,u->nick, "The current auto-assgin bot is: %s", botobe);
return MOD_CONT;
}

if ((bi = findbot(setnewbot))) {
if (!(bi->flags & BI_PRIVATE)) {
notice(s_BotServ,u->nick, "The current auto-assgin bot is now: %s", bi->nick);
botobe = bi->nick;
#ifndef ANOPE17x
wallops(s_BotServ, "%s changed the AutoAssign bot to %s", u->nick, bi->nick);
#else
anope_cmd_global(s_BotServ, "%s changed the AutoAssign bot to %s", u->nick, bi->nick);
#endif
return MOD_CONT;
}
else {
notice(s_BotServ,u->nick, "ERROR: %s is private.", setnewbot);
return MOD_CONT;
}
}
notice(s_BotServ,u->nick, "ERROR: %s is not on the bot list", setnewbot);
return MOD_CONT;
}
int m_bs_autoassign(User *u)
{
char *getchan = moduleGetLastBuffer();
char *chanB = strtok(getchan, " ");
ChannelInfo *ci;
if (!getchan || !chanB) {
return MOD_CONT;
}

/* No chan was registered - syntax error perhaps? */
if (!(ci = cs_findchan(chanB))) {
return MOD_CONT;
}

/* Chan already has a Bot assigned. */
if (ci->bi) {
return MOD_CONT;
}
/* peep is trying to reg a chan thats already registered or the chan is flagged NOBOT*/
if ((ci->botflags & BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !is_services_admin(u))) {
return MOD_CONT;
}
alog("ChanServ: AUTO-ASSIGNING Bot to: %s [Bot: %s] [Founder: %s]", chanB, botobe, u->nick);
if (do_autoassign(u, chanB, botobe)) {
return MOD_CONT;
}
else {
alog("ChanServ: ERROR AUTO-ASSIGNING Bot to: %s [Bot: %s] [Founder: %s]", chanB, botobe, u->nick);
return MOD_CONT;
}
return MOD_CONT;
}
/* naffed from botserv.c and modified */
static int do_autoassign(User * u, char *chan, char *nick)
{
BotInfo *bi;
ChannelInfo *ci;
if (readonly) {
return MOD_CONT;
}
else if (!chan || !nick) {
return MOD_CONT;
}
else if (!(bi = findbot(nick))) {
return MOD_CONT;
}
else if (bi->flags & BI_PRIVATE && !is_oper(u)) {
return MOD_CONT;
}
else if (!(ci = cs_findchan(chan))) {
return MOD_CONT;
}
else if (ci->flags & CI_VERBOTEN) {
return MOD_CONT;
}
else if ((ci->bi) && (stricmp(ci->bi->nick, nick) == 0)) {
return MOD_CONT;
}
else if ((ci->botflags & BS_NOBOT) || (!check_access(u, ci, CA_ASSIGN) && !is_services_admin(u))) {
return MOD_CONT;
}
else {
ci->bi = bi;
bi->chancount++;
#ifndef ForceBotJoinONReg
if (ci->c && ci->c->usercount >= BSMinUsers) {
bot_join(ci);
}
#else
if (ci->c && ci->c->usercount >= BSMinUsers) {
bot_join(ci);
}
else {
bot_join(ci);
send_cmd(ci->bi->nick, "PRIVMSG %s :I have been sucessfully assigned to this channel: %s.", ci->name, ci->name);
send_cmd(ci->bi->nick, "PRIVMSG %s :I shall join when there are more than %d users in this channel", ci->name, BSMinUsers);
send_cmd(ci->bi->nick, "PART %s", ci->name);
}
#endif
#ifdef BotAutoAssignMsg1
notice(s_ChanServ, u->nick, BotAutoAssignMsg1);
#endif
#ifdef BotAutoAssignMsg2
notice(s_ChanServ, u->nick, BotAutoAssignMsg2);
#endif
#ifdef BotAutoAssignMsg3
notice(s_ChanServ, u->nick, BotAutoAssignMsg3);
#endif
#ifdef BotAutoAssignMsg4
notice(s_ChanServ, u->nick, BotAutoAssignMsg4);
#endif
#ifdef BotAutoAssignMsg5
notice(s_ChanServ, u->nick, BotAutoAssignMsg5);
#endif
#ifdef BotAutoAssignMsg6
notice(s_ChanServ, u->nick, BotAutoAssignMsg6);
#endif
#ifdef BotAutoAssignMsg7
notice(s_ChanServ, u->nick, BotAutoAssignMsg7);
#endif
#ifdef BotAutoAssignMsg8
notice(s_ChanServ, u->nick, BotAutoAssignMsg8);
#endif
#ifdef BotAutoAssignMsg9
notice(s_ChanServ, u->nick, BotAutoAssignMsg9);
#endif
#ifdef BotAutoAssignMsg10
notice(s_ChanServ, u->nick, BotAutoAssignMsg10);
#endif
notice_lang(s_BotServ, u, BOT_ASSIGN_ASSIGNED, bi->nick, ci->name);
}
return 1;
}

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
belki, bsautoassign, bs_autoassign, isinize, işinize, modulu, yarar


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
webmasterler shellciler işinize yarar Site_Polisi Eggdrop, NeoStats, BNC 2 10 Nisan 2010 21:38
Unreal3.2.3 unrealircd.conf editi ben yaptım oldu inşallah işinize yarar online Unreal IRCd 15 26 Eylül 2008 12:22