Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: NodeJS Bot
sen ne yaparsan herseye evet toprak adamsin kral
--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 12:26 -->-> Daha önceki mesaj 12:07 -- const irc = require('irc');
const config = {
channels: ['#kanalAdı'],
server: 'irc.sunucu-adresi.net',
botName: 'RadyoBot'
};
const bot = new irc.Client(config.server, config.botName, {
channels: config.channels
});
// Yönetici listesi
const adminList = ['AdminNick1', 'AdminNick2'];
const commandPrefix = "!";
let usersLastMessageTime = {};
// Flood koruması için zaman aralığı (milisaniye cinsinden)
const floodTimeout = 5000;
// Komutları yönet
bot.addListener('message', (from, to, message) => {
console.log(`${from} to ${to}: ${message}`);
// Flood kontrolü
const now = Date.now();
if (usersLastMessageTime[from] && (now - usersLastMessageTime[from] < floodTimeout)) {
bot.say(to, `Lütfen yavaş konuş ${from}, flood koruması devrede.`);
return;
}
usersLastMessageTime[from] = now;
// Komutları çalıştır
if (message.startsWith(commandPrefix)) {
const args = message.slice(commandPrefix.length).split(' ');
const command = args[0];
const target = args[1];
const reason = args.slice(2).join(' ') || 'Neden belirtilmedi.';
// Radyo Komutları
switch (command) {
case 'durum':
bot.say(to, 'Radyo yayını şu an aktif.');
break;
case 'calan':
bot.say(to, 'Şu anda çalan şarkı: "Şarkı Adı - Sanatçı Adı"');
break;
case 'dj':
bot.say(to, 'Şu an yayında olan DJ: DJ İsmi');
break;
case 'istek':
const request = args.slice(1).join(' ');
bot.say(to, `İsteğiniz alındı: ${request}`);
break;
}
// Yönetici Komutları (Sadece adminList içindeki kullanıcılar erişebilir)
if (adminList.includes(from)) {
switch (command) {
case 'op':
bot.send('MODE', to, `+o ${target}`);
bot.say(to, `${target} kullanıcısı operatör yapıldı.`);
break;
case 'deop':
bot.send('MODE', to, `-o ${target}`);
bot.say(to, `${target} kullanıcısının operatör yetkisi alındı.`);
break;
case 'kick':
bot.send('KICK', to, target, reason);
bot.say(to, `${target} kanaldan atıldı. Sebep: ${reason}`);
break;
case 'ban':
bot.send('MODE', to, `+b ${target}`);
bot.say(to, `${target} kullanıcısı yasaklandı.`);
break;
case 'unban':
bot.send('MODE', to, `-b ${target}`);
bot.say(to, `${target} kullanıcısının yasağı kaldırıldı.`);
break;
case 'topic':
const newTopic = args.slice(1).join(' ');
bot.send('TOPIC', to, newTopic);
bot.say(to, `Kanal konusu güncellendi: ${newTopic}`);
break;
default:
bot.say(to, `Bilinmeyen komut: ${command}`);
break;
}
} else if (['op', 'deop', 'kick', 'ban', 'unban', 'topic'].includes(command)) {
bot.say(to, `Üzgünüz ${from}, bu komutu kullanma yetkiniz yok.`);
}
}
});
// Kullanıcı kanala katıldığında, proxy ve clone kontrolü yapar
bot.addListener('join', (channel, nick, message) => {
console.log(`${nick} kanala katıldı: ${channel}`);
// Clone ve yasaklı IP kontrolü
if (message.host === "known-attack-host") {
bot.say(channel, `${nick} yasaklı bir IP'den bağlandığınız için atıldınız.`);
bot.send('KICK', channel, nick, 'Yasaklı IP adresi.');
}
});
// Kullanıcı izleme ve flood koruması için zamanlayıcı
setInterval(() => {
usersLastMessageTime = {};
}, floodTimeout);
--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 12:26 -->-> Daha önceki mesaj 12:26 -- böyler birsey olsa süper olur toprak baba
--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 12:26 -->-> Daha önceki mesaj 12:26 -- böyler birsey olsa süper olur toprak baba
--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 12:26 -->-> Daha önceki mesaj 12:26 -- böyler birsey olsa süper olur toprak baba |