public void removeReceiverAt(Location loc) {
   for (WirelessReceiver receiver : receivers) {
     if (receiver.getX() == loc.getBlockX()
         && receiver.getZ() == loc.getBlockZ()
         && receiver.getY() == loc.getBlockY()) {
       receivers.remove(receiver);
       return;
     }
   }
 }
  /** Simply turns off the channel : all the receivers and screens turn off. */
  public void turnOff() {
    try {
      // Change receivers
      for (WirelessReceiver receiver : getReceivers()) {
        receiver.turnOff(getName());
      }

      // Change screens
      for (WirelessScreen screen : screens) {
        screen.turnOff();
      }
    } catch (RuntimeException e) {
      WirelessRedstone.getWRLogger()
          .severe(
              "Error while updating redstone onBlockRedstoneChange for Screens , turn on the Debug Mode to get more informations.");
      if (WirelessRedstone.config.getDebugMode()) e.printStackTrace();
      return;
    }
  }
  /**
   * Simply turns on the wireless channel, means that all the receivers and screens will turn on.
   */
  public void turnOn() {
    if (isLocked()) {
      WirelessRedstone.getWRLogger().debug("Channel " + name + " didn't turn on because locked.");
      return;
    }
    // Turning on the receivers ONLY if the channel isn't active.
    try {
      // Change receivers
      for (WirelessReceiver receiver : receivers) {
        receiver.turnOn(getName());
      }

      // Turning on screens
      for (WirelessScreen screen : screens) {
        screen.turnOn();
      }
    } catch (RuntimeException e) {
      WirelessRedstone.getWRLogger()
          .severe(
              "Error while updating redstone event onBlockRedstoneChange for Receivers. Turn on the Debug Mode to get more informations.");
      if (WirelessRedstone.config.getDebugMode()) e.printStackTrace();
      return;
    }
  }
 private void superTurnOff(final String channelName) {
   super.turnOff(channelName);
 }