Skip to content

Repository files navigation

Cain Lin - Queen Medusa

𓊈𒆜 CAIN LIN 彩鳞 𒆜𓊉

Queen Medusa • Base WhatsApp ESM + Boruto Baileys v7

Typing SVG

Autor Node Baileys ESM

stars forks whatsapp rpg menus antiflood youtube

video github

cain_lin • client interno oficial • Boruto Baileys v7 • Pairing Code Custom

!menu!menurpg!menuclans!menuadm!menudono!menuinfo!menusistemas!menuferramentas


🎬 Vídeo🚀 Instalação📱 Conectar🎮 RPG⚙️ Comandos🛡️ Sistemas📚 Docs


🐍 Showcase Oficial • Queen Medusa UI

💜 MENU PRINCIPAL
Hub interativo Cain Lin

menu principal
!menu
👑 PAINEL ADMIN
Controle total de grupos

menu adm
!menuadm
🐉 RPG / CULTIVO
Donghua system completo

menu rpg
!menurpg
⚔️ CLANS / SEITAS
Organizações, guerras, territórios

menu clans
!menuclans
🔮 SISTEMAS
Anti-link, X9, Anti-fake, Logs

menu sistemas
!menusistemas
🛠️ FERRAMENTAS
Sticker, toimg, togif, dev tools

menu ferramentas
!menuferramentas
👑 MENU DONO
Bot ON/OFF, broadcast, eval

menu dono
!menudono
ℹ️ MENU INFO
Botinfo, ping, criador, status

menu info
!menuinfo

UI Premium 100% Cain Lin • Roxo serpente • Gold real • Medusa Crown • 1920x1080 • Baileys Interactive Native Flow


🎬 Demonstração em Vídeo • Cain Lin Bot

🐍 ASSISTA A RAINHA MEDUSA EM AÇÃO 🐍

Cain Lin Bot - Demonstração Oficial

YouTube



YouTube Channel Assistir Demo Inscreva-se


💜 Curtiu? Deixe seu LIKE e INSCREVA-SE!
Ative o 🔔 para não perder atualizações da Queen Medusa!

youtube subs views


📺 Playlist Oficial Cain Lin

# Vídeo Duração Link
1 🐍 Cain Lin – Instalação completa Termux + VPS 12:34 Assistir ▶️
2 🎮 RPG Donghua – Do Mortal ao Lenda Cai Lin 18:20 Assistir ▶️
3 ⚔️ Clans, Seitas e Guerra de Organizações 15:10 Assistir ▶️
4 🛡️ Todos os Antis – Anti-link, Anti-fake, X9 22:05 Assistir ▶️
5 🧊 Stickers Premium – !s !f !take !toimg 8:45 Assistir ▶️

🔧 Para configurar seu vídeo:
Substitua SEU_VIDEO_AQUI pelo ID do seu vídeo YouTube
Ex: https://youtu.be/dQw4w9WgXcQ → ID = dQw4w9WgXcQ
Também troque SEU_CANAL pelo @ do seu canal


🔥 Por que Cain Lin?

Sistema Status Detalhe
🐍 Boruto Baileys v7 ✅ Full @boruto_vk7/baileys latest, ESM puro
👑 Personalidade Queen Medusa 彩鳞 • frases, console, welcome temático
🎮 RPG Donghua Completo ✅ ULTRA 11 reinos • linhagens • técnicas • pets • artefatos • ascensão
⚔️ Clans / Seitas / Alianças Guerra org • territórios • diplomacia • cofre
🛡️ X9 Ampliado Apagadas • editadas • participantes • admin • anti-link
📡 Canais / Newsletter @newsletter nativo
🎨 8 Menus UI Premium Thumbs locais + fallback remoto CDN
🔄 LID ↔ JID System Conversão automática WhatsApp moderno
🧩 Interativos Nativos buttons • list • nativeFlow • poll • album
📊 !ping Diagnóstico Real 10s live edit • rede • CPU • RAM • download Mbps
🧊 Stickers Full !s full 512 • !f proporção • !take • EXIF
🔐 Anti Systems x14 link • fake • flood • call • pv • viewonce • payment • mídia...
🧠 Cache Inteligente ✅ TTL groups • contacts • messages • lid • commands
🖼️ Welcome Canvas Zero Two premium-welcome / goodbye API

🚀 Instalação Ultra Rápida

# 1. Clone
git clone https://github.com/Otakump4/cai-lin-bot.git
cd cai-lin-bot

# 2. Requisitos (Termux)
pkg update -y && pkg upgrade -y
pkg install nodejs git bash ffmpeg libwebp -y

# Node >=22 recomendado
node -v

# 3. Instalar
npm install

# 4. Configurar
cp .env.example .env
nano .env

⚙️ .env Essencial

# IDENTIDADE
PREFIX=!
NUMERO_DONO=5591999999999
NOME_DONO=Lucas Mod Domina
NOME_BOT=Cain Lin
SESSION_NAME=cain_lin

# BAILEYS / BROWSER
PAIRING_ENABLED=true
PAIRING_USE_CUSTOM_CODE=true
PAIRING_CUSTOM_CODE=CAILINO1
BROWSER_PLATFORM=macOS
BROWSER_NAME=Google Chrome
LOG_LEVEL=silent

# MENUS / MIDIA
MENU_MEDIA_BASE_URL=
MENU_FALLBACK_IMAGE_URL=

# STICKER
STICKER_PACKNAME=Cain Lin (彩鳞)
STICKER_AUTHOR=Lucas Mod Domina
STICKER_CATEGORY=Cain Lin Bot
STICKER_EMOJIS=🐍,💜,👑

# ZERO TWO CANVAS
ZEROSITE=https://zero-two-apis.store
API_KEY_ZEROTWO=Tang San

# LINKS OFICIAIS
ZERO_TWO_STORE_NOME=Zero Two Store
ZERO_TWO_STORE_LINK=https://wa.me/601164286801?text=*menu
CHANNEL_ID=120363404952584770@newsletter
CHANNEL_LINK=https://whatsapp.com/channel/0029Va6riekH5JLwLUFI7P2B
CHANNEL_NOME=🫧 𝗖𝗢𝗡𝗡𝗘𝗖𝗧𝗘𝗗 𝗖𝗢𝗡𝗧𝗘Ú𝗗𝗢𝗦 🫧
GROUP_LINK=https://chat.whatsapp.com/FdiHHOb8gvDDK8hu5YIPLk?mode=ems_copy_t
GROUP_NOME=🫧 𝗖𝗢𝗡𝗡𝗘𝗖𝗧𝗘𝗗 𝗖𝗢𝗡𝗧𝗘Ú𝗗𝗢𝗦 🫧

# SISTEMA
COMMAND_COOLDOWN_MS=2500
ANTI_FLOOD_LIMIT=6
ANTI_FLOOD_WINDOW_MS=8000
AUTO_READ_GROUPS=true
SYNC_FULL_HISTORY=false
MARK_ONLINE=true

📱 Conexão Baileys v7

Modo Comando Ideal para
QR Code sh start.sh / sh start.sh qr / npm run start:qr PC / VPS rápido
Pairing Code sh start.sh sim Termux / Servidor sem tela
Pairing + Número sh start.sh sim 5591999999999 Automático
NPM Pairing npm run start:sim -- --number=5591999999999 NPM users

Pairing Code Custom:

PAIRING_USE_CUSTOM_CODE=true
PAIRING_CUSTOM_CODE=CAILINO1

Código de 8 caracteres alfanuméricos • WhatsApp: Dispositivos conectados → Conectar com número de telefone

Sessão salva em: sessao/cain_lin/


🎮 RPG Donghua • Cultivo Completo



11 Reinos • 14+ Linhagens • 6 Elementos • Profissões • Técnicas • Artefatos • Pets • Dungeons • Ascensão

🌀 Reinos de Cultivo

Mortal sem Qi → Discípulo do Qi → Praticante de Dou Qi → Mestre de Escamas
→ Grande Mestre Serpentino → Espírito Medusa → Rei/Rainha Dou → Imperador Dou
→ Ancestral Serpente Celestial → Soberano das Sete Cores → Lenda Cai Lin

⚡ Sistemas RPG

Módulo Comandos Destaque
Personagem / Linhagem !personagem medusa • alquimista • espadachim • guardiao • besta • fantasma • jovem_alquimista • mestre_ancestral • princesa_serpente • guerreiro_yun • mercenario_deserto • herdeiro_cla • espirito_chama • guardia_real
Elementos !elemento fogo • veneno • raio • vento • terra • agua
Profissões !profissao alquimista • ferreiro • domador • mercenario • estrategista
Técnicas Dou !tecnicas comprar / equipar • ATK/DEF/QI elemental
Artefatos !artefatos espada_qi e mais • equipar
Pets Espirituais !pets serpente_sete_cores e mais
Mapa / Exploração !explorar cidade_qingshan • deserto_tager • capital_jiama • seita_nuvem • vale_alquimistas • reino_serpente • tumulo_dou_saint
Dungeons !dungeon caverna_qi • cooldown 45min
Saga / História !historia despertar • promessa • deserto • chama • seita • ancestral
Craft / Refino !craft !refinar pilula_celestial • escama_ancestral • chave_santo_dou
Mercado P2P !mercado vender / comprar entre players
Organizações !org / !menuclans cla • seita • aliança • guerra • territórios • diplomacia
Conquistas !conquistas Primeiro Cultivo • Voz do Reino • Duelista Dou • ...
Ascensão !ascender Reset com bônus permanente • Marca de Ascensão • +3000 Pedras • Título Lenda das Sete Cores

Economia: 💎 Pedras Espirituais

!perfil • !cultivo • !nivel • !ranking • !missoes • !inventario • !carteira
!daily • !pagar • !lojarpg • !usaritem • !titulo • !guiarpg
!lutar @user • !poder • !habilidades • !treinar • !cacar

⚔️ Clans • Seitas • Alianças • Guerra

!menuclans / !menucla / !menuseitas / !menuorg

!organizacao
!org criar cla id Nome
!org entrar id
!org info id
!org rank

!orgadmin invite @user
!orgadmin accept id
!orgadmin kick @user
!orgadmin transfer @user
!orgadmin deposit 100
!orgadmin withdraw 100
!orgadmin diplomacy outra-org ally/war/neutral
!orgadmin destroy

!territorio
!territorio claim deserto_tager
  • Deserto Tager • Torre de Qi • Vale das Chamas • Templo Medusa

!guerraorg id1 id2    # cooldown 1h
!orgprestigio
!orgloja
!seitadaily

📋 Central de Comandos

🧭 Menus

Comando Thumb Função
!menu menu.png Hub principal interativo
!menuadm menuadm.png Administração de grupo
!menudono menudono.png Dono / Bot config
!menuinfo menuinfo.png Info / Ping / Criador
!menusistemas menusistemas.png Sistemas / Anti / X9
!menuferramentas menuferramentas.png Ferramentas / Sticker / Dev
!menurpg menurpg.png RPG Cultivo completo
!menuclans menuclans.png Clans / Seitas / Guerra

👮‍♂️ Administração

!ban @user • !add 5591... • !promover @user • !rebaixar @user
!linkgp • !revogarlink • !abrirgp • !fechargp
!nomegp • !descgp • !listadm • !infogp
!marcartodos texto • !hidetag texto • !apagar
!welcome on/off • !welcomeimg on/off
!setwelcome texto • !setgoodbye texto

🛡️ Proteção / Anti

!antilink on/off [delete|ban]
!antifake on 55 • !listfake • !banfake
!antiflood on warn/ban 8 • !antiflood off
!anti imagem/video/audio/sticker/doc/contato/localizacao/enquete/catalogo/viewonce/convite on
!antiviewonce / !antivisuunica on
!antipayment on
!anticall on
!antipv on • !antipv2 • !antipv3
!x9 on/off • !x9 apagadas/editadas/participantes/admins/antilink on/off

👑 Dono

!reiniciar • !block @user • !unblock @user
!setprefix . • !sairgp • !jid • !eval
!broadcast mensagem • !grupos • !entrargp link
!boton • !botoff • !botstatus • !botconfig
!limparcache • !limparcache memoria/disco/medio/profundo/simular
!limparqr • !limparqr medio/profundo/simular
!seradmin • !sermembro
!rpgreset @user

🎨 Sticker / Mídia

!s / !sticker / !figurinha    # full 512x512
!f                            # mantém proporção + transparência
!rename pack | author
!marca pack | author
!take
!toimg / !toimage / !img     # sticker → PNG
!togif / !tomp4 / !tovideo   # sticker animado → vídeo

📊 Info / Utilidade

!ping / !p / !latencia / !speed / !velocidade   # diagnóstico 10s live
!dono • !criador • !botinfo • !frases • !statusbot / !status / !runtime
!canal • !grupo • !loja
!perfil • !cultivo • !nivel • !ranking
!visualizarstatus on react • !statusreact ❤️💜💙
!canalmsg texto • !canalinfo • !canalreact
!canalgerenciar list/follow/unfollow/mute/unmute/fetch

🧪 Boruto v7 Testes

!boruto • !baileysv7 • !compat
!testeboruto • !testev7 • !borutoteste

🛡️ Sistemas de Proteção

Sistema Comando Ação
Anti-Link !antilink on ban Apaga + ban
Anti-Fake DDI !antifake on 55 Remove estrangeiro
Anti-Flood !antiflood on ban 8 Warn/ban por spam
Anti-ViewOnce !antivisuunica on Revela única
Anti-Payment !antipayment on Remove payment msg
Anti-Call !anticall on Bloqueia quem liga
Anti-PV !antipv / !antipv2 / !antipv3 warn / block / ignore
Anti-Mídias (14 tipos) !anti imagem on img, vídeo, áudio, sticker, doc...
X9 Ampliado !x9 on apagadas, editadas, participantes, admin
Warn System !warn @user auto-kick no limite
Status View !visualizarstatus on react visualiza + reage status

🧰 Ferramentas

  • Sticker Full / Fit
  • ToImage / ToGIF / ToMP4
  • Console Cain Lin temático
  • Detecção de 30+ tipos de mídia Baileys
  • LID ↔ JID conversor automático
  • Logs privados para dono com origem Grupo/Privado + link wa.me
  • Cache TTL inteligente
  • !apagar com suporte a payment
  • !marcar aceita número / JID / LID / @
  • Safe Participant Action (corrige erro 500 Baileys em promote/demote/ban)

🧠 Arquitetura Cain Lin

cai-lin-bot/
├── conexão.js              # entrada Baileys
├── index.js
├── exports.js
├── lib/
│   └── baileys-client.js   # cain_lin • Boruto v7
├── comandos/
│   ├── geral/ menu.js ping.js
│   ├── admin/ ... (ban, promover, antilink, etc)
│   ├── dono/ ... (reiniciar, eval, broadcast...)
│   └── rpg/ ...
├── database/
│   ├── functions/
│   │   ├── botões.js
│   │   ├── color.js
│   │   ├── frases.js
│   │   ├── console.js
│   │   ├── media-types.js
│   │   ├── jid-utils.js
│   │   ├── cache.js
│   │   ├── runtime.js
│   │   ├── rpg.js
│   │   └── menu-style.js
│   ├── media/
│   │   ├── menu.png
│   │   ├── menuadm.png
│   │   ├── menudono.png
│   │   ├── menuinfo.png
│   │   ├── menusistemas.png
│   │   ├── menuferramentas.png
│   │   ├── menurpg.png
│   │   └── menuclans.png
│   └── cache/
├── settings/settings.js
├── sessao/cain_lin/        # auth Baileys
└── temp/

Client cain_lin – métodos Boruto expandidos

sendButtons()  sendList()  sendNativeFlow()  sendAlbum()
sendPoll()  sendLocation()  sendEvent()  sendProduct()
sendCodeBlock()  sendTable()  sendRichResponse()
pinMessage()  forwardMessage()  sendStatusMention()
findUserId()  updateProfilePicture()  updateProfileName()
sendInteractive()  sendMenu()  sendImage()  sendMention()
sendContact()  sendProfileCard()
sendNewsletterText()  newsletterMetadata()  newsletterReact()

🖼️ Galeria Completa de Menus

Menu Principal

Menu Admin

Menu RPG

Menu Clans

Menu Sistemas

Menu Ferramentas

Menu Dono

Menu Info


📡 Imagens de Menu com Fallback Remoto

A base procura thumbs nesta ordem:

1. database/media/<menu>.png
2. database/media/<menu>.jpg
3. database/media/menu.png
4. database/media/menu.jpg
5. database/media/banner.png
6. <MENU>_IMAGE_URL no .env
7. MENU_MEDIA_BASE_URL/<menu>.png
8. MENU_FALLBACK_IMAGE_URL
9. fallback interno
MENU_MEDIA_BASE_URL=https://meusite.com/menus
MENU_IMAGE_URL=https://meusite.com/menu.png
MENUADM_IMAGE_URL=...
MENUDONO_IMAGE_URL=...
MENUINFO_IMAGE_URL=...
MENUSISTEMAS_IMAGE_URL=...
MENUFERRAMENTAS_IMAGE_URL=...
MENURPG_IMAGE_URL=...
MENUCLANS_IMAGE_URL=...
MENU_FALLBACK_IMAGE_URL=https://meusite.com/fallback.png

Função:

readMenuImage('menurpg') // retorna Buffer ou { url: 'https://...' }

🔁 LID ↔ JID System

WhatsApp moderno:

5511999999999@s.whatsapp.net  # PN / JID
123456789012345@lid           # Linked Identity
120363000000000000@g.us       # Grupo
lidToJid('123@lid', { groupJid })
jidToLid('5591...@s.whatsapp.net')
resolveMentionTarget('123@lid', { groupJid })
registerJidPair({ lid, jid, groupJid })
absorbMessageMappings(message)
absorbGroupMetadata(metadata)

Cache persistente: database/cache/lid-jid-map.json


📊 !ping Avançado • Diagnóstico Real

!ping / !p / !latencia / !speed
  • Animação por edição 10 segundos
  • Latência interna real-time
  • Teste Cloudflare / Google / GitHub
  • Download Cloudflare Speed Mbps
  • Ambiente: Termux / VPS / Docker / Render / Railway / Heroku / Vercel
  • CPU / RAM / Node / PID / Uptime
  • Diretório do projeto

🧹 Manutenção

!limparcache              # memória + disco seguro
!limparcache memoria
!limparcache disco
!limparcache medio
!limparcache profundo confirmar
!limparcache simular

!limparqr                 # sessão seguro
!limparqr medio
!limparqr profundo confirmar
!limparqr simular

creds.json nunca é apagado automaticamente


🤝 Créditos

Criado por Lucas Mod Domina@lucas_mod_domina

Cain Lin / Cai Lin (彩鳞) • Queen Medusa
Battle Through the Heavens

Base Boruto Baileys v7@boruto_vk7/baileys
Engine ESM • Node >=22


© Copyright by Lucas Mod Domina

É proibida a venda da base original sem modificações significativas.
Mantenha os créditos aos autores.

Deixe uma estrela no GitHub!

GitHubZero Two StoreCanal WhatsApp

cain_lin • Queen Medusa • 彩鳞


📚 Documentação Técnica Completa

Abaixo está a documentação original completa, preservada 100% sem simplificação, organizada em seções expansíveis para consulta técnica avançada.

📖 Abrir Documentação Completa Cain Lin • Boruto Baileys v7 (51315 chars • 2328 linhas)

Cain Lin / Cai Lin (彩鳞) — Base Bot WhatsApp ESM com Boruto Baileys v7

Base criada por Lucas Mod Domina (@lucas_mod_domina) com personalidade e design inspirados em Cai Lin / Queen Medusa de Battle Through the Heavens.

A base agora foi reestruturada para usar Boruto Baileys v7 (@boruto_vk7/baileys) diretamente, sem OpenWA Gateway. O client interno do bot se chama:

cain_lin

Documentação complementar renderizada junto ao projeto: veja também README-LUCAS.md.


Browser da conexão Baileys

A conexão agora possui browser configurável no .env. Para Pairing Code, a documentação recomenda usar um browser lógico/desktop, por exemplo Browsers.macOS("Google Chrome").

Configuração padrão da base:

BROWSER_PLATFORM=macOS
BROWSER_NAME=Google Chrome

Plataformas conhecidas do helper Browsers:

macOS
windows
ubuntu
baileys
appropriate/auto

A base converte automaticamente essas opções para:

browser: makeBrowserConfig()

Exemplos:

BROWSER_PLATFORM=macOS
BROWSER_NAME=Google Chrome

BROWSER_PLATFORM=windows
BROWSER_NAME=Google Chrome

BROWSER_PLATFORM=ubuntu
BROWSER_NAME=Chrome

BROWSER_PLATFORM=appropriate
BROWSER_NAME=Google Chrome

Se o helper Browsers não existir ou a plataforma não for reconhecida na versão instalada, a base usa fallback seguro:

['Mac OS', 'Google Chrome', '14.4.1']

Compatibilidade expandida com @boruto_vk7/baileys

Foi adicionada uma camada maior de métodos no client cain_lin para cobrir os recursos documentados da fork:

cain_lin.sendButtons()
cain_lin.sendList()
cain_lin.sendNativeFlow()
cain_lin.sendAlbum()
cain_lin.sendPoll()
cain_lin.sendPollResult()
cain_lin.sendLocation()
cain_lin.sendEvent()
cain_lin.sendGroupInvite()
cain_lin.sendProduct()
cain_lin.sendCodeBlock()
cain_lin.sendInlineLinks()
cain_lin.sendTable()
cain_lin.sendRichResponse()
cain_lin.sendWithAd()
cain_lin.pinMessage()
cain_lin.keepMessage()
cain_lin.forwardMessage()
cain_lin.sendStatusMention()
cain_lin.findUserId()
cain_lin.updateProfilePicture()
cain_lin.removeProfilePicture()
cain_lin.updateProfileName()
cain_lin.updateProfileStatus()

Também foi criado um comando informativo:

!boruto
!baileysv7
!compat

E um comando de teste:

!testeboruto
!testev7
!borutoteste

O !testeboruto tenta enviar interativos, poll e tabela para validar rapidamente se o WhatsApp atual da sessão aceita esses formatos.

Observação: vários recursos da fork dependem da versão do WhatsApp Web, dispositivo, tipo de chat e permissões. A base tenta usar o formato novo primeiro e aplica fallback seguro quando possível.


Imagens de menu com fallback remoto

As thumbs dos menus continuam procurando primeiro arquivos locais em:

database/media/menu.png
database/media/menuadm.png
database/media/menudono.png
database/media/menuinfo.png
database/media/menusistemas.png
database/media/menuferramentas.png
database/media/menurpg.png
database/media/menuclans.png

Se a mídia local não existir, a base agora pode usar links remotos. Configure no .env:

MENU_MEDIA_BASE_URL=https://meusite.com/menus
# ou links individuais:
MENU_IMAGE_URL=https://meusite.com/menu.png
MENUADM_IMAGE_URL=https://meusite.com/menuadm.png
MENUDONO_IMAGE_URL=https://meusite.com/menudono.png
MENUINFO_IMAGE_URL=https://meusite.com/menuinfo.png
MENUSISTEMAS_IMAGE_URL=https://meusite.com/menusistemas.png
MENUFERRAMENTAS_IMAGE_URL=https://meusite.com/menuferramentas.png
MENURPG_IMAGE_URL=https://meusite.com/menurpg.png
MENUCLANS_IMAGE_URL=https://meusite.com/menuclans.png
MENU_FALLBACK_IMAGE_URL=https://meusite.com/fallback.png

Ordem de busca:

1. database/media/<menu>.png
2. database/media/<menu>.jpg
3. database/media/menu.png
4. database/media/menu.jpg
5. database/media/banner.png
6. link individual do menu no .env
7. MENU_MEDIA_BASE_URL/<menu>.png
8. MENU_FALLBACK_IMAGE_URL
9. fallback mínimo interno

A função responsável é:

readMenuImage('menurpg')

Ela retorna Buffer quando a imagem local existe, ou { url: 'https://...' } quando usa fallback remoto, compatível com @boruto_vk7/baileys.

Migração para @boruto_vk7/baileys

O projeto foi migrado da Baileys anterior para:

npm i @boruto_vk7/baileys@latest

Dependência atual:

"@boruto_vk7/baileys": "latest"

Principais adaptações feitas:

  • imports ESM usando makeWASocket nomeado;
  • store interno makeInMemoryStore sincronizando em database/cache/boruto-store.json;
  • Pairing Code e Pairing Code personalizado mantidos;
  • botões/interativos adaptados para o modelo simplificado da fork (buttons, nativeFlow, sections, url, copy, call);
  • fallback manual com proto/nativeFlow antigo caso algum botão falhe;
  • suporte ampliado a newsletter/canais;
  • comandos de gerenciamento de newsletter;
  • novos wrappers de grupo: aprovação de entrada, modo de adicionar membro, temporárias e lista de requests.

Novos comandos Boruto/Baileys

!canalgerenciar list
!canalgerenciar follow jid@newsletter
!canalgerenciar unfollow jid@newsletter
!canalgerenciar mute jid@newsletter
!canalgerenciar unmute jid@newsletter
!canalgerenciar fetch jid@newsletter 10

!gpmodo approval on/off
!gpmodo add admin/all
!gpmodo temp 86400
!gpmodo requests

Alguns recursos dependem da versão do WhatsApp Web, permissões da conta e disponibilidade real do método dentro da fork. A base trata métodos indisponíveis sem quebrar.


Mudanças desta versão

  • Removida a camada OpenWA/API/Webhook.
  • Engine atualizado para @boruto_vk7/baileys.
  • Sessão real salva em sessao/cain_lin.
  • Client interno padronizado como cain_lin.
  • Modo Pairing Code agora inicia com:
sh start.sh sim
  • msg/message foi padronizado para info nos comandos.
  • Menu interativo com imagem, lista, footer e botões URL.
  • O comando !ping foi transformado em diagnóstico completo com:
    • animação por edição de mensagem por 10 segundos;
    • medição de latência interna em tempo real;
    • tempo de envio/edit;
    • teste de latência para Cloudflare, Google e GitHub;
    • teste de download via Cloudflare Speed;
    • identificação de ambiente Termux, VPS, container ou hospedagem;
    • informações de sistema, CPU, RAM, Node, PID, uptime e diretório do projeto.

Estrutura do projeto

cai-lin-bot/
├── database/
│   ├── banner.js
│   ├── exports/
│   │   └── index.js
│   └── functions/
│       ├── botões.js
│       ├── color.js
│       ├── frases.js
│       ├── notcmd.js
│       ├── runtime.js
│       └── similaridade.js
├── temp/
├── sessao/
│   └── cain_lin/              # gerada automaticamente após conexão
├── settings/
│   └── settings.js
├── comandos/
│   └── geral/
│       ├── menu.js
│       └── ping.js
├── lib/
│   └── baileys-client.js
├── conexão.js
├── index.js
├── exports.js
├── start.sh
├── README.md
├── README-LUCAS.md
├── .env.example
└── package.json

Função de cada parte

  • database/banner.js: banner visual da Cain Lin no terminal.
  • database/exports/index.js: exportações centrais, loader automático de comandos e dispatcher.
  • database/functions/color.js: cores, gradientes e estilos com chalk.
  • database/functions/botões.js: abstração de botões/listas com fallback textual.
  • database/functions/notcmd.js: aviso de comando inexistente com sugestão.
  • database/functions/similaridade.js: similaridade precisa e automática baseada nos comandos carregados.
  • database/functions/frases.js: falas, mensagens de aguarde e personalidade da bot.
  • database/functions/runtime.js: diagnósticos do ambiente, rede, velocidade e sistema.
  • lib/baileys-client.js: conexão Boruto Baileys v7, QR, Pairing Code e adaptação das mensagens.
  • conexão.js: entrada principal da conexão.
  • exports.js: reservado para eventos globais futuros, como boas-vindas, X9, status e admins.
  • start.sh: reinicialização automática em caso de queda.

Requisitos

  • Node.js >=22
  • npm
  • git, curl e bash/sh
  • WhatsApp instalado no celular
  • Um número WhatsApp para conexão

Termux

Recomendado:

pkg update -y && pkg upgrade -y
pkg install nodejs git bash -y

Instalação

cd cai-lin-bot
npm install
cp .env.example .env

Configure o .env:

PREFIX=!
NUMERO_DONO=5591999999999
NOME_DONO=Lucas Mod Domina
NOME_BOT=Cain Lin
SESSION_NAME=cain_lin
PAIRING_NUMBER=
LOG_LEVEL=silent

Conectar por QR Code

sh start.sh
# ou
sh start.sh qr
# ou
npm run start:qr

Tutorial:

  1. Abra o WhatsApp.
  2. Vá em Dispositivos conectados.
  3. Toque em Conectar um dispositivo.
  4. Escaneie o QR exibido direto no terminal.

Conectar por Pairing Code — modo sim

O modo pedido para Pairing Code é:

sh start.sh sim

Também pode informar o número direto:

sh start.sh sim 5591999999999

Ou pelo npm:

npm run start:sim -- --number=5591999999999

Tutorial:

  1. Informe o número no formato internacional, apenas dígitos: DDI + DDD + número.
  2. No WhatsApp: Dispositivos conectados → Conectar dispositivo.
  3. Escolha Conectar com número de telefone.
  4. Digite o código exibido no terminal.

Sistema de comandos automático

Adicione comandos em qualquer subpasta dentro de comandos/:

export default {
  name: 'exemplo',
  aliases: ['ex'],
  category: 'geral',
  description: 'Meu comando de exemplo.',
  async execute({ client, message, args, settings }) {
    await client.sendText(message.chatId || message.from, 'Funcionou!');
  },
};

O sistema de similaridade carrega tudo automaticamente. Se você criar comandos/admin/ban.js, o comando !ban entra nas sugestões sem precisar cadastrar manualmente.


Comando !ping avançado

O !ping atual faz uma mensagem inicial e edita a mesma mensagem durante 10 segundos usando a key retornada pelo Baileys:

await client.editText(chatId, sent.key, novoTexto)

Ele mostra:

  • diretório onde o projeto está rodando;
  • ambiente detectado: Termux, VPS, Docker/container, Render, Railway, Heroku, Vercel etc.;
  • host, sistema, release, arquitetura;
  • CPU, load average, RAM livre/total;
  • versão do Node, PID, uptime e memória do processo;
  • latência interna do bot;
  • tempo real de envio/edição;
  • latência de rede externa;
  • teste de download em Mbps.

Comandos relacionados:

!ping
!p
!latencia
!speed
!velocidade

Botões e mensagens interativas

A base agora inclui uma camada completa para botões em database/functions/botões.js, usando Native Flow/Interactive Message da Baileys quando disponível.

Tipos implementados:

quickReplyButton()  // resposta rápida
replyButton()       // cta_reply
urlButton()         // botão URL
callButton()        // botão de ligação
copyButton()        // copiar código/texto
locationButton()    // solicitar/enviar localização
addressButton()     // fluxo de endereço
reminderButton()    // fluxo de lembrete
cancelReminderButton() // cancelar lembrete
nativeFlowButton()  // botão raw/customizado
listButton()        // single_select/lista
menuSections()      // gera seções automáticas por categoria
readMenuImage()     // imagem padrão do menu

O client cain_lin recebeu:

client.sendInteractive(jid, payload)
client.sendMenu(jid, payload)
client.sendImage(jid, payload)
client.sendMention(jid, text, targets)

O comando !menu agora envia:

  • imagem/banner da Cain Lin;
  • título;
  • corpo personalizado;
  • footer;
  • lista de comandos disponíveis;
  • submenus como menuadm e menudono;
  • botão URL para a Zero Two Store;
  • botão URL para o canal do WhatsApp;
  • botão URL para o grupo oficial.

Configurações no .env:

ZERO_TWO_STORE_NOME=Zero Two Store
ZERO_TWO_STORE_LINK=https://wa.me/601164286801?text=*menu
CHANNEL_ID=120363404952584770@newsletter
CHANNEL_LINK=https://whatsapp.com/channel/0029Va6riekH5JLwLUFI7P2B
CHANNEL_NOME=🫧 𝗖𝗢𝗡𝗡𝗘𝗖𝗧𝗘𝗗 𝗖𝗢𝗡𝗧𝗘Ú𝗗𝗢𝗦 🫧
GROUP_LINK=https://chat.whatsapp.com/FdiHHOb8gvDDK8hu5YIPLk?mode=ems_copy_t
GROUP_NOME=🫧 𝗖𝗢𝗡𝗡𝗘𝗖𝗧𝗘𝗗 𝗖𝗢𝗡𝗧𝗘Ú𝗗𝗢𝗦 🫧

Observação: botões interativos podem mudar conforme atualizações do WhatsApp. Por isso o !menu possui fallback: se o envio interativo falhar, ele envia imagem com caption e links em texto.


Padronização info

A estrutura de mensagem da bot foi padronizada para info, no estilo de bases brasileiras. Os comandos agora recebem:

async execute({ client, info, args, commands, settings }) {
  await client.sendText(info.chatId, 'resposta')
}

Por compatibilidade temporária, o dispatcher ainda envia message: info, mas a base oficial passa a usar info.

Sistema LID ↔ JID/PN

O WhatsApp moderno pode entregar usuários em dois formatos:

5511999999999@s.whatsapp.net  # PN/JID com número
123456789012345@lid           # LID / Linked Identity
120363000000000000@g.us       # Grupo

A base agora possui database/functions/jid-utils.js, responsável por:

  • detectar @lid, @s.whatsapp.net e @g.us;
  • converter LID para JID/PN quando existir mapeamento em cache;
  • converter JID/PN para LID quando existir mapeamento;
  • absorver mapeamentos vindos de mensagens, contatos, histórico e metadados de grupos;
  • ler arquivos de sessão do Baileys em busca de mapas lid-mapping;
  • persistir os pares encontrados em database/cache/lid-jid-map.json;
  • permitir menções usando número, JID ou LID.

Importante: LID não é matematicamente convertível para número. A conversão correta depende de mapeamento aprendido pelo Baileys através de eventos, histórico, contatos, participantPn, metadados de grupo ou arquivos da sessão. Se o WhatsApp não disponibilizar o par, a base usa o próprio LID como fallback.

Funções principais

lidToJid('123@lid', { groupJid })
jidToLid('5591999999999@s.whatsapp.net')
resolveMentionTarget('123@lid', { groupJid })
registerJidPair({ lid, jid, groupJid })
absorbMessageMappings(message)
absorbGroupMetadata(metadata)

Menções com JID ou LID

O client cain_lin agora possui:

await client.sendMention(chatId, 'Olá @5591999999999', ['5591999999999'])
await client.sendMention(chatId, 'Olá usuário LID', ['123456789@lid'])

Comando de teste criado:

!marcar 5591999999999
!marcar 123456789@lid

Cache e performance

A base ganhou database/functions/cache.js com caches TTL em memória para:

  • comandos carregados automaticamente;
  • metadados de grupos;
  • contatos;
  • mensagens;
  • retry de mensagens;
  • pares LID ↔ JID.

No Baileys, isso é usado em:

cachedGroupMetadata: async (jid) => globalCache.groups.get(jid)
msgRetryCounterCache: globalCache.retry
getMessage: async (key) => getCachedMessage(key)?.message

Além disso, ao conectar, a base tenta aquecer o cache com groupFetchAllParticipating() e atualiza o cache em eventos groups.update, group-participants.update, contacts.upsert, contacts.update, messaging-history.set e messages.upsert.


Conexão mais robusta

A conexão Baileys agora usa:

  • sock.ev.process(...) para processar eventos em lote/ordem;
  • reconexão com backoff progressivo;
  • keepAliveIntervalMs;
  • connectTimeoutMs;
  • defaultQueryTimeoutMs;
  • retryRequestDelayMs;
  • cache de retry;
  • cache de metadados de grupo;
  • getMessage pelo cache para retries e mensagens citadas;
  • leitura/processamento de todas as mensagens recebidas nos grupos.

Configurações no .env:

AUTO_READ_GROUPS=true
SYNC_FULL_HISTORY=false
MARK_ONLINE=true

Solicitações de entrada, welcome canvas e conexão aprimorada

Notificação de solicitação de entrada

A bot agora tenta tratar eventos de solicitação de entrada (group.join-request e variações expostas pela Baileys). Quando ativo, somente os admins do grupo são mencionados.

!joinrequest on
!joinrequest off
!request lista
!request -aceitar 1
!request -recusar 1

Quando alguém solicita entrada, a bot envia no grupo:

  • foto do solicitante quando disponível;
  • nome/menção do solicitante;
  • nome do grupo;
  • botões Aceitar e Recusar;
  • fallback em texto se botões não forem aceitos.

Observação: o evento e o método groupRequestParticipantsUpdate dependem da versão da Baileys/WhatsApp. A base trata de forma segura e avisa caso o método não exista.

Welcome/Goodbye com canvas Zero Two

Configuração:

ZEROSITE=https://zero-two-apis.store
API_KEY_ZEROTWO=Tang San

O welcome com imagem agora tenta usar:

/api/canvas/premium-welcome
/api/canvas/premium-goodbye

Comandos para legendas:

!setwelcome texto
!setgoodbye texto

Variáveis suportadas:

#tempo#
#hora#
#nomedogp#
#numerodele#
#nomedele#
#wame#
#numero#
#status#
#numerobot#
#nomebot#
#nickdono#
#estado#
#descrição#
#descricao#
#prefixo#

Conexão aprimorada

Ao abrir conexão, a bot agora:

sendPresenceUpdate('available')
updateProfileStatus('🐍 Conectada! Prefix: [...]')

Também foi adicionado tratamento mais detalhado dos motivos de queda da Baileys, como sessão inválida, conexão substituída, deslogado, timeout, serviço indisponível e outros.

Canais / Newsletter WhatsApp

A base foi adaptada para trabalhar com JIDs @newsletter quando a versão/sessão da Baileys disponibilizar suporte.

Comandos novos:

!canalmsg texto
!canalmsg texto | 120363...@newsletter
!canalinfo
!canalreact SERVER_ID ❤️ [jid@newsletter]

Recursos:

  • cain_lin.sendNewsletterText(jid, text) para enviar texto ao canal;
  • cain_lin.newsletterMetadata(jid) quando o método existir na Baileys;
  • cain_lin.newsletterReact(jid, serverId, emoji) quando a versão expuser newsletterReactMessage;
  • comandos recebidos de @newsletter passam pelo dispatcher como chats normais, respeitando permissões e limitações da própria plataforma.

Observação: recursos de canais/newsletter variam bastante por versão do WhatsApp Web/Baileys e por permissão da conta no canal. A base chama os métodos de forma segura, sem quebrar caso o método não exista.


Console completo de status visualizado

Quando !visualizarstatus on está ativo, a bot agora imprime um console bonito para cada status processado:

STATUS VISUALIZADO
Contato
Número/JID
Status ID
Visualizado: SIM/NÃO
Reação enviada
Tipo de mídia
Type Baileys
Caption/conteúdo
Hora
Data

Arquivo responsável:

database/functions/console.js

Função:

consoleStatusCainLin(info, { reaction, viewed })

Anti visualização única / antivisuunica

Além de !antiviewonce, foi adicionado o comando com nome brasileiro:

!antivisuunica on
!antivisuunica off

Aliases:

!antivisualizacaounica
!antiviewonce2
!antiverunica

Ele usa o mesmo sistema central de anti-mídias e remove mensagens de visualização única quando ativo.


Console especial para canais/newsletter

Foi criado um console próprio para mensagens vindas de @newsletter. Ele tenta puxar metadata do canal para mostrar:

Nome do canal
ID do canal
Inscritos
Quantidade de admins quando disponível
Tipo da mensagem/mídia
Conteúdo/caption
Descrição do canal
Hora/Data

Função:

consoleNewsletterCainLin(info, cain_lin)

A bot usa esse console automaticamente quando info.isNewsletter é verdadeiro.


Comandos seradmin e sermembro

Novos comandos de dono:

!seradmin
!sermembro

Aliases:

!botadm
!viraradm
!mepromover

!botmembro
!virarmembro
!merebaixar

Sem alvo, eles tentam promover/rebaixar a própria bot. Com alvo, aceitam menção, número, PN, LID ou mensagem respondida.


Correção para promover/rebaixar/ban com erro 500 da Baileys

Algumas versões do WhatsApp/Baileys executam a ação administrativa, mas retornam erro internal-server-error 500 em groupParticipantsUpdate.

Para evitar falsa falha, os comandos agora usam uma camada segura:

safeParticipantAction()

Ela:

  • tenta executar a ação;
  • se a Baileys retornar erro, aguarda um pouco;
  • verifica no metadata do grupo se a ação realmente foi aplicada;
  • se tiver sido aplicada, responde como sucesso com aviso;
  • se não tiver sido aplicada, aí sim deixa o erro cair.

Comandos ajustados:

!promover / !promote / !daradm
!rebaixar / !demote / !tiraradm
!ban / !kick / !remover

Também foi mantida a melhoria de alvos por @, número, PN, LID e mensagem respondida.

Melhorias em menções e payment

Os comandos administrativos como !promover, !rebaixar, !ban, !warn e similares agora reconhecem melhor alvos por:

menção real do WhatsApp
@559491569380 digitado no texto
número puro
JID PN
JID LID
mensagem respondida
participantAlt quando a Baileys entregar

O comando !apagar também foi ajustado para resolver melhor o participante de mensagens LID/PN ao apagar payments citados.

O AntiPayment detecta payments diretos e o !apagar detecta payments citados em quotedMessage.requestPaymentMessage, incluindo os que carregam noteMessage com menções.


Limpeza de cache runtime/disco

Novo comando de dono:

!limparcache
!clearcache
!cacheclear
!limparchace
!cleanchace

Ele limpa e entrega relatório de:

  • caches em memória;
  • arquivos de cache em database/cache;
  • arquivos temporários em temp;
  • quantidade antes/depois;
  • tamanho antes/depois;
  • espaço liberado;
  • falhas;
  • exemplos dos arquivos selecionados.

Modos:

!limparcache

Limpa memória + disco seguro.

!limparcache memoria

Limpa apenas caches runtime:

commands, groups, contacts, messages, retry, lid, cooldowns, antiflood, joinRequests
!limparcache disco

Limpa apenas arquivos seguros de cache.

!limparcache medio

Mais agressivo em database/cache.

!limparcache profundo confirmar

Limpa tudo em database/cache, exceto proteções internas do comando.

!limparcache simular

Mostra o que seria apagado sem remover nada.

Use !limparqr para limpeza específica da sessão Baileys. Use !limparcache para limpar cache runtime/disco da bot.


Limpeza inteligente de sessão/cache

Novo comando de dono:

!limparqr
!limparsessao
!clearsession
!limparsession
!limparauth

Ele entrega um relatório moderno com:

  • quantidade de arquivos antes;
  • tamanho antes;
  • arquivos selecionados;
  • arquivos apagados;
  • tamanho depois;
  • espaço liberado;
  • falhas;
  • exemplos dos arquivos removidos.

Modos:

!limparqr

Modo seguro. Remove apenas arquivos reconstruíveis/cache, como:

device-list-*.json
lid-mapping-*.json
database/cache/boruto-store.json
database/cache/lid-jid-map.json
temp/qrcode.png e temporários
!limparqr medio

Inclui também app-state-sync-*, podendo forçar ressincronização.

!limparqr profundo confirmar

Inclui chaves identity-key, session, pre-key, sender-key, mantendo creds.json. Use apenas se souber o que está fazendo.

!limparqr simular

Mostra o que seria apagado, sem remover nada.

Por segurança, creds.json nunca é apagado pelo comando.


Proteção anti-eco da própria bot

A conexão agora ignora mensagens enviadas pela própria bot antes de passar pelo console e pelo dispatcher. Isso evita:

  • a bot responder a si mesma;
  • comandos enviados pela própria bot entrarem em loop;
  • console ficar registrando respostas da própria Cain Lin;
  • eventos próprios vazarem mesmo quando emitOwnEvents=false.

A verificação considera:

info.fromMe
sock.user.id
sock.user.jid
sock.user.lid

e normaliza JID/número para comparar com segurança.

Correção definitiva dos logs Closing session e conversores de figurinha

Foi reforçado o filtro de ruído interno da Baileys para bloquear dumps como:

Closing open session in favor of incoming prekey bundle
Closing session: SessionEntry { ... }
pendingPreKey ...
currentRatchet ...

Agora o filtro atua em:

console.log
console.info
console.warn
process.stdout.write
process.stderr.write

Conversores de figurinha

Novos comandos:

!toimg
!toimage
!img

!togif
!tomp4
!tovideo

Uso:

Responda uma figurinha com !toimg para converter para PNG.
Responda uma figurinha animada com !togif para converter para vídeo/GIF.

Requer ffmpeg instalado no ambiente.

Correções e melhorias finais de estabilidade

Foram aplicadas correções em pontos práticos encontrados nos testes:

  • filtro mais forte para logs internos Closing session: SessionEntry e Closing open session;
  • números no console agora aparecem como +55 94 99156-9380;
  • protocolMessage e senderKeyDistributionMessage não poluem mais o console principal;
  • X9 de entrada/saída normaliza participantes que vêm como objeto;
  • X9 de editadas verifica também protocolMessage.editedMessage;
  • status visualizado mostra SIM, NAO ou TENTADO;
  • !visualizarstatus on agora ativa reação por padrão, exceto se usar noreact;
  • !menu mostra apenas submenus; comandos ficam em seus menus;
  • !marcartodos lista usuários em linhas numeradas;
  • cooldowns do RPG foram reduzidos para uso mais fluido.

Figurinhas / Stickers

Novos comandos:

!s
!f
!sticker
!figurinha
!rename pack | author
!marca pack | author
!take

Diferença importante:

!s  -> figurinha cheia, preenchendo todo o quadrado 512x512. Pode cortar laterais/topo.
!f  -> figurinha no formato original, mantendo proporção e completando com transparência.

Funciona respondendo imagem, vídeo ou figurinha.

Configuração no .env:

STICKER_PACKNAME=Cain Lin (彩鳞)
STICKER_AUTHOR=Lucas Mod Domina
STICKER_CATEGORY=Cain Lin Bot
STICKER_EMOJIS=🐍,💜,👑

Requisitos no ambiente:

pkg install ffmpeg libwebp

A base usa ffmpeg para converter para WebP e node-webpmux para injetar EXIF/metadados.

Marca pessoal

!marca Meu Pack | Meu Nome
!take

Após definir a marca, o comando !take usa seus metadados automaticamente.

Quoted automático, logs com origem e AntiPayment

Respostas com quoted

O client cain_lin agora usa a mensagem atual como quoted automaticamente durante a execução de comandos. Isso melhora respostas da bot em comandos comuns, pois elas ficam respondendo diretamente à mensagem do usuário.

Para desativar em uma resposta específica:

await cain_lin.sendText(info.chatId, 'texto', { quote: false })

Logs do dono com origem

Os logs enviados ao dono agora incluem:

Origem: Grupo/Privado
Link/Chat: link do grupo ou wa.me do usuário
Usuário: jid do usuário

Em grupos, a bot tenta montar o link via groupInviteCode. Em privado, usa wa.me/numero.

AntiPayment

Novo comando:

!antipayment on
!antipayment off

Aliases:

!antipay
!antipagamento
!antipagamentos

O sistema detecta tipos de pagamento como:

requestPaymentMessage
paymentInviteMessage
paymentMessage
paymentOrderMessage

Quando ativo, tenta remover usando um método especial para payment:

  1. cria uma mensagem vazia do bot;
  2. edita essa mensagem usando o ID da payment como messageId;
  3. tenta apagar a payment original;
  4. apaga a mensagem auxiliar do bot.

O comando !apagar também foi atualizado para usar esse método especial quando a mensagem respondida for payment.

Sistemas finais de proteção, status e X9 ampliado

Foram adicionados novos sistemas globais e de grupo baseados nos eventos recentes da Baileys.

Bot ON/OFF global

!boton
!botoff
!botstatus

Quando desativado, todas as funcionalidades ficam inativas para usuários comuns. O dono continua usando tudo normalmente.

AntiCall

!anticall on
!anticall off

Ao detectar chamada via evento call, a bot avisa, bloqueia e envia log ao dono quando ativo.

AntiPV

!antipv on/off     # modo aviso
!antipv2           # modo bloquear
!antipv3           # modo ignorar

Modos:

warn   — responde avisando
block  — avisa e bloqueia
ignore — ignora completamente

Visualizar e curtir status

!visualizarstatus on react
!visualizarstatus off
!statusreact ❤️ 💜 💙 💚 💛 🧡

A bot tenta marcar status como visualizado e reagir com emojis configurados.

Painel global

!botconfig

Mostra bot ON/OFF, AntiCall, AntiPV, status view/react e prefixo.

Anti-mídias e outros antis de grupo

Comando genérico:

!anti status
!anti imagem on
!anti video on
!anti audio on
!anti sticker on
!anti doc on
!anti contato on
!anti localizacao on
!anti enquete on
!anti catalogo on
!anti viewonce on
!anti convite on

Atalhos:

!antisticker on
!antiimg on
!antivideo on
!antiaudio on
!antidoc on
!antiviewonce on

Anti-fake manual

!listfake
!banfake

!listfake lista membros com DDI fora do permitido. !banfake remove automaticamente, se a bot for admin.

X9 melhorado

O X9 agora mostra melhor eventos de participantes, autor da ação quando disponível, mensagem apagada com prévia de cache quando possível, edições e logs de anti-mídia/anti-link.

Fechamento lógico do RPG: ciclo completo, mercado, títulos e ascensão

Para deixar o RPG com começo, meio, fim e retorno ao começo, foram adicionados sistemas finais de ciclo:

Títulos

!titulo
!titulo usar duelista_dou

Títulos concedem poder e representam conquistas narrativas.

Craft avançado

!craft
!craft pilula_celestial
!craft escama_ancestral
!craft chave_santo_dou

Usa materiais obtidos em exploração, dungeons e caça.

Mercado entre usuários

!mercado
!mercado vender Pílula de Qi | 300
!mercado comprar ID

Permite comércio entre cultivadores usando Pedras Espirituais.

Ascensão / renascimento

!ascender
!renascer
!reencarnar

Requisitos:

  • atingir o último reino de cultivo;
  • concluir todos os capítulos da história;
  • ter linhagem/personagem;
  • ter elemento espiritual.

Ao ascender, o usuário volta ao início do cultivo, mas ganha bônus permanente:

  • +1 ascensão;
  • 3000 Pedras Espirituais;
  • Marca de Ascensão;
  • título Lenda das Sete Cores;
  • bônus permanente de poder nas próximas jornadas.

Assim o RPG passa a ter ciclo completo: despertar → cultivar → explorar → lutar → organizar → conquistar → concluir saga → ascender → recomeçar mais forte.

RPG grande expansão: profissões, técnicas, mapa, saga e progressão profunda

O RPG foi ampliado novamente para ficar mais próximo de uma jornada completa de cultivo.

Novas linhagens/personagens

Além das anteriores, foram adicionadas novas opções:

jovem_alquimista
mestre_ancestral
princesa_serpente
guerreiro_yun
mercenario_deserto
herdeiro_cla
espirito_chama
guardia_real

Use:

!personagem
!personagem escolher jovem_alquimista

Profissões

!profissao
!profissao escolher alquimista
!profissao escolher ferreiro
!profissao escolher domador
!profissao escolher mercenario
!profissao escolher estrategista

Profissões dão identidade e bônus em sistemas como refino, caça, pets, técnicas e recompensas.

Técnicas Dou

!tecnicas
!tecnicas comprar palma_chama
!tecnicas equipar palma_chama

Técnicas possuem raridade, elemento, ATK, DEF, QI e preço. A técnica equipada entra no cálculo de poder.

Mapa/regiões

!explorar
!explorar cidade_qingshan
!explorar deserto_tager
!explorar capital_jiama
!explorar seita_nuvem
!explorar vale_alquimistas
!explorar reino_serpente
!explorar tumulo_dou_saint

Cada região possui poder mínimo, XP, Pedras Espirituais e itens únicos.

Saga/capítulos

!historia
!historia concluir despertar
!historia concluir promessa
!historia concluir deserto
!historia concluir chama
!historia concluir seita
!historia concluir ancestral

Cada capítulo exige XP mínimo e dá recompensas.

Prestígio de organização

!orgprestigio

Permite evoluir a organização usando o cofre.

Perfil atualizado novamente

O !perfil agora mostra também profissão e técnica equipada.

RPG ultra: artefatos, pets, dungeons e recompensas de seita

Novos módulos adicionados:

Artefatos/equipamentos

!artefatos
!artefatos comprar espada_qi
!artefatos equipar espada_qi

Artefatos possuem tipo, ATK, DEF, QI, poder e preço. Equipamentos afetam o cálculo de poder.

Pets espirituais

!pets
!pets comprar serpente_sete_cores
!pets usar serpente_sete_cores

Pets dão bônus de ATK, DEF, QI e poder.

Dungeons

!dungeon
!dungeon entrar caverna_qi

Cada dungeon possui poder mínimo, recompensa, drop e cooldown de 45 minutos.

Recompensa diária da organização

!seitadaily

Dá Pedras Espirituais e XP baseado no nível/territórios da organização.

Reset RPG do dono

!rpgreset @user

Reseta linhagem, elemento, pet e equipamentos do usuário para eventos/administração.

RPG extra: conquistas, itens usáveis, loja de organização e guia

O RPG recebeu novos módulos de progressão e qualidade de vida:

Conquistas

!conquistas
!conquistas claim primeiro_cultivo

Conquistas iniciais:

Primeiro Cultivo
Voz do Reino
Duelista Dou
Tesouro Espiritual
Artista de Jade

Itens usáveis

!usaritem Pílula de Qi
!usaritem Pílula Celestial
!usaritem Núcleo de Besta

Loja da organização

!orgloja
!orgloja comprar estandarte
!orgloja comprar matriz
!orgloja comprar altar

Estruturas compradas com o cofre aumentam o poder da organização.

Guia RPG

!guiarpg

Mostra o caminho recomendado para começar: escolher linhagem, elemento, treinar, caçar, missões, conquistas e organização.

Perfil ainda mais completo

O !perfil agora mostra também:

  • linhagem/personagem;
  • elemento;
  • organização;
  • vitórias/derrotas em duelos;
  • quantidade de conquistas;
  • inventário e top comandos/mídias.

Guerra com cooldown

!guerraorg agora possui cooldown básico de 1 hora por organização para evitar spam de guerras.

RPG expansão total: diplomacia, territórios, elementos, chefes e torneios

Foram implementados os upgrades avançados do RPG:

Convites e administração de organizações

!orgadmin invite @user
!orgadmin accept id
!orgadmin kick @user
!orgadmin transfer @user
!orgadmin destroy

Cofre/banco da organização

!orgadmin deposit 100
!orgadmin withdraw 100

Diplomacia

!orgadmin diplomacy outra-org ally
!orgadmin diplomacy outra-org war
!orgadmin diplomacy outra-org neutral

Territórios

!territorio
!territorio claim deserto_tager

Territórios disponíveis:

Deserto Tager
Torre de Qi
Vale das Chamas
Templo Medusa

Elementos espirituais

!elemento
!elemento escolher fogo
!elemento escolher veneno
!elemento escolher raio
!elemento escolher vento
!elemento escolher terra
!elemento escolher agua

Alquimia/refino

!refinar
!refinar celestial

Usa Núcleos de Besta para criar pílulas.

Bestiário, World Boss e Torneio

!bestiario
!worldboss
!torneio

O !worldboss é um chefe mundial diário simplificado. O !torneio lista cultivadores por vitórias em duelos.

RPG avançado: personagens, clãs, seitas, alianças e batalhas

O RPG foi ampliado para um sistema de cultivo inspirado em donghua, com personagens/linhagens, atributos, lutas, organizações e guerras.

Personagens/Linhagens

!personagem
!personagem escolher medusa
!personagem escolher alquimista
!personagem escolher espadachim
!personagem escolher guardiao
!personagem escolher besta
!personagem escolher fantasma

Cada linhagem possui HP, ATK, DEF, QI e habilidade especial.

Atributos e habilidades

!poder [@user]
!habilidades
!treinar
!cacar

A fórmula de poder considera:

  • linhagem/personagem;
  • HP base;
  • ataque;
  • defesa;
  • Qi;
  • XP;
  • nível técnico;
  • reino de cultivo;
  • itens no inventário.

Lutas entre usuários

!lutar @user

A batalha simula turnos com dano, defesa, crítico, uso de Qi e habilidades. O vencedor ganha XP e Pedras Espirituais.

Clãs, seitas e alianças

!organizacao
!org criar cla id Nome do Clã
!org criar seita id Nome da Seita
!org criar alianca id Nome da Aliança
!org entrar id
!org sair
!org info id
!org rank

O dono/líder da organização é quem cria. Usuários podem entrar em organizações existentes ou criar as próprias.

Guerra entre organizações

!guerraorg id1 id2

O poder da organização considera o poder de todos os membros, quantidade de membros, nível, vitórias e derrotas.

Novo submenu

!menuclans
!menucla
!menuseitas
!menuorg

Thumb própria:

database/media/menuclans.png

RPG/Cultivo estilo donghua

O sistema de XP foi reorganizado em uma arquitetura de leveling/cultivo. Por padrão, em grupos o cultivo só começa quando um admin ativa:

!leveling on
!rpg on
  • leveling: ativa ganho de XP e evolução.
  • rpg: ativa recompensas/moedas espirituais.

A moeda temática agora é:

💎 Pedras Espirituais

Etapas de cultivo

Os níveis técnicos continuam existindo, mas a exibição principal usa reinos de cultivo:

Mortal sem Qi
Discípulo do Qi
Praticante de Dou Qi
Mestre de Escamas
Grande Mestre Serpentino
Espírito Medusa
Rei/Rainha Dou
Imperador Dou
Ancestral Serpente Celestial
Soberano das Sete Cores
Lenda Cai Lin

Arquivo estrutural:

database/functions/rpg.js

Menu RPG

Novo submenu com thumb própria:

!menurpg
database/media/menurpg.png

Comandos RPG/cultivo:

!perfil       # perfil completo
!cultivo      # etapa/reino de cultivo
!nivel        # XP rápido
!ranking      # ranking de XP
!missoes      # missões disponíveis
!missoes claim ID
!inventario   # itens espirituais
!carteira     # saldo de Pedras Espirituais
!daily        # recompensa diária
!pagar @user 50
!lojarpg
!lojarpg comprar pilula

Perfil completo

O !perfil agora mostra:

  • foto de perfil;
  • reino/etapa de cultivo;
  • título do cultivo;
  • barra de progresso;
  • próximo reino e XP restante;
  • level técnico e XP;
  • Pedras Espirituais;
  • mensagens enviadas;
  • mídias enviadas;
  • tipos de mídia enviados;
  • comandos executados;
  • top comandos usados;
  • warns;
  • inventário;
  • primeira aparição.

Missões

Missões iniciais:

Mensageiro do Reino      # enviar mensagens
Conjurador de Comandos   # usar comandos
Artista das Escamas      # enviar mídias
Cultivador Persistente   # acumular XP

Cada missão dá XP e Pedras Espirituais.

Sistemas implementados nesta etapa

Foram implementados os módulos planejados:

1. Níveis/XP por mensagem

Cada mensagem soma XP automaticamente e comandos somam XP extra.

!perfil
!cultivo
!nivel
!ranking
!missoes
!inventario

2. Economia/coins

Usuários ganham coins por atividade e comandos.

!carteira
!daily
!pagar @user 50

3. Warns com punição automática

!warn @user motivo
!warns @user
!unwarn @user

Quando o usuário atinge o limite configurado em warnLimit, a bot tenta remover do grupo.

7. Logs privados para dono

A bot envia logs de comandos/erros para o dono e também persiste logs locais.

!logs

8. Painel de config por grupo

!configgp

Mostra anti-link, anti-fake, anti-flood, welcome, X9, warns, auto-resposta e logs.

9. Anti-fake por DDI

!antifake on 55
!antifake off

Ao entrar membro com DDI não permitido, a bot tenta remover automaticamente.

10. Anti-flood por mensagens normais

!antiflood on warn 8
!antiflood on ban 8
!antiflood off

11. Boas-vindas com imagem personalizada

O welcome agora tenta usar foto de perfil do novo membro no card de boas-vindas.

!welcome on
!welcomeimg on
!welcomeimg off

12. Perfil do usuário

!perfil

Mostra foto de perfil, level, XP, coins, mensagens, comandos e warns.

14. Auto-resposta por palavra-chave

!autoresposta add oi | Olá, mortal.
!autoresposta del oi
!autoresposta lista

Aliases: !ar, !keyword, !resposta.

15. Sistema de aluguel/expiração

!aluguel set 30 [grupo@g.us]
!aluguel status [grupo@g.us]
!aluguel del [grupo@g.us]

Quando o aluguel expira, comandos em grupo são bloqueados para usuários que não são o dono.


Pairing personalizado

A conexão agora suporta Pairing Code personalizado, baseado no uso de requestPairingCode(number, customCode) da Baileys quando disponível na versão instalada.

Configuração:

PAIRING_ENABLED=true
PAIRING_USE_CUSTOM_CODE=true
PAIRING_CUSTOM_CODE=CAILINO1

Exemplo interno:

const custom = settings.baileys.pairing.useCustomCode
  ? settings.baileys.pairing.customCode
  : ''

const code = custom
  ? await sock.requestPairingCode(number, custom)
  : await sock.requestPairingCode(number)

O código personalizado deve ter 8 caracteres alfanuméricos. A base limpa caracteres inválidos e usa os primeiros 8.


Mais frases, personalidade e proteção anti-flood

A personalidade da Cain Lin foi ampliada em database/functions/frases.js com categorias:

aguardes
menu
permissoes
erros
sucesso
x9
welcome
despedida

Novas funções:

fraseAguarde()
fraseSucesso()
fraseErro()
frasePermissao()
fraseX9()
fraseWelcome()
fraseDespedida()
fraseMenu()
fraseCategoria(categoria)

Novo comando:

!frases
!frases lista
!frases x9
!frases welcome
!frases erros

Também foram adicionadas proteções leves no dispatcher:

COMMAND_COOLDOWN_MS=2500
ANTI_FLOOD_LIMIT=6
ANTI_FLOOD_WINDOW_MS=8000

O dono ignora cooldown/flood. Usuários comuns recebem mensagens temáticas quando tentam floodar comandos.

Novo comando de diagnóstico rápido:

!statusbot
!status
!runtime

Ele mostra uptime, memória, comandos e tamanho dos caches.

X9 ampliado

O sistema X9 foi ampliado para vigiar mais eventos do grupo e trabalhar junto com o cache da Baileys:

!x9                 # mostra status completo
!x9 on/off          # liga/desliga o X9 geral
!x9 apagadas on/off # mensagens apagadas/revogadas
!x9 editadas on/off # mensagens editadas
!x9 participantes on/off
!x9 admins on/off   # promove/rebaixa
!x9 antilink on/off # dedura anti-link

Configurações persistidas por grupo:

x9
x9Deletes
x9Edits
x9Participants
x9Admin
x9Antilink

Eventos usados:

  • group-participants.update para entradas, saídas, promoções e rebaixamentos;
  • messages.update para tentativa de detectar mensagem apagada/revogada e editada;
  • dispatcher de anti-link para dedurar links bloqueados.

Observação: o WhatsApp/Baileys pode variar o payload de deleção/edição conforme versão e privacidade. A base trata os principais caminhos e mantém cache para melhorar a identificação.


Identidade, dono e criador

Novos comandos modernos:

!dono      # mostra dono atual com foto de perfil e vCard
!criador   # mostra criador da base com foto de perfil, informações e vCard
!canal     # canal oficial com botão URL
!grupo     # grupo oficial com botão URL
!loja      # Zero Two Store com botão URL
!botinfo   # informações da bot/base
!frases    # frases/persona da bot
!statusbot # status rápido da runtime/cache

O client recebeu:

cain_lin.sendContact(jid, { number, name, organization, title, url })
cain_lin.sendProfileCard(jid, { number, name, caption, organization, title, url })

Configuração no .env:

DONO_BIO=Dono atual da Cain Lin.
CRIADOR_NOME=Lucas Mod Domina
CRIADOR_NUMERO=5591999999999
CRIADOR_BIO=Idealizador e desenvolvedor principal da base Cain Lin (彩鳞).

Estilo visual Psycho/Cain Lin

Foi criado database/functions/menu-style.js, reunindo linhas, painéis e símbolos para deixar os menus com uma estética mais bonita e combinando com a personagem:

tituloMenu('MENU')
blocoMenu('NOME', ['item 1', 'item 2'])
painelCainLin({ titulo, subtitulo, linhas, rodape })
menuCaption({ titulo, prefix, total, dono, canal })

Estilo base usado:

𓊈𒆜 CAIN LIN 彩鳞 𒆜𓊉
⊰᯽⊱═══❖•ೋ°▽°ೋ•❖═══⊰᯽⊱
│› item
⊰᯽⊱═══❖•ೋ°▽°ೋ•❖═══⊰᯽⊱

Novos submenus

Além de !menu, !menuadm e !menudono, foram adicionados:

!menuinfo
!menusistemas
!menuferramentas

Cada um possui thumb própria:

database/media/menuinfo.png
database/media/menusistemas.png
database/media/menuferramentas.png

Console Cain Lin e detecção completa de mídia

A base ganhou um console temático em database/functions/console.js, inspirado no estilo brasileiro de bots, mas adaptado para Cain Lin (彩鳞). A cada mensagem recebida, o terminal mostra:

  • usuário/pushname;
  • número ou status;
  • chat privado/grupo/status;
  • nome do grupo quando houver cache;
  • se é comando, mensagem, mídia, reação, interativo ou sistema;
  • tipo real da Baileys;
  • prévia de texto;
  • quoted/citada;
  • reação;
  • hora e data.

Também foi criado database/functions/media-types.js, com suporte para detectar e normalizar vários tipos da Baileys, incluindo wrappers como ephemeralMessage, viewOnceMessage, viewOnceMessageV2, viewOnceMessageV2Extension e documentWithCaptionMessage.

Tipos mapeados incluem:

conversation
extendedTextMessage
editedMessage
imageMessage
videoMessage
audioMessage
stickerMessage
documentMessage
documentWithCaptionMessage
contactMessage
contactsArrayMessage
locationMessage
liveLocationMessage
productMessage
orderMessage
paymentInviteMessage
pollCreationMessage
pollCreationMessageV2
pollCreationMessageV3
pollUpdateMessage
reactionMessage
protocolMessage
groupInviteMessage
buttonsMessage
buttonsResponseMessage
listMessage
listResponseMessage
templateMessage
templateButtonReplyMessage
interactiveMessage
interactiveResponseMessage
requestPhoneNumberMessage
albumMessage
eventMessage
newsletterAdminInviteMessage
keepInChatMessage

Cada info agora carrega:

info.message       // conteúdo bruto da mensagem
info.media         // resultado detalhado de detectMedia()
info.type          // type real da Baileys
info.messageType   // Mensagem/Mídia/Comando/Interativo/Sistema
info.mediaType     // Imagem/Vídeo/Áudio/etc
info.isCmd
info.commandName
info.budy

Thumbs próprias dos submenus

Além da thumb principal:

database/media/menu.png

foram criadas thumbs específicas:

database/media/menuadm.png
database/media/menudono.png

A função readMenuImage(menu) agora procura automaticamente a imagem do menu solicitado e cai para menu.png se não encontrar:

await readMenuImage('menuadm')
await readMenuImage('menudono')

Uso oficial do client cain_lin nos comandos

Os comandos foram ajustados para usar o nome do client da base diretamente:

async execute({ cain_lin, info, args, settings }) {
  await cain_lin.sendText(info.chatId, 'resposta')
}

O dispatcher ainda envia client como alias temporário para compatibilidade, mas o padrão oficial da base é cain_lin.

Comandos de administração e dono

A base agora possui comandos completos separados por categoria em comandos/admin/ e comandos/dono/. Todos usam info, cache de grupo, resolução LID/JID e verificações de permissão.

Comandos admin/grupo

!ban @user              # remove membro
!add 5591999999999     # adiciona/convida membro
!promover @user         # promove a admin
!rebaixar @user         # remove admin
!linkgp                # mostra link do grupo
!revogarlink           # revoga e gera novo link
!abrirgp               # todos podem falar
!fechargp              # apenas admins falam
!nomegp Novo nome      # altera nome
!descgp Nova descrição # altera descrição
!antilink on/off [delete|ban]
!marcartodos texto     # marca todos visivelmente
!hidetag texto         # marca todos oculto
!apagar                # apaga mensagem respondida
!listadm               # lista admins
!infogp                # status do grupo/sistemas
!welcome on/off        # boas-vindas
!x9 on/off             # X9 ampliado
!x9 apagadas on/off    # módulo de apagadas
!x9 editadas on/off    # módulo de editadas

Comandos do dono

!reiniciar             # reinicia o processo
!block @user           # bloqueia usuário
!unblock @user         # desbloqueia usuário
!setprefix .           # troca prefixo em tempo real
!sairgp                # bot sai do grupo atual
!jid                   # mostra JIDs/LIDs do chat/mensagem
!eval código           # execução JS restrita ao dono
!broadcast mensagem    # envia para grupos em cache
!grupos                # lista grupos em cache
!entrargp link         # entra em grupo por link

Sistemas persistentes

Configurações ficam em:

database/cache/group-settings.json
database/cache/bot-settings.json

O anti-link é aplicado no dispatcher antes dos comandos. Se antilinkAction for ban, a bot tenta remover o usuário após apagar a mensagem.

O sistema welcome e o x9 são disparados pelo evento group-participants.update.

Comandos iniciais

  • !ping — diagnóstico completo em tempo real.
  • !menu — menu interativo com lista, imagem e links.
  • !menuadm — submenu administrativo.
  • !menudono — submenu do dono.

Próximos sistemas planejados

A base deixa o ponto de integração preparado para:

  • Boas-vindas e despedida.
  • Sistema X9 completo.
  • Visualizar/curtir status.
  • Sistemas administrativos.
  • Anti-link, anti-fake, anti-flood.
  • Logs e auditoria.
  • Persistência em banco real além de arquivos locais.

Observações importantes

  • Esta base usa WhatsApp Web via Baileys. Use com responsabilidade para evitar bloqueios por spam ou automações abusivas.
  • O Pairing Code não é API mobile; é apenas uma forma de parear o WhatsApp Web sem QR.
  • Se a sessão quebrar ou quiser trocar de número, apague a pasta sessao/cain_lin e conecte novamente.

Créditos e licença

Base criada por Lucas Mod Domina (@lucas_mod_domina).

É proibida a venda da base original sem modificações significativas. Se modificar, mantenha créditos aos autores.

Veja também: README-LUCAS.md.


© Copyright by Lucas Mod Domina


🐍 Cain Lin • Queen Medusa • 彩鳞

Base • README • Lucas Mod Domina

Boruto Baileys v7 • ESM • RPG Donghua Completo

⬆️ Voltar ao topo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages