вот насчёт этого у меня и вопрос. Можно ли менять айдишники предметов извне, например через ещё один мод?
Нет. И даже если сделаешь так (через какой-нибудь ASM, не знаю, вдруг сможешь) делать так
крайне нежелательно. На id предмета могут быть завязаны механики самого мода или других модов.
Более подробно обо всём этом ниже.
Ну и как сказал об этом человек выше, тут нет никакой проблемы, чтобы её исправлять.
К тому же как тогда работают аддоны, они ведь не содержат файлов мода-источника внутри себя?
Аддоны "ссылаются" к коду ориг. мода, поскольку все моды как-бы существуют внутри одной среды. Благодаря Forge (или других ModLoader'ов на более новых версиях).
До Forge и прочих ModLoader'ов установка нескольких модов вообще была невозможна (либо сопровождалась огромной тучей багов, крашей и прочих нестабильностей).
Тогда как мне импортировать этот мод так, чтобы можно было использовать его классы внутри моего мода?
Десяток тем на форуме по созданию аддонов, уж что-то понять оттуда можно.
Если коротенько: код мода подключается как библиотека в ForgeGradle, благодаря чему ты можешь обращаться к коду мода в своём аддоне.
просто я в целом не очень понимаю системы взаимодействия майнкрафта с модами в forge. Зачем вообще нужен modid?
Modid нужен для различия предметов с одинаковым id.
Представим в голове картинку:
Есть в IC2 медь. И в Immersive Engineering тоже есть медь. Слиток меди и там, и там именуется просто: copper_ingot. Тогда как отличить предмет из IC2 и II? Для этого и существует разделение при помощи Resource Location - "modid:item_id" (формально иначе выглядит, но т.к. ты новенький в моддинге и понимания работы майна у тебя нет, мне кажется, что подобного объяснения вполне хватит). В реальности, конечно, у них "item_id" отличается, как мне помнится, но такие ситуации сплошь и рядом.
Окей, но почему тогда не регистрировать просто "minecraft:copper_ingot", это просто уберёт все эти ваши конфликты? А вот нет - конфликтов станет только больше. Если на предмете, который используется только в крафтах это объяснить трудно, то вот используемые предметы становятся головной болью.
Положим, что у нас есть магический мод А и такой же магический мод Б. В моде А можно создавать заклинания при помощи палочки "wand" прямо во время боя. Мод Б же предлагает тебе сначала создать заклинания, а затем загрузить их в палочку "wand". Что тогда должна делать палочка - открывать интерфейс для создания заклинания или пулять подготовленное заклинание?
Вот тут и выступает форма записи id предмета в виде "modid:item_id", которая решает вышеописанные проблемы.
Ну и теперь касательно того, как всё это работает в сборках.
Даже при наличии подобного id, в некоторых местах остались формы записи id в виде цифры (-11, 403, 1432 и т.д.) - как правило, это измерения. (с 1.13 подобное исчезло, кстати)
Во избежания конфликтов любой разраб мода создаёт соотв. строку в конфиг файле. Рекомендую сначала изучить их, перед созданием мода-исправлятора, вдруг половину проблем можно решить изменение конфигов.