Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice
Thread Status:
Not open for further replies.
  1. Автор темы
    Jayman

    Jayman Активный участник Пользователь

    Trophy Points:
    76
    Как получить время игры игрока, а потом, когда наберется определенное кол-во времени выполнять какое-то действие и обнулять счётчик?
     
  2. Хостинг MineCraft
    <
  3. TheMrDanchik

    TheMrDanchik Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    TheMrDanchik
    Я сомневаюсь, что есть какие-то готовые методы, поэтому предлагаю так:
    1) Создаешь HashMap<Player, Int32>
    2) Запускаешь шелудер, в котором ко всем значениям из HashMap прибавляешь единицу. Тут же производишь остальные необходимые проверки и действия
    3) При заходе игрока записываешь в HasMap со значением 0, при выходе, соответственно, удаляешь элемент
    P.S. Хотя, может, я и мазахист
     
  4. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    У типа игрока есть 2 метода - время первого входа и последнего. Так и можно посчитать время игры, если я правильно понял(общее время игры на сервере).
     
  5. TheMrDanchik

    TheMrDanchik Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    TheMrDanchik
    Не знал про эти методы. Ну тогда задача упрощается - не нужно никуда сохранять информацию о времени игры
     
  6. kris13

    kris13 Активный участник Пользователь

    Trophy Points:
    78
    То о чем написал Den_Abr, это два метода от OfflinePlayer, они вам подойдут если вам не надо разделять онлайн и оффлайн время, в чем я сильно сомневаюсь. Если вам надо только время игрока онлайн, как писал TheMrDanchik, создаете структуру, запускаете задачу с повтором каждую минуту, и для всех игроков, которые онлайн(Bukkit.getOnlinePlayers()), увеличиваем счетчик и делаете что хотели - "определенное кол-во времени выполнять какое-то действие и обнулять счётчик".
    P.S. TheMrDanchik, пожалуйста, не храните в плагинах игроков как объекты Player, не надо.
     
  7. TheMrDanchik

    TheMrDanchik Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    TheMrDanchik
    String? Name? UUID? Памяти меньше, но вероятность сбоев/багов, как мне кажется, больше
     
  8. CraftCoder

    CraftCoder Старожил Пользователь

    Trophy Points:
    108
    Имя в Minecraft:
    CraftCoderr
    Наоборот, так вероятность сбоев меньше, потому что в процессе игры объект плэер может изменится и тогда вместо нужных данных ты получишь нулл из мапы.
     
  9. TheMrDanchik

    TheMrDanchik Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    TheMrDanchik
    Всегда использовал Player. Что ж, буду знать.
    Спасибо
     
Thread Status:
Not open for further replies.

Share This Page