package net.minecraft.world.entity.npc; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.level.Level; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.trading.MerchantOffer; import javax.annotation.Nullable; import net.minecraft.world.item.trading.MerchantOffers; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.MerchantContainer; import net.minecraft.world.item.trading.Merchant; public class ClientSideMerchant implements Merchant { private final MerchantContainer container; private final Player source; private MerchantOffers offers; private int xp; public ClientSideMerchant(final Player ayg) { this.offers = new MerchantOffers(); this.source = ayg; this.container = new MerchantContainer(this); } @Nullable @Override public Player getTradingPlayer() { return this.source; } @Override public void setTradingPlayer(@Nullable final Player ayg) { } @Override public MerchantOffers getOffers() { return this.offers; } @Override public void overrideOffers(@Nullable final MerchantOffers bix) { this.offers = bix; } @Override public void notifyTrade(final MerchantOffer biw) { biw.increaseUses(); } @Override public void notifyTradeUpdated(final ItemStack bek) { } @Override public Level getLevel() { return this.source.level; } @Override public int getVillagerXp() { return this.xp; } @Override public void overrideXp(final int integer) { this.xp = integer; } @Override public boolean showProgressBar() { return true; } @Override public SoundEvent getNotifyTradeSound() { return SoundEvents.VILLAGER_YES; } }