Регистрация

Версия Minecraft
1.7.10
149
1
2
Видел что то такое же, но не придал значение пока сам не увидел что столкнулся с такой же ошибкой.
В общем есть несколько предметов, а регистрируются как последний зарегистрированный.
Вот отрывок кода:
Java:
@EventHandler
    public void PreInit(FMLPreInitializationEvent event) {
        invise = new BlockInvisible(4000);
        
        gun_bullet2 = new ItemAmmo(2000, "gun_bullet2");
        gun_bullet4 = new ItemAmmo(2001, "gun_bullet4");
        
        vepr = new ItemWeapon(5001, 0, 0, false, 0, 0, 1, false, 4, 5, "vepr", null, 3);
        fn2000 = new ItemWeapon(5002, 0.3F, 30, true, 1F, 1F, 1, false, 4, 5, "fn2000", "heavyShoot", 3);
        svd = new ItemWeapon(5003, 0, 0, false, 0, 0, 1, false, 2, 5, "svd", null, 3);
        pkp = new ItemWeapon(5004, 0, 0, false, 0, 0, 1, false, 10, 6, "pkp", null, 3);
        
        sproxy.preInit();
    }
    
    @EventHandler
    public void init(FMLInitializationEvent event) {
        GameRegistry.registerItem(gun_bullet2, "gun_bullet2");
        LanguageRegistry.instance().addNameForObject(gun_bullet2, "ru_RU", "Automat Ammo");
        GameRegistry.registerItem(gun_bullet4, "gun_bullet4");
        LanguageRegistry.instance().addNameForObject(gun_bullet4, "ru_RU", "Pulemet Ammo");
        GameRegistry.registerItem(fn2000, "fn2000");
        LanguageRegistry.instance().addNameForObject(fn2000, "ru_RU", "Automat Rifle FN2000");
        GameRegistry.registerItem(vepr, "vepr");
        LanguageRegistry.instance().addNameForObject(vepr, "ru_RU", "Automat Karabin Vepr");
        GameRegistry.registerItem(svd, "SVD");
        LanguageRegistry.instance().addNameForObject(svd, "ru_RU", "Sniper Rifle Dragunov");
        GameRegistry.registerItem(pkp, "PKP");
        LanguageRegistry.instance().addNameForObject(pkp, "ru_RU", "PKP");
        ...
    }
И все эти предметы называются PKP и мне этого не надо
 

Icosider

Kotliner
Администратор
3,600
99
663
Во первых, в 1.7 нет необходимость использовать LanguageRegistry.
Во вторых, не надо в преИните устанавливать переменной новый объект класса.
В-третьих, название какое? То что при наведении или то, что после modid:yourItemName

Скорее всего при наведении, просто создай ru_RU.lang и пропиши все, что тебе нужно. Пример:
#Блок
tile.yourCustomBlock.name=Мой кастомный блок

#Предмет
item.yourCustomItem.name=Мой кастомный предмет
 
1,976
68
220
Щас бы в предметы немочь...
Java:
public class ItemPattern extends Item {
    public ItemPattern(String modid, String name, CreativeTabs tab, int stackSize) {
        this.setCreativeTab(tab);
        this.setMaxStackSize(stackSize);
        this.setTextureName(modid + ":" + name);
        this.setUnlocalizedName(name);
    }
}

// preInit:
myItem = new ItemPattern("ModID", "MyItem", myCreativeTab, 16);
GameRegistry.registerItem(myItem, myItem.getUnlocalizedName().substring(5));

ВСЕ названия пиши на англе, потом в ru_RU.lang локализуй. Кодировку выше назвали, UTF-8 w/o BOM
 
Сверху