Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Плагин [MISC]PvPStats v0.6 - Статистика игрока на PvP.[Tested: 1.8]

Тема в разделе "Неподтвержденные плагины", создана пользователем Slavkaa, 18 май 2017.

  1. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    PvPStats - Статистика игрока на PvP для вашего сервера.
    Версия: 0.6

    Данный плагин выводит статистику игроков на пвп, а именно: убийства, смерти, боевой рейтинг, процент побед.

    Особенности:
    - Возможность просмотреть статистики игрока.
    - Формат вывода статистики можно настроить в конфиге.
    - Плагин полностью на русском языке.
    - Сообщения, имеющиеся в плагине, так же можно настраивать в конфиге.
    - Возможность изменять статистику игрока командой.
    - /pvpstats - просмотреть свою статистику.
    - /pvpstats <nick> - просмотреть статистику игрока.
    - /setstats reload - перезагрузить конфиг.
    - /setstats reset - сбросить статистику игрока.
    - /setstats <nick> <kills/deaths/rating> <value>
    - pvpstats.use - Просмотр статистики.
    - pvpstats.admin - Админские команды.

    Конфиг:
    Код:
    message:
    - '&6┏╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍┓'
    - '&6┃  &cНик: &e%nick'
    - '&6┃  &cУбийств: &a%kills'
    - '&6┃  &cСмертей: &4%deaths'
    - '&6┃  &cБоевой рейтинг: &e%rating'
    - '&6┃  &cПроцент побед: %percent%'
    - '&6┗╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍┛'
    config:
      rating-add: 6
      rating-remove: 8
    messages:
      prefix: '&6[&ePvPStats&6] '
      death: '&cВас убил игрок &e%killername'
      killed: '&aВы убили игрока &e%name'
      don-t-have-perm: '&4У вас недостаточно прав'
      player-not-found: '&4Этот игрок не участвовал в PvP'
      you-not-found: '&4Вы еще не участвовали в PvP'
      invalid-syntax: '&4Неправильное использование -> /pvpstat <nick>'
      sender-console: '&4Эта команда доступна только игрокам'
      config-reloaded: '&3Конфиг перезагружен'
      stats:
        reset-message: '&aСтатистика игрока %nick сброшена'
        invalid-syntax: '&4Неправильное использование -> /setstats <Nick> <reset/kills/deaths/rating>
          <value>'
        invalid-value: '&4Для этого значения можно использовать только положительные числа'
        value-is-not-number: '&4Это значение должно быть числом'
        set-kills: '&aИгроку %nick установлено %value %kills-message'
        set-deaths: '&aИгроку %nick установлено %value %deaths-message'
        set-rating: '&aИгроку %nick установлено %value %rating-message боевого рейтинга'
    #kills-message: "убийство", "убийства", "убийств"
    #deaths-message: "смерть", "смерти", "смертей"
    #rating-message: "единица", "единицы", "единиц"
    
    v0.7 - Исправления багов, если такие найдутся.
    v1.0 - Перенос данных игроков в бд.
    v2.0 - Топ игроков.
    v0.1 - Релиз плагина.
    v0.2 - Некоторые поправки в коде.(Спасибо адекватной критике @DonDays и @TheZefirrkka) Добавил команду - /mystat reload - перезагрузка конфига. Изменил стандартное оформление вывода статистики.(Можно увидеть в скриншотах)
    v0.3 - Поправки в коде. Команды, с помощью которых можно изменять статистику игроков прямо в игре.(Смотрите "Команды").
    v0.4 - Изменена небольшая часть кода. Теперь, при входе игрока на сервер, не выставляются нули по умолчанию. Изменены некоторые команды. (Убрал add и remove, заменил их на set. (Смотрите "Команды")) Добавил команду /setstats reset - для сброса статистики игрока. Добавил сообщения: "Вас убил игрок %name" и "Вы убили игрока %name".
    v0.5 - Изменен код. При входе игрока на сервер, записи не создаются и, при проверке статистики игрока, который не участвовал в PvP, будет выводиться сообщение "Этот игрок не участвовал в PvP".
    Изменил некоторые команды. Изменил стандартное оформление вывода статистики. Убрал статус игрока.
    v0.6 - Избавился от лишнего кода.(Но это не точно). Теперь статистика сохраняется в файл players.yml. Склоняются слова "убийства, смерти, единицы боевого рейтинга" в команде /setstats. Немного изменил оформление вывода статистики.
    upload_2017-5-28_15-20-47.png
    Скачать: Яндекс.Диск
     
    Последнее редактирование: 28 май 2017
  2. Хостинг MineCraft
    <
  3. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Сейчас бы стату в кфг хранить
     
  4. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Для начала, пойдет. Потом, когда познаю всю мощь Java, сделаю нормально, в бд.
     
  5. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    46
    таких плагинов, как г***а, ну да ладно

    код плохо пахнет

    ну то есть никогда
     
  6. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Щас бы джаву учить для бд, ну ладно, не мои проблемы уже.
     
  7. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    действительно
    Декомпилировать можно, или сразу глаза вырезать?[DOUBLEPOST=1495178639,1495177975][/DOUBLEPOST]
    Код:
    public Main() {}
    
    public void onDisable() {}
    Зачем? Зачем ты при убийстве игрока выполняешь одни и те же действия, если киллер существует, и если нет? Не проще сделать сначала одинаковые действия, которые ты повторяешь при убийстве игрока, и при обычной смерти? Не проще снизу проверить киллера на нулл, и если он существует, добавить киллеру убийство? Зачем в onEnable ты несколько раз объявляешь хендлер? Зачем выставлять игроку нули при входе? Команду Mystat еще не смотрел.[DOUBLEPOST=1495178750][/DOUBLEPOST]Лайфхак от DonDays - удаление глаз без операции:
    1. Декомпилируем класс Mystat
    2. PROFIT!!!
     
  8. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Код:
    @EventHandler
      public void join(PlayerJoinEvent e)
      {
        Player p = e.getPlayer();
        String name = p.getName().toLowerCase();
        FileConfiguration c = this.plugin.getConfig();
        HashMap<String, Integer> addint = new HashMap();
        addint.put("kills", Integer.valueOf(0));
        addint.put("deaths", Integer.valueOf(0));
        addint.put("rating", Integer.valueOf(0));
        for (String d : addint.keySet()) {
          if (!c.isSet("players." + name + "." + d))
          {
            c.set("players." + name + "." + d, addint.get(d));
            this.plugin.saveConfig();
          }
        }
      }
    ЭТО, ПРОСТО, АХ...НО.
     
  9. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    еще глазки не выпали?
     
  10. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Ничоси ты быстро ответил, не, не выпали.
     
  11. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    тогда декомпилируй класс Mystat
     
  12. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Для 1 плагина ещё ладно, но столько кода ненужного и очень тупого.[DOUBLEPOST=1495191863,1495191781][/DOUBLEPOST]Я вообще ни одного паблик плагина не сделал :D
    Идей нету, почти все реализованы уже.
     
  13. DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Не ладно,
     
  14. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Да вообще задумка не очень, таких плагинов сотни и с большим функционалом.[DOUBLEPOST=1495192014,1495191976][/DOUBLEPOST]Могу помочь с командой выдачи убйиств, смертей и тп., если надо, в лс.
     
  15. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Спасибо всем, кто критиковал. Исправлю все, что смогу.
    Видел, максимум, 1-2 плагина, и супер-крутого функционала там не видел.[DOUBLEPOST=1495211952,1495211678][/DOUBLEPOST]
    Этот кусок я спи.. позаимствовал из какого-то плагина.[DOUBLEPOST=1495212365][/DOUBLEPOST]
    А что ты предлагаешь?
     
  16. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Для начала проверять, есть ли игрок в конфиге, а потом уже делать что-то.
     
  17. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Как-то так?
    Код:
        @EventHandler
        public void join(PlayerJoinEvent e) {
        Player p = e.getPlayer();
            String name = p.getName().toLowerCase();
            FileConfiguration c = plugin.getConfig();
            if(!c.contains("players." + name)) {
            HashMap<String, Integer> addint = new HashMap<String, Integer>();   
           addint.put("kills", 0);
           addint.put("deaths", 0);
           addint.put("rating", 0);
               for (String d : addint.keySet()) {
                   c.set("players." + name + "." + d, addint.get(d));
                   plugin.saveConfig();
               }
            }
        }
    
     
  18. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    -[DOUBLEPOST=1495216031,1495215731][/DOUBLEPOST]
    Тут HashMap не нужен ВООБЩЕ!
     
  19. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    c.set?
     
  20. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Объясни, зачем тебе тут HashMap, возможно, это я тупой.
     
  21. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Тупой я, я тупо увидел чей-то код и вставил его. Заработало, вот я и забил. Щас сделал через set, все нормально работает.[DOUBLEPOST=1495216623,1495216584][/DOUBLEPOST]
    Так удовлетворительно?
    Код:
        @EventHandler
        public void join(PlayerJoinEvent e) {
        Player p = e.getPlayer();
            String name = p.getName().toLowerCase();
            FileConfiguration c = plugin.getConfig();
            if(!c.contains("players." + name)) {
            c.set("players." + name + ".kills", 0);
            c.set("players." + name + ".deaths", 0);
            c.set("players." + name + ".rating", 0);
            }
            plugin.saveConfig();
        }
    
     

Поделиться этой страницей