Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PsichBot - AI бот для Minecraft

Плагин для Minecraft серверов на основе Purpur/Paper/Spigot, который добавляет AI бота "Псич" для общения с игроками в чате.

🎯 Возможности

  • 🤖 AI общение - Бот отвечает на сообщения игроков с использованием AI (Gemini, Groq, DeepSeek, Gemma)
  • 💬 Прямое обращение - Игроки могут обращаться к боту: "Псич, [сообщение]"
  • 🎲 Спонтанные ответы - Бот может сам отвечать на сообщения (настраиваемый шанс)
  • 🎮 Реакция на события - Бот реагирует на смерть игроков, достижения, подключение/отключение (с настраиваемым шансом)
  • ⏱️ Задержка ответа - Настраиваемая задержка перед отправкой сообщений для более естественного поведения
  • 🧠 Память и контекст - Бот запоминает историю разговоров и профили игроков
  • 📊 Система репутации - Бот анализирует отношения с игроками и адаптирует стиль общения
  • 🎨 Настройка цвета - Настраиваемый цвет ника бота в чате
  • 🔧 Прокси поддержка - Поддержка HTTP прокси для работы на российских серверах
  • ⚙️ Команды управления - Административные команды для настройки бота
  • 🐛 Режим отладки - Подробное логирование для отслеживания работы и поиска багов
  • 💬 Discord интеграция - Автоматическая отправка сообщений бота в Discord через Webhook

📋 Требования

  • Minecraft сервер на Purpur/Paper/Spigot 1.21.10+
  • Java 21+
  • API ключи от одного или нескольких провайдеров:
    • Google Gemini API
    • Groq API
    • DeepSeek API (опционально, платный)

📦 Установка

  1. Скачайте файл psich-bot.jar из папки target после сборки
  2. Поместите файл в папку plugins вашего сервера
  3. Запустите сервер один раз, чтобы создать конфигурационные файлы
  4. Откройте plugins/PsichBot/config.yml и настройте API ключи
  5. Перезапустите сервер или используйте /psich reload

⚙️ Настройка

config.yml

AI провайдеры

ai:
  # Gemini API ключи (можно указать несколько для ротации)
  gemini-keys:
    - "YOUR_GEMINI_KEY_HERE"
    - "YOUR_SECOND_GEMINI_KEY_HERE" # Опционально

  # Groq API ключи (можно указать несколько для ротации)
  groq-keys:
    - "YOUR_GROQ_KEY_HERE"

  # DeepSeek API ключи (платный, используется только в крайнем случае)
  deepseek-keys:
    - "YOUR_DEEPSEEK_KEY_HERE"

Настройки общения

chat:
  # Триггер для прямого обращения к боту
  trigger: "псич"

  # Шансы спонтанного ответа (0.05 = 5%)
  # Шанс спонтанного ответа на обычные сообщения в чате
  spontaneous-chance-message: 0.05
  # Шанс спонтанного ответа на вход/выход/первый заход игроков
  spontaneous-chance-join-quit: 0.1
  # Шанс спонтанного ответа на получение ачивок игроками
  spontaneous-chance-advancement: 0.1
  # Шанс спонтанного ответа на смерти игроков
  spontaneous-chance-death: 0.1

  # Количество последних сообщений для анализа
  context-size: 15

  # Минимальная длина сообщения для спонтанного ответа
  min-message-length: 10

  # Цвет ника Псича в чате
  name-color: "green" # Можно использовать: yellow, red, blue, green и т.д.

  # Задержка перед отправкой сообщения бота (в секундах, для более естественного поведения)
  # Рекомендуется: 1.0 - 2.0 секунды
  response-delay: 1.5

Прокси (для российских серверов)

proxy:
  # Включить использование прокси
  enabled: true

  # Адрес прокси сервера
  host: "ip"

  # Порт прокси сервера
  port: 3128

  # Имя пользователя для прокси (оставьте пустым если не требуется)
  user: ""

  # Пароль для прокси (оставьте пустым если не требуется)
  password: ""

Системный промпт

В секции prompt.system можно редактировать личность и поведение бота.

Режим отладки

debug: false # Установите true для подробного логирования

Интеграция с Discord (через Webhook)

discord:
  # Включить отправку сообщений бота в Discord
  enabled: true

  # URL вебхука Discord (полный URL)
  webhook-url: "https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"

  # Имя отправителя в Discord (опционально)
  username: "Псич"

  # URL аватарки для вебхука (опционально, прямая ссылка на изображение PNG/JPG/GIF)
  avatar-url: "https://example.com/avatar.png"

Как создать Discord Webhook:

  1. Откройте настройки канала Discord, куда хотите отправлять сообщения
  2. Перейдите в раздел "Интеграции" → "Вебхуки"
  3. Нажмите "Создать вебхук" или "Новый вебхук"
  4. Скопируйте URL вебхука (формат: https://discord.com/api/webhooks/ID/TOKEN)
  5. Вставьте URL в discord.webhook-url в конфиге PsichBot
  6. Включите discord.enabled: true

Сообщения бота будут автоматически отправляться в указанный Discord канал через вебхук. Цветовые коды Minecraft и префикс <Псич> будут автоматически удалены из сообщений для Discord (имя уже указано в username).

Примечание: Для аватарки можно использовать прямую ссылку на изображение (PNG, JPG, GIF). Изображение должно быть доступно публично по указанному URL.

Реакция на игровые события

Бот автоматически отслеживает и может реагировать на следующие события:

  • Смерть игроков - бот видит когда игрок умирает и может прокомментировать это
  • Достижения - бот видит когда игрок получает достижения (рецепты игнорируются) и может поздравить или прокомментировать
  • Подключение к серверу - бот видит когда игрок присоединяется к серверу и может поприветствовать
  • Первое подключение - бот различает первое подключение игрока и может поприветствовать новичка по-особенному
  • Отключение от сервера - бот видит когда игрок отключается и может попрощаться

Реакция на события происходит с настраиваемым шансом для каждого типа события:

  • Сообщения в чате: chat.spontaneous-chance-message (по умолчанию 0.05 = 5%)
  • Вход/выход/первый заход: chat.spontaneous-chance-join-quit (по умолчанию 0.1 = 10%)
  • Ачивки: chat.spontaneous-chance-advancement (по умолчанию 0.1 = 10%)
  • Смерти: chat.spontaneous-chance-death (по умолчанию 0.1 = 10%)

Сначала проверяется шанс, затем AI решает, стоит ли отвечать на событие.

Важно:

  • Бот автоматически обрабатывает Discord rate limiting с повторными попытками
  • Бот ограничен максимум 2 сообщениями подряд (510 символов) для предотвращения спама

Получение API ключей

🎮 Команды

  • /psich help - Показать справку (доступна всем)
  • /psich mute - Включить/выключить режим тишины (только для админов)
  • /psich reload - Перезагрузить конфигурацию (только для админов)
  • /psich reset - Сбросить историю чата (только для админов)

💬 Использование

Прямое обращение к боту

Просто напишите в чат:

Псич, как дела?

или

Псич, что такое майнкрафт?

Спонтанные ответы

Бот автоматически анализирует последние сообщения в чате и может сам ответить, если это уместно.

🔧 Логика работы AI провайдеров

Плагин использует несколько AI провайдеров с автоматическим переключением:

Приоритет использования:

  1. Groq (llama-3.3-70b-versatile) - основной провайдер
  2. Gemini (gemini-2.0-flash-exp) - резерв
  3. Gemma (gemma-3-27b-it) - простой fallback
  4. Groq-Simple (llama-3.1-8b-instant) - простой fallback
  5. DeepSeek - только если все остальные исчерпали лимиты (платный)

При исчерпании лимитов одного провайдера автоматически происходит переключение на следующий.

📁 Структура данных

Плагин сохраняет данные в папке plugins/PsichBot/data/:

  • db.json - История чатов и настройки
  • profiles.json - Профили игроков с репутацией и фактами

🐛 Режим отладки

Включите debug: true в конфиге для получения подробных логов:

  • Обработка сообщений
  • Выбор AI провайдеров
  • Переключение между провайдерами
  • Генерация ответов
  • Анализ репутации

🔒 Безопасность

  • API ключи хранятся в config.yml (не коммитьте их в Git!)
  • Используйте .gitignore для исключения конфигов с ключами
  • Прокси поддерживает авторизацию для безопасности

📝 Особенности

  • Бот адаптирует стиль общения под каждого игрока
  • Запоминает контекст разговоров
  • Анализирует отношения с игроками (репутация 0-100)
  • Поддерживает несколько AI провайдеров с автоматическим переключением
  • Все AI запросы выполняются асинхронно, не блокируя сервер
  • Сообщения автоматически разбиваются на части по 256 символов (лимит Minecraft)

🛠️ Сборка из исходников

  1. Убедитесь, что у вас установлен Maven
  2. Выполните команду:
mvn clean package
  1. Готовый JAR файл будет в папке target/

📄 Лицензия

ISC

👤 Автор

PsiKeiKen / Meows

🙏 Благодарности

Основано на логике Telegram бота для общения с пользователями.

About

ИИ бот для общения с игроками в Майнкрафте

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages