С чего начать разработку плагинов

vancorl

Пользователь
Сообщения
525
Решения
5
Всем привет. Задам банальный вопрос: С чего начать разработку плагинов майнкафт?

Я выучил основы java, примерно понимаю основы ООП, решаю задачи на acmp.ru ( где-то 2 в неделю, 30% сложности пока что максимум пробовал)

В PaperDocs нашел руководство для начинающих
Может что-то похожее есть, на русском желательно

Посоветуйте, пожалуйста, какие-то уроки (видео/текстовые) по разработке плагинов, желательно, чтобы были с теорией, а то смотрел видео на ютубе о разработке плагинов от ру ютуберов и объяснения там были на уровне "так работает, просто используй это")
 
Всем привет. Задам банальный вопрос: С чего начать разработку плагинов майнкафт?

Я выучил основы java, примерно понимаю основы ООП, решаю задачи на acmp.ru ( где-то 2 в неделю, 30% сложности пока что максимум пробовал)

В PaperDocs нашел руководство для начинающих
Может что-то похожее есть, на русском желательно

Посоветуйте, пожалуйста, какие-то уроки (видео/текстовые) по разработке плагинов, желательно, чтобы были с теорией, а то смотрел видео на ютубе о разработке плагинов от ру ютуберов и объяснения там были на уровне "так работает, просто используй это")
1) Учи английский - пригодится
2) Ну и можешь "ПКМ" -> "Перевести на Русский"
Вам необходимо зарегистрироваться для просмотра изображений-вложений

3) Пройди ВСЕ уроки, это необходимый минимум
4) Погугли уроки по системам сборки, рекомендую gradle (+groovy)
5) Посмотри хорошие популярные плагины, которые есть в открытом доступе на Github

6) Формула гуглежки библиотек = открываешь гитхаб, вбиваешь в поиск язык + задача (существительные)

7) Для конфигов используй , и для vs-code поставь

8) Intelij IDEA Comunity и VisualVM - теперь твои друзья на 2-3 года, когда освоишься, научишься использовать и разбогатеешь - можешь присмотреться к Ultimate

9) Ни в коем случае не доверяй и не используй ИИ. оно делает только хуже. Если ты без ИИ ничто - ты его не достоин
 
Последнее редактирование:
Посоветуйте, пожалуйста, какие-то уроки (видео/текстовые) по разработке плагинов, желательно, чтобы были с теорией, а то смотрел видео на ютубе о разработке плагинов от ру ютуберов и объяснения там были на уровне "так работает, просто используй это")
Просто "основ" будет недостаточно. Для начала выучи джаву на уверенный уровень.

По разработке плагинов:
Не советую тратить время на курсы именно по плагинам - в большинстве случаев от них мало толку. Лучше сразу идти практическим путем.

Придумай себе конкретную задачу, которую хочешь реализовать и визуализируй в голове как бы это выглядело, и пытайся сделать. Не знаешь как что-то сделать - гугли, ищи ответы, читай документацию, смотри примеры проектов на гитхабе как делают другие, ищи точечные уроки на ютубе - не обязательно курсы, а ролики по конкретным темам, которые актуальны для твоей задачи.
Как сделал - пытайся улучшить. Старайся сделать код чище и понятнее: Код повторяется?Вынеси в метод. Класс перегружен? Разбей на части. Можешь учиться у тех, кто пишет хорошо, подмечая полезные подходы
 
Последнее редактирование:
Чтобы начать что-то программировать, внезапно надо это программировать.

Не понимаю смысла дрочки какого-то конкретного языка. Что такое "уверенный уровень"? Где нащупать грань, когда мне "можно" будет программировать плагины?
Если уже имеешь базу решения задач, умеешь работать с циклами, управляющими конструкциями, знаешь чем класс отличается от метода понимаешь их концепции и умеешь с ними работать - ящитаю велком, можно попробовать.
Главное не задавать глупых вопросов, что такое new, зачем кейворд static и как он работает. Если ты этого не понимаешь - то вернись к пункту с прорешиванием задачек и пониманием, как работают те или инные вещи.

Для начала, рекомендую поставить IDEA и плагин
Он генерирует проект за тебя, снимая боли новичков в установке и конфигурировании gradle и прочих непонятных штук - потом разберешься, если тебе это будет необходимо.
Штуки вроде VisualVM тебе сейчас и нахрен не нужны - ты всё равно не поймешь как ими сейчас пользоваться. Вернешься к ним, когда надо будет отлаживать плагин и поймешь зачем нужен "профайлинг".

По урокам - да нет смысла смотреть какие-то конкретно. Поиск по коду на Github и статей на форумах - твои лучшие друзья. Главное научиться читать и понимать чужой код.
ИИ стоит использовать с осторожностью, как выше ответили. Зачастую он может сделать хуже, но полностью выкидывать этот инструмент не стоит. Обязательно перепроверяй то, что он написал.


И помни, если ты знаешь как правильно задается вопрос, то ты уже получил 50% ответа.
 
Последнее редактирование:
ИИ стоит использовать с осторожностью, как выше ответили. Зачастую он может сделать хуже, но полностью выкидывать этот инструмент не стоит. Обязательно перепроверяй то, что он написал.
Дело не столько в том, что он допускает ошибки - человек их тоже допускает

Пробема в другом
Если ты не используешь свои мозги для решения задач - ты ничему не научишься

Это губит начинающих разработчиков
Такие случаи не единичны, с такими овощами я наговорился достаточно
Для начала, рекомендую поставить IDEA и плагин
Он генерирует проект за тебя, снимая боли новичков в установке и конфигурировании gradle и прочих непонятных штук - потом разберешься, если тебе это будет необходимо.
То же самое с этим.
+Начинать нужно "с начала" а не с середины

Штуки вроде VisualVM тебе сейчас и нахрен не нужны - ты всё равно не поймешь как ими сейчас пользоваться. Вернешься к ним, когда надо будет отлаживать плагин и поймешь зачем нужен "профайлинг".
Инструмент бесплатный, когда его нужно применять - человек поймет сам по мере своего развития.
Основной посыл был в том, чтобы ни в коем случае не пиратить платный софт, к-рый к тому-же не сможешь использовать
 
Последнее редактирование:
Если ты не используешь свои мозги для решения задач - ты ничему не научишься
Да никто и не спорит, я просто уточнил, что инструмент отбрасывать не стоит. Особенно если речь идет про ChatGPTшные исследования/поиск, которые дают ссылки на информацию. И вот их уже нужно самому изучать.
А так да - никто тебя не научит думать кроме тебя самого.

То же самое с этим.
+Начинать нужно "с начала" а не с середины
Бред полный, вот зачем мне учиться конфижить градле, если я хочу просто попробовать написать плагин? Ну там эвентики половить, сообщения в чатик пописать?
Это вполне серьезный инструмент, но ему легко обучиться в процессе работы.
Я считаю, что сложность инструментов как раз таки и снижает количество тех, кто осилил и начал делать чет дальше. Новичку хочется увидеть, чо его код делает в игре, а не как там что компилируется - ему вообще побарабану на это.

Основной мой посыл - заинтересовать.
В продуктовой разработке есть такая метрика как "Customer Effort Score", и если кратко - она отображает уровень усилий пользователя которые затрачены, чтобы получить какое-то решение. И чем выше это усилие - тем меньше решений.
Сложность задач будет и так возрастать по мере хотелок, к этому все равно придется вернуться.

Основной посыл был в том, чтобы ни в коем случае не пиратить платный софт, к-рый к тому-же не сможешь использовать
Тогда можно было бы об этом написать прямо и привести пример?
 
Последнее редактирование:
Да никто и не спорит, я просто уточнил, что инструмент отбрасывать не стоит. Особенно если речь идет про ChatGPTшные исследования/поиск, которые дают ссылки на информацию. И вот их уже нужно самому изучать.
А так да - никто тебя не научит думать кроме тебя самого.
Моя позиция простая
Не делаешь сам а просишь ИИ - ничему сам не учишься, становишься зависимым от этого и сам себе могилу копаешь
Особенно, когда поручаешь ИИ задачи, к-е не умеешь (плохо делаешь) делать сам

Ладно, когда тебе нужно написать +- очевидный код, и ты решаешь доверить это ИИ, чтобы потратить свое время на решение более тяжелых задач
Другое дело, когда ты не умеешь писать сам и просишь это сделать за тебя ИИ

Использование средств автоматизации, к-е облегчают жизнь - не является чем-то плохим, но только если ты умеешь это делать это вручную

Бред полный, вот зачем мне учиться конфижить градле, если я хочу просто попробовать написать плагин? Ну там эвентики половить, сообщения в чатик пописать?
Это вполне серьезный инструмент, но ему легко обучиться в процессе работы.
Я считаю, что сложность инструментов как раз таки и снижает количество тех, кто осилил и начал делать чет дальше. Новичку хочется увидеть, чо его код делает в игре, а не как там что компилируется - ему вообще побарабану на это.
Статья на gradle в 15 минут прочитать и полтора часа попрактиковаться не такая уж и не посильная задача ...

Я считаю, что сложность инструментов как раз таки и снижает количество тех, кто осилил и начал делать чет дальше. Новичку хочется увидеть, чо его код делает в игре, а не как там что компилируется - ему вообще побарабану на это.
Добро пожаловать во взрослую жизнь
 
Статья на gradle в 15 минут прочитать и полтора часа попрактиковаться не такая уж и не посильная задача ...
Будем честны, не все хотят на это тратить время в самом начале, да и не особо оно нужно. 15 минут на статью, полтора часа на сборщик, полчаса на создание проекта с нуля... Это явно не то, что хотели бы видеть большинство людей когда начинают чему-то учиться. В процессе всё равно к этому нужно будет возвращаться, но явно не в самом начале
 
Статья на gradle в 15 минут прочитать и полтора часа попрактиковаться не такая уж и не посильная задача ...
Давай честно, любой процесс обучения идет к чертям если ты не получаешь хоть какой-нибудь результат. Особенно в такой области, как программирование. Пусть попробует с упрощениями, с шаблонами проектов и прочей штукой. Как поймет что ему мало, поставит и gradle, и VisualVM и прочие инструменты. Пока он не знает зачем они ему, так пусть и не ставит.

Вот насчёт ИИ согласен на 100%. Пока мозги на место не встали, использовать его нельзя. Даже для поиска информации, уж лучше github/stackoverflow.
 
Давай честно, любой процесс обучения идет к чертям если ты не получаешь хоть какой-нибудь результат. Особенно в такой области, как программирование. Пусть попробует с упрощениями, с шаблонами проектов и прочей штукой. Как поймет что ему мало, поставит и gradle, и VisualVM и прочие инструменты. Пока он не знает зачем они ему, так пусть и не ставит.
Меня опять не поняли
3) Пройди ВСЕ уроки, это необходимый минимум
Пока ты выполняешь уроки ты уже +- научишься писать (с этими вашими "упрощениями"), и уже захочешь приступать к решениям каких-то своих реальных задач
НО ты столкнешься с проблемами - банально добавить зависимости в проект. Упаковать зависимости в результат. И прочее.
Вот и следующий пункт. Я реально не понимаю, в чем проблема потратить еще немного времени на изучение систем сборки, когда уже под сотню часов грыз базу из учебника
4) Погугли уроки по системам сборки, рекомендую gradle (+groovy)
Преисполнился решимостью, решил что знаешь и java и системы сборки и
снова уже рвешься делать свой первый гавноплагин? Стоять, посмотри как другие умные люди делали до тебя, от туда и 5-тый пункт
5) Посмотри хорошие популярные плагины, которые есть в открытом доступе на Github

То же самое со всеми другими пунктами, я прямо указал правильный логический порядок для старта

Будешь рваться вперед игнорируя правильный порядок?
Тебя хорошенько приложит суровая реальность и заставит вернуться + ты потратишь значительно больше времени
 
Последнее редактирование:
Ну давай разберем по частям тобою написанное...

НО ты столкнешься с проблемами - банально добавить зависимости в проект. Упаковать зависимости в результат. И прочее.
И героически проблему решишь, как остальные проблемы до этого.

Обучение ради обучения - суходрочка. А если ему градле не понравится, он уверует в Перуна и захочет юзать Maven или Ant? А может он смузихлеб и захочет юзать Bazel?
Я помню, как-то писал у себя в бложике, что занимался вот этим бесполезным суходрочем прежде чем найти первую работу. Думал, что вот недостаточно умный для реальной работы, надо еще чет подучить, проектики поделать бесполезные. И не заметил, как сам попал в эту ловушку суходроча.

Вот только то, что ты умненький и знаешь на бесполезную хрень больше чем другие - написать проект не поможет. Все эти знания должны добываться в бою, чтобы они не были бесполезными и не занимали стек черепной коробки, который и так ограничен.
Поэтому work, work и еще раз work. А work должен быть над чем-то реальным.
Стоять, посмотри как другие умные люди делали до тебя
А как маслёнок поймет, что вот именно этот плагин написан хорошо? Вот базарю, я менторил новичков у себя на работе, и у них есть 2 основных проблемы:
1. Человеку нужно самому споткнуться об говно, чтобы понять, что то что он делает - неправильно. Почему? Ну, может у него на это свой взгляд, мы же все разные.
2. Банально не хватает насмотренности. А нахера мне плодить кучу интерфейсов? А зачем мне DAOшки, если я могу все запросы прям в одном классе писать? А зачем этот ваш SRP, я вот в классе несколько методов разной направленности увидел, ну и норм, так же сделаю.
И делает так. И смотрит. Не дай бог в раздел плагинов, где очередная копия трапок с калтайма.
И видит там говно. И думает, что писать говно - нормально.

Человеку нужно показывать примеры, а не отправлять их искать самому. Он банально не знает, что есть хорошо. Нужно объяснять, что такое хорошо - и именно тогда настанет светлое будущее.
Но оно не настанет.

под сотню часов грыз базу из учебника
Штош, если чел дальше грызет учебники, а не делает чет реальное - он буквально тратит время зря.

Будешь рваться вперед игнорируя правильный порядок?
Тебя хорошенько приложит суровая реальность и заставит вернуться + ты потратишь значительно больше времени
А что значит правильный порядок? Кто определяет его правильность?
Давай закончим на том, что правильный порядок - он у каждого в голове свой. Не существует идеальных путей, они у каждого свои, как и возможности.
Я лишь просто надеюсь, что из нашего холивара ТС сделает какие-то выводы, и пойдет набивать шишки - как и мы все когда-то.
 
А если ему градле не понравится
Я не настаиваю - я прямо указал что это рекомендация

Вот только то, что ты умненький и знаешь на бесполезную хрень больше чем другие - написать проект не поможет.
Еще как поможет - знать и не использовать, и не знать в следствие чего не использовать - это 2 разные вещи

Все эти знания должны добываться в бою
Прочитать 1 раз учебник / документацию перед началом работы: Нет
Потратить пол-дня (и более) на поиск, анализ и исправление ошибок а после получить кайф с этого: Да

Я лишь просто надеюсь, что из нашего холивара ТС сделает какие-то выводы, и пойдет набивать шишки - как и мы все когда-то.
Шишки нужно набивать на тяжелых задачах, у к-рых единственное решение - твое
Иначе в этом не много смысла и лучше и быстрее ознакомиться с опытом предшественников, чем заниматься велосипедированием
 
Последнее редактирование:
Еще как поможет - знать и не использовать, и не знать в следствие чего не использовать - это 2 разные вещи
Прочитать 1 раз учебник / документацию перед началом работы: Нет
Потратить пол-дня (и более) на поиск, анализ и исправление ошибок а после получить кайф с этого: Да

Заметь, ты всё еще игнорируешь тот факт, что ты не можешь знать, что тебе понадобится в будущем (я не говорю про документацию, тезис хороший). У тебя нет фактического списка литературы, которую нужно поглотить, чтобы решать задачи, которые возникнут. Этот список возникает по ходу дела.

Не вся макулатура полезная. Вот во всех книжках по джаве, которые я читал меня учат работать с Swing. Вот прям он весомую часть занимал. Но за всю жизнь он мне ни разу не понадобился, если мне нужен был гуй - я писал его на Qt или JavaFX. Но больше на Electron, аче)

Никто не спорит, что базу в виде книг и так далее черпать нужно. Но только тогда, когда это действительно необходимо, когда у тебя есть сформулированный запрос. У новичка такого конкретного запроса нет - у него глаза разбегаются от кучи материалов.
Остальное время лучше потратить на практику, никто же не запрещает доки читать пока ты работаешь над чем-то, так ведь?
Шишки нужно набивать на тяжелых задачах
Любая тяжелая задача бьется на мелкие, принцип декомпозиции, мать его)
лучше и быстрее ознакомиться с опытом предшественников, чем заниматься велосипедированием
Действительно полезный тезис, но мы снова возвращаемся к ситуации, когда неофит не в курсе, как правильно. Нет точных материалов, или они уже устарели.

И вот на подумать - практически у каждого разработчика есть какие-то свои либы, которыми он решает проблемы.
Возьмем самое простое - конфиглибу. У Auxilor есть своя , Exlll написал свой ConfigLib, BlueSlimeCore и сотню их, я посмотрел в ресурсах - даже у тебя есть что-то такое. Вот и задай себе вопрос, зачем мы, разработчики, пишем велосипеды?
Может нам нравится или у нас свое видение, как нам удобно?


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