Подключение MySQL к моду + упаковка внешних библиотек в мод

Всем привет снова я

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

данный пример будет приведен на основе 1.19.2 и ForgeGradle 5.1, если не знаете что это не берите в голову
изначально на gradle.build выглядит примерно так
Gradle:
plugins {
    id 'eclipse'
    id 'maven-publish'
    id 'net.minecraftforge.gradle' version '5.1.+'
}
version = '1.0'
group = 'com.yourname.modid' 
archivesBaseName = 'modid'
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"
minecraft {}
sourceSets.main.resources { srcDir 'src/generated/resources' }
repositories {}
dependencies {
     minecraft 'net.minecraftforge:forge:1.19.2-43.2.3'
}

//Строки ниже не несут в себе смысловой нагрузки в данном примере

для подключения MySQL коннектора что бы его классы были видны в IDEA вписываем следующие строки в блок dependencies после строки minecraft
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'
версия может быть указана абсолютно любая доступная, если вы не знаете различий в версиях, значит не будет ни какой разницы используете вы коннектор 5 версии или 8
при обновлении build.gradle библиотека будет загружена автоматически из интернета

теперь блок dependencies выглядит так
CODE:
dependencies {
    minecraft 'net.minecraftforge:forge:1.19.2-43.2.3'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'
}
Теперь вы можете писать свой мод, использовать реализацию MySQL но при запуске мода в тестовой среде, библиотека MySQL коннектора видна не будет,
так же, при компиляции, классы MySQL в мод добавлены не будут. К слову в тестовой среде мне так и не научилось заставить мод видеть MySQL.
Ладно! идем дальше

Возвращаемся в блок dependencies и после нашего implementation добавляем строку
jarJar(group: 'mysql', name: 'mysql-connector-java', version: '[8.0.26,8.0.33)'){jarJar.pin(it, "8.0.33")}
Блок должен выглядеть так
CODE:
dependencies {
    minecraft 'net.minecraftforge:forge:1.19.2-43.2.3'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'
    jarJar(group: 'mysql', name: 'mysql-connector-java', version: '[8.0.26,8.0.33)'){
        jarJar.pin(it, "8.0.33")
    }
}
Внесенная строка говорить нашему Build.gradle что при компиляции проекта нужно положить библиотеку в одну банку вместе с модом
но она по прежнему, еще не работает, данную опцию нужно включить, включается она двумя строками
jarJar.enable()
tasks.jarJar.configure { }

эти строки должны быть прописаны перед блоком minecraft не перепутайте с minecraft в блоке dependencies
получиться должно так
CODE:
........
println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"

jarJar.enable()
tasks.jarJar.configure { }

minecraft {....}
sourceSets.main.resources { srcDir 'src/generated/resources' }
........

Теперь при запуске команды build будет скомпилировано два файла mymod-1.0.jar допустим и mymod-1.0-all.jar
mymod-1.0.jar
содержит ваш голый мод без коннектора
mymod-1.0-all.jar помимо мода будет содержать в себе mysql-connector-j-8.0.33.jar
Теперь ваш мод будет стабильно работать с MySQL при условии что код запросов написан правильно
Успехов!!!
 
1,078
72
374
Можно просто закинуть библиотеку в mods и радоваться жизни. Не проверял как там на последних версиях, но раньше всё подключалось.
Пихать библиотеки в моды - плохая идея, поскольку сами моды являются подключаемыми библиотеками и может выйти так что библиотека mysql может понадобиться другому моду в сборке.

версия может быть указана абсолютно любая доступная, если вы не знаете различий в версиях, значит не будет ни какой разницы используете вы коннектор 5 версии или 8
С такими познаниями лучше не писать "гайды". Новичков только вводишь в заблуждение.

Тема Shadow Plugin упущена.
 
Последнее редактирование:
1,111
47
420
Добавляя к словам предыдущего оратора хочется обратить внимание на тот факт, что пакуя такую базу как mysql коннектор в мод ты рискуешь, что есть другой мод, который так уже делает, и если у вас разные версии, то внезапно ты проиграешь, если не будешь юзать shadow plugin.
 
Добавляя к словам предыдущего оратора хочется обратить внимание на тот факт, что пакуя такую базу как mysql коннектор в мод ты рискуешь, что есть другой мод, который так уже делает, и если у вас разные версии, то внезапно ты проиграешь, если не будешь юзать shadow plugin.
хуя ты блять сумничать, в кратце, мне по хуй, на другие моды как и на shadow plugin, который так же сука пакует Jar в Jar... ну ты не долбаеб ли подобные вещи писать со своим то опытом, ладно TheAndrey его простить можно, в виду недальновидность, и неспособность развиваться выше версии 1,7,10

но ты то блять, поразумнее уже должен быть
 
С такими познаниями лучше не писать "гайды". Новичков только вводишь в заблуждение.
Окей, почему тогда со познаниями как у тебя в подобной теме год назад, ты не смог дать четкого ответа как сделать это? на хуй писать свою чуть которая работает в 1.7.10... но на практике ты даже не знаешь о работоспособности данного метода на версии выше
а именно
Можно просто закинуть библиотеку в mods и радоваться жизни. Не проверял как там на последних версиях, но раньше всё подключалось.
зачем писать что-то, лишь бы это было написано, и кто из нас вводит новичков в заблуждения?
 
1,038
57
229
не матерись, это не корректное поведение. Ещё в прошлый раз хотел сказать. Спорить с богом (Just a God) может закончиться для тебя баном и вместо помощи остальным ты станешь озлоблен на весь мир. Помни что пока ты тут никто и должен вести себя тише воды и ниже травы.
Оскорбления в адрес участника форума или агрессивное поведение на любом форуме карается баном, временным или постоянным.

в подобной теме год назад, ты не смог дать четкого ответа как сделать это?
наверное потому что он ещё не знал ответа, все мы растём и развиваемся..

зачем писать что-то, лишь бы это было написано
дело в том что от версии к версии мало что меняется и в 90% ответ будет верным, но везде есть исключения.
 
Последнее редактирование:
но в любом случае я не должен слушать подобную ересь он людей называющих себя ОПЫТНЫМИ
я тут считаю своим долгом просто сказать человеку в максимально жесткой форме что он говорит дич
а именно на данный момент в контексте ребята вот вам способ привязать либу к проекту, для этого используйте FatJar

и тут ответ нет не правильно нужно использовать FatJar

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

Один говорит в папку mods положить НО Я ГОВОРИТ НЕ ЗНАЮ БУДЕТ ЛИ РАБОТАТЬ, как будто я изначально беря во внимание то что я к этой мысли пришел опытным путем не ложил либы в папку mods

Другой говорит еще большую дич, что делать надо не так как я а так как я, только стоя на голове
разачарован
когда регался тут, ожидал увидеть конкретные решения конкретных задач, а в итоге наблюдаю дич с ответами либо не имеющих вообще чегото общего с поставленными задачами, либо касаются их весьма косвенно
за время проведенное на форуме, я увидел только необходимость для юзеров ищущих решение, продолжать свои поиски в других местах
особенно когда решения кроятся в 3ех - 4ех строках кода
Ктому же, все люди которые называются тут себя ОПЫТНЫМИ уже писали эти строки, уже имеют под рукой в своих проектах готовые решения. но в ответ люди получают только косвенные детали, и чоткий посыл идти гуглить дальше...

опятьже впорос: НА ХУЙ ВЫ НУЖНЫ НА ЭТОМ ФОРУМЕ, если человек прочитав ваши комментарии в которых вы ему ПОМОГАЕТЕ, пойдет опять гуглить и ошибаться дальше в своем коде?
 
может закончиться для тебя баном
да хуй я ложил на этот бан, единственное, что я вынес для себя их этого форума, это способ прописать подключение либы прямо в ядро сервера или клиента из твоих комментов, в остальном форум на мой взгляд является помойкой
 
1,038
57
229
считаю своим долгом просто сказать человеку в максимально жесткой форме что он говорит дич
ты ещё не заработал себе такую опцию
надо было пометить этот момент и для остальных. Раньше работало только в путь.

ВЫ НУЖНЫ НА ЭТОМ ФОРУМЕ
вот смотри, допустим я словил обидку, ушел с форума на год. И не я один, что будет с форумом, будет ещё хуже. Но так как альтернатив никаких и единственная инфа на русском здесь, ты будешь пыхтеть и тусоваться здесь. Садо мазо типо))

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

will0376

Токсичная личность
2,083
55
585
в остальном форум на мой взгляд является помойкой
Ну так и иди нахер отсюда в таком случае.

Мы здесь не помогаем писать код, а помогаем найти только решение на вопрос. Решение никогда не подразумевает собой готовый код.
Вообще в самом начале учебника написано:
знание основ программирование и Java
Т.е. если ты не знаешь и не понимаешь того, как пишется код - тебе здесь не место.
По поводу гугла - 90% уже готового есть в гугле, поэтому туда и обычно посылают.
 

will0376

Токсичная личность
2,083
55
585
Да и ко всему прочему - тебе подсказывают, что у тебя не так написано - а ты начинаешь сходу на всех хер класть. некрасивый поступок.
Настолько же некрасивый, как и умышленное забитие на другие моды, ибо они должны быть совместимы друг с другом, иначе они и нахер не нужны такие.
 
1,111
47
420
я тут считаю своим долгом просто сказать человеку в максимально жесткой форме что он говорит дич
ну а я посчитал что мне нужно в более мягкой форме сказать что ты несешь дичь. я уважаю людей.
Другой говорит еще большую дич, что делать надо не так как я а так как я, только стоя на голове
разачарован
Я понимаю, что для начинающих программистов все эти выкрутасы опытных товарищей кажутся чем-то не нужным, ибо работает у меня - слава богу, но я считаю своим долгом написать свой комент для тех людей, которые любят копать глубже и писать качественный код. Хоть, конечно, для тебя это "стоять на голове", но конкретно ты можешь это просто не читать.

опятьже впорос: НА ХУЙ ВЫ НУЖНЫ НА ЭТОМ ФОРУМЕ, если человек прочитав ваши комментарии в которых вы ему ПОМОГАЕТЕ, пойдет опять гуглить и ошибаться дальше в своем коде?
ну получается на примере текущей темы мы выяснили зачем: дополнять полезные темы еще более полезными комментариями.
 
Сверху