package tc.oc.commons.bukkit.broadcast.model; import java.util.List; import java.util.stream.Stream; import com.google.common.collect.ImmutableList; import java.time.Duration; import tc.oc.commons.core.inspect.Inspectable; import tc.oc.commons.core.stream.Collectors; import tc.oc.minecraft.server.ServerFilter; /** * A periodic broadcast selected randomly from a set of localized messages */ public class BroadcastSchedule extends Inspectable.Impl { @Inspect private final Duration interval; @Inspect private final ImmutableList<BroadcastSet> messages; @Inspect private final ServerFilter serverFilter; public BroadcastSchedule(Duration interval, ServerFilter serverFilter, Stream<BroadcastSet> messages) { this.interval = interval; this.serverFilter = serverFilter; this.messages = messages.collect(Collectors.toImmutableList()); } /** * Time between broadcasts */ public Duration interval() { return interval; } /** * Relative path of the localized message list. * * This path is be relative to the localized root, and must NOT have an extension. */ public List<BroadcastSet> messages() { return messages; } public ServerFilter serverFilter() { return serverFilter; } }