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

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

Зато после полугода плагинотворения все эти термины возможно не становятся известны, но начинаешь использовать то, что под ними подразумевается. Вот я к примеру, не знал, что Вы подразумеваете под паттерном. Пришлось погуглить. Оказывается использую. Сам удивился.
А так читал бы книжки два года и не до сих пор не знал бы с какой стороны подступится к плагину.
 
Зато после полугода плагинотворения все эти термины возможно не становятся известны, но начинаешь использовать то, что под ними подразумевается. Вот я к примеру, не знал, что Вы подразумеваете под паттерном. Пришлось погуглить. Оказывается использую. Сам удивился.
А так читал бы книжки два года и не до сих пор не знал бы с какой стороны подступится к плагину.

Прочитав бы несколько параллельно нужных книг - вы бы за два года научились бы гораздо большему. Это своеобразный множитель в изучении, с книгами текущий результат был бы гораздо раньше.
 
Будет интернет. напишу как у меня сделаны персональные Очкодоски. А вообще да. с использованием HashMap.
Сам учился на декомпиле и открытых доступных исходниках. Не прочтя ни одной книжки...
Только у меня есть один таракан. который меня ограничивает в написании плагинов: я боюсь писануть что-то не так опасаясь. что сделаю что-то. что вызовет нагрузку.

Я даже хочу после написания плагина MineZ кому-нибудь показать пару классов. А то я не совсем разбираюсь с new и отличием между простым вызовом ф-ции/переменной и статичным (ИмяКласса.ф-ция()) и боюсь. что какая-то переменная/хешмапка пропадёт. если оставлю её в другом классе (храню их в главном классе).
Потому что может быть так. что я вызову через new и этот вызванный класс будет висеть в памяти. А если и не будет висеть. то тогда переменные в нём навсегда пропадут.
 
только потом, когда декомпилируешь плагины и смотришь код - плакать хочется.
ООП? - А что такое ООП? Я не буду лишний код в лишний класс сувать.
Паттерны? - А что это? Мне и без них свой огород городить не плохо.
В итоге получаются крайне весёлые творения, с крайне неоптимальной реализацией, что добавляет кучу ненужной нагрузки к серверу.

Не бывает сложны операторов и сложных массивов - бывают только пробелы в изучении.
Хехе)
Мне попалось однажды одно твое творение ptnk, я долго думал.. "Какого хрена он вообще делает?!", "А это мать вашу что такое?!" и т.п.)) Так что, у каждого свои проблемы...)
Тоже самое могу и про свой код сказать, тоже много глупостей.
Но это не значит, что не надо учится до того, как сел за код.
 
Будет интернет. напишу как у меня сделаны персональные Очкодоски. А вообще да. с использованием HashMap.
Сам учился на декомпиле и открытых доступных исходниках. Не прочтя ни одной книжки...
Только у меня есть один таракан. который меня ограничивает в написании плагинов: я боюсь писануть что-то не так опасаясь. что сделаю что-то. что вызовет нагрузку.

Я даже хочу после написания плагина MineZ кому-нибудь показать пару классов. А то я не совсем разбираюсь с new и отличием между простым вызовом ф-ции/переменной и статичным (ИмяКласса.ф-ция()) и боюсь. что какая-то переменная/хешмапка пропадёт. если оставлю её в другом классе (храню их в главном классе).
Потому что может быть так. что я вызову через new и этот вызванный класс будет висеть в памяти. А если и не будет висеть. то тогда переменные в нём навсегда пропадут.
Не переживай, любой человек с малыми знаниями всегда будет чего-то боятся и будет домысливать,
Хехе)
Мне попалось однажды одно твое творение ptnk, я долго думал.. "Какого хрена он вообще делает?!", "А это мать вашу что такое?!" и т.п.)) Так что, у каждого свои проблемы...)
Тоже самое могу и про свой код сказать, тоже много глупостей.
Но это не значит, что не надо учится до того, как сел за код.
Код мой вариативный, за сотню плагинов он притерпел множество изменений.
Это всегда так. когда мало работаешь с чужим кодом - по началу тупишь, а потом ко всему привыкаешь и не считаешь всех и каждого говнокодером. xD
 
Последнее редактирование:
Не переживай, любой человек с малыми знаниями всегда будет чего-то боятся и будет домысливать,

Код мой вариативный, за сотню плагинов он притерпел множество изменений.
Это всегда так. когда мало работаешь с чужим кодом - по началу тупишь, а потом ко всему привыкаешь и не считаешь всех и каждого говнокодером. xD
Хехе)
Мне попалось однажды одно твое творение ptnk, я долго думал.. "Какого хрена он вообще делает?!", "А это мать вашу что такое?!" и т.п.)) Так что, у каждого свои проблемы...)
Тоже самое могу и про свой код сказать, тоже много глупостей.
Но это не значит, что не надо учится до того, как сел за код.
хех, ребят, я спрашивал как мне решить проблему, а не философию читать) давайте создадим отдельную тему и там поговорим, дабы не засорять эту
 
хех, ребят, я спрашивал как мне решить проблему, а не философию читать) давайте создадим отдельную тему и там поговорим, дабы не засорять эту
Решение твоей проблемы кроется в изучении как java, так и BukkitAPI. Если ты пришёл, чтобы здесь всё сделали за тебя, то жди.
 
В хешмапке храни <Player, Objective>
 
В хешмапке храни <Player, Objective>
А за чем? Что за глупое решение? Ничего, что из любого игрока можно получить его SB и работать с ним?
Я-то возможно и понял, что ты хотел сказать, но человек просит. чтобы ему предоставили код, разжевали бы каждую строчку, а лучше, если бы ты ему весь плагин написал.
 
Чтобы у каждого игрока была персональьная очкодоска, ему нужно создать и присвоить персональный Objective.
 
То есть? Очкодоска или Objective?
 
Чтобы у каждого игрока была персональьная очкодоска, ему нужно создать и присвоить персональный Objective.
И что? За чем это хранить в Контейнере, когда я и так из игрока смогу это вытащить?

Это и есть признаки кустарного самообразования, когда многое делается не правильно.
 
Последнее редактирование:
Хорошо. Как его вытащить?
 
Вашу машу, разве так тяжело помочь человеку?
Человек, держи:
Код:
        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard scoreboard;
        Objective objective;
        Score score;

        for (Player cPlayer : Bukkit.getOnlinePlayers()) {
            scoreboard = manager.getNewScoreboard();
            objective = scoreboard.registerNewObjective("test", "dummy");
            objective.setDisplaySlot(DisplaySlot.SIDEBAR);
            score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Rating:")); //Получаем фейкового плеера для своего имени для Score
            score.setScore(1337);
            cPlayer.setScoreboard(scoreboard);
        }

Я знаю что ему надо думать своими мозгами, но если не выходит...
У меня тоже сначала были трудности, и огромное спасибо людям которые мне в свое время помогли! (Особенно @Jampire , @fromgate и @D_ART :3)
 
Хорошо. Как его вытащить?
Player.getScoreboard()

Вашу машу, разве так тяжело помочь человеку?
...
Лучшие знания - это те, которые ты добыл сам. Смысл помогать человеку, который не знает основ и вместо их изучения сразу лезет к более сложным вещам? Вначале нужно научиться складывать числа между собой, научиться считать, а уже потом учиться умножению и делению.
 
По-моему, эта функция возвращает Scoreboard, предустановленный посредством Player.setScoreboard(), например, при его входе.
 
По-моему, эта функция возвращает Scoreboard, предустановленный посредством Player.setScoreboard(), например, при его входе.
Ты спрашивал, как получить очкодоску - я тебе указал. Без всяких лишний хешмапов.
Точно так же я не вижу проблем с "персональным" objective - обычно его делают шаблонным, ник игрока + какой-то суффикс, и его можно вытащить с помощью getObjectives().
 
Назад
Верх