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

>
+
Etiketlenen Kullanıcılar

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

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
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

IRCForumlari.NET Reklamlar
sohbet odaları sohbet bizimmekan reklamver
Alt 14 Nisan 2025, 23:54   #2
Çevrimiçi
farkındayım ama farketmez =)
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: UnrealIRCd-6 // Oylama ile Ban Sistemi




emeğinize sağlık @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

__________________
rüyalar bile kaçıyor artık benden.
uykularım, mezar taşları gibi soğuk.
her sabah dirilmek zorunda kalmak,
ölmekten daha yorgun bir iştir.
kendimi her gün yeniden gömüyorum,
yaşamak bahanesiyle.

Kullanıcı imzalarındaki bağlantı ve resimleri görebilmek için en az 20 mesaja sahip olmanız gerekir ya da üye girişi yapmanız gerekir.
 
Alıntı ile Cevapla

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-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

×