Skip to content

TimeReward - система автоматических наград за время на сервере Minecraft. Выдает валюты игрокам за активную игру с поддержкой CoinsEngine.

License

Notifications You must be signed in to change notification settings

flyawaymaking/TimeReward

Repository files navigation

TimeReward - Плагин наград за время на сервере

Плагин для выдачи наград игрокам за время, проведенное на сервере. Поддерживает динамические валюты через CoinsEngine и интеграцию с EssentialsX для проверки AFK статуса.

📋 Функциональность

  • Динамические награды - Настраиваемые валюты с индивидуальными интервалами и размерами наград
  • AFK проверка - Интеграция с EssentialsX для исключения AFK игроков из подсчета времени
  • Гибкая система прав - Пермишены для настройки размера наград для разных групп игроков
  • Статистика - Подробная статистика по времени игроков
  • Автосохранение - Регулярное автоматическое сохранение данных

⚙️ Установка

  1. Убедитесь что установлены зависимости:
  • CoinsEngine - для работы с валютами
  • EssentialsX - для AFK проверки и правильного учёта активного времени игры
  1. Скачайте последний релиз из раздела Releases

  2. Поместите .jar в папку plugins/

  3. Перезапустите сервер

  4. Настройте конфигурационный файл plugins/TimeReward/config.yml

  5. Выполните команду /timereward reload, для применения изменений

🔧 Конфигурация

Основные настройки (config.yml)

# Настройки TimeReward плагина

settings:
  # Интервал проверки в секундах (рекомендуется 60-300)
  check-interval: 60
  currencies:
    coins:
      reward-interval: 60 # Интервал награды в минутах (рекомендуется 10-60)
      reward-default: 1.0
    money:
      reward-interval: 30 # Интервал награды в минутах (рекомендуется 10-60)
      reward-default: 30.0
  # Проверять AFK статус (требует Essentials)
  require-afk-check: true
  # Оповещать всех игроков о наградах
  broadcast-rewards: false

# Сообщение при получении награды
messages:
  reward-message: "&aВы получили &6{amount} {currency} &aза время на сервере!"

Добавление новых валют

Для добавления новой валюты просто добавьте новый раздел в currencies:

currencies:
  coins:
    reward-interval: 60
    reward-default: 1.0
  money:
    reward-interval: 30  
    reward-default: 30.0
  gems:
    reward-interval: 120
    reward-default: 0.5

🔐 Права доступа (Permissions)

Основные права

timereward.* - Все права TimeReward
timereward.admin - Административные права

Права на размер наград

Формат: timereward.{валюта}.{количество}

Примеры:

timereward.coins.1 - Выдавать 1 коин (по умолчанию)
timereward.coins.5 - Выдавать 5 коинов
timereward.money.30 - Выдавать 30 денег (по умолчанию)  
timereward.money.100 - Выдавать 100 денег
timereward.gems.1 - Выдавать 1 самоцвет

💻 Команды

/timereward help - Показать справку по командам
/timereward stats - Показать вашу статистику
/timereward stats <игрок> - Показать статистику игрока (требует timereward.admin)
/timereward reload - Перезагрузить конфигурацию (требует timereward.admin)

📊 Статистика

Плагин отслеживает:

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

🗃️ Структура данных

Данные игроков хранятся в plugins/TimeReward/playerdata.yml:

players:
  uuid-игрока:
    totalTime: 1043        # Наигранное время в секундах
    periodTime: 0          # Периодическое время в секундах
    lastRewardTimes:
      coins: 1030    # Время последней награды coins
      money: 1030    # Время последней награды money

🔄 API методы

Плагин предоставляет API для интеграции с другими плагинами (например его использует TopsSystem):

// Получить общее время игрока
long totalTime = plugin.getPlayerTotalTime(uuid);

// Получить периодическое время игрока  
long periodTime = plugin.getPlayerPeriodTime(uuid);

// Получить данные всех игроков
Map<UUID, Long> allTotalTimes = plugin.getAllPlayersTotalTime();
Map<UUID, Long> allPeriodTimes = plugin.getAllPlayersPeriodTime();

// Сбросить периодическое время всех игроков
plugin.resetAllPlayersPeriodTime();

🐛 Поиск неисправностей

Плагин не выдает награды

  • Проверьте что CoinsEngine установлен и работает
  • Убедитесь что валюты существуют в CoinsEngine
  • Проверьте настройки интервалов в конфиге

AFK проверка не работает

  • Убедитесь что EssentialsX установлен
  • Проверьте настройку require-afk-check в конфиге

Ошибки в консоли

  • Проверьте совместимость версий
  • Убедитесь что все зависимости установлены

📞 Поддержка

Если у вас возникли проблемы:

  1. Проверьте логи сервера для деталей ошибки
  2. Убедитесь в правильности конфигурации
  3. Проверьте совместимость версий плагинов

📄 Лицензия

Этот плагин распространяется под лицензией MIT.

About

TimeReward - система автоматических наград за время на сервере Minecraft. Выдает валюты игрокам за активную игру с поддержкой CoinsEngine.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages