Исходный код uSkyBlock

Статус
В этой теме нельзя размещать новые ответы.

Empathy

Игрок

Empathy

Игрок
Май 21, 2018
116
54
Привет всем! Сегодня хочу научить всех, как добраться до исходного кода uSkyBlock - плагина, отвечающего за структуру островов на SkyTech. Некоторым игрокам это, по идее, будет весьма полезно - ну а другие, возможно, просто хотят посмотреть, как там всё устроено. В любом случае, гайд довольно простой - давайте приступим!

Шаг 1. Google
Заходим на следующий сайт: www.google.com
Посередине будет большое текстовое поле. Этот сайт позволяет нам найти любую строку текста в большинстве интернета - "поисковик", так его называют. Так как нам нужен исходный код uSkyBlock, а плагин написан англоязычными программистами, то в поле забьём "uSkyBlock source code" ("uSkyBlock исходный код").
llTSWel.png
Далее, нажимаем Enter (кнопка на клавиатуре справа от букв, большая такая - иногда на ней нарисована стрелка вниз и влево), либо на "Google Search" ("Поиск в Google" если у вас Русский язык).

Шаг 2. GitHub
После того, как Google выдаст нам результаты, видим следующее окно:
d4nx5SZ.png
Первый результат - страница плагина в GitHub. Нажимаем на него.
dVASTAX.png
Этот сайт создан для того, чтобы разработчики различных программ хранили там исходный код своих проектов ("репозитории"). Например, исходный код uSkyBlock хранится в репозитории "rlf/uSkyBlock". Но, одна из особенностей этого сайта заключается в том, что можно хранить несколько разных версий проекта одновременно в одном репозиторие - это называется "ветки". Основная ветка по умолчанию стоит на новую версию (для версии Minecraft 1.9), но, так как на нашем любимом SkyTech версия 1.7.10, то нам нужно именно её и выбрать (а точнее, 1.7.9, т.к. отдельной версии для 1.7.10 в репозитории нет).
Для этого, кликаем на списке веток:
EiTGAxT.png
И нас переносит на версию 1.7.9:
V7k2In8.png
Теперь, можно запросто скачать исходный код! Для этого, кликаем на зелёной кнопке, и выбираем формат ZIP:
q9DZpjE.png
После этого, скачанный файл-архив можно будет открыть любым архиватором, чтобы достать оттуда сам код. Я советую использовать WinRAR или 7-Zip, ну, а если у вас Windows 10 - то этот файл можно открыть простым проводником! Там и будет лежать исходный код.

На этом гайд закончен. Спасибо за внимание!
 

Empathy

Игрок

Empathy

Игрок
Май 21, 2018
116
54
Как бонус, сразу напишу что надо изменить чтобы пофиксить надписи на предметах.

В src/main/java/us/talabrek/ultimateskyblock/event/ItemDropEvents.java, в функции addDropInfo, неплохо было бы добавить проверку того, есть ли уже надпись на предмете. Что-то вроде
Код:
if (lore.contains(tr("Owner: {0}", player.getName())) {lore.add(tr("Owner: {0}", player.getName()));}
на линии 72.
Также, неплохо было бы полностью удалить линию 61, либо хотя бы добавить проверку того, есть ли у игрока статус - из-за того, что предметы сохраняются, надписи на предметы добавляются несмотря на то что они не выпадают в мир. При первом варианте, если кто-то без сохранения инвентаря умрёт на чужом острове, то его предметы сможет поднять кто угодно. Второй вариант будет посложнее сделать, но я в вас верю) (сам бы подсказал что именно поменять, но, насколько я знаю, сохранение инвентаря добавлено собственным плагином МВ, который написал Ник - кода у меня нет)


Либо можно вообще полностью удалить ItemDropEvents.java, что позволит кому угодно выкидывать и поднимать что угодно на любом острове. Тогда будет полная анархия, но лично я не против.
 

Ansl

Игрок

Ansl

Игрок
Янв 5, 2020
5
0
Привет всем! Сегодня хочу научить всех, как добраться до исходного кода uSkyBlock - плагина, отвечающего за структуру островов на SkyTech. Некоторым игрокам это, по идее, будет весьма полезно - ну а другие, возможно, просто хотят посмотреть, как там всё устроено. В любом случае, гайд довольно простой - давайте приступим!

Шаг 1. Google
Заходим на следующий сайт: www.google.com
Посередине будет большое текстовое поле. Этот сайт позволяет нам найти любую строку текста в большинстве интернета - "поисковик", так его называют. Так как нам нужен исходный код uSkyBlock, а плагин написан англоязычными программистами, то в поле забьём "uSkyBlock source code" ("uSkyBlock исходный код").
llTSWel.png
Далее, нажимаем Enter (кнопка на клавиатуре справа от букв, большая такая - иногда на ней нарисована стрелка вниз и влево), либо на "Google Search" ("Поиск в Google" если у вас Русский язык).

Шаг 2. GitHub
После того, как Google выдаст нам результаты, видим следующее окно:
d4nx5SZ.png
Первый результат - страница плагина в GitHub. Нажимаем на него.
dVASTAX.png
Этот сайт создан для того, чтобы разработчики различных программ хранили там исходный код своих проектов ("репозитории"). Например, исходный код uSkyBlock хранится в репозитории "rlf/uSkyBlock". Но, одна из особенностей этого сайта заключается в том, что можно хранить несколько разных версий проекта одновременно в одном репозиторие - это называется "ветки". Основная ветка по умолчанию стоит на новую версию (для версии Minecraft 1.9), но, так как на нашем любимом SkyTech версия 1.7.10, то нам нужно именно её и выбрать (а точнее, 1.7.9, т.к. отдельной версии для 1.7.10 в репозитории нет).
Для этого, кликаем на списке веток:
EiTGAxT.png
И нас переносит на версию 1.7.9:
V7k2In8.png
Теперь, можно запросто скачать исходный код! Для этого, кликаем на зелёной кнопке, и выбираем формат ZIP:
q9DZpjE.png
После этого, скачанный файл-архив можно будет открыть любым архиватором, чтобы достать оттуда сам код. Я советую использовать WinRAR или 7-Zip, ну, а если у вас Windows 10 - то этот файл можно открыть простым проводником! Там и будет лежать исходный код.

На этом гайд закончен. Спасибо за внимание!
а не проще через intellij idea декомпильнуть и посмотреть код или через Luyten или через Jd-gui?
 

Specter

Администратор
Игрок

Specter

Администратор
Игрок
Май 21, 2018
43
60
Уважаемый Empathy! Всей командой разработчиков проекта с огромным интересом прочитали твой гайд.

Возникли споры относительно 1 пункта: многие из нас предпочитают вводить текст в строку ввода браузера. Однако, после бурного обсуждения сошлись на том, что для неподготовленного пользователя твой вариант предпочтительнее. Тем более что в нём предусмотрены такие передовые решения как возможное нажатие Enter вместо клика мышкой по кнопке поиска.
Пункт 2 нам показался недостаточно раскрытым - почему не рассмотрены остальные ссылки из поисковой выдачи? Их стоило рассмотреть хотя бы ради примера. А взаимодействие непосредственно с GitHub стоило вынести в отдельный пункт. Определенные сомнения вызвало высказывание "одновременно в одном репозиторие". Для прояснения этого вопроса нам пришлось обратиться к лингвистам. По их словам, правильнее было бы сказать "репозитории". Впрочем, вольности допускаются.
А вот отсутствие поясняющих стрелочек на скриншотах нас возмутило - каким образом неподготовленный пользователь поймёт, куда нажимать? Общими усилиями (и не без помощи лингвистов) было выяснено, что так называемые "ветки" соответствуют полю "Branch: master" в левом верхнем углу. Отсутствие пояснения может ввести неподготовленного пользователя в заблуждение - к примеру, он может начать искать ветки в ближайшем лесу и заблудиться. А ответственность за это будет целиком и полностью на твоей совести! Этот момент определённо требует доработки.
Разочаровало отсутствие отдельного пункта гайда, поясняющего как именно найти и открыть скачанный с GitHub файл. Эта задача была нами блестяще решена без помощи квалифицированных сыщиков, однако вызвала определённые затруднения и потребовала привлечения кадров из аналитического отдела. Неподготовленный же пользователь в своих поисках может зайти слишком далеко и, к примеру, повредить системные файлы. Как ты понимаешь, такой исход тоже крайне нежелателен. Стоит это поправить. Как бонус, можно рассказать про особенности скачки файлов в различных браузерах - всплывающие окна порой вводят пользователей в ступор.
Бонусная часть у нас вызвала недоумение. Почему-то файл с отредактированным твоим способом кодом не вносит никаких изменений в работу плагина. Было испробовано несколько вариантов: залить файл на сервер (в различные папки, включая папку плагина), залить на сервер корневую папку, скачанную с сайта (это было крайне нелегко - пришлось воспроизводить структуру папок прямо на сервере и вручную раскидывать файлы, очень обидно, что это не дало результата), залить на сервер пересобранный архив с отредактированным файлом (также в различные папки). Один из самых одиозных наших программистов даже смог открыть .jar-файл плагина и засунуть туда отредактированный файл - к сожалению, тоже не сработало. В расстроенных чувствах, мы решили приостановить работу над технической частью проекта до получения разъяснений этого момента.
Надеемся на скорый ответ и дополнение гайда, спасибо!
 

Specter

Администратор
Игрок

Specter

Администратор
Игрок
Май 21, 2018
43
60
А теперь серьёзно. Есть аж целых 4 причины, по которым это до сих пор не сделано:
1. uSkyBlock - большой плагин, к тому же версия под 1.7.10 сильно устарела и давно не поддерживается автором плагина. Сборка его даже с готовых исходников скорее всего даст кучу проблем. Это явно не стоит фикса одного незначительного визуального бага, который фиксится если выкинуть и подобрать предмет, не находишь?
2. Игроки в целом благосклонно к этому относятся, некоторым это даже нравится - лишний способ подчеркнуть, что предмет твой.
3. У нас стоит модифицированная версия uSkyBlock, которой (а тем более её исходников) нет в открытом доступе. Делать полный рекомпил такого плагина - практически самоубийство, хоть мне и приходилось подобным заниматься. Можно модифицировать конкретный класс плагина, но оно всё равно не стоит настолько мелкого бага (особенно учитывая пункт 2).
4. Изменение нативной механики работы плагина (а дописывание лора - как раз такая механика) всегда может привести к куче серьёзых последствий - никто никогда не узнает, что и по какой причине сделал его автор и какие механики на это завязаны. Плагин большой и сбои могут вылезти где угодно - оно снова того не стоит.
Но мб как-нибудь на досуге я это поправлю, посмотрим (в любом случае не собирая для этого полный проект).

В любом случае спасибо автору за проделанную поисковую работу (на уровне профессионального сыщика, я бы сказал), а также за подход к делу с юмором - немного скрасил трудовые будни)

Закрыто.

P.S.
а не проще через intellij idea декомпильнуть и посмотреть код или через Luyten или через Jd-gui?
Рекомпилить плагин уровня uSkyBlock с помощью JDCore? Удачи, чё)
Тут даже ферн вряд ли справится.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.