Compukter Kraft | Dev
4 subscribers
19 photos
1 file
3 links
Наивный мальчик, желающий стать гигачадом в мире разработки

GitHub: https://github.com/LazyHat/Compukter-Kraft

Modrinth: https://modrinth.com/mod/compukterkraft
Download Telegram
Channel created
Привет!
Ты попал на канал увлечённого программированием человечка

Здесь я буду писать заметки и девлоги по своим проектам

Надеюсь найдёшь здесь для себя полезную инфу!
Compukter Kraft | Dev pinned «Привет! Ты попал на канал увлечённого программированием человечка Здесь я буду писать заметки и девлоги по своим проектам Надеюсь найдёшь здесь для себя полезную инфу!»
Сейчас я занимаюсь разработкой аналога мода CC:Tweaked - Compukter Craft (название может поменяться)

Отличие мода в том, что основной язык написания скриптов - Kotlin, а не Lua

Я считаю что язык Lua хорош, но он, на мой взгляд, не подходит для CC.

Lua предназначен прежде всего для написания не исполняемых скриптов или конфигураций, а вот исполняемую логику, тем более сложную логику я считаю нереально писать на Lua

Один мой друг решил нарисовать програмки для CC и... это было больно.

Поэтому я загорелся идеей написать свой мод.



Прикладываю настоящий репозиторий с модом, пока там ничего особого нет, да и половина сп.. позаимствована из оригинального CC
GitHub: https://github.com/LazyHat/Compukter-Kraft

Modrinth: https://modrinth.com/mod/compukterkraft
Compukter Kraft | Dev pinned «Сейчас я занимаюсь разработкой аналога мода CC:Tweaked - Compukter Craft (название может поменяться) Отличие мода в том, что основной язык написания скриптов - Kotlin, а не Lua Я считаю что язык Lua хорош, но он, на мой взгляд, не подходит для CC. Lua предназначен…»
Ох как же я устал от конфигурирования проекта мода в Gradle

С одной стороны я хорошо знаю Gradle и знаю как сделать что угодно.

С другой стороны есть всякие плагины для модлоадеров, которые совершенно не интуитивно работают с classpath и sourceSet

Вот я вообще не имею понятия как мне подгрузить другие зависимости в мод, например для Kotlin Scripting, чтобы они нормально резолвились в Intellij и чтобы модлоадер тоже их мог найти
Compukter Kraft | Dev
Ох как же я устал от конфигурирования проекта мода в Gradle С одной стороны я хорошо знаю Gradle и знаю как сделать что угодно. С другой стороны есть всякие плагины для модлоадеров, которые совершенно не интуитивно работают с classpath и sourceSet Вот я…
Вообще я просто хочу добавить:
во-первых поддержку Kotlin в моде без KotlinForForge, потому что я не хочу завязываться на этот мод, он как-то странно поддерживается

во-вторых добавить поддержку Kotlin Scripting

всего-то...

А на деле это выливается в кучу проблем с внедрением этого всего в java мир Minecraft, знаю разраб HollowEngine тоже запарился, настала и моя очередь)

Пока я не сильно представляю как устроена разработка мода, зачем деобфусцировать я в целом понимаю, но тонкости упаковки мода, загрузки его модлоадером, а также конфигурация в Gradle - это пока неизведанное
Не знаю почему, но что бы я не попробовал, везде натыкался на какую-то ошибку, о которой никто не знает. Копаться в исходниках мне не очень хочется, особенно Gradle плагинов, где люди забывают что такое типизация как правило

Пробовал разные плагины и в итоге решил остановится на чистом ForgeGradle 6

Почему-то 7-мая версия у меня не завелась, вылетел непонятный NPE, ишьюс не было никакого, поэтому я решил забить на него и откатиться на 6-ой

ModDevGradle(legacy) от neoforge завёлся, но мне была совсем непонятно как он управляет конфигурациями. Банально не полуилось подтянуть зависимость в мод (kotlin-stdlib). При запуске задачи runClient Forge не находил зависимость и классы в ней. В classpath разумеется было пусто. Я попробовал разные варианты прокидывания: и в рантайм, и в implementation, нейронки тоже ничего путного не подсказали.

Поэтому я решил попробовать использовать форджовский оригинальный Gradle плагин, ну нахер эти ваши обёртки


В целом ветки я оставил, может ещё вернусь к новым плагинам
УРААААААААААААА ПОБЕДАААААААААА СЛАВА ARCHITECTURY!!!!!!
Compukter Kraft | Dev
УРААААААААААААА ПОБЕДАААААААААА СЛАВА ARCHITECTURY!!!!!!
В общем да... Я решил всё таки попробвать ещё раз. И у меня получилось, счастья полные штаны

В ForgeGradle 6 я тоже столкнулся с какой-то непонятной для меня нынешнего ошибкой, поэтому я снова переключился от нехотя на модный молодёжный плагин architectury, плюсом я скорее всего буду распространять мод на несколько модлоадеров и разумеется лучшим вариантом будет использовать architectury

+ Forge уже уходит в закат, а плагин NeoForge разумеется несовместим никак со старым Forge

Даже в architectury на сайте с инициализацией проекта у тебя выбор Forge доступен только на 1.20.x версиях. На 1.21.x на Forge писать уже моветон хах
И вот я вернулся к ошибке, из-за которой забросил разработку этого мода...

Как ни странно, но раньше у меня получалось работать с ModDevGradle от NeoForged и всё подгружалось... но да не важно уже )))
Compukter Kraft | Dev
И вот я вернулся к ошибке, из-за которой забросил разработку этого мода... Как ни странно, но раньше у меня получалось работать с ModDevGradle от NeoForged и всё подгружалось... но да не важно уже )))
Просто в тупую подключить зависимости для Kotlin Scripting увы не получится, есть такой вот пакет с названием "native". А в Java слово "native" является зарезервированным и как название пакета использоваться не может. буду ремапить штош
Please open Telegram to view this post
VIEW IN TELEGRAM
Compukter Kraft | Dev
Просто в тупую подключить зависимости для Kotlin Scripting увы не получится, есть такой вот пакет с названием "native". А в Java слово "native" является зарезервированным и как название пакета использоваться не может. буду ремапить штош
Не совсем как оказалось. Проблема ещё глубже, на уровне загрузки этих зависимостей в мод.

Как я понял, самое лучшее решение - делать отдельный Jar со всей мишурой компиляторной и делать маленький слой взаимодействия с модом. Т.е. напрямую не пользоваться зависимостями для kts скриптов

Подключил нейронку для такого действия, буду внимательно изучать, так как всё это для меня в новинку
оно запустилося, ураааааа
Заодно я окончательно решил что буду использовать Architectury для своего мода