-
-
Notifications
You must be signed in to change notification settings - Fork 177
🚀 Tutorial de Edição
[✨ DICAS PARA COMEÇAR]
-
Não mexa nas áreas sem edição: Evite modificar partes não editadas. Adicione e edite apenas as seções relevantes, como a
object results
. -
Pasta: A pasta do tutorial é o seu melhor amigo, apenas copie e cole onde for desenvolver e comece por lá.
-
Diálogos: Coloque os diálogos no
dialogues.db
usando um Editor SQL. Lembre-se dos diversos idiomas e, se necessário, utilize tradutores, mas revise as frases que está inserindo antes de terminar. -
Dúvidas: Se houver dúvidas, pergunte para os DEVs! A clareza é essencial para evitar erros.
-
Aprenda com Exemplos: Utilize os exemplos fornecidos para entender o formato esperado, ou seja, abra um arquivo qualquer que use envInfo e analise.
-
Object, Array, Null e outros: Seja preciso ao descrever se é um Object, Array, Null ou outros.
-
Comentários no Código: Comente todas as linhas, se possível. Caso contrário, programe e eu adicionarei os comentários eu mesmo, não exagere neles, faça igual estou fazendo.
-
Nome da Pasta: A pasta deve ter o mesmo nome do comando, pois será usada como alias.
-
Symlinks.json: Para adicionar aliases a functions, modifique o arquivo
symlinks.json
emlib\Databases\Configurations
.
[🖊️ CONFIGURAÇÃO DO ARQUIVO INDEX.JS]
-
Comece a Programar: O código JavaScript já possui instruções a cada linha. Comece onde está indicado e configure a
utils.json
após programar seu comando. -
Sistema Pronto: Cada comando tem sistemas isolados. Mantenha o código limpo. Pode usar o mesmo nome e descrição em todos, mas evite sempre que puder.
-
Nome da Função: Escolha um nome relevante para a função em vez de deixar
myFunction
como padrão. -
ResetAmbient: Ao final, na função
resetAmbient
, configureenvInfo.functions
com os dados das etapas 1.07 e 1.12. Um código pré-pronto está lá, basta trocar o nome com o nome da function que você criou acima. -
Funções Adicionais: Se criar funções extras, inclua-as em
envInfo
para acessá-las em outros arquivos, basta definir seu nome, inserir naexports
dautils.json
e também nafunctions
do mesmo, na dúvida, siga o exemplo damyFunction
.
[➕ CONFIGURAÇÃO DO ARQUIVO .OTHER]
-
Categoria do Menu: O arquivo '.other' define a categoria ao consultar o menu. Personalize conforme necessário, por exemplo, renomear para '.other games anime' adicionará o comando ao menu de 'other', 'games' e 'anime'.
-
Formato do Menu: O menu é construído automaticamente com base no sistema Bash. Adicione um novo comando inserindo um arquivo com o nome da categoria desejada na pasta, se quiser manter o comando oculto, apague o arquivo '.other'.
-
Filtros de Comando: Você pode obter menus específicos como 'utils' e 'index' ao filtrar comandos. Por exemplo, '/menu utils' buscará comandos que utilizem o sistema de envInfo, por conta do arquivo
utils.json
na pasta.
[📁 CONFIGURAÇÃO DO ARQUIVO UTILS.JSON]
Ao abrir o arquivo "utils.json", atente-se ao campo "name" na primeira linha. Escolha um nome relevante, pois será utilizado na geração automática do module.exports
. Por exemplo, se definir "Ping", a função no Node será automaticamente: functions.Ping.execute(...)
. Não é necessário modificar isso após a configuração inicial, a menos que seja desejado.
- Uso: String
- Exemplo: "Ping"
- Pode ser Modificado: Sim, com cuidado.
A descrição é autoexplicativa e será exibida no '--help' do comando. Elabore uma descrição clara e inicie com algo que combine com 'por', pois na ajuda, a frase será precedida por essa palavra.
- Uso: String
- Exemplo: "Ajudar a calcular o tempo de resposta e execução"
- Pode ser Modificado: Sim.
Esta é a forma geral de uso, um resumo que deve incluir o '[Prefix][Comando]'. Modifique apenas os argumentos e valores na frente dele.
- Uso: String
- Exemplo: "[Prefix][Comando] [--help|--help-dev|--show|--show --secret|None]"
- Pode ser Modificado: Somente adicionar informações novas ou substituir as não relacionadas.
Os exemplos de uso do comando podem ser adicionados conforme necessário. Lembre-se de resumir, pois todos os exemplos serão incluídos no '--help'.
- Uso: Array de Strings
-
Exemplo:
["/Ping"]
- Pode ser Modificado: Somente adicionar novos exemplos.
Você pode sublicenciar seu comando, mas mantenha o arquivo de licença seu dentro da pasta. Se desejar manter a licença da Íris, deixe como 'MIT'.
- Uso: String
- Exemplo: "MIT"
- Pode ser Modificado: Sim.
As dicas do comando são importantes. Mantenha as 5 primeiras, se desejar. Adicione outras dicas relevantes.
- Uso: Array de Strings
-
Exemplo:
["Dica ou conselho sobre como usar, efeitos ou demais"]
- Pode ser Modificado: Somente adicionar novas dicas.
Os nomes das funções que estarão na module.exports
são definidos aqui. Se estiver adicionando uma função extra, adicione-a seguindo o formato abaixo. Mantenha os padrões para os mesmos valores já existentes.
-
Uso: Object de keys e valores que controlam a
module.exports
-
Exemplo:
{ "nomeBase": "nomeReal" }
- Pode ser Modificado: Somente adicionar novas funções.
Insira seu nome, indicando quem criou o comando.
- Uso: String
- Exemplo: "KillovSky"
- Pode ser Modificado: Sim.
Defina quais arquivos estão dentro da pasta do comando. Isso é utilizado no '--help-dev'. Adicione novos arquivos, se necessário.
- Uso: Object de keys e valores que definem os arquivos da pasta
-
Exemplo:
{"NomeDoArquivo": "Descrição do que ele faz"}
- Pode ser Modificado: Somente adicionar novas informações.
Aqui você define quais módulos está utilizando, inclusive os da Íris com identificação local. Documente os módulos utilizados.
- Uso: Object de keys e valores que definem os requires ou JSON's utilizados
-
Exemplo:
{"NomeOuLocalDoArquivoOuModulo": "Descrição do que ele faz"}
- Pode ser Modificado: Somente adicionar novas informações.
Esta seção é essencial para tornar a função à prova de falhas. Os parâmetros aqui são utilizados como valores padrão, caso o enviado não seja válido. Mantenha a mesma arquitetura e adicione novos detalhes, se necessário. Abaixo estão os elementos padrão:
- Uso: Object com detalhes em formato de Object
-
Exemplo:
{ "nomeBase": { "arguments": { "argumentoSeHouverOuInsiraFalse": { "description": "Descrição do que é esse argumento", "type": "O tipo dele", "value": "Um valor padrão, caso o usuário não envie" } }, "description": "Descrição do que a função faz", "type": "O tipo de valor que vai estar nela futuramente", "value": "Um valor padrão" } }
- Exemplo2:
{ "nomeBase": { "arguments": false, "description": "Descrição do que a função faz", "type": "O tipo de valor que vai estar nela futuramente", "value": "Um valor padrão" } }
- Pode ser Modificado: Somente adicionar novas informações.
A key da object inicial deve ser igual ao exemplo do tópico 1.07, ou seja, o mesmo nomeBase da função na module.exports
. Por exemplo, se você usou "exec", coloque "exec" aqui.
-
Uso: String com mesmo nomeBase da função na
module.exports
- Exemplo: "parser"
Defina uma Object com os detalhes de cada argumento que sua função carrega, descrevendo-os da mesma forma que a função. O nome da key dessa Object deve ser o nome do argumento que você importou/exportou. Por exemplo, se você está importando "kill", então aqui também deve ser "kill".
- Uso: String com mesmo nome da função importada/exportada
- Exemplo: "kill"
O tipo de argumento que você está recebendo. Por exemplo, se o "kill" é uma Object de funções, digite "Object". Se você definiu um valor padrão diferente do que espera receber, insira também isso (por exemplo, "Boolean / Object").
- Uso: String
- Exemplo: "Typeof"
O valor padrão do argumento que você quer receber. Se o usuário não enviar um ou se você não receber um, este valor será usado como argumento da função.
- Uso: Tudo que for válido em JSON's
- Exemplo: 123
A descrição do que sua função faz. Seja breve ou detalhado, conforme necessário.
- Uso: String
- Exemplo: "Ajusta os valores de erro."
O tipo de valor que será definido nessa função. Pode ser "Boolean / Function" ou qualquer tipo que você espera.
- Uso: String
- Exemplo: "Boolean / Function"
O valor padrão. Como estamos falando de functions, insira "false" ou o valor que preferir. Lembre-se de definir o tipo na seção "Type" acima.
- Uso: Tudo que for válido em JSON's
- Exemplo: false
Uma object com configurações do que cada função tem permissão ou não de fazer, como imprimir erros, resetar, tempo para isso, etc. Mantenha as configurações padrão e adicione novas conforme necessário.
- Uso: Object com detalhes em formato de Object
-
Exemplo:
{ "nomeDaConfig": { "description": "Descrição do que ela faz", "type": "O tipo dela", "value": "O valor padrão dessa configuração" } }
- Pode ser Modificado: Somente adicionar novas configurações.
O nome da configuração. Não importa para o resto do sistema, mas será usado por você, então dê um nome coerente.
- Uso: String
- Exemplo: "reconnect"
A descrição dessa configuração, ou seja, o que ela define no seu código.
- Uso: String
- Exemplo: "Define se deve reconectar a cada finalização."
O tipo de configuração que ele é, ou seja, o tipo de valor que vai hospedar nisso.
- Uso: String
- Exemplo: "Number"
O valor padrão dessa configuração. Lembre-se de inserir o tipo correto no "Type" acima.
- Uso: Tudo que for válido em JSON's
- Exemplo: 8000
Alguns parâmetros adicionais em forma de Object, utilizados no código como valores padrões de alguma coisa.
- Uso: Object com detalhes em formato de Object
-
Exemplo:
{ "nomeDoParametro": { "description": "Descrição do que ele é", "type": "O tipo dele", "value": "O valor de fábrica dele" } }
- Pode ser Modificado: Somente adicionar novos parâmetros.
O nome da key deve ser o mesmo usado na variável que você utiliza no código. Por exemplo, se sua constante se chama "leveling", então aqui também deve ser "leveling".
- Uso: String
- Exemplo: "details"
A descrição desse parâmetro, ou seja, o que ele faz no seu código.
- Uso: String
- Exemplo: "Armazena a mensagem do último erro recebido."
O tipo de valor que você está armazenando no parâmetro.
- Uso: String
- Exemplo: "Array"
O valor padrão do seu parâmetro. Ele pode ser editado em tempo real usando a envInfo
.
- Uso: Tudo que for válido em JSON's
-
Exemplo:
{ "mickeyMouse": true }
O lugar onde o resultado final é inserido. Os comandos e funções sempre retornam esta Object para quem executa, sendo assim, um await Funcao()
nunca retorna um vazio, mas sim a envInfo
do sistema executado.
- Uso: Object com detalhes em formato de Object
-
Exemplo:
{ "description": "Descrição do que é isso", "success": "Define se foi um sucesso", "type": "Define o tipo de valor recebido", "value": "O valor retornado na execução" }
- Não Pode ser Modificado: Não.
A descrição do que é esta object, já configurado com melhor valor.
- Uso: String
- Exemplo: "Armazena a mensagem do último erro recebido."
Define se a função executou com sucesso, por padrão retorna que sim para evitar erros.
- Uso: String
- Exemplo: "details"
O tipo de valor retornado pela execução.
- Uso: String
- Exemplo: "Boolean"
O valor retornado pela execução.
- Uso: Tudo que for válido em NodeJS
- Exemplo: 666