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

>
+
Etiketlenen Kullanıcılar

5Beğeni(ler)
  • 4 Post By fatal
  • 1 Post By idyllic

 
 
LinkBack Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 14 Nisan 2025, 23:42   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
UnrealIRCd-6 // Oylama ile Ban Sistemi




Kanal genelinde oylama yapılarak ban atılmasına olanak sağlar.

Gerekli oy sayısını değiştirmek için REQUIRED_VOTES değerini güncelleyin.
Oylama süresini değiştirmek için VOTE_TIMEOUT değerini ayarlayın.
Ban maskesini özelleştirmek için ban komutunu değiştirin..


oylama.c

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include "unrealircd.h" #define REQUIRED_VOTES 3 #define VOTE_TIMEOUT 120 typedef struct { char *target; char *channel; int vote_count; char **voters; time_t start_time; } ActiveVote; static ActiveVote *active_vote = NULL; ModuleHeader MOD_HEADER = { "vote_ban", "1.0", "Vote ban system", "fatal", "unrealircd-6", }; int vote_ban_configtest(ConfigFile *cf, ConfigEntry *ce, int type, int *errs); int vote_ban_configposttest(int *errs); int vote_ban_configrun(ConfigFile *cf, ConfigEntry *ce, int type); CMD_FUNC(cmd_oyla); CMD_FUNC(cmd_evet); MOD_INIT() { CommandAdd(modinfo->handle, "OYLA", cmd_oyla, 1, CMD_USER); CommandAdd(modinfo->handle, "EVET", cmd_evet, 1, CMD_USER); return MOD_SUCCESS; } MOD_LOAD() { return MOD_SUCCESS; } MOD_UNLOAD() { if (active_vote) { free(active_vote->target); free(active_vote->channel); free(active_vote->voters); free(active_vote); } return MOD_SUCCESS; } CMD_FUNC(cmd_oyla) { if (active_vote) { sendnotice(client, "Zaten aktif bir oylama var!"); return; } if (parc < 2) { sendnotice(client, "Kullanim: /oyla nick"); return; } active_vote = safe_alloc(sizeof(ActiveVote)); active_vote->target = strdup(parv[1]); active_vote->channel = strdup(parv[parc-1]); // channel is last param active_vote->vote_count = 1; active_vote->voters = safe_alloc(sizeof(char *)); active_vote->voters[0] = strdup(client->name); active_vote->start_time = TStime(); sendto_channel(NULL, NULL, NULL, active_vote->channel, "Oylama basladi! %s banlanacak. Kabul ediyorsaniz /evet yazin. (Gerekli oy: %d)", active_vote->target, REQUIRED_VOTES); } CMD_FUNC(cmd_evet) { if (!active_vote) return; // Aynı kişi tekrar oy veremez for (int i = 0; i < active_vote->vote_count; i++) { if (!strcasecmp(active_vote->voters[i], client->name)) { sendnotice(client, "Zaten oy kullandiniz!"); return; } } active_vote->vote_count++; active_vote->voters = realloc(active_vote->voters, sizeof(char *) * active_vote->vote_count); active_vote->voters[active_vote->vote_count-1] = strdup(client->name); sendto_channel(NULL, NULL, NULL, active_vote->channel, "%s oy verdi. Toplam oy: %d/%d", client->name, active_vote->vote_count, REQUIRED_VOTES); if (active_vote->vote_count >= REQUIRED_VOTES) { // Ban işlemi Channel *channel = find_channel(active_vote->channel); if (channel) { Client *target = find_client(active_vote->target, NULL); if (target) { char banmask[512]; ircsnprintf(banmask, sizeof(banmask), "*!*@%s", target->user->realhost); do_mode(NULL, channel, 0, NULL, "+b", banmask); do_kick(NULL, channel, target, "Oylama sonucu banlandi."); } } // Oylamayı temizle for (int i = 0; i < active_vote->vote_count; i++) { free(active_vote->voters[i]); } free(active_vote->voters); free(active_vote->target); free(active_vote->channel); free(active_vote); active_vote = NULL; } }

Modülü derleyin.

unrealircd.conf

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
loadmodule "src/modules/third/oylama.so

UnrealIRCd'i yeniden başlatın.

__________________
die with memories, not dreams.

Konu fatal tarafından (14 Nisan 2025 Saat 23:47 ) değiştirilmiştir.
 
Alıntı ile Cevapla

 


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

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-6 // @OP Bildirim Sistemi fatal UnrealIRCD-6.x 2 15 Nisan 2025 09:19
!at nick oylama sistemi YouMyCure mIRC Parça Kodlar 7 02 Haziran 2016 10:26
Php ve Javascript ile Yildizli Oylama Sistemi hAte PHP 0 15 Ocak 2015 07:05