Гайд Вывод количества игроков на сервере в Discord ❤️

  • LauX
  • Заблокирован
  • 678
  • 12
  • 232
Контакты для связи отсутствуют.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот есть документация дискорда

Discord Developer Portal — API Docs for Bots and Developers


Для того что бы Дискорд не блокировал запросы с гарриса нужно использовать CHTT

GitHub - timschumi/gmod-chttp: A HTTP()-compatible wrapper for curl in...


Мой совет:
Если хочешь сделать что то подобное, то лучше делать отдельный сервис. То как я это реализовал на NodeJS+discord.js

Lua:
Gamedig.query({
        type: 'garrysmod',
        port: '27015',
        host: '[тут ip сервера]',
    }).then((state) => {
        bot.user.setActivity(`за NW | ${(state.players.length + state.bots.length) || 0}/${state.maxplayers}`, { type: 'WATCHING' })
        PlayersChan.setName(`Игроков: ${(state.players.length + state.bots.length) || 0}/${state.maxplayers}`)
    }).catch((error) => {
        bot.user.setActivity('за NW | Сервер офлайн', { type: 'WATCHING' })
        PlayersChan.setName(`Сервер офлайн 😟`)
    });
    

    if(bot.ServerStatusChannel){
        setInterval(() => {
            
            Gamedig.query({
                type: 'garrysmod',
                host: '[тут ip сервера]',
                port: '27015'
            }).then((state) => {
                let ServerStatus = new MessageEmbed()
                let Players = ''
                let Bots = ''

                state.players.forEach(player => {
                    if(player.name === undefined){
                        Players = Players + 'Не удалось определить имя' + '\n'
                    }else if(player.name.startsWith('||') || player.name.startsWith('*')){
                        Players = Players + '\\' + player.name + '\n'
                    }else{
                        Players = Players + player.name + '\n'
                    }
                })

                state.bots.forEach(player => {
                    if(player.name === undefined){
                        Bots = Bots + 'Не удалось определить имя' + '\n'
                    }else if(player.name.startsWith('||') || player.name.startsWith('*')){
                        Bots = Bots + '\\' + player.name + '\n'
                    }else{
                        Bots = Bots + player.name + '\n'
                    }
                })

                if(Players == '') Players = 'Игроки отсутствуют :(';
                if(Bots == '') Bots = 'Боты отсутствуют';

                ServerStatus
                    .setAuthor('Сервер онлайн!', 'https://cdn.discordapp.com/emojis/759467859239108668.gif?v=1')
                    .setColor('GREEN')
                    .setDescription(`🏡 IP сервера: **[тут ip сервера]:27015**\n👥 Заполненость сервера: **${(state.players.length + state.bots.length) || 0}**/${state.maxplayers}`)
                    .addField('🙍‍♂️ Игроки', Players, true)
                    .addField('🤖 Боты', Bots, true)
                    .addField('🗺 Карта', state.map)
                    .addField('⚡ Пинг', state.ping + 'ms')
                    .setFooter('Последнее обновление')
                    .setTimestamp()

                bot.ServerStatusChannel.edit('@everyone', ServerStatus)
                
                bot.user.setActivity(`за NW | ${(state.players.length + state.bots.length) || 0}/${state.maxplayers}`, { type: 'WATCHING' })
                PlayersChan.setName(`Игроков: ${(state.players.length + state.bots.length) || 0}/${state.maxplayers}`).catch(error => console.error(error))
                console.log('SERVER ONLINE. SEND TO DISCORD!')
            }).catch((error) => {
                console.error(error)
                let ServerStatus = new MessageEmbed()

                ServerStatus
                    .setAuthor('Сервер офлайн!', 'https://cdn.discordapp.com/emojis/759468043176378400.gif?v=1')
                    .setColor('RED')
                    .setDescription(`⚠ Мы уже работаем над решением проблемы!\nℹ Обратите внимание: Плановый рестарт сервера в 4:00 по МСК.`)
                    .setFooter('Последнее обновление')
                    .setTimestamp()

                bot.ServerStatusChannel.edit('@everyone', ServerStatus)

                bot.user.setActivity('за NW | Сервер офлайн', { type: 'WATCHING' })
                PlayersChan.setName(`Сервер офлайн 😟`)
                console.log('SERVER OFFLINE. SEND TO DISCORD!')
            });

        }, 5000)
    }

Код страый и вряд-ли будет работать сейчас, но попробуйте

Документация по discord.js:

discord.js.org

Огромный плейлист о том как делать ботов:
 
Активность
Пока что здесь никого нет
Сверху Снизу