code: public DefaultShardManagerBuilder setContextMap(IntFunction<? extends ConcurrentMap<String, String>> provider)
      {
          this.contextProvider = provider;
          if (provider != null)
              this.enableContext = true;
          return this;
      }
docs: Sets the {@link org.slf4j.MDC MDC} mappings provider to use in JDA.
  <br>If sharding is enabled JDA will automatically add a {@code jda.shard} context with the format {@code [SHARD_ID / TOTAL]}
  where {@code SHARD_ID} and {@code TOTAL} are the shard configuration.
  Additionally it will provide context for the id via {@code jda.shard.id} and the total via {@code jda.shard.total}.
  
  <p><b>The manager will call this with a shardId and it is recommended to provide a different context map for each shard!</b>
  <br>This automatically switches {@link #setContextEnabled(boolean)} to true if the provided function is not null!
  
  @param  provider
  The provider for <b>modifiable</b> context maps to use in JDA, or {@code null} to reset
  
  @return The DefaultShardManagerBuilder instance. Useful for chaining.
  
  @see    <a href="https://www.slf4j.org/api/org/slf4j/MDC.html" target="_blank">MDC Javadoc</a>