Kod v14 Gelişmiş Sunucu Bilgisi

fearless_crazy
Katılım
14 Nis 2025
Mesajlar
1
Tepkime puanı
0
Şehir
Ankara
JavaScript:
"use strict";

const {
    EmbedBuilder,
    ChannelType,
    GuildDefaultMessageNotifications
} = require("discord.js");

exports.run = async (client, message, args) => {
    const {
        guildId,
        guild,
    } = message;

    // Sunucu resimleri
    const guildIcon = guild.iconURL({ extension: "png", forceStatic: false, size: 1024 });
    const guildBanner = guild.bannerURL({ extension: "png", forceStatic: false, size: 1024 });
    const guildSplash = guild.splashURL({ extension: "png", forceStatic: false, size: 1024 });
    const guildDiscoverySplash = guild.discoverySplashURL({ extension: "png", forceStatic: false, size: 1024 });

    // Sayılabilen veriler
    const allMembers = guild.members.cache;
    const allEmojis = guild.emojis.cache;
    const allBots = allMembers.filter(member => member.user.bot);
    const allChannels = guild.channels.cache;
    const allRoles = guild.roles.cache.clone();
    const animatedEmojis = allEmojis.filter(emoji => emoji.animated);
    const channelsCount = {
        text: 0,
        voice: 0,
        category: 0,
        others: 0
    };
    const statusCount = {
        total: 0,
        online: 0,
        idle: 0,
        dnd: 0,
        offline: 0
    };

    // Bütün üyelerde dolaş ve durum sayılarını kaydet
    allMembers.forEach(member => {
        if (!member.presence || member.presence.status === "offline") statusCount.offline += 1;
        else {
            statusCount[member.presence.status] += 1;
            statusCount.total += 1;
        }
    });


    // Bütün kanallarda dolaş ve kanal sayılarını kaydet
    allChannels.forEach(channel => {
        switch (channel.type) {
            case ChannelType.GuildText:
                channelsCount.text += 1;
                break;

            case ChannelType.GuildVoice:
                channelsCount.voice += 1;
                break;

            case ChannelType.GuildCategory:
                channelsCount.category += 1;
                break;

            default:
                channelsCount.others += 1;
                break;
        }
    });

    allRoles.delete(guildId);

    const createdTimestampWithSeconds = Math.round(guild.createdTimestamp / 1000);

    const basicInformation = [
        `🆔 **Sunucu ID'si:** ${guildId}`,
        `📅 **Sunucu kuruluş tarihi:** <t:${createdTimestampWithSeconds}:F> - <t:${createdTimestampWithSeconds}:R>`,
        `🔔 **Sunucu varsayılan mesaj bildirimleri:** ${guild.defaultMessageNotifications == GuildDefaultMessageNotifications.AllMessages ? "Tüm mesajlar 📬" : `Sadece etiketler 🎭`}`
    ];

    // Eğer sunucunun özel daveti varsa onu da ekle
    const vanityData = await guild.fetchVanityData().catch(() => { });
    if (vanityData) basicInformation.push(`✉️ **Sunucunun özel daveti:** https://discord.gg/${vanityData.code} - (${vanityData.uses})`);

    // Sunucunun afk kanalı veya kurallar kanalı varsa onu da ekle
    if (guild.afkChannel) basicInformation.push(`🔇 **AFK kanalı:** <#${guild.afkChannelId}> (${guild.afkTimeout} saniye)`);
    if (guild.rulesChannel) basicInformation.push(`📕 **Kurallar kanalı:** <#${guild.rulesChannel}>`);

    basicInformation.push(`👑 **Sunucu sahibi:** <@${guild.ownerId}> - (${guild.ownerId})`);

    // Sayıyı insanlaştırmak için kullanılan fonksiyon
    function toHumanize(number) {
        return number?.toLocaleString("tr-TR");
    }

    const MAX_SHOW_ROLE_IN_INFO = 40;

    const embed = new EmbedBuilder()
        .setAuthor({
            name: guild.name,
            iconURL: guildIcon
        })
        .addFields(
            {
                name: "TEMEL BİLGİLER",
                value: basicInformation.join("\n")
            },
            {
                name: `KANALLAR (${toHumanize(allChannels.size)})`,
                value: `📃 **Yazı kanalı:** ${toHumanize(channelsCount.text)}\n` +
                    `🔊 **Ses kanalı:** ${toHumanize(channelsCount.voice)}\n` +
                    `🖇️ **Kategori:** ${toHumanize(channelsCount.category)}\n` +
                    `🎞️ **Diğer kanallar:** ${toHumanize(channelsCount.others)}`,
                inline: true
            },
            {
                name: `ÜYELER (${toHumanize(allMembers.size)})`,
                value: `👥 **Üye sayısı:** ${toHumanize(allMembers.size - allBots.size)}\n` +
                    `🤖 **Bot sayısı:** ${toHumanize(allBots.size)}`,
                inline: true
            },
            {
                name: `DURUMLAR (${toHumanize(statusCount.total)})`,
                value: `🟢 **Çevrimiçi:** ${toHumanize(statusCount.online)}\n` +
                    `🟡 **Boşta:** ${toHumanize(statusCount.idle)}\n` +
                    `🔴 **Rahatsız etmeyin:** ${toHumanize(statusCount.dnd)}\n` +
                    `⚫ **Çevrimdışı:** ${toHumanize(statusCount.offline)}`,
                inline: true
            },
            {
                name: `EMOJİLER (${allEmojis.size})`,
                value: `🧱 **Animasyonsuz emojiler:** ${allEmojis.size - animatedEmojis.size}\n` +
                    `💫 **Animasyonlu emojiler:** ${animatedEmojis.size}`
            },
            {
                name: "BOOST BİLGİLERİ",
                value: `💖 **Boost basan kişi sayısı:** ${allMembers.filter(member => member.premiumSinceTimestamp).size}\n` +
                    `🚀 **Basılan boost sayısı:** ${guild.premiumSubscriptionCount || "0"}\n` +
                    `📈 **Boost seviyesi:** ${guild.premiumTier} level`,
                inline: true
            },
            {
                name: "FOTOĞRAFLAR",
                value: `🖥️ **Profil fotoğrafı:** ${guildIcon ? `[ [URL] ](${guildIcon})` : "~~[URL]~~"}\n` +
                    `🖼️ **Banner:** ${guildBanner ? `[ [URL] ](${guildBanner})` : "~~[URL]~~"}\n` +
                    `💌 **Davet arka planı:** ${guildSplash ? `[ [URL] ](${guildSplash})` : "~~[URL]~~"}\n` +
                    `📡 **Keşfetme arka planı:** ${guildDiscoverySplash ? `[ [URL] ](${guildDiscoverySplash})` : "~~[URL]~~"}`,
                inline: true
            },
            {
                name: `🎭 ROLLER (${toHumanize(allRoles.size)})`,
                value: [...allRoles.values()]
                    .sort((a, b) => b.position - a.position)
                    .slice(0, MAX_SHOW_ROLE_IN_INFO)
                    .map(role => `<@&${role.id}>`)
                    .join(" | ") +
                    (allRoles.size > MAX_SHOW_ROLE_IN_INFO ? ` +${toHumanize(allRoles.size - MAX_SHOW_ROLE_IN_INFO)} daha rol...` : ""),
            })
        .setThumbnail(guildIcon)
        .setColor("Blue")
        .setTimestamp()

    return message.reply({
        embeds: [
            embed
        ]
    });

};

exports.conf = {
    enabled: true,
    guildOnly: true,
    aliases: ['sunucubilgi', 'sunucubilgi', 'sbilgi', 'sunucubilgisi'],
    permLevel: 0
}

exports.help = {
    name: 'sunucubilgi',
}

Ekran görüntüsü 2025-04-14 142438.png
 

Konuyu 1 kişi okuyor. (0 kayıtlı üye ve 1 ziyaretçi)

Benzer konular

  • Bilgi