Program: 145966
Project: 145966
Buggy source:
@Override public void updateEntity(){
  if (!this.addedToNet)   this.isRSActivated=worldObj.isBlockIndirectlyGettingPowered(xCoord,yCoord,zCoord);
  super.updateEntity();
  if (worldObj.isRemote)   return;
  int energyReq=ENERGY_MAX - currentEnergy;
  if (this.isRSActivated && currentBehavior == EnumBehavior.DISCHARGE) {
    for (int i=0; i < 4; i++) {
      ItemStack arm=slots[i];
      if (arm == null)       continue;
      ISpecialElectricItem item=(ISpecialElectricItem)arm.getItem();
      int e=item.getManager(arm).discharge(arm,ENERGY_MAX - currentEnergy,2,false,false);
      currentEnergy+=e;
    }
  }
 else   if (currentEnergy > 0 && !(!this.isRSActivated && currentBehavior == EnumBehavior.CHARGEONLY)) {
    boolean flag=false;
    for (int i=0; i < 4; i++) {
      ItemStack arm=slots[i];
      if (arm == null)       continue;
      ISpecialElectricItem item=(ISpecialElectricItem)arm.getItem();
      int e=item.getManager(arm).charge(arm,currentEnergy > 128 ? 128 : currentEnergy,2,false,worldObj.isRemote);
      currentEnergy-=e;
      flag=flag || e > 0;
    }
    isCharging=flag;
  }
 else   isCharging=false;
  if (currentEnergy < 0)   currentEnergy=0;
  if (this.isUsing) {
    for (    EntityPlayer charger : chargers) {
      int received=EnergyUtils.tryChargeArmor(charger,this.currentEnergy,2,false);
      currentEnergy-=received;
      if (received <= 0) {
        worldObj.playSoundAtEntity(charger,"String_Node_Str",0.5F,1.0F);
        this.stopUsing(charger);
      }
      if (worldObj.getWorldTime() % 40 == 0) {
        worldObj.playSoundAtEntity(charger,"String_Node_Str",0.3F,1.0F);
      }
      if (currentEnergy <= 0) {
        this.chargers.clear();
        this.isUsing=false;
        worldObj.playSoundAtEntity(charger,"String_Node_Str",0.5F,1.0F);
      }
    }
  }
  if (currentEnergy < ENERGY_MAX && !(!this.isRSActivated && currentBehavior == EnumBehavior.RECEIVEONLY)) {
    for (int i=4; i < 7; i++) {
      ItemStack sl=slots[i];
      if (sl == null)       continue;
      if (sl.getItem() == Items.redstone) {
        if (energyReq > 500) {
          this.decrStackSize(i,1);
        }
        currentEnergy+=500;
      }
 else       if (sl.getItem() instanceof ISpecialElectricItem) {
        ISpecialElectricItem item=(ISpecialElectricItem)sl.getItem();
        if (!item.canProvideEnergy(sl))         continue;
        int cn=energyReq < 128 ? energyReq : 128;
        cn=item.getManager(sl).discharge(sl,cn,2,false,false);
        currentEnergy+=cn;
      }
    }
  }
}

Fixed version (ground truth):
@Override public void updateEntity(){
  if (!this.addedToNet)   this.isRSActivated=worldObj.isBlockIndirectlyGettingPowered(xCoord,yCoord,zCoord);
  super.updateEntity();
  if (worldObj.isRemote) {
    return;
  }
  int energyReq=ENERGY_MAX - currentEnergy;
  if (this.isRSActivated && currentBehavior == EnumBehavior.DISCHARGE) {
    for (int i=0; i < 4; i++) {
      ItemStack arm=slots[i];
      if (arm == null)       continue;
      ISpecialElectricItem item=(ISpecialElectricItem)arm.getItem();
      int e=item.getManager(arm).discharge(arm,ENERGY_MAX - currentEnergy,2,false,false);
      currentEnergy+=e;
    }
  }
 else   if (currentEnergy > 0 && !(!this.isRSActivated && currentBehavior == EnumBehavior.CHARGEONLY)) {
    boolean flag=false;
    for (int i=0; i < 4; i++) {
      ItemStack arm=slots[i];
      if (arm == null)       continue;
      ISpecialElectricItem item=(ISpecialElectricItem)arm.getItem();
      int e=item.getManager(arm).charge(arm,currentEnergy > 128 ? 128 : currentEnergy,2,false,worldObj.isRemote);
      currentEnergy-=e;
      flag=flag || e > 0;
    }
    isCharging=flag;
  }
 else   isCharging=false;
  if (currentEnergy < 0)   currentEnergy=0;
  if (this.isUsing) {
    for (    EntityPlayer charger : chargers) {
      int received=EnergyUtils.tryChargeArmor(charger,this.currentEnergy,2,false);
      currentEnergy-=received;
      if (received <= 0) {
        worldObj.playSoundAtEntity(charger,"String_Node_Str",0.5F,1.0F);
        this.stopUsing(charger);
      }
      if (worldObj.getWorldTime() % 40 == 0) {
        worldObj.playSoundAtEntity(charger,"String_Node_Str",0.3F,1.0F);
      }
      if (currentEnergy <= 0) {
        this.chargers.clear();
        this.isUsing=false;
        worldObj.playSoundAtEntity(charger,"String_Node_Str",0.5F,1.0F);
      }
    }
  }
  if (currentEnergy < ENERGY_MAX && !(!this.isRSActivated && currentBehavior == EnumBehavior.RECEIVEONLY)) {
    for (int i=4; i < 7; i++) {
      ItemStack sl=slots[i];
      if (sl == null)       continue;
      if (sl.getItem() == Items.redstone) {
        if (energyReq > 500) {
          this.decrStackSize(i,1);
        }
        currentEnergy+=500;
      }
 else       if (sl.getItem() instanceof ISpecialElectricItem) {
        ISpecialElectricItem item=(ISpecialElectricItem)sl.getItem();
        if (!item.canProvideEnergy(sl))         continue;
        int cn=energyReq < 128 ? energyReq : 128;
        cn=item.getManager(sl).discharge(sl,cn,2,false,false);
        currentEnergy+=cn;
      }
    }
  }
}