AchievementList

Версия Minecraft
1.12.2
683
3
21
В 1.11.2 используется AchievementList а что использовать в 1.12.2
Java:
        if (stack.getItem() == Items.IRON_INGOT)
            this.player.addStat(AchievementList.ACQUIRE_IRON);
        else if (stack.getItem() == Items.COOKED_FISH)
            this.player.addStat(AchievementList.COOK_FISH);
 
3,005
192
592
Посмотри как сделан слот печки и забери от туда новый код...
 
683
3
21
Нет там такого нету вот мой класс
Java:
public class SlotFurnaceOutput extends SlotItemHandler {

    private final EntityPlayer player;
    private int removeCount;

    public SlotFurnaceOutput(EntityPlayer player, IItemHandler itemHandler, int index,
            int xPosition, int yPosition) {
        super(itemHandler, index, xPosition, yPosition);
        this.player = player;
    }

    @Override
    public boolean isItemValid(ItemStack stack) {
        return false;
    }

    @Override
    public ItemStack decrStackSize(int amount) {
        if (this.getHasStack())
            this.removeCount += Math.min(amount, this.getStack().getCount());
        return super.decrStackSize(amount);
    }

    @Override
    public ItemStack onTake(EntityPlayer player, ItemStack stack) {
        this.onCrafting(stack);
        super.onTake(player, stack);
        return stack;
    }

    @Override
    protected void onCrafting(ItemStack stack, int amount) {
        this.removeCount += amount;
        this.onCrafting(stack);
    }

    @Override
    protected void onCrafting(ItemStack stack) {
        stack.onCrafting(this.player.world, this.player, this.removeCount);

        if (!this.player.world.isRemote) {
            int i = this.removeCount;
            float f = FurnaceRecipes.instance().getSmeltingExperience(stack);

            if (f == 0.0F) {
                i = 0;
            } else if (f < 1.0F) {
                int j = MathHelper.floor((float) i * f);
                
                if (j < MathHelper.ceil((float) i * f) && Math.random() < (double) ((float) i * f - (float) j))
                    j++;

                i = j;
            }

            while (i > 0) {
                int k = EntityXPOrb.getXPSplit(i);
                i -= k;
                this.player.world.spawnEntity(new EntityXPOrb(this.player.world, this.player.posX,
                        this.player.posY + 0.5D, this.player.posZ + 0.5D, k));
            }
        }

        this.removeCount = 0;

        FMLCommonHandler.instance().firePlayerSmeltedEvent(this.player, stack);

        if (stack.getItem() == Items.IRON_INGOT)
            this.player.addStat(AchievementList.ACQUIRE_IRON);
        else if (stack.getItem() == Items.COOKED_FISH)
            this.player.addStat(AchievementList.COOK_FISH);
    }

}
 
7,099
324
1,509
7,099
324
1,509
Т.е. ты хочешь сделать выдачу своего advancement при взятии результата крафта из слота твоей машинки?
 
683
3
21
капец я досихпор не могу понять как сделать печку у Cj не всё работает ведь версия 1.12.2 а у другого код на гитхабе не верен а в видео он его от туда взял :/
кто знает гайды как создать печку?
 
7,099
324
1,509
Ваниль скопипастить. Там, кстати, выдачи ачивки нет в логике печки(вроде, детально не изучал, просто поиском прошелся)
 
7,099
324
1,509
1,031
19
87
А где gui печки найти?
Открываешь ванильные пакеты, открываешь ванильный класс печки, там смотришь на импорты. Ванильная печка имеет следующие ключевые импорты и связи: FurnaceContainer, FurnaceTileEntity, LitFurnace и ещё что-то там. Названия могут быть немного другие, так как писал с памяти а не с IDE.
 
Сверху