// Name: Banana Hub - Blox Fruits // Description: GUI simples com key obrigatória e automações básicas (Anti-AFK, Auto Farm, Auto Quest e Auto Attack) para uso com o jogo em foco. // Author: renansgmb-blip // GitHub: renansgmb-blip import "@johnlindquist/kit" const HUB_NAME = "Banana Hub" const TITLE = `Blox Fruits\n--troll--` const CORRECT_KEY = "leandro" let attempts = 0 while (attempts < 3) { const input = await arg({ placeholder: "Bem-vindo ao Banana Hub, coloque a key para usar", enter: "Validar Key", strict: false, }) if ((input || "").trim() === CORRECT_KEY) break attempts++ await notify(`Key incorreta (${attempts}/3)`) } if (attempts >= 3) { await notify("Acesso negado") exit() } // Estados let state = { autoFarm: false, antiAfk: false, autoQuest: false, autoAttack: false, minimized: false, } let intervals: { antiAfk?: NodeJS.Timeout | number autoAttack?: NodeJS.Timeout | number autoFarm?: NodeJS.Timeout | number autoQuest?: NodeJS.Timeout | number } = {} async function showActivated() { await notify("Opção ativada") } function clearInt(name: keyof typeof intervals) { if (intervals[name]) { clearInterval(intervals[name] as any) intervals[name] = undefined } } async function startAntiAfk() { if (intervals.antiAfk) return intervals.antiAfk = setInterval(async () => { try { // Pequeno movimento de mouse e tecla para evitar AFK (mantenha o jogo em foco) const pos = await getMousePosition() await mouse.move([{ x: pos.x + 1, y: pos.y + 1 }, { x: pos.x, y: pos.y }]) await keyboard.type(" ") } catch {} }, 45_000) await showActivated() } async function stopAntiAfk() { clearInt("antiAfk") } async function startAutoAttack() { if (intervals.autoAttack) return intervals.autoAttack = setInterval(async () => { try { await mouse.leftClick() } catch {} }, 500) await showActivated() } async function stopAutoAttack() { clearInt("autoAttack") } async function startAutoFarm() { if (intervals.autoFarm) return intervals.autoFarm = setInterval(async () => { try { // Pressiona "w" rapidamente e clica (simples e genérico) await keyboard.type("w") await wait(150) await mouse.leftClick() } catch {} }, 1200) await showActivated() } async function stopAutoFarm() { clearInt("autoFarm") } async function startAutoQuest() { if (intervals.autoQuest) return intervals.autoQuest = setInterval(async () => { try { // Dispara uma tecla padrão de "abrir/confirmar quest" (ajuste conforme seu bind no jogo) await keyboard.type("j") await wait(200) await keyboard.type("enter") } catch {} }, 5_000) await showActivated() } async function stopAutoQuest() { clearInt("autoQuest") } async function minimizeUI() { state.minimized = true await hide() // Minimiza/oculta a UI } async function maximizeUI() { state.minimized = false await show() // Reexibe a UI await focus() } function choiceLabel(name: string, on: boolean) { return `${on ? "✅" : "⛔️"} ${name}` } async function uiLoop() { while (true) { const choices = [ { name: choiceLabel("Auto Farm", state.autoFarm), value: "autoFarm", description: "Upar maestria/level automaticamente (simples)", }, { name: choiceLabel("Anti-AFK", state.antiAfk), value: "antiAfk", description: "Evita ficar AFK enviando pequenas ações", }, { name: choiceLabel("Auto Quest", state.autoQuest), value: "autoQuest", description: "Tenta aceitar/confirmar quests periodicamente (teclas genéricas)", }, { name: choiceLabel("Auto Attack", state.autoAttack), value: "autoAttack", description: "Clica/ataca automaticamente em intervalos", }, { name: "🍌 Minimizar\nMinimizar", value: "min" }, { name: "🍎 Aumentar\nAumentar", value: "max" }, { name: "Sair", value: "exit" }, ] const selection = await arg( { placeholder: `${HUB_NAME} - ${TITLE}`, enter: "Ativar/Desativar / Executar", footer: md( `Dica: Mantenha a janela do jogo em foco ao ativar automações. Use "Minimizar" para ocultar este painel e "Aumentar" para reabrir.` ), }, choices ) if (selection === "exit") { // Limpa tudo e sai stopAutoFarm() stopAntiAfk() stopAutoQuest() stopAutoAttack() await notify("Encerrando Banana Hub") exit() } if (selection === "min") { await minimizeUI() continue } if (selection === "max") { await maximizeUI() continue } if (selection === "antiAfk") { state.antiAfk = !state.antiAfk if (state.antiAfk) await startAntiAfk() else await stopAntiAfk() } if (selection === "autoAttack") { state.autoAttack = !state.autoAttack if (state.autoAttack) await startAutoAttack() else await stopAutoAttack() } if (selection === "autoFarm") { state.autoFarm = !state.autoFarm if (state.autoFarm) await startAutoFarm() else await stopAutoFarm() } if (selection === "autoQuest") { state.autoQuest = !state.autoQuest if (state.autoQuest) await startAutoQuest() else await stopAutoQuest() } } } await uiLoop()