Туториал [1.5.1] Моддинг minecraft без Forge и ModLoader

Nicolayka

Владелец
Команда форума
Регистрация
4 Апр 2025
Сообщения
24
Реакции
0
Баллы
1
Город
Санкт-Петербург
Веб-сайт
paxgame.ru
Discord
nicolayka
Что нам требуется:
1) MCP (Minecraft Coder Pack)
2) JDK
3) Чистый клиент minecraft
4) Notepad++ иди другой удобный вам редактор
5) Прямые руки
Установка:
1. Создаем папку в любом удобном для вас месте (желательно на жестком диске, а не на рабочем столе).

2. Копируем файлы архива MCP в эту папку.

3. Кладем из клиента Minecraft папку bin в папку jars, которая непосредственно находится в вашей папке которую вы подготовили ранее.

4. Запускаем decompile.bat

5. Как только вы пройдете уроки ниже, просто напросто запускайте recompile.bat, а после чего startclient.bat и тестируйте.

6. Ну, а когда вы точно решили что мод готов - запускайте reobf.bat, проходите в папочку reobf и все содержимое кидайте в файл minecraft.jar специально подготовленной для этого игры.

Запомните!
В пути \src\minecraft\net\minecraft\src находится весь декомпилированный код игры и туда мы будет складывать наши .java файлы.

1. Добавление своего предмета
Открываем файл Item.java и ищем 117 строку, после неё добавляем


public static Item coin = (new Item(2012)).setUnlocalizedName("coin").setCreativeTab(CreativeTabs.tabMisc);

Разберем код предмета
Item coin - Техническое название предмета.
(new Item(2012)) - Уникальное id предмета.
setUnlocalizedName("coin") - Уникальное имя предмета.
setCreativeTab(CreativeTabs.tabMisc) - Раздел в креативе

2. Добавляем свой блок
Открываем файл Block.java и ищем 55 строку, после неё добавляем?


public static final Block java = (new BlockJava(159)).setStepSound(soundStoneFootstep).setLightValue(0.125F).setHardness(0.5F).getIndirectPowerOutput("java").setResistance(10.0F).setCreativeTab(CreativeTabs.tabDecorations);
Разберем код блока

Block java - Техническое название блока.
(new BlockJava(159)) - Уникальный id блока, так же Java изменить на свой блок.
setStepSound(soundStoneFootstep) - Звук который издает блок.
setLightValue(0.125F) - Свечение предмета, изменяем только цифры.
setHardness(0.5F) - Тут у нас указана крепость. На сколько силен блок, так сказать. Вполне реально хватит и 0.5F если это блок похожий на землю (по скорости разрушения)
getIndirectPowerOutput("java") - Уникальное имя предмета
setResistance(10.0F) - Устойчивость от взрыва
setCreativeTab(CreativeTabs.tabDecorations) - Раздел в креативе

Далее создайте файл BlockJava.java, в исходниках майна , со следующим содержимым:



package net.minecraft.src;


import java.util.Random;


public class BlockStonePlus extends Block
{
public BlockStonePlus(int var1)
{
super(var1, Material.rock);
this.setCreativeTab(CreativeTabs.tabBlock);
}


/**
* Returns the ID of the items to drop on destruction.
*/
public int idDropped(int var1, Random var2, int var3)
{
return Block.stone.blockID;
}


/**
* Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two
* adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
*/
public boolean isOpaqueCube()
{
return false;
}
}



3. Добавляем рецепт крафта
Открываем файл CraftingManager.java и ищем 142 строку, после неё добавляем?


this.addRecipe(new ItemStack(Item.coin, 3), new Object[] {"##", "##", '#', Block.dirt});
Разберем код крафта

(Item.coin, 3) - При крафте появляется coin в количестве 3 (изменяйте как душе угодно до 64).
new Object[] {"##", "##", '#', Block.dirt} - Одна решетка обозначает одну ячейку сверху вниз (это может быть и верстак, если решеток более 3 в одной строке).
Т.е. в нашем случае мы заполняем обычной землей (Block.dirt) все крафт-ячейки в инвентаре (их 4).

Для примера, если например ваш объект крафтится не только из земли, поступать нужно так:

new Object[] {"#", "I", '#', Item.ingotGold, 'I', Item.ingotIron});

4. Добавление своей брони
Открываем файл EnumArmorMaterial.java и ищем 5 строку, после неё добавляем


WOOD(5, new int[]{1, 3, 2, 1}, 15),
Далее в этом же файле ищем 66 строку и заменяем на это



return this == CLOTH ? Item.leather.itemID : (this == CHAIN ? Item.ingotIron.itemID : (this == GOLD ? Item.ingotGold.itemID : (this == IRON ? Item.ingotIron.itemID : (this == WOOD ? Block.wood.blockID : (this == DIAMOND ? Item.diamond.itemID : 0))))));
Открываем файл RecipesArmor.java



Item.ingotGold
ставим запятую и пишем



Block.planks
Далее ищем это



{Item.helmetLeather, Item.helmetChain, Item.helmetSteel, Item.helmetDiamond, Item.helmetGold}, {Item.plateLeather, Item.plateChain, Item.plateSteel, Item.plateDiamond, Item.plateGold}, {Item.legsLeather, Item.legsChain, Item.legsSteel, Item.legsDiamond, Item.legsGold}, {Item.bootsLeather, Item.bootsChain, Item.bootsSteel, Item.bootsDiamond, Item.bootsGold}};
Заменяем на это



{Item.helmetLeather, Item.helmetChain, Item.helmetSteel, Item.helmetDiamond, Item.helmetGold, Item.helmetWood}, {Item.plateLeather, Item.plateChain, Item.plateSteel, Item.plateDiamond, Item.plateGold, Item.plateWood}, {Item.legsLeather, Item.legsChain, Item.legsSteel, Item.legsDiamond, Item.legsGold, Item.legsWood}, {Item.bootsLeather, Item.bootsChain, Item.bootsSteel, Item.bootsDiamond, Item.bootsGold, Item.bootsWood}};

Открываем файл Item.java и добавляем предметы


Код:
public static ItemArmor helmetWood = (ItemArmor)(new ItemArmor(2017, EnumArmorMaterial.WOOD, 6, 0)).setUnlocalizedName("helmetWood");
    public static ItemArmor plateWood = (ItemArmor)(new ItemArmor(2018, EnumArmorMaterial.WOOD, 6, 1)).setUnlocalizedName("chestplateWood");
    public static ItemArmor legsWood = (ItemArmor)(new ItemArmor(2019, EnumArmorMaterial.WOOD, 6, 2)).setUnlocalizedName("leggingsWood");
    public static ItemArmor bootsWood = (ItemArmor)(new ItemArmor(2020, EnumArmorMaterial.WOOD, 6, 3)).setUnlocalizedName("bootsWood");
130 - id(рекомендую использовать с 130).

WOOD - материал.
5 - порядковый номер (0 - кожа, 1 - кольчуга, 2 - железо, 3 - алмаз, 4 - золото).
0 - шлем, 1 - нагрудник, 2 - штаны, 3 - носки).
setUnlocalizedName - название брони.

Открываем файл RenderPlayer.java, ищем 10 строку и в конец добавляем


, "wood"
 
Главная Регистрация
Назад
Сверху