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

>
+
Etiketlenen Kullanıcılar

4Beğeni(ler)
  • 2 Post By fatal
  • 1 Post By zAZ
  • 1 Post By eFe

 
 
LinkBack Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 15 Nisan 2025, 10:21   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
UnrealIRCd-6 // Badnickleri tüm kanallardan çıkartıp, belirlediğiniz kanala sokun.




Bu modül sayesinde belirlediğiniz kanallara giren veya nick değiştiren kullanıcıların nickleri otomatik olarak kontrol edilecek ve uygunsuz içerik tespit edilirse belirlediğimiz kanallardan çıkartılıp #Badnick kanalına yönlendirecek, ayrıca #Log kanalına yapılan işlem bildirilecektir.

monitored_channels dizisini kontrol edilecek kanallarla güncelleyin.
QUARANTINE_CHANNEL ve LOG_CHANNEL sabitlerini kendi kanal isimlerinizle değiştirin.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include "unrealircd.h" #define MODULE_NAME "badnick" #define MODULE_VERSION "1.0" #define BADWORDS_CONFIG_FILE "conf/badwords.conf" #define QUARANTINE_CHANNEL "#Badnick" #define LOG_CHANNEL "#Log" ModuleHeader MOD_HEADER = { MODULE_NAME, MODULE_VERSION, "Badnick Kontrol", "fatal", "unrealircd-6", }; // Kötü kelimeler listesi char **badwords = NULL; int badwords_count = 0; // Yapılandırma fonksiyonları int badnick_configtest(ConfigFile *cf, ConfigEntry *ce, int type, int *errs); int badnick_configposttest(int *errs); int badnick_configrun(ConfigFile *cf, ConfigEntry *ce, int type); // Olay dinleyicileri int badnick_user_join(Client *client, Channel *channel, char *key, char *parv[]); int badnick_user_nick(Client *client, const char *newnick); MOD_INIT() { // Kötü kelimeleri yükle load_badwords(); // Hook'ları kaydet HookAdd(modinfo->handle, HOOKTYPE_LOCAL_JOIN, 0, badnick_user_join); HookAdd(modinfo->handle, HOOKTYPE_LOCAL_NICKCHANGE, 0, badnick_user_nick); return MOD_SUCCESS; } MOD_LOAD() { return MOD_SUCCESS; } MOD_UNLOAD() { // Belleği temizle if (badwords) { for (int i = 0; i < badwords_count; i++) free(badwords[i]); free(badwords); } return MOD_SUCCESS; } void load_badwords() { FILE *file = fopen(BADWORDS_CONFIG_FILE, "r"); if (!file) { config_error("Badwords dosyasi acilamadi: %s", BADWORDS_CONFIG_FILE); return; } char line[256]; while (fgets(line, sizeof(line), file)) { // Yorum satırlarını ve boş satırları atla if (line[0] == '#' || line[0] == '\n') continue; // Satır sonundaki newline karakterini kaldır line[strcspn(line, "\n")] = 0; // Bellek ayır ve listeye ekle badwords = realloc(badwords, (badwords_count + 1) * sizeof(char*)); badwords[badwords_count] = strdup(line); badwords_count++; } fclose(file); } int contains_badword(const char *text) { char ltext[256]; strlcpy(ltext, text, sizeof(ltext)); strtolower(ltext); for (int i = 0; i < badwords_count; i++) { if (strstr(ltext, badwords[i])) { return 1; } } return 0; } int badnick_user_join(Client *client, Channel *channel, char *key, char *parv[]) { // Kanal kontrolü (sadece belirli kanallarda çalışsın) const char *monitored_channels[] = {"#sohbet", "#radyo", NULL}; int is_monitored = 0; for (int i = 0; monitored_channels[i]; i++) { if (!strcasecmp(channel->name, monitored_channels[i])) { is_monitored = 1; break; } } if (!is_monitored) return 0; // Nick kontrolü if (contains_badword(client->name)) { // Kullanıcıyı kanaldan çıkar sendto_channel(NULL, NULL, NULL, channel->name, "KICK %s %s :Uygunsuz nick kullanimi", channel->name, client->name); // Karantina kanalına ekle sendto_one(client, NULL, ":%s JOIN %s", client->name, QUARANTINE_CHANNEL); sendto_server(NULL, 0, 0, NULL, ":%s JOIN %s", client->name, QUARANTINE_CHANNEL); // Log kanalına bildir sendto_channel(NULL, NULL, NULL, LOG_CHANNEL, "NOTICE %s :Uygunsuz nick tespit edildi: %s (%s) -> %s", LOG_CHANNEL, client->name, client->user->realhost, QUARANTINE_CHANNEL); return 0; } return 0; } int badnick_user_nick(Client *client, const char *newnick) { if (contains_badword(newnick)) { // Nick değişimini engelle sendnotice(client, "Bu nick uygun degil. Lutfen baska bir nick secin."); return HOOK_DENY; } return 0; }

badwords.conf

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
# Kötü kelimeler listesi # Her satıra bir kelime küfür1 küfür2 cinsel1 uygunsuznick5


__________________
die with memories, not dreams.
 
Alıntı ile Cevapla

 


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
UnrealIRCd-4 Atılan banları kanala yansıtmak. dEathLeSs Parca Kodlar 0 02 Aralık 2017 22:51
eggdrop badnickleri misafir436 cevirme alphae Eggdrop, NeoStats, BNC 0 21 Mayıs 2017 14:23
Badnickleri değiştirme hakkında byblood Servisler 3 21 Ekim 2010 18:39
Tüm KanaLLardan Çıkartıp Shun atmak. desirouS mIRC Scripting Sorunları 7 26 Ağustos 2006 00:02