Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Исходник Управление состоянием функции через тг бота | EvaWare 1.21

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
1 Авг 2024
Сообщения
445
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Написал на днях одну может быть кому то полезную штуку через которую можно управлять состоянием функции через тг бота

1. Создаете через @BotFather тг бота и копируете его токен

2. Создаете .py файл и вставляете в него код:
Python:
Expand Collapse Copy
import asyncio
import socket
from aiogram import Bot, Dispatcher, types, F
from aiogram.utils.keyboard import InlineKeyboardBuilder

API_TOKEN = 'токен вашего бота, обязательно заменить!'
JAVA_HOST = '127.0.0.1'
JAVA_PORT = 65432

bot = Bot(token=API_TOKEN)
dp = Dispatcher()

def call_java(command):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(2.0)
            s.connect((JAVA_HOST, JAVA_PORT))
            s.sendall((command + '\n').encode('utf-8'))
            data = s.recv(4096)
            return data.decode('utf-8').strip()
    except: return ""

@dp.message(F.text == "/start")
async def cmd_start(message: types.Message):
    data = call_java("GET_CATEGORIES")
    if not data:
        await message.answer("ошибка: игра спит")
        return

    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await message.answer("выбери категорию:", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("cat_"))
async def show_modules(callback: types.CallbackQuery):
    cat = callback.data.split('_')[1]
    data = call_java(f"GET_MODULES:{cat}")
   
    builder = InlineKeyboardBuilder()
    if data:
        for mod in data.split(','):
            builder.button(text=mod, callback_data=f"toggle_{mod}_{cat}")
   
    builder.button(text="

назад", callback_data="back_to_cats")
    builder.adjust(1)
    await callback.message.edit_text(f"внутри: {cat}", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("toggle_"))
async def toggle_mod(callback: types.CallbackQuery):
    parts = callback.data.split('_')
    mod_name = parts[1]
    cat_name = parts[2]
   
    call_java(mod_name)
   
    data = call_java(f"GET_MODULES:{cat_name}")
    builder = InlineKeyboardBuilder()
    for mod in data.split(','):
        builder.button(text=mod, callback_data=f"toggle_{mod}_{cat_name}")
    builder.button(text="назад", callback_data="back_to_cats")
    builder.adjust(1)
   
    await callback.message.edit_reply_markup(reply_markup=builder.as_markup())
    await callback.answer(f"готово: {mod_name}")

@dp.callback_query(F.data == "back_to_cats")
async def back_to_cats(callback: types.CallbackQuery):
    data = call_java("GET_CATEGORIES")
    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await callback.message.edit_text("выбери категорию:", reply_markup=builder.as_markup())

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

3. Создаете класс на джаве в любом пути вашего клиента
java:
Expand Collapse Copy
package sweetie.evaware.api.module;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;

public class TelegramActive {

    public static void startServer() {
        new Thread(() -> {
            try (ServerSocket serverSocket = new ServerSocket(65432)) {
                while (true) {
                    try (Socket socket = serverSocket.accept();
                         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
                         PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8), true)) {

                        String request = in.readLine();
                        if (request == null) continue;

                        if (request.equals("GET_CATEGORIES")) {
                            String categories = java.util.Arrays.stream(Category.values())
                                    .map(Enum::name)
                                    .collect(Collectors.joining(","));
                            out.println(categories);
                        }
                        else if (request.startsWith("GET_MODULES:")) {
                            String catName = request.split(":")[1];
                            String modules = ModuleManager.getInstance().getModules().stream()
                                    .filter(m -> m.getCategory().name().equalsIgnoreCase(catName))
                                    .map(m -> m.getName() + (m.isEnabled() ? " [on]" : " [off]"))
                                    .collect(Collectors.joining(","));
                            out.println(modules);
                        }
                        else {
                            out.println(toggleModule(request.trim()));
                        }

                    } catch (Exception e) { e.printStackTrace(); }
                }
            } catch (IOException e) { e.printStackTrace(); }
        }).start();
    }

    private static String toggleModule(String name) {
        String cleanName = name.replace(" [on]", "").replace(" [off]", "").trim();
        for (Module m : ModuleManager.getInstance().getModules()) {
            if (m.getName().equalsIgnoreCase(cleanName)) {
                m.toggle();
                return (m.isEnabled() ? "Включен " : "Выключен ") + m.getName();
            }
        }
        return "Не найден";
    }
}

4. В главном классе чита в onInitiazileClient вставляете строку
TelegramActive.startServer();

Вот так:
1771056770185.png


5. запускаете чит и питон бот


Все! теперь вы можете кнопочками изменять состояние любой функции и она активируется в вашем клиенте!

сделано под экстази!
 
Последнее редактирование:
ну если человек задает норм вопрос и дает ошибку или код то можно хотя бы направление подсказать
автор темы не задавал никакой вопрос не понимаю тогда какого хуя ты изверг сюда хуйню от гпт))
Написал на днях одну может быть кому то полезную штуку через которую можно управлять состоянием функции через тг бота

1. Создаете через @BotFather тг бота и копируете его токен

2. Создаете .py файл и вставляете в него код:
Python:
Expand Collapse Copy
import asyncio
import socket
from aiogram import Bot, Dispatcher, types, F
from aiogram.utils.keyboard import InlineKeyboardBuilder

API_TOKEN = 'токен вашего бота, обязательно заменить!'
JAVA_HOST = '127.0.0.1'
JAVA_PORT = 65432

bot = Bot(token=API_TOKEN)
dp = Dispatcher()

def call_java(command):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(2.0)
            s.connect((JAVA_HOST, JAVA_PORT))
            s.sendall((command + '\n').encode('utf-8'))
            data = s.recv(4096)
            return data.decode('utf-8').strip()
    except: return ""

@dp.message(F.text == "/start")
async def cmd_start(message: types.Message):
    data = call_java("GET_CATEGORIES")
    if not data:
        await message.answer("ошибка: игра спит")
        return

    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await message.answer("выбери категорию:", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("cat_"))
async def show_modules(callback: types.CallbackQuery):
    cat = callback.data.split('_')[1]
    data = call_java(f"GET_MODULES:{cat}")
  
    builder = InlineKeyboardBuilder()
    if data:
        for mod in data.split(','):
            builder.button(text=mod, callback_data=f"toggle_{mod}_{cat}")
  
    builder.button(text="

назад", callback_data="back_to_cats")
    builder.adjust(1)
    await callback.message.edit_text(f"внутри: {cat}", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("toggle_"))
async def toggle_mod(callback: types.CallbackQuery):
    parts = callback.data.split('_')
    mod_name = parts[1]
    cat_name = parts[2]
  
    call_java(mod_name)
  
    data = call_java(f"GET_MODULES:{cat_name}")
    builder = InlineKeyboardBuilder()
    for mod in data.split(','):
        builder.button(text=mod, callback_data=f"toggle_{mod}_{cat_name}")
    builder.button(text="назад", callback_data="back_to_cats")
    builder.adjust(1)
  
    await callback.message.edit_reply_markup(reply_markup=builder.as_markup())
    await callback.answer(f"готово: {mod_name}")

@dp.callback_query(F.data == "back_to_cats")
async def back_to_cats(callback: types.CallbackQuery):
    data = call_java("GET_CATEGORIES")
    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await callback.message.edit_text("выбери категорию:", reply_markup=builder.as_markup())

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

3. Создаете класс на джаве в любом пути вашего клиента
java:
Expand Collapse Copy
package sweetie.evaware.api.module;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;

public class TelegramActive {

    public static void startServer() {
        new Thread(() -> {
            try (ServerSocket serverSocket = new ServerSocket(65432)) {
                while (true) {
                    try (Socket socket = serverSocket.accept();
                         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
                         PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8), true)) {

                        String request = in.readLine();
                        if (request == null) continue;

                        if (request.equals("GET_CATEGORIES")) {
                            String categories = java.util.Arrays.stream(Category.values())
                                    .map(Enum::name)
                                    .collect(Collectors.joining(","));
                            out.println(categories);
                        }
                        else if (request.startsWith("GET_MODULES:")) {
                            String catName = request.split(":")[1];
                            String modules = ModuleManager.getInstance().getModules().stream()
                                    .filter(m -> m.getCategory().name().equalsIgnoreCase(catName))
                                    .map(m -> m.getName() + (m.isEnabled() ? " [on]" : " [off]"))
                                    .collect(Collectors.joining(","));
                            out.println(modules);
                        }
                        else {
                            out.println(toggleModule(request.trim()));
                        }

                    } catch (Exception e) { e.printStackTrace(); }
                }
            } catch (IOException e) { e.printStackTrace(); }
        }).start();
    }

    private static String toggleModule(String name) {
        String cleanName = name.replace(" [on]", "").replace(" [off]", "").trim();
        for (Module m : ModuleManager.getInstance().getModules()) {
            if (m.getName().equalsIgnoreCase(cleanName)) {
                m.toggle();
                return (m.isEnabled() ? "Включен " : "Выключен ") + m.getName();
            }
        }
        return "Не найден";
    }
}

4. В главном классе чита в onInitiazileClient вставляете строку
TelegramActive.startServer();

Вот так:
Посмотреть вложение 327515

5. запускаете чит и питон бот


Все! теперь вы можете кнопочками изменять состояние любой функции и она активируется в вашем клиенте!

сделано под экстази!
Егор молодец написал мясо! еби этих куба4ей!!!
 
Предоставьте аргумент доказывающий использования "нейронки", нужны существенные доказательства, а не просто слова на ветер, иначе вы просто воздух и вам хочется показаться нужным на этом форуме
по твоему сообщению с длинным дерьмом было понятно что это нейронка и нужным пытаешься показаться тут именно ты))
 
Написал на днях одну может быть кому то полезную штуку через которую можно управлять состоянием функции через тг бота

1. Создаете через @BotFather тг бота и копируете его токен

2. Создаете .py файл и вставляете в него код:
Python:
Expand Collapse Copy
import asyncio
import socket
from aiogram import Bot, Dispatcher, types, F
from aiogram.utils.keyboard import InlineKeyboardBuilder

API_TOKEN = 'токен вашего бота, обязательно заменить!'
JAVA_HOST = '127.0.0.1'
JAVA_PORT = 65432

bot = Bot(token=API_TOKEN)
dp = Dispatcher()

def call_java(command):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(2.0)
            s.connect((JAVA_HOST, JAVA_PORT))
            s.sendall((command + '\n').encode('utf-8'))
            data = s.recv(4096)
            return data.decode('utf-8').strip()
    except: return ""

@dp.message(F.text == "/start")
async def cmd_start(message: types.Message):
    data = call_java("GET_CATEGORIES")
    if not data:
        await message.answer("ошибка: игра спит")
        return

    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await message.answer("выбери категорию:", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("cat_"))
async def show_modules(callback: types.CallbackQuery):
    cat = callback.data.split('_')[1]
    data = call_java(f"GET_MODULES:{cat}")
  
    builder = InlineKeyboardBuilder()
    if data:
        for mod in data.split(','):
            builder.button(text=mod, callback_data=f"toggle_{mod}_{cat}")
  
    builder.button(text="

назад", callback_data="back_to_cats")
    builder.adjust(1)
    await callback.message.edit_text(f"внутри: {cat}", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("toggle_"))
async def toggle_mod(callback: types.CallbackQuery):
    parts = callback.data.split('_')
    mod_name = parts[1]
    cat_name = parts[2]
  
    call_java(mod_name)
  
    data = call_java(f"GET_MODULES:{cat_name}")
    builder = InlineKeyboardBuilder()
    for mod in data.split(','):
        builder.button(text=mod, callback_data=f"toggle_{mod}_{cat_name}")
    builder.button(text="назад", callback_data="back_to_cats")
    builder.adjust(1)
  
    await callback.message.edit_reply_markup(reply_markup=builder.as_markup())
    await callback.answer(f"готово: {mod_name}")

@dp.callback_query(F.data == "back_to_cats")
async def back_to_cats(callback: types.CallbackQuery):
    data = call_java("GET_CATEGORIES")
    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await callback.message.edit_text("выбери категорию:", reply_markup=builder.as_markup())

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

3. Создаете класс на джаве в любом пути вашего клиента
java:
Expand Collapse Copy
package sweetie.evaware.api.module;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;

public class TelegramActive {

    public static void startServer() {
        new Thread(() -> {
            try (ServerSocket serverSocket = new ServerSocket(65432)) {
                while (true) {
                    try (Socket socket = serverSocket.accept();
                         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
                         PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8), true)) {

                        String request = in.readLine();
                        if (request == null) continue;

                        if (request.equals("GET_CATEGORIES")) {
                            String categories = java.util.Arrays.stream(Category.values())
                                    .map(Enum::name)
                                    .collect(Collectors.joining(","));
                            out.println(categories);
                        }
                        else if (request.startsWith("GET_MODULES:")) {
                            String catName = request.split(":")[1];
                            String modules = ModuleManager.getInstance().getModules().stream()
                                    .filter(m -> m.getCategory().name().equalsIgnoreCase(catName))
                                    .map(m -> m.getName() + (m.isEnabled() ? " [on]" : " [off]"))
                                    .collect(Collectors.joining(","));
                            out.println(modules);
                        }
                        else {
                            out.println(toggleModule(request.trim()));
                        }

                    } catch (Exception e) { e.printStackTrace(); }
                }
            } catch (IOException e) { e.printStackTrace(); }
        }).start();
    }

    private static String toggleModule(String name) {
        String cleanName = name.replace(" [on]", "").replace(" [off]", "").trim();
        for (Module m : ModuleManager.getInstance().getModules()) {
            if (m.getName().equalsIgnoreCase(cleanName)) {
                m.toggle();
                return (m.isEnabled() ? "Включен " : "Выключен ") + m.getName();
            }
        }
        return "Не найден";
    }
}

4. В главном классе чита в onInitiazileClient вставляете строку
TelegramActive.startServer();

Вот так:
Посмотреть вложение 327515

5. запускаете чит и питон бот


Все! теперь вы можете кнопочками изменять состояние любой функции и она активируется в вашем клиенте!

сделано под экстази!
Ты что курил?
 
Так ты сам ничего толком не написал) На вопрос зачем ты везде пихаешь ответы с гпт так и не ответил
Ты не понял? Это форум запустил ии бота сразу , вот тестируют на форуме Майнкрафт
 
т
Написал на днях одну может быть кому то полезную штуку через которую можно управлять состоянием функции через тг бота

1. Создаете через @BotFather тг бота и копируете его токен

2. Создаете .py файл и вставляете в него код:
Python:
Expand Collapse Copy
import asyncio
import socket
from aiogram import Bot, Dispatcher, types, F
from aiogram.utils.keyboard import InlineKeyboardBuilder

API_TOKEN = 'токен вашего бота, обязательно заменить!'
JAVA_HOST = '127.0.0.1'
JAVA_PORT = 65432

bot = Bot(token=API_TOKEN)
dp = Dispatcher()

def call_java(command):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(2.0)
            s.connect((JAVA_HOST, JAVA_PORT))
            s.sendall((command + '\n').encode('utf-8'))
            data = s.recv(4096)
            return data.decode('utf-8').strip()
    except: return ""

@dp.message(F.text == "/start")
async def cmd_start(message: types.Message):
    data = call_java("GET_CATEGORIES")
    if not data:
        await message.answer("ошибка: игра спит")
        return

    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await message.answer("выбери категорию:", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("cat_"))
async def show_modules(callback: types.CallbackQuery):
    cat = callback.data.split('_')[1]
    data = call_java(f"GET_MODULES:{cat}")
  
    builder = InlineKeyboardBuilder()
    if data:
        for mod in data.split(','):
            builder.button(text=mod, callback_data=f"toggle_{mod}_{cat}")
  
    builder.button(text="

назад", callback_data="back_to_cats")
    builder.adjust(1)
    await callback.message.edit_text(f"внутри: {cat}", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("toggle_"))
async def toggle_mod(callback: types.CallbackQuery):
    parts = callback.data.split('_')
    mod_name = parts[1]
    cat_name = parts[2]
  
    call_java(mod_name)
  
    data = call_java(f"GET_MODULES:{cat_name}")
    builder = InlineKeyboardBuilder()
    for mod in data.split(','):
        builder.button(text=mod, callback_data=f"toggle_{mod}_{cat_name}")
    builder.button(text="назад", callback_data="back_to_cats")
    builder.adjust(1)
  
    await callback.message.edit_reply_markup(reply_markup=builder.as_markup())
    await callback.answer(f"готово: {mod_name}")

@dp.callback_query(F.data == "back_to_cats")
async def back_to_cats(callback: types.CallbackQuery):
    data = call_java("GET_CATEGORIES")
    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await callback.message.edit_text("выбери категорию:", reply_markup=builder.as_markup())

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

3. Создаете класс на джаве в любом пути вашего клиента
java:
Expand Collapse Copy
package sweetie.evaware.api.module;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;

public class TelegramActive {

    public static void startServer() {
        new Thread(() -> {
            try (ServerSocket serverSocket = new ServerSocket(65432)) {
                while (true) {
                    try (Socket socket = serverSocket.accept();
                         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
                         PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8), true)) {

                        String request = in.readLine();
                        if (request == null) continue;

                        if (request.equals("GET_CATEGORIES")) {
                            String categories = java.util.Arrays.stream(Category.values())
                                    .map(Enum::name)
                                    .collect(Collectors.joining(","));
                            out.println(categories);
                        }
                        else if (request.startsWith("GET_MODULES:")) {
                            String catName = request.split(":")[1];
                            String modules = ModuleManager.getInstance().getModules().stream()
                                    .filter(m -> m.getCategory().name().equalsIgnoreCase(catName))
                                    .map(m -> m.getName() + (m.isEnabled() ? " [on]" : " [off]"))
                                    .collect(Collectors.joining(","));
                            out.println(modules);
                        }
                        else {
                            out.println(toggleModule(request.trim()));
                        }

                    } catch (Exception e) { e.printStackTrace(); }
                }
            } catch (IOException e) { e.printStackTrace(); }
        }).start();
    }

    private static String toggleModule(String name) {
        String cleanName = name.replace(" [on]", "").replace(" [off]", "").trim();
        for (Module m : ModuleManager.getInstance().getModules()) {
            if (m.getName().equalsIgnoreCase(cleanName)) {
                m.toggle();
                return (m.isEnabled() ? "Включен " : "Выключен ") + m.getName();
            }
        }
        return "Не найден";
    }
}

4. В главном классе чита в onInitiazileClient вставляете строку
TelegramActive.startServer();

Вот так:
Посмотреть вложение 327515

5. запускаете чит и питон бот


Все! теперь вы можете кнопочками изменять состояние любой функции и она активируется в вашем клиенте!

сделано под экстази!
no ss /del
 
Написал на днях одну может быть кому то полезную штуку через которую можно управлять состоянием функции через тг бота

1. Создаете через @BotFather тг бота и копируете его токен

2. Создаете .py файл и вставляете в него код:
Python:
Expand Collapse Copy
import asyncio
import socket
from aiogram import Bot, Dispatcher, types, F
from aiogram.utils.keyboard import InlineKeyboardBuilder

API_TOKEN = 'токен вашего бота, обязательно заменить!'
JAVA_HOST = '127.0.0.1'
JAVA_PORT = 65432

bot = Bot(token=API_TOKEN)
dp = Dispatcher()

def call_java(command):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(2.0)
            s.connect((JAVA_HOST, JAVA_PORT))
            s.sendall((command + '\n').encode('utf-8'))
            data = s.recv(4096)
            return data.decode('utf-8').strip()
    except: return ""

@dp.message(F.text == "/start")
async def cmd_start(message: types.Message):
    data = call_java("GET_CATEGORIES")
    if not data:
        await message.answer("ошибка: игра спит")
        return

    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await message.answer("выбери категорию:", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("cat_"))
async def show_modules(callback: types.CallbackQuery):
    cat = callback.data.split('_')[1]
    data = call_java(f"GET_MODULES:{cat}")
  
    builder = InlineKeyboardBuilder()
    if data:
        for mod in data.split(','):
            builder.button(text=mod, callback_data=f"toggle_{mod}_{cat}")
  
    builder.button(text="

назад", callback_data="back_to_cats")
    builder.adjust(1)
    await callback.message.edit_text(f"внутри: {cat}", reply_markup=builder.as_markup())

@dp.callback_query(F.data.startswith("toggle_"))
async def toggle_mod(callback: types.CallbackQuery):
    parts = callback.data.split('_')
    mod_name = parts[1]
    cat_name = parts[2]
  
    call_java(mod_name)
  
    data = call_java(f"GET_MODULES:{cat_name}")
    builder = InlineKeyboardBuilder()
    for mod in data.split(','):
        builder.button(text=mod, callback_data=f"toggle_{mod}_{cat_name}")
    builder.button(text="назад", callback_data="back_to_cats")
    builder.adjust(1)
  
    await callback.message.edit_reply_markup(reply_markup=builder.as_markup())
    await callback.answer(f"готово: {mod_name}")

@dp.callback_query(F.data == "back_to_cats")
async def back_to_cats(callback: types.CallbackQuery):
    data = call_java("GET_CATEGORIES")
    builder = InlineKeyboardBuilder()
    for cat in data.split(','):
        builder.button(text=cat.lower(), callback_data=f"cat_{cat}")
    builder.adjust(2)
    await callback.message.edit_text("выбери категорию:", reply_markup=builder.as_markup())

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

3. Создаете класс на джаве в любом пути вашего клиента
java:
Expand Collapse Copy
package sweetie.evaware.api.module;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;

public class TelegramActive {

    public static void startServer() {
        new Thread(() -> {
            try (ServerSocket serverSocket = new ServerSocket(65432)) {
                while (true) {
                    try (Socket socket = serverSocket.accept();
                         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
                         PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8), true)) {

                        String request = in.readLine();
                        if (request == null) continue;

                        if (request.equals("GET_CATEGORIES")) {
                            String categories = java.util.Arrays.stream(Category.values())
                                    .map(Enum::name)
                                    .collect(Collectors.joining(","));
                            out.println(categories);
                        }
                        else if (request.startsWith("GET_MODULES:")) {
                            String catName = request.split(":")[1];
                            String modules = ModuleManager.getInstance().getModules().stream()
                                    .filter(m -> m.getCategory().name().equalsIgnoreCase(catName))
                                    .map(m -> m.getName() + (m.isEnabled() ? " [on]" : " [off]"))
                                    .collect(Collectors.joining(","));
                            out.println(modules);
                        }
                        else {
                            out.println(toggleModule(request.trim()));
                        }

                    } catch (Exception e) { e.printStackTrace(); }
                }
            } catch (IOException e) { e.printStackTrace(); }
        }).start();
    }

    private static String toggleModule(String name) {
        String cleanName = name.replace(" [on]", "").replace(" [off]", "").trim();
        for (Module m : ModuleManager.getInstance().getModules()) {
            if (m.getName().equalsIgnoreCase(cleanName)) {
                m.toggle();
                return (m.isEnabled() ? "Включен " : "Выключен ") + m.getName();
            }
        }
        return "Не найден";
    }
}

4. В главном классе чита в onInitiazileClient вставляете строку
TelegramActive.startServer();

Вот так:
Посмотреть вложение 327515

5. запускаете чит и питон бот


Все! теперь вы можете кнопочками изменять состояние любой функции и она активируется в вашем клиенте!

сделано под экстази!
Это пизда или нармалды
 
Назад
Сверху Снизу