docs: public void setStatus(Presence.Mode presenceMode, String status) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
          if (!online) {
              throw new IllegalStateException("Cannot set status when the agent is not online.");
          }
  
          if (presenceMode == null) {
              presenceMode = Presence.Mode.available;
          }
          this.presenceMode = presenceMode;
  
          Presence presence = new Presence(Presence.Type.available);
          presence.setMode(presenceMode);
          presence.setTo(this.getWorkgroupJID());
  
          if (status != null) {
              presence.setStatus(status);
          }
          presence.addExtension(new MetaData(this.metaData));
  
          StanzaCollector collector = this.connection.createStanzaCollectorAndSend(new AndFilter(new StanzaTypeFilter(Presence.class),
                  FromMatchesFilter.create(workgroupJID)), presence);
  
          collector.nextResultOrThrow();
      }