1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Создание персонального ScoreBoard'a

Тема в разделе "Разработка плагинов для новичков", создана пользователем Minecraftov LoL, 9 фев 2014.

  1. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Всем привет. Недавно появилась нужда создать свой плагин, а конкретно Табло статистики(ScoreBoard) и столкнулся с такой проблемой: Как каждому игроку задать персональный ScoreBoard, а не чтобы все игроки видели один ScoreBoard. Если кто знает, помогите пожалуйста^_^
     
  2. ptnk

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

    Баллы:
    173
    Ну значит для каждого игрока нужно создать свой экземпляр SB, а не один на всех.
    Ваш К.О.
     
    ql_Nik_lp нравится это.
  3. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    player.setScoreboard(твой скореборд)
     
  4. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Я так и сделал, но он присваивается всем игрокам и все получают один ScoreBoard, мне же не создавать 10000 ScoreBoard в коде, чтобы каждому свой присвоить, есть какой-нибудь альтернативный способ, например с помощью HashMap?
     
  5. ptnk

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

    Баллы:
    173
    Инициализируй каждый раз новый скорбоад и передавай.
     
  6. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Например e.getPlayer().getScoreBoard(new ScoreBoard().getObjective("test")); ?
     
  7. ptnk

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

    Баллы:
    173
    начни изучать java вначале, а потом за плагины садись. ><
     
    Последнее редактирование: 9 фев 2014
    Den_Abr и Hephest нравится это.
  8. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Cпасибо за помощь
     
  9. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Хорошо, что я в свое время не последовал подобному совету ;)
     
    ql_Nik_lp и Den_Abr нравится это.
  10. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    всмысли?
     
  11. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    В смысле, что я совмещал создание плагинов и изучение Java. Собственно, и сейчас регулярно открываю в джаве что-то новое :)
     
  12. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Я также, создавая плагины - изучаю java
    А собственно как решить мою проблему не знаешь?
    Я считаю что делая плагины, ты изучаешь все операторы и сложные массивы, что потом поможет в изучении Swing библиотеки и воопще GUI
     
  13. ptnk

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

    Баллы:
    173
    только потом, когда декомпилируешь плагины и смотришь код - плакать хочется.
    ООП? - А что такое ООП? Я не буду лишний код в лишний класс сувать.
    Паттерны? - А что это? Мне и без них свой огород городить не плохо.
    В итоге получаются крайне весёлые творения, с крайне неоптимальной реализацией, что добавляет кучу ненужной нагрузки к серверу.
    Не бывает сложны операторов и сложных массивов - бывают только пробелы в изучении.
     
  14. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    и что, что нагрузка на сервер? главное изучить и научиться использовать много мерные и одномерные массивы, if, switch, do while и т.д
    Я выражаюсь "языком новичков", под сложными массивами я подозреваю такие массивы как HashMap, ArrayList.
    И воопще, "Знаток", не надо засорять тему ненужным флудом.
     
  15. ptnk

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

    Баллы:
    173
    Да прочитай ты уже хотя бы одну книгу по JAVA, эти "сложные массивы" называются коллекциями или контейнерами.
     
  16. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Кто знает решение моей проблемы, убедительная просьба отписаться
     
  17. ptnk

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

    Баллы:
    173
    Конечно - а что нагрузка на сервер? Потом в будущем вырастают такие недотёпы и маленькие приложения отрмозят большие системы.
    Лучший опыт - это тот опыт, который ты получаешь сам. Т.е. для этого нужно стараться самому решить свои проблемы, самому напороться на граблю, самому найти описание той или иной функции.
    Обучение - это более самостоятельный процесс.
    А тут на форуме задаются простые вещи, ответы на которые можно получить самому.
    А что знать твою проблемы?

    Берёшь всех игроков и для каждого такого игрока инициализиурешь новый SB.
    p1.setScoreBoard(new ScoreBoard());
    p2.setScoreBoard(new ScoreBoard());
    И каждый такой игрок будет иметь свою собственную SB.
     
  18. Автор темы
    Minecraftov LoL

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

    Баллы:
    61
    Берёшь всех игроков и для каждого такого игрока инициализиурешь новый SB.
    p1.setScoreBoard(new ScoreBoard());
    p2.setScoreBoard(new ScoreBoard());
    И каждый такой игрок будет иметь свою собственную SB.[/quote]
    Дак каждому ScoreBoard не надо Objective прикреплять?
     
  19. ptnk

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

    Баллы:
    173
    Дак каждому ScoreBoard не надо Objective прикреплять?[/quote]

    Конечно нужно.
     
  20. Автор темы
    Minecraftov LoL

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

    Баллы:
    61

    Конечно нужно.[/quote]
    Тоесть получается такой код: player.setScoreBoard(new ScoreBoard().getObjective("Test"));
    ну, getObjective за скобку вынести
    Конечно нужно.[/quote]
    Не получается твой способ, ошибку выдает
     

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