Выдать предмет игроку

Версия Minecraft
1.7.10
73
1
Нужно в gui выдать предмет игроку по нажатию кнопки
Естественно, через inventory.addItemStackToInventory() на клиенте, ничего не заработает,
поэтому я отправляю пакет на сервер с такой обработкой

Код:
//*получение ItemStack*

if (!player.inventory.addItemStackToInventory(stack))
            {
                EntityItem ei = new EntityItem(player.worldObj, player.posX, player.posY, player.posZ, stack.copy());
                ei.delayBeforeCanPickup = 60;
                player.worldObj.spawnEntityInWorld(ei);
            }

Но предмет не добавляется, при попытке добавления всегда возвращает false, entityItem не появляется
 

Icosider

Kotliner
Администратор
3,601
99
664
Лол, что за овно?
Если хочешь дропать предмет игроку, то делай это так:
//1.ItemStack(Сам предмет, количество) 2.Падает ли предмет от игрока 3. не знаю.
player.dropItem(new ItemStack(Items.APPLE, 1), true, false);

А если хочешь выдать то:
//ItemStack(Сам предмет, количество, метадата)
player.inventory.addItemStackToInventory(new ItemStack(Items.APPLE, 1, 2));
or
player.dropItem(new ItemStack(Items.APPLE, 1), false, false);//но не факт, что сработает.


И ещё такой момент if (!player.inventory.addItemStackToInventory(stack)) <- Так ты никогда не выдашь себе предмет
 

tox1cozZ

aka Agravaine
8,455
598
2,892
WildHeart написал(а):
И ещё такой момент if (!player.inventory.addItemStackToInventory(stack)) <- Так ты никогда не выдашь себе предмет

Да ну? Этот метод возвращает false если в инвентаре нет места, иначе же добавляет в него предмет и возвращает true.
 

Icosider

Kotliner
Администратор
3,601
99
664
Agravaine написал(а):
WildHeart написал(а):
И ещё такой момент if (!player.inventory.addItemStackToInventory(stack)) <- Так ты никогда не выдашь себе предмет

Да ну? Этот метод возвращает false если в инвентаре нет места, иначе же добавляет в него предмет и возвращает true.
Да? "addItemStackToInventory", хм стрёмное тогда название метода...
 
73
1
WildHeart написал(а):
Лол, что за овно?
Если хочешь дропать предмет игроку, то делай это так:
//1.ItemStack(Сам предмет, количество) 2.Падает ли предмет от игрока 3. не знаю.
player.dropItem(new ItemStack(Items.APPLE, 1), true, false);

А если хочешь выдать то:
//ItemStack(Сам предмет, количество, метадата)
player.inventory.addItemStackToInventory(new ItemStack(Items.APPLE, 1, 2));
or
player.dropItem(new ItemStack(Items.APPLE, 1), false, false);//но не факт, что сработает.

если бы всё то, что ты написал работало, я бы не создавал эту тему
 

Icosider

Kotliner
Администратор
3,601
99
664
Zuzuk написал(а):
WildHeart написал(а):
Лол, что за овно?
Если хочешь дропать предмет игроку, то делай это так:
//1.ItemStack(Сам предмет, количество) 2.Падает ли предмет от игрока 3. не знаю.
player.dropItem(new ItemStack(Items.APPLE, 1), true, false);

А если хочешь выдать то:
//ItemStack(Сам предмет, количество, метадата)
player.inventory.addItemStackToInventory(new ItemStack(Items.APPLE, 1, 2));
or
player.dropItem(new ItemStack(Items.APPLE, 1), false, false);//но не факт, что сработает.

если бы всё то, что ты написал работало, я бы не создавал эту тему
Ну тогда думай сам c:
 
73
1
я нашёл ошибку,
у меня stacksize 0 почему-то,
но это уже совсем другая история
 
Сверху