npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

disco.io

v1.0.1

Published

uma lib facil de usar para criar bots

Readme

DiscoJS

DiscoJS é uma simples Livraria de programação de JavaScript para o Discord

Algumas de suas funções:

  • Comandos em pastas e subpastas (categorias)
  • Eventos na pasta
  • estrutura simples
  • Ser capaz de recarregar qualquer comando sempre que quiser
  • utilitários fáceis
  • Prefixo estático e personalizado
  • código aberto
  • Cooldown
  • Mais para vir ...

Inicio

Intalação Disco.io

npm i disco.io

Crie um arquivo principal para adicionar as opções
const { DiscoClient } = require('disco.io')

const client = new DiscoClient({
    ownerID: "owner-id", // --> Seu id
    localCommands: "./comandos", // --> Caminho para a pasta de comandos principal (não opcional)
    localEvents: "./eventos", // --> Caminho para a pasta de eventos (opcional)
    prefix: "!" // --> A prefix do seu bot

    /*
    No caso acima, o prefixo é estático, se eu quiser um personalizado, eu posso transpor isso
    em uma função, qual parâmetro único carrega um objeto de mensagem
    EX:

    prefix: async (message) => {
        let p = await (Aqui procuramos uma Database para a prefixo, ex uma prefixo)
        return p
    }

  Você sempre tem que devolver um valo

    */

})
client.login("Tokendo do seu bot")
Criação de um comando básico

Por exemplo,isso pode estar em ./commands/utilidade

const { Command } = require('disco.io')

module.exports = new Command ({
    name: "ping",
    description: "Um comando básico",
    category: "utilidade",
    usage: "!ping",

    // Aqui abaixo, é a utilidade do comando

    aliases: ["p", "pong"], // <-- por padrão é falso, não é necessário colocá-lo, você pode colocar tudo o que quiser, você não pode repetir
    oneOwner: false, // <-- por padrão é falso, não é necessário colocá-lo
    cooldown: [true , 20000, "Tens que esperar 20 Segundos"], // <--  Por padrão, é falso, não é necessário colocá-lo, mas se for feito, você tem que fazer uma Array com um tempo verdadeiro e ** se você quiser ** a mensagem que é enviada se tiver o cooldown ativo (pode ser incorporado), se a Array é falsa, é o mesmo que não ter (mas ela pode ser facilmente editada)
    permissionRequired: {
      permissions: ['ADMINISTRATOR'],
      message: 'Qualquer coisa aki'
    }, // Um objeto, que terá as permissões em uma matriz (obrigatório) e uma resposta que pode ser Embed
    
    run: (client, message , args) => {
        message.channel.send("Pong!")
    }
})
Criando um evento

Não pode haver subpastas em eventos, se houver, o Ginko irá ignorá-los.

const { Event } = require('disco.io')

module.exports = new Evento ({
    event: "message", // --> O nome do evento, outro exemplo: guildMemberAdd
    run: message => { 
    
    console.log('Nova menssagem ' + message.content)
        
    }
})

Sobre

Todas as informações dos comandos (uso, categoria, etc.) em client.commandUtil

Para recarregar um comando, ele é usado client.reloadCommand('nome') O nome deve ser o nome pelo qual o arquivo é salvo, somente o nome ou a extensão (.js) ou a pasta onde está localizado.**

client.util.getUser: Procurar por um objeto de usuário, dando-lhe um id, nome ou tag string como parâmetros

client.util.getMember: Encontre um objeto membro dando a ele como parâmetros um servidor e um id, nome ou tag de string

client.util.askMessage: Um awaitMessages simplificado, toma como parâmetros obrigatórios um canal, usuário, tempo, espera e dois arrays de resposta, o primeiro é positivo e o segundo é negativo (se aceita ou não)

** Se você usa um serviço VPS restrito, como o Glitch.com, é provável que o recarregamento do comando não funcione

Para fazer:

 - Adicione mais Utilitário  - Argumentos pré-fabricados

Vesão atual: v1.0.0