Как изменить конфигурацию мода майнкрафт

Как открыть конфиг мода майнкрафт

Обновлено: 09.02.2023

Ну наконец-то, еще одна фишка, достояная внимания!
Закотите рукава и приготовтесь к какому-то сумашествию, у нас теперь есть конфиг с гуи!
Это работает как в 1.7.2 (Build 1147), так и в 1.7.10 (Build 1146).
С его помощью вы сможете настроить свой мод прям внутри Minecraft!
Теперь не нужно копаться в текстовых файлах!
Это займет достаточно много времени на создание, но поверьте мне, это не трудно.
Что же это такое?
Чтобы получить представление о том, что мы собираемся делать, запустите среду разработки(Eclipse или интеллидж) с последней версией фордж, щелкните на кнопку Mods в главном меню, затем выберите Forge Mod Loader и нажмите кнопку Config — это своего рода конфигурация GUI, которую мы собираемся создавать сегодня.
Вы можете получить более продвинутые (открыть конфигурационный графический интерфейс для MinecraftForge, например), но я не собираюсь здесь это описывать, чтобы узреть более сложные вещи — вы можете просматривать исходные файлы сами.

Конфиг файл:
Я не буду рассказывать, как работает обычный конфиг, потому что вы и так это знаете =)
Просто убедитесь, что у вас есть файл конфигурации и убедитесь, что он инициализируется во время стадии PreInit.
Существует один нюанс:
Вы должны иметь публичную статическую переменную своего конфига.
Вот так должен выглядеть ваш код:

Как вы можете видеть, у нас есть три значения (Integer, String и Boolean), которые мы будем загружать с нашего конфигурационного файла.
Вы можете заметить, что я поместил загрузочные данные конфигурации в отдельный метод.
Это сделано для того, чтобы не писать много раз одно и тоже, так как там это понадобится в будущем.
Обнаружения при изменении конфига:
Итак, как мы узнаем, когда наши данные конфигурации были изменены в игре?
С помощью ивентов, конечно же!
Сначала нужно зарегистрировать наш ивент, это делается так:
FMLCommonHandler.instance().bus().register(instance);
Далее напишем сам ивент:
Здесь мы просто проверяем, что если изменения в конфиге произошли в нашем моде — то синхронизировать их.
Обработчик GUI:
Теперь нам нужно создать обработчик GUI.
Это то, что отвечает за открытие нашего конфиг GUI, это так же легко настроить.
Также нужно измененить вашу @Mod аннотацию, что мы сделаем потом.
Создайте новый класс и реализуйте(implements) в нем IModGuiFactory интерфейс:

Единственный метод, о котором мы должны волноваться — это mainConfigGuiClass().
Остальное на не нужно, так как оно еще не доделано и не несет никакого смысла.
Метод mainConfigGuiClass() возвращает класс, который мы собираемся использовать для нашего основного конфига GUI(достаточно просто, не так ли?).
Теперь, когда мы сделали это, перейдите к скоей @Mod аннотации и добавьте туда параметр:

Создаем конфиг GUI:
Пришло время для создания самого гуи!
Предупреждение : Это будет очень легко! =)
Наш класс конфиг GUI нужно только наследовать от класса GuiConfig, и мы просто передадим в конструктор некоторые вещи, чтобы он знал, из какой категории брать информацию (примечание: Если вы хотите использовать несколько категорий, смотрите реализацию класса Forge GUI выше):

После того как вы сделали это, компилируйте, запускайте и изменять конфигурацию вашего мода сколько душе угодно! ^-^

Содержание

Обновление Forge [ ]

Чтобы обновить версию Forge, на который вы создаёте моды, необязательно всё перекачивать.

Достаточно просто изменить build.gradle Так что если хотите обновить Forge откройте его любым редактором и найдите строчку

Там будет написана версия Forge, которая у вас сейчас, соответственно вам нужно всего лишь изменить значение на новое. Измените его на версию, до которой хотите обновить Forge (например на 1.7.2-10.12.0.1012) и сохраните файл. Далее запустите gradlew.bat с командой eclipse (то есть запустить bat-файл с кодом gradlew.bat eclipse ) и после завершения его работы ваша версия Forge обновлена!

Дроп определённого предмета при разрушении блока [ ]

Всё очень просто. В конец класса созданного вами блока (перед последней фигурной скобкой) вставьте это:

То есть теперь при разрушении вашего блока из него выпадет алмаз. Вы можете написать, чтоб выпадало что угодно. Просто вместо return Items.diamond; напишите « return Item.getItemFromBlock(Blocks.); » (для блоков) или « return Items.; » (для предметов), а после ввода вами точки выпадет список возможных предметов или блоков.

Если хотите, чтоб выпадал не один предмет, а несколько, просто вставьте сразу после предыдущих строк

Тогда при разрушении выпадет 20 выбранных вами предметов или блоков. Всё очень легко и просто!

Предмет [ ]

Основное [ ]

Класс предмета [ ]

Для создания предмета создадим класс с именем TutorialItem:

Для регистрации предмета создадим класс ItemsRegister:

В классе CommonProxy, в методе preInit() добавляем строку ItemsRegister.register(); , а в методе init() ItemsRegister.registerRender(); .

Модель [ ]

Теперь у нас есть предмет, однако если мы запустим игру и выдадим себе его, то он будет выглядеть как куб с фиолетовыми и черными клетками. Это говорит о том, что игра не нашла модель предмета. Для исправления этой проблемы создаём в папке src/main/resources/assets/имя_мода/models/item файл с расширением .json и пишем в нём следующий текст:

Примечание: название файла модели должно совпадать с RegistryName предмета

Второй вариант используется для моделей инструментов и оружия. Однако теперь, когда у нас есть модель для предмета, осталось добавить текстуру по пути src/main/resources/assets/имя_мода/textures/items дав ему имя, идентичное указанному в файле модели.

Свой материал для инструмента [ ]

Допустим вы хотите, чтобы ваш инструмент обладал свойствами не железной/алмазной кирок из майнкрафта, а собственными.

Тогда где-нибудь(вы можете где угодно написать эту строку, главное, чтоб можно было вызвать.), например в главном классе вне каких либо методов (то есть можно перед последней фигурной скобкой) напишите:

Не забудьте про импорт. Давайте разберемся: static означает, что переменная NEWMAT типа ToolMaterial доступна из других классов. Затем приравнивается значению, которое и даст вашей кирке определённые свойства. Теперь об аргументах, перечисленных через запятую:

Теперь можно придать какому-нибудь инструменту эти свойства, для этого в инструменте (например в нашей кирке) измените super(ToolMaterial.EMERALD); на super(BaseMyBestMod.NEWMAT); В таком случае вы отправляете в супер-класс инструмента информацию о том, что свойства описаны переменной NEWMAT типа ToolMaterial, которая описана в классе BaseMyBestMod (или любой другой класс, где она написана).

Вот и всё, свойства инструмента изменены.

Генерация предметов в контейнерах натуральных структур [ ]

Итак, вы можете сделать так, чтобы ваш, или любой другой предмет/блок генерировался в сундуках сокровищницы. Для этого в методе preLoad() в главном классе вставьте следующее:

Разберемся в параметрах:

Установка Forge Gradle [ ]

Для начала работы, создайте папку с названием вашей модификации избегая кириллицы. Если ваш мод имеет название из двух слов, желательно называть папку без пробелов, к примеру Tutorial-Mod или TutorialMod. Далее перейдите на официальный сайт Forge и скачайте версию с пометкой MDK (Modder Development Kit). Из загруженного архива извлеките папку gradle и файл build.gradle в папку модификации, остальные файлы сохранены для совместимости и/или дополнительных функций и для начала не понадобятся. Далее импортируйте в Eclipse проект как Existing Gradle Project указав папку модификации. Затем в колонке Gradle tasks поочерёдно выполните setupDecompWorkspace из набора forgegradle и eclipse из набора ide (Для пользователей IntelliJ IDEA task genIntelliJRuns), и обновите среду (ПКМ по проекту и Refresh). Теперь можно удалить два файла с расширением .launch, так как для тестовых запусков мы будем использовать задачи Gradle. Для настройки папок ресурсов создайте в папке проекта два каталога: srcmainjava и srcmainresources после чего выделите их и по ПКМ найдите пункт Build Patch и нажмите Us as source folder.

Не забудьте! Далее, все связанное с Java кодом мы будем делать в каталоге srcmainjava, а остальное в srcmainresources.

Примечание! Для установки потребуется компьютер с минимальным объёмом ОЗУ от 4Гб! Если у вас недостаточно ОЗУ, добавьте необходимый объём из файла подкачки, но такой метод работает лишь на 64-битных системах.

Атрибуты для моба [ ]

Параметр Описание
maxHealth Максимальное здоровье
followRange Дистанция, на которой моб будет преследовать кого-либо
knockbackResistance Сопротивление к отбрасыванию
movementSpeed Скорость движения
attackDamage Сила атаки

Собственная вкладка в Творческом режиме [ ]

Для этого добавьте такой код в тело класса:

«ModID» заменяем на любое число. Рекомендую ID больше 11 (12 ID сразу на следующей странице творческого инвентаря).

Потом создайте класс TutorialTab. Если всё правильно, то ваш класс будет иметь extends CreativeTabs до первой фигурной скобки. Теперь добавьте этот метод в ново-созданный класс:

Для того что бы добавить что либо из вашего мода в собственную вкладку пишем:

Интеллект для моба [ ]

Теперь моб будет просто двигаться, но ничего не делать. Для того, чтобы добавить ему интеллект создайте в класс моба следующий код:

Теперь в конструктор класса добавьте следующий код:

Интеллект Описание
Swimming Может ли существо плавать?
AttackOnCollid Базовый тип атаки, который используют зомби и пауки.
Wander Существо будет ходить вокруг, когда никого не атакует.
WatchClosest Ищет назначенное существо на заданном расстоянии.
LookIdle Существо будет осматриваться, просто стоя.
HurtByTarget Сделает целью какого-либо моба, который его ударил.
NearestAttackableTarget Ищет любое существо, которое подходит по второму параметру.

Создание брони [ ]

Создание брони немного отличается от создания обычных предметов, точнее имеет свои особенности. Приступим.

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

Шлем, нагрудник, штаны и ботинки соответственно. Теперь описываем эти переменные с помощью универсального класса. Естественно внутри метода preLoad()

С главным классом работа окончена.

Теперь щелкаем по одной из ошибок и создаём новый класс BestArmor. Теперь «продолжаем» класс ItemArmor, то есть пишем extends ItemArmor после названия класса. Теперь в тело класса вставляем следующее:

Что ж, давайте разбираться.

Первая переменная, просто обозначает начало пути к текстуре брони. Все нужные текстуры можно спокойно извлечь из майнкрафта и отредактировать по желанию. Вот мои отредактированные текстуры:

Давайте дальше разбираться с кодом: следующим идёт метод BestArmor(), в который мы посылаем из главного класса параметры id и armorType. Напомню: от armorType зависит, какая это часть брони. В нём мы посылаем информацию о том, какой материал брони. Я написал, что броня будет аналогична алмазной, но можно создать свой материал для брони и вписать его. Далее мы настраиваем вкладку в креативе. Потом мы ограничиваем максимальное количество данного предмета в одной стопке до одного, чтобы броня не «стакалась». В конце концов мы вызываем созданный нами метод setTextureName()

Последний же метод перезаписывает метод супер-класса и указывает Майнкрафту, что должна грузиться текстура по пути texturePath, который предварительно был отредактирован во втором методе.

Теперь можно запускать игру и убивать мобов в новых блестящих доспехах!

Создание модификации [ ]

build.gradle [ ]

Если вы используете IntelliJ IDEA, то в конец build.gradle дополнительно добавьте это:

pack.mcmeta [ ]

Этот файл нужен для корректной работы игры с ресурсами модификации, такими как локализации, модели, рецепты, таблицы добычи и так далее. Заполняется следующим образом:

mcmod.info [ ]

Этот файл задаёт более подробную информацию о модификации и заполняется следующим образом:

Класс модификации [ ]

Данный класс создается в патче и является главным файлом, благодаря которому игра видит нашу модификацию. Заполняется следующим образом:

Класс блока [ ]

Для создания блока создайте класс с названием блока в стиле TutorialBlock в пакете патч.blocks и заполните его следующим образом:

Примечание регистрируемое имя и ключ локализации указывать только в нижнем регистре, используя при надобности нижнее подчёркивание!

Модель [ ]

Модель (которую, например, можно создать здесь) решает то, как наш блок будет выглядеть. Важно знать, что для блоков используется две модели. Одна задает вид блока, поставленного в мире, а вторая, его иконку в инвентаре. Это дает нам возможность сделать блоку отдельную иконку для инвентаря. Сами же модели для блока подключаются к нему как состояния, normal для блока в мире и inventory для его иконки в инвентаре. Поэтому для начала создадим файл идентификатор_блока.json в пакете assets.идентификатор_мода.blockstates, который и подключит наши модели.

Теперь подключим модели. Для этого создайте файл регистрируемое_имя.json в пакете assets.идентификатор_мода.models.block со следующим содержимым:

Теперь зададим иконку блока в инвентаре в пакете assets.идентификатор_модификации.models.block с именем идентификатор_блока.json со следующим содержанием:

Наш блок имеет текстуры и свойства, но его нужно зарегистрировать в игре. Создадим в пакете домен.автор.мод.init класс BlocksInit :

Теперь в главном классе в методе preInit добавьте инструкцию BlocksInit.registerBlocks а в методе init BlocksInit.registerBlocksRender .

Пошаговая инструкция по установке модов:

Шаг 1.
Узнаем какая у вас версия игры, если не знаете, запустите игру и слева снизу вы увидите версию.

Шаг 2.
У меня версия 1.12.2, 98% модов для майнкрафта используют Forge, остальные для Liteloader.
Например на версиях 1.14.4, 1.15.2 и новее, появился новый «загрузчик модов» — Fabric, он уже достаточно популярный и для него много модов, но Forge по прежнему самый популярный.

И то и то позволяет запускать моды, некоторые совместимы, т.е вы сможете одновременно установить и то и другое (как установить фордж и лайтлоадер вместе), если файл мода заканчивается на .jar или .zip то это мод для Forge,
если мод заканчивается на .litemod, то это мод для лайтлоадера, таких модов очень мало и часто есть аналоги или версии данного мода для форджа.
Более различий нет, одинаково устанавливаются, в одну и ту же папку складываются моды.
Fabric на данный момент не может работать вместе с Minecraft Forge, вам придется выбрать либо одно либо другое.

Найдя желаемый мод посмотрите в раздел установки, там указана для какого загрузчика данный мод, так же эта информация может быть указана у конкретного файла, подписано «для Forge» или «для Fabric».

Перейдите на страницу и скачайте фордже для вашей версии игры, либо Fabric.
Если у вас Windows, то скачайте “ exe — установщик“, если у вас другая операционка, то качайте вторую версию.
Запустите скачанный файл и нажмите OK.

Шаг 3.
Откройте (перезапустите) ваш лаунчер майнкрафт (то, что запускает игру), вы должны выбрать версию игры с припиской Forge, либо Fabric, она появится в списке доступных версий.
Пример из лицензионного лаунчера, и популярного пиратского.

Выберите и запустите данную версию игры, если игра запустилась, закрываем ее.

Шаг 4.
Находим и скачиваем желаемый мод для майнкрафт.
Вам необходимо скачать мод для точно такой же версии игры, т.е игра версии 1.12.2, то мод тоже для 1.12.2.
Внимательно посмотрите раздел установки мода , а так же прочие указания, часто моды требуют дополнительные моды которые так же нужно установить.

Шаг 5.
Вам необходимо перейти в папку с игрой, она находится тут:
C:UsersВаш_ПользовательAppDataRoaming.minecraft
Как найти папку Appdаta

Внутри папки .minecraft вам нужно найти папку mods, если ее нет, создайте ее сами.
Скопируйте файл мода в данную папку и можете запускать игру — версия с припиской Forge.

Проблема 2.
После запуска игра сообщает, что требуется другая версия Forge
Сам фордж часто обновляется, вам необходимо скачать самую последнюю версию и установить ее. (можно поверх уже установленной, главное в списке версий выбирайте более новую версию)

Здесь представлены основные уроки по созданию модификаций с помощью Forge/1.7+. Остальную информацию по данной теме смотрите в соответствующей статье.

Свой материал для брони [ ]

Почти не отличается от создания собственного материала для инструмента.

В главном классе в любом месте, но вне каких-либо методов пишем:

Затем импортируем ArmorMaterial. Теперь разберём:

Вот и все. Теперь можно использовать этот материал для брони, например заменив ArmorMaterial.DIAMOND на BaseMyBestMod.BESTMAT

Обновление ForgeGradle [ ]

Forge отделён от ForgeGradle, поэтому если вы попытаетесь обновиться на версию Forge, которая использует более новой ForgeGradle, вы получите ошибки. Вот таблица версия Forge, и какие версии ForgeGradle он использует.

ForgeGradle Forge
959<, 965
1.0 960-964
1.1 967-1047
1.2 1048+

Удалите папку .gradle, которая находится в папке, куда вы разархивировали Forge. Теперь, откройте файл build.gradle (который находится там же). Найдите такую строку:

В 1.x-SNAPSHOT, поменяйте 1.x на нужную версию ForgeGradle. Сохраните файл и откройте командную строку. Повторно введите команды, которые вы использовали при установке Forge. ForgeGradle обновит все нужные файлы.

Разносторонняя текстура блока [ ]

Я буду использовать следующие текстуры:

Для этого, добавьте такой код в тело класса:

И такой после конструктора класса:

Теперь в папку assets/ID мода/resources/textures/blocks/ добавьте файлы с таким именем: <То, что вы указали в скобках в конструкторе класса, в методе this.setBlockTextureName()>_<код стороны блока>

И ещё такой код:

В игре блок будет выглядеть так:

Блок с разностороней текстурой в игре.jpg

Блок с Разносторонней текстурой (Вид сзади).jpg

Содержание

Свой скин при моддинге [ ]

Внимание! Этот способ работает только на лицензионной версии Minecraft.

Чтобы при создании мода вы видели свой скин, вместо стандартного скина Steve, нужно прописать 2 строчки в аргументы запуска.

В этой статье описывается создание модификаций на основе Minecraft Forge с использованием Eclipse для версий Minecraft с 1.12.

Локализация названий в игре [ ]

Теперь скопируйте файл, и назовите копию ru_RU.lang (собственно русский перевод). Внутри него измените название на русское, например

Теперь оба этих файла можете перетащить в заранее созданную assets.mybestmod.lang При переносе выберите Copy files.

Чтобы локализировать вкладки в режиме творчество добавьте такой код:

Вот и всё! Локализация завершена, теперь в игре будут отображаться выбранные вами названия.

Подобных названий можно вписывать сколько угодно, главное в столбик.

Читайте также:

      

  • Как проверить работает ли мод в майнкрафте
  •   

  • Как купить грузовик в euro truck simulator 2 с модами
  •   

  • Как установить моды на football manager 2021
  •   

  • Как установить мод на гта сан андреас на спавн машин
  •   

  • Forager моды как установить

Структура мода#

API Minecraft Forge предлагает нам использовать следующую структуру проекта мода:

src
└── main
    ├── java
    └── resources
  • «src» содержит «наборы» для исходного кода и ресурсов. Это может пригодиться, чтобы, например, не смешивать код
    программы и код для её тестирования. Основой код размещается в модуле «main».
  • «java» содержит исходный код соответствующий своему названию языка программирования. Помимо Java, Minecraft Forge
    предоставляет из коробки возможностью написания модов на Scala (исходный код размещается в каталоге src/main/scala).
  • «resources» содержит ресурсы, а ими в свою очередь являются: текстуры, файлы локализации, звуки и так далее.

Обратите внимание!

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

IDEA автоматически распределит значения источников кода и ресурсов папкам «src» и «resources» соответственно.

В случае Eclipse, выдайте им эти значения вручную: ПКМ по папке → Build Path → Use as Source Folder

Про наборы исходного кода

По умолчанию Gradle предоставляет наборы: «main» для кода программы и «test» для кода её тестирования (например, для
unit-тестов). Minecraft Forge также предоставляет набор «api», файлы которого не будут добавляться в итоговый файл мода,
но могут быть использованы во время сборки.

Подробно про наборы исходного кода вы можете прочесть на
странице документации Gradle.

Главный файл мода#

В папке «java» создайте базовый пакет вашего мода. Если у вас уже есть домен для мода, то отличным названием для
пакета будет что-то вроде ru.mcmodding.tutorial. Если домена у вас нет, вполне подойдет использование вашего никнейма, как
название пакета верхнего уровня: mcmodding.tutorial.

Для данного урока мы будем использовать пакет: ru.mcmodding.tutorial.

Теперь создадим в нем класс с названием вашего мода, для урока: McModding. Это и будет главным классом нашего мода.

Для того чтобы Minecraft Forge понял, что данный класс действительно является модом, мы должны пометить данный класс аннотацией @Mod:

package ru.mcmodding.tutorial;

import cpw.mods.fml.common.Mod;

@Mod(modid = "mcmodding")
public class McModding {
// ...
}

Аннотация имеет один единственный параметр modid – уникальный идентификатор мода.
В ModID рекомендуется использовать только латиницу в нижнем регистре, никаких пробелов, подчеркиваний и прочего.
Крайне не рекомендуется изменять ModID в дальнейшем, так как это приведёт к потере игровых данных, созданных модом.

Minecraft Forge допускает возможность наличия в проекте нескольких классов с аннотацией @Mod, каждый из которых должен иметь свой modid и будет считаться отдельным модом.
Автор учебника не знает, зачем это может пригодиться, кроме как для накрутки счётчика загруженных модов.

Разбору полей аннотации @Mod посвящена отдельная статья.
Если Вы не собираетесь использовать файл mcmod.info рекомендуется также заполнить такие поля аннотации как name и version.

Файл mcmod.info#

Этот файл определяет метаданные нашего мода: идентификатор, название, авторов, зависимости и так далее.
Это обычный JSON файл, хотя он и имеет расширение .info.

Файл mcmod.info является необязательным и в основном служит для оформления странички мода на экране «Mod List».

Создадим в папке «resources» файл mcmod.info.

Минимально правильный mcmod.info файл должен содержать следующее:

[{
  "modid": "mcmodding",
  "name": "McModding Mod"
}]

Где параметр modid — идентификатор мода, а name отвечает за красивое название вашего мода, которое видит пользователь.

Естественно, что поле modid в аннотации должно соответствовать modid в @Mod. В противном случае мод будет распознан,
но выведется сообщение о том, что mcmod.info не найден. Впрочем, на работу мода это никак не повлияет.

Следует обратить внимание, что корневой элемент структуры файла является массивом.
Это сделано для возможности описать все моды в одном файле, если проект содержит несколько классов, аннотированных @Mod.

Доступные параметры#

Параметр Описание
modid Уникальный идентификатор мода
name Название мода
description Описание мода в 1-2 абзаца
version Версия мода, рекомендуем придерживаться семантического версионирования
url Ссылка на сайт мода, например CurseForge или GitHub
updateUrl Ссылка для обновления мода
authorList Список имен авторов
credits Строка для выражения благодарностей, например тем, кто помогал с модом
logoFile Путь к логотипу мода
screenshots Массив путей к скриншотам мода. В данный момент не поддерживается
parent Уникальный идентификатор родительского мода, в списке модов ваш будет отображён как дочерний у родительского
useDependencyInformation Если true, то следующие три параметра будут учитываться
requiredMods Массив уникальных идентификаторов модов, которые требуются для работы вашего мода. Если данные моды не установлены, то произойдёт краш игры. Данный параметр не указывает порядок загрузки модов. Используйте для этой цели параметр dependencies и dependants
dependencies Массив уникальных идентификаторов модов, которые должны быть загружены до загрузки данного мода
dependants Массив уникальных идентификаторов модов, которые должны быть загружены после загрузки данного мода

Пример заполненного файла:

[{
  "modid": "mcmodding",
  "name": "McModding Mod",
  "description": "Это мой первый и крутой мод!",
  "version": "1.0.0",
  "url": "mcmodding.ru",
  "authorList": ["Icosider", "CMTV", "TheAndrey"],
  "credits": "Спасибо, что читаете наш учебник."
}]

Итог#

Мы создали базовую структуру любого мода для Minecraft. Выглядит она следующим образом:

src    
└── main
    ├── java
    │   └── ru.mcmodding.tutorial
    │       └── McModding.java
    └── resources
        └── mcmod.info


  • Search


    • Search all Forums


    • Search this Forum


    • Search this Thread


  • Tools


    • Jump to Forum

  • |<<
  • <
  • >
  • >>|
  • 1
  • 2
  • Next

  • #1

    Nov 19, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    I an making a LotR advenure map,but I need a ring to use. I figured I would use the invisibiliy ring from the rings mod, but that makes enimies ignore you. I want all the enimies exept the ringwraiths to ignore me. I am making ringwraiths in a seprate mod, but I need some help. Baisiclyy what I’m asking is how do you edit an already created mod? Help me or I’ll stab you with my sword!! :WSWORD: :steve_rage:

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #2

    Nov 19, 2012

    I don’t help people who threaten me with violence.


  • #4

    Nov 20, 2012


    Plecks


    • View User Profile


    • View Posts


    • Send Message



    View Plecks's Profile

    • The Meaning of Life, the Universe, and Everything.
    • Join Date:

      1/18/2011
    • Posts:

      256
    • Minecraft:

      Plecks
    • Member Details

    JD-GUI is really good for being able to easily decompile and get a look into a compile .class file. The Minecraft stuff will still be obfuscated, but the mod’s code generally won’t be, and you can usually get a good idea on how someone did something. It’s not illegal, but if you just copy someone’s code without their permission it could violate their copyright, and as Tspro said it’s immoral. However, seeing how someone did something, then writing your own code to do something similar is fine.

    You could also work together with the rings mod author, and see if there’s a way you could use his mod as-is, while allowing Ringwraiths to ignore the invisability. That way you bring more traffic to his mod, and don’t have to write the ring/invisibility code yourself.


  • #5

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    Thank you Plecks and Tspro. I think I will try using JD-GUI since I am just 9 :P I don’t have a way of getting in touch with the mod author.
    If the mod is open source i will try looking at that too. Now just for fun I’m gonna light you three on fire. :VV: TEEHEE

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #6

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    I downloaded it and it is open source. There is a folder called «source (for modders)».I opened it and there are 2 java files.
    I asked my dad and he said to open them with notepad. I did, but I dont know java :P
    It was gobbledegoop to me.

    So I opened ItemRingInvisible.class in JD-GUI and got gobbledeegoop again. If anyone can help me find what I need that would be nice. This is what I got in JD-GUI.

    import net.minecraft.client.Minecraft;

    public class ItemRingInvisible extends yr
    {
    public ItemRingInvisible(int par1)
    {
    super(par1);
    this.bR = 1;
    }

    public aan a(aan par1ItemStack, xd par2World, yw par3EntityPlayer)
    {
    ModLoader.getMinecraftInstance().h.startRing(«invisibleRing»);
    return par1ItemStack;
    }

    public boolean e(aan par1ItemStack)
    {
    return true;
    }

    public fo f(aan par1ItemStack)
    {
    return fo.d;
    }
    }

    Last edited by smpsh: Nov 20, 2012

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #7

    Nov 20, 2012

    JD-GUI is really good for being able to easily decompile and get a look into a compile .class file. The Minecraft stuff will still be obfuscated, but the mod’s code generally won’t be, and you can usually get a good idea on how someone did something. It’s not illegal, but if you just copy someone’s code without their permission it could violate their copyright, and as Tspro said it’s immoral.

    Change «could» to «definitely would,» unless the mod is open source, as the smpsh said. And if it is open source, you have to follow the terms yourself unless the mod author gives you a special license to do otherwise. Doesn’t appear to be an issue here, but just clarifying for other people who are reading.


  • #8

    Nov 20, 2012


    cikl


    • View User Profile


    • View Posts


    • Send Message



    View cikl's Profile

    • Zombie Killer
    • Join Date:

      9/2/2011
    • Posts:

      159
    • Member Details

    Use eclipse, Its the Modders most favorite Java Editing Program.
    Go to the tutorials section, they may have some info there.
    Also, class files dont help you need the Raw java files to edit the mob’s Entity files.
    If you dont know any coding, I wouldn’t bother doing this If I were you, request someone to do it…
    Its not «Gobldegoop» its Java coding…It may look like Just a bunch of Numbers, Letters, and brackets to you but to a coders eye that’s like a language…

    Hope I helped!

    Last edited by cikl: Nov 20, 2012


  • #9

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    cikl I will try eclipse, thanks

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #11

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #12

    Nov 20, 2012

    What are your questions? Maybe I can help you with it?


  • #13

    Nov 21, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    You know what, I think Ill just get some help. Will anyone help me make this mod?

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #14

    Nov 21, 2012

    I will. That is what I’m offering I have been coding for a while now. I cant make huge mods like Divine RPG and such but I can make a mod That people enjoy. So PM me and we can talk about what to do.


  • #15

    Nov 21, 2012


    sdj64


    • View User Profile


    • View Posts


    • Send Message



    View sdj64's Profile

    • Zombie Killer
    • Join Date:

      8/9/2011
    • Posts:

      207
    • Member Details

    source files are .java, the .class files are the compiled code, they’re not meant to be readable. Like the people above said, you can use JD-GUI or something else to decompile but that would violate the mod owner’s copyright.

    If you downloaded MCP and Eclipse and followed those instructions, take a look at the Enderman’s source file (EntityEnderman.java), specifically the method shouldAttackPlayer. You can change the block id from «pumpkin» to whatever id your ring is. Hope this helps!


  • #16

    Nov 21, 2012

    So PM me if you are still interested in me helping you create a simple/moderate skill level mod.


  • #17

    Nov 21, 2012

    *facepalm*
    If you don’t know java, why would you ask about editing an already existing mod? Plus, just because a mod is open-source does not mean you can use the code exactly or even the texture. Look at how to do basic coding and learn actual java before you go and try to learn to mod, because that’s much harder and more annoying to do. For your original question, just decompile minecraft using MCP and find the potion of invisibility, and look how that works.


  • #18

    Nov 21, 2012

    Char I know that is why i offered to help him.


  • #19

    Nov 21, 2012

    Still, try to learn java so that you at least have a basis of understanding instead of just asking people to make you something. ;) OP, understand that you do need the mod author’s permission in order to publish the mod, even if it is open source; if you use the texture and the code, you must acknowledge that it is the author’s original note. :)


  • #20

    Nov 21, 2012

    Yes that is true but when I said help him I’m implying we will start from scratch so he can learn how java works. Also Perfect Circles Exist.


  • #21

    Nov 21, 2012

  • To post a comment, please login.
  • 1
  • 2
  • Next
  • |<<
  • <
  • >
  • >>|

Posts Quoted:

Reply

Clear All Quotes



  • Search


    • Search all Forums


    • Search this Forum


    • Search this Thread


  • Tools


    • Jump to Forum

  • |<<
  • <
  • >
  • >>|
  • 1
  • 2
  • Next

  • #1

    Nov 19, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    I an making a LotR advenure map,but I need a ring to use. I figured I would use the invisibiliy ring from the rings mod, but that makes enimies ignore you. I want all the enimies exept the ringwraiths to ignore me. I am making ringwraiths in a seprate mod, but I need some help. Baisiclyy what I’m asking is how do you edit an already created mod? Help me or I’ll stab you with my sword!! :WSWORD: :steve_rage:

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #2

    Nov 19, 2012

    I don’t help people who threaten me with violence.


  • #4

    Nov 20, 2012


    Plecks


    • View User Profile


    • View Posts


    • Send Message



    View Plecks's Profile

    • The Meaning of Life, the Universe, and Everything.
    • Join Date:

      1/18/2011
    • Posts:

      256
    • Minecraft:

      Plecks
    • Member Details

    JD-GUI is really good for being able to easily decompile and get a look into a compile .class file. The Minecraft stuff will still be obfuscated, but the mod’s code generally won’t be, and you can usually get a good idea on how someone did something. It’s not illegal, but if you just copy someone’s code without their permission it could violate their copyright, and as Tspro said it’s immoral. However, seeing how someone did something, then writing your own code to do something similar is fine.

    You could also work together with the rings mod author, and see if there’s a way you could use his mod as-is, while allowing Ringwraiths to ignore the invisability. That way you bring more traffic to his mod, and don’t have to write the ring/invisibility code yourself.


  • #5

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    Thank you Plecks and Tspro. I think I will try using JD-GUI since I am just 9 :P I don’t have a way of getting in touch with the mod author.
    If the mod is open source i will try looking at that too. Now just for fun I’m gonna light you three on fire. :VV: TEEHEE

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #6

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    I downloaded it and it is open source. There is a folder called «source (for modders)».I opened it and there are 2 java files.
    I asked my dad and he said to open them with notepad. I did, but I dont know java :P
    It was gobbledegoop to me.

    So I opened ItemRingInvisible.class in JD-GUI and got gobbledeegoop again. If anyone can help me find what I need that would be nice. This is what I got in JD-GUI.

    import net.minecraft.client.Minecraft;

    public class ItemRingInvisible extends yr
    {
    public ItemRingInvisible(int par1)
    {
    super(par1);
    this.bR = 1;
    }

    public aan a(aan par1ItemStack, xd par2World, yw par3EntityPlayer)
    {
    ModLoader.getMinecraftInstance().h.startRing(«invisibleRing»);
    return par1ItemStack;
    }

    public boolean e(aan par1ItemStack)
    {
    return true;
    }

    public fo f(aan par1ItemStack)
    {
    return fo.d;
    }
    }

    Last edited by smpsh: Nov 20, 2012

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #7

    Nov 20, 2012

    JD-GUI is really good for being able to easily decompile and get a look into a compile .class file. The Minecraft stuff will still be obfuscated, but the mod’s code generally won’t be, and you can usually get a good idea on how someone did something. It’s not illegal, but if you just copy someone’s code without their permission it could violate their copyright, and as Tspro said it’s immoral.

    Change «could» to «definitely would,» unless the mod is open source, as the smpsh said. And if it is open source, you have to follow the terms yourself unless the mod author gives you a special license to do otherwise. Doesn’t appear to be an issue here, but just clarifying for other people who are reading.


  • #8

    Nov 20, 2012


    cikl


    • View User Profile


    • View Posts


    • Send Message



    View cikl's Profile

    • Zombie Killer
    • Join Date:

      9/2/2011
    • Posts:

      159
    • Member Details

    Use eclipse, Its the Modders most favorite Java Editing Program.
    Go to the tutorials section, they may have some info there.
    Also, class files dont help you need the Raw java files to edit the mob’s Entity files.
    If you dont know any coding, I wouldn’t bother doing this If I were you, request someone to do it…
    Its not «Gobldegoop» its Java coding…It may look like Just a bunch of Numbers, Letters, and brackets to you but to a coders eye that’s like a language…

    Hope I helped!

    Last edited by cikl: Nov 20, 2012


  • #9

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    cikl I will try eclipse, thanks

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #11

    Nov 20, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #12

    Nov 20, 2012

    What are your questions? Maybe I can help you with it?


  • #13

    Nov 21, 2012


    smpsh


    • View User Profile


    • View Posts


    • Send Message



    View smpsh's Profile

    • Tree Puncher
    • Location:

      not telling
    • Join Date:

      11/20/2012
    • Posts:

      25
    • Minecraft:

      smpsh
    • Xbox:

      Dont have one
    • Member Details

    You know what, I think Ill just get some help. Will anyone help me make this mod?

    I reject your reality and substitute my own. Adam Savage, Mythbuster.


  • #14

    Nov 21, 2012

    I will. That is what I’m offering I have been coding for a while now. I cant make huge mods like Divine RPG and such but I can make a mod That people enjoy. So PM me and we can talk about what to do.


  • #15

    Nov 21, 2012


    sdj64


    • View User Profile


    • View Posts


    • Send Message



    View sdj64's Profile

    • Zombie Killer
    • Join Date:

      8/9/2011
    • Posts:

      207
    • Member Details

    source files are .java, the .class files are the compiled code, they’re not meant to be readable. Like the people above said, you can use JD-GUI or something else to decompile but that would violate the mod owner’s copyright.

    If you downloaded MCP and Eclipse and followed those instructions, take a look at the Enderman’s source file (EntityEnderman.java), specifically the method shouldAttackPlayer. You can change the block id from «pumpkin» to whatever id your ring is. Hope this helps!


  • #16

    Nov 21, 2012

    So PM me if you are still interested in me helping you create a simple/moderate skill level mod.


  • #17

    Nov 21, 2012

    *facepalm*
    If you don’t know java, why would you ask about editing an already existing mod? Plus, just because a mod is open-source does not mean you can use the code exactly or even the texture. Look at how to do basic coding and learn actual java before you go and try to learn to mod, because that’s much harder and more annoying to do. For your original question, just decompile minecraft using MCP and find the potion of invisibility, and look how that works.


  • #18

    Nov 21, 2012

    Char I know that is why i offered to help him.


  • #19

    Nov 21, 2012

    Still, try to learn java so that you at least have a basis of understanding instead of just asking people to make you something. ;) OP, understand that you do need the mod author’s permission in order to publish the mod, even if it is open source; if you use the texture and the code, you must acknowledge that it is the author’s original note. :)


  • #20

    Nov 21, 2012

    Yes that is true but when I said help him I’m implying we will start from scratch so he can learn how java works. Also Perfect Circles Exist.


  • #21

    Nov 21, 2012

  • To post a comment, please login.
  • 1
  • 2
  • Next
  • |<<
  • <
  • >
  • >>|

Posts Quoted:

Reply

Clear All Quotes


In this article, we will look at how to find and edit JSON and CFG config files for Minecraft mods. JSON and CFG are the two most commonly used formats for modded configuration files.


Contents

  1. Finding Configuration Files
    1. Finding Configs Using Multicraft
    2. Finding Configs Using FTP
  2. Editing Configuration Files
    1. Editing with Multicraft
    2. Editing with FTP
  3. Modded Minecraft Config File Types
    1. CFG File Type Overview
    2. JSON File Type Overview
    3. Zenscript Overview
  4. File Type rules
    1. CFG Rules
    2. JSON Rules
  5. Further Reading & External Links

Finding Config Files With Multicraft

Multicraft is set to look for configuration files in the locations where they would normally be put and put them all in one spot for easy searching, you can find steps below on how to search all of the config files that Multicraft finds:

  1. Log into Multicraft
  2. In the Files section of the side menu on the left, select Config Files.
    Multicraft Config Files Menu Entry
  3. You can filter the files by using the search boxes above each column, if you want to find a configuration for a specific mod, you can search the mod name in the Description column of the config file list.

Finding Config Files With FTP

This section is only for users who are familiar with how to use FTP to: Upload and Download Files with FTP

Config files for mods are most commonly located in the config folder of your server. When mods don’t use this location the config file can be hard to find, most mod authors will typically tell you where the config file is on the main page for the mod, check to see if it indicates there if you can’t find the config in this folder.


Editing Configuration Files

STICKY NOTE

Sticky Piston

Before you edit any configuration files, stop your server and take a backup of the world.

Editing Config Files with Multicraft

  1. Click the name of the file you would like to edit in the file list of the Config Files menu in Multicraft.
  2. Edit the config however you want
  3. At the bottom of the page hit Save when you are done.

Editing Config Files with FTP

Editing files downloaded with FTP can be done in any editor, we highly recommend using Notepad++ which can be downloaded for free from:
Notepad++ Downloads

Editing configuration files can be confusing because the text will not be highlighted to help you know what means what and it is much easier to break something. For this reason we highly recommend editing configuration files through Multicraft.

Modded Minecraft Config File Types

CFG File Type Overview

A config properties file is a type of file that makes data easier for humans to read. This is the format that most mods will use for their configurations. Below you can find an example of what cfg data looks like.

# this is a comment, it can be used to give information to the human only

# this is a direct value assignment
option_1_name = option_1_value

# This is a list of values
> option_2_name
option_2_value_1
option_2_value_2
option_2_value_3
<

JSON File Type Overview

JSON is another type of data file that some mods will use, this format is often harder for humans to be able to read as it does not allow the use of comments in most cases. JSON also has very strict rules for how it is written, and violating those rules can cause the server or mod not to start, or even cause the mod/server to behave in an unexpected way. Below you can see an example of valid JSON:

{
    "option_1_name": "option_1_value",
    "option_2_name": [
        "option_2_value_1",
        "option_2_value_2",
        "option_2_value_3",
        42
    ],
    "option_3_name": {
        "option_3.1_name": "option_3.1_value",
        "option_3.2_name": 9001,
        "option_3.3_name": 3.141
    }
}

As you can see, without comments that can get hard to read depending on how complicated the configuration is, we always recommend verifying to make sure that any JSON you write is correct using the validator below:
JSONLint

Zenscript Overview

Very rarely, a mod will use a Zenscript file for it’s configuration, this article won’t discuss Zenscript, due to it being almost a full on programming language. Only a very small subset of mods will use this configuration file type, for information on how to edit Zenscript you can use the official documentation: Zenscript Documentation


File Type Rules

CFG Rules

CFG files have a fairly simple way of being written, below are the rules on which CFG files are written. Most mod configurations will have all the tags that they look for already in the file, along with a brief description in a comment about what happens, these rules will help you to understand what is happening in these files so you aren’t confused while modifying them.

  • To associate a single value to a tag name, you use tag_name = value (replacing tag_name with the name of the tag you’d like to use, and value with the value of it).
  • Comments begin with a # (hashtag) at the start of the line
  • If you want to associate multiple values to a single tag, you can do that by using:
    > tag_name
    value_1
    value_2
    <

    Where the tag_name is usually set by the mod authors, if it is set, do not change it as the mod will be looking for that exact name. The values are slightly more forgiving, they may be changed to different values depending on the mod, the mod will often indicate what values are allowed in a comment before it or on a wiki.

JSON Rules

JSON is more strict in it’s writing than CFG, so you should be extra diligent while filling it in so as to make sure that no errors occur. Below are some of the more prominent rules in JSON, a full description can be found at the official JSON specification: JSON Specification

  • Comments are not supported by default. You may see some keys with a name like comment1 to indicate that the value is a comment, not all configs will try to use comments and just use a website documentation or help document inside of the folder instead.
  • Keys must be enclosed in double quotes ("), followed by a colon (:), then a value. Example: "key_name": "value" (note: not all values are enclosed in quotes, see the values list for more information)
  • Values can be one of the following types:
    • String: A series of characters inside of double quotes. In order for double quotes to be able to be in the string they must be escaped by putting a backslash () in front of it (Ex: "). (Ex: "This is a string, it can have anything in it. Like: 90187491ht3iou32nr83. If I wanted to "quote something" inside of the string, I'd need to escape those double quotations with a backslash")
    • Number: A number that can be a whole number (Ex: 42), a decimal number (Ex: 3.141), or a number represented in scientific notation (Ex: 9.001e+3)
    • Object: An object is a sub list of keys and values enclosed by a pair of curly brackets ({}). These objects will rarely need to be created by the user, this is usually something the mod creator will use just to group options better.
    • Array: An array is a list of values associated with that key enclosed by square brackets, the values that are within the array can be any of the value types in this list (including array). The values in an array are separated by a comma (,). Example: ["value_1", 42, 3.141, "value_4"]
    • Boolean: A boolean value indicates a true/false scenario, the only values that are considered boolean are true and false, and they must be spelt exactly like that, they cannot have uppercase letters, and are not enclosed in quotations. Example: "key_name": true
    • Null: null is a special value that denotes «nothing», some configs will use this as placeholder values until it is filled in.

    Note: JSON does not allow comments within it, meaning that if you find a JSON configuration where will likely be no help inside of the file. If a mod uses a JSON config, then they will often supply help documents either in the folder with the config or on the mod’s website.

  • Key/Value pairs must be enclosed in curly brackets ({}) and separated with a comma (,). Example: {"key_1": "value_1", "key_2": "value_2"}

JSON does not care about any spacing, so you can have it all on one line, or split across multiple lines and it will behave exactly the same way unless you broke a string by splitting across lines.


StickyPiston Support

If you have questions about this guide or any part of our Minecraft services, please open a support ticket and our dedicated team will be in touch.

Open Support Ticket


Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить конфигурацию компьютера
  • Как изменить конфигурацию кнопок мыши
  • Как изменить конфигурацию клавиш
  • Как изменить конфигурацию жесткого диска
  • Как изменить конфигурацию базы данных 1с предприятие

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии