Есть ли метод onItemRightClicked и как изменить итем в руке.

Версия Minecraft
1.7.10

jopi

Попрошайка
1,421
30
260
Существует ли метод onItemRightClicked? и если существует по типу этого или он сам КАК поменять итем в руке при ПКМ об любой блок?
У меня есть Предмет, при нажатии на него я получаю 4 других предмета.
Как убрать 1 предмет и добавить 4 других я знаю а как мне сделать что-бы это было в методе?
 
Решение
А такое не прокатит?
На.
Java:
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hx, float hy, float hz) {
        if (!world.isRemote) {
            player.inventory.consumeInventoryItem(Core.CCPOS);
            player.inventory.addItemStackToInventory(new ItemStack(Core.COLA05, 4));
            return true;
        }
        return false;
    }
И иди учить ДЖАВУ!

Eifel

Модератор
1,623
78
608
Если при пкм об любой блок то тебе скорее надо onItemUse метод. Смотри что есть: ты можешь зайти в класс Item от которого ты унаследуешься (зажать контрол и лкм по нему) и найти там метод onItemUse(или может чуть другое название, не помню точно). Копируешь его оттуда и вставляешь в свой класс с прдеметом. Затем помещаешь в него код для замены предмета
 

jopi

Попрошайка
1,421
30
260
Если при пкм об любой блок то тебе скорее надо onItemUse метод. Смотри что есть: ты можешь зайти в класс Item от которого ты унаследуешься (зажать контрол и лкм по нему) и найти там метод onItemUse(или может чуть другое название, не помню точно). Копируешь его оттуда и вставляешь в свой класс с прдеметом. Затем помещаешь в него код для замены предмета
sekundu
 

jopi

Попрошайка
1,421
30
260
Если при пкм об любой блок то тебе скорее надо onItemUse метод. Смотри что есть: ты можешь зайти в класс Item от которого ты унаследуешься (зажать контрол и лкм по нему) и найти там метод onItemUse(или может чуть другое название, не помню точно). Копируешь его оттуда и вставляешь в свой класс с прдеметом. Затем помещаешь в него код для замены предмета
Брать именно onItemUse? просто там ещё есть OnItemRightClick
 

jopi

Попрошайка
1,421
30
260
Если при пкм об любой блок то тебе скорее надо onItemUse метод. Смотри что есть: ты можешь зайти в класс Item от которого ты унаследуешься (зажать контрол и лкм по нему) и найти там метод onItemUse(или может чуть другое название, не помню точно). Копируешь его оттуда и вставляешь в свой класс с прдеметом. Затем помещаешь в него код для замены предмета
Код:
    public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
    {
        //this. нету consume
        //Если писать player.inventory(Где Consume лежит то тоже ничего)
        //пишу world.isRemote он красный...
        return false;
    }
 
1,976
68
220
В твой предмет:
Java:
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int s, float hx, float hy, float hz) {
        if (!world.isRemote && world.getBlock(x, y, z) == Blocks.stone) { // Если ткнул по камню
            player.inventory.consumeInventoryItem(this);    // Забрать этот предмет
            player.inventory.addItemStackToInventory(new ItemStack(Items.apple, 4));    // Дать 4 яблока
            player.inventory.addItemStackToInventory(new ItemStack(Items.melon));        // Один арбуз
            player.inventory.addItemStackToInventory(new ItemStack(Items.carrot));        // Одну морковь
            player.inventory.addItemStackToInventory(new ItemStack(Items.potato));        // Одну картошку
            return true;
        }
        return false;
    }
 
Последнее редактирование:

jopi

Попрошайка
1,421
30
260
В твой предмет:
Java:
    @Override
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int s, float hx, float hy, float hz) {
        if (!world.isRemote && world.getBlock(x, y, z) == Blocks.stone) { // Если ткнул по камню
            --stack.stackSize;    // Забрать этот предмет
            player.inventory.addItemStackToInventory(new ItemStack(Items.apple, 4));    // Дать 4 яблока
            player.inventory.addItemStackToInventory(new ItemStack(Items.melon));        // Один арбуз
            player.inventory.addItemStackToInventory(new ItemStack(Items.carrot));        // Одну морковь
            player.inventory.addItemStackToInventory(new ItemStack(Items.potato));        // Одну картошку
            return true;
        }
        return false;
    }
А такое не прокатит?

Java:
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int var6, float var7, float var8, float var9)
    {
        if(!world.isRemote){

            ItemStack currentStack = player.getCurrentEquippedItem();
            if(currentStack != null && currentStack.getItem().equals(Core.CCPOS)){
            player.inventory.consumeInventoryItem(Core.CCPOS);
            player.inventory.addItemStackToInventory(new ItemStack(Core.COLA05, 4));
                return true;
            }
        return false;
    }
        return bFull3D;
}
 
1,976
68
220
Лучше не встречайся со мной в реальности. Я тебя прибью...
Потому что консюмить надо из инвентаря игрока!
//Если писать player.inventory(Где Consume лежит то тоже ничего)
Если ты знаешь, что консум там, на кой ты его через this вызвать пытался?
//пишу world.isRemote он красный...
Да потому что у тебя имена переменных не world, player, итп, а обфусцированная фигня
 

jopi

Попрошайка
1,421
30
260
Лучше не встречайся со мной в реальности. Я тебя прибью...

Потому что консюмить надо из инвентаря игрока!

Если ты знаешь, что консум там, на кой ты его через this вызвать пытался?

Да потому что у тебя имена переменных не world, player, итп, а обфусцированная фигня
бля я тупой как пробка. тупее пробки*
 
1,976
68
220
А такое не прокатит?
На.
Java:
    public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hx, float hy, float hz) {
        if (!world.isRemote) {
            player.inventory.consumeInventoryItem(Core.CCPOS);
            player.inventory.addItemStackToInventory(new ItemStack(Core.COLA05, 4));
            return true;
        }
        return false;
    }
И иди учить ДЖАВУ!
 

Eifel

Модератор
1,623
78
608
Потому что ты без знаний языка пытаешься делать мод (как я делал когда-то). Ситуация аналогичная - рандомно тыкать пока не заработает. Лучше пару дней почитать учебник и затем все пойдет намного быстрее и без лишних вопросов
 
Сверху