Хала Амигос (форумчане)
Делаю проверку на айтем в слоте, в случае положительного ответа - эффект, в случае отрицательного - убрать эффект. (найс предложение сочЕнил)
Короче, факт в том, что если забрать со стола айтем и переложить в другой слот, эффект убирается, а если нажать на q навестись на айтем, то предмет выпадает, но эффект остаётся.
Где туплю?
Заранее спасибо всем.
Делаю проверку на айтем в слоте, в случае положительного ответа - эффект, в случае отрицательного - убрать эффект. (найс предложение сочЕнил)
Короче, факт в том, что если забрать со стола айтем и переложить в другой слот, эффект убирается, а если нажать на q навестись на айтем, то предмет выпадает, но эффект остаётся.
Java:
public class SlotOne extends Slot {
private final EntityPlayer thePlayer;
private int removeCount;
public SlotOne(EntityPlayer player, IInventory inventoryIn, int slotIndex, int xPosition, int yPosition) {
super(inventoryIn, slotIndex, xPosition, yPosition);
this.thePlayer = player;
}
public boolean isItemValid(ItemStack stack) {
if (stack.getItem() == ItemsRegister.ring) return true;
return false;
}
public ItemStack onTake(EntityPlayer player, ItemStack stack){
this.onCrafting(stack);
super.onTake(player, stack);
return stack;
}
protected void onCrafting(ItemStack stack, int amount){
this.removeCount += amount;
this.onCrafting(stack);
}
protected void onCrafting(ItemStack stack){
stack.onCrafting(this.thePlayer.world, this.thePlayer, this.removeCount);
this.removeCount = 0;
}
public void putStack(ItemStack itemStack) {
this.inventory.setInventorySlotContents(this.getSlotIndex(), itemStack);
this.onSlotChanged();
if (!this.thePlayer.world.isRemote)
if (this.getSlotIndex() == 0 && this.getStack() != null && this.getStack().getItem() == ItemsRegister.ring) {
thePlayer.addPotionEffect(new PotionEffect(MobEffects.SPEED, 99999999, 2));
} else if (this.getSlotIndex() == 0 && (this.getStack() == null || this.getStack().getItem() != ItemsRegister.ring)) {
thePlayer.removePotionEffect(MobEffects.SPEED);
}
}
public void onPickupFromSlot(ItemStack stack) {
this.onSlotChanged();
if (!this.thePlayer.world.isRemote)
if (this.getSlotIndex() == 0 && (this.getStack() == null || this.getStack().getItem() != ItemsRegister.ring)) {
thePlayer.removePotionEffect(MobEffects.SPEED);
}
}
}
Где туплю?
Заранее спасибо всем.