using Boyfriend.Data.Options; using Boyfriend.Responders; using Remora.Discord.API.Abstractions.Objects; namespace Boyfriend.Data; /// /// Contains all per-guild settings that can be set by a member /// with using the /settings command /// public static class GuildSettings { public static readonly LanguageOption Language = new("Language", "en"); /// /// Controls what message should be sent in when a new member joins the server. /// /// /// /// No message will be sent if set to "off", "disable" or "disabled". /// will be sent if set to "default" or "reset" /// /// /// public static readonly Option WelcomeMessage = new("WelcomeMessage", "default"); /// /// Controls whether or not the message should be sent /// in on startup. /// /// public static readonly BoolOption ReceiveStartupMessages = new("ReceiveStartupMessages", false); public static readonly BoolOption RemoveRolesOnMute = new("RemoveRolesOnMute", false); /// /// Controls whether or not a guild member's roles are returned if he/she leaves and then joins back. /// /// Roles will not be returned if the member left the guild because of /ban or /kick. public static readonly BoolOption ReturnRolesOnRejoin = new("ReturnRolesOnRejoin", false); public static readonly BoolOption AutoStartEvents = new("AutoStartEvents", false); /// /// Controls whether or not users who try to hoist themselves should be renamed. /// public static readonly BoolOption RenameHoistedUsers = new("RenameHoistedUsers", false); /// /// Controls what channel should all public messages be sent to. /// public static readonly SnowflakeOption PublicFeedbackChannel = new("PublicFeedbackChannel"); /// /// Controls what channel should all private, moderator-only messages be sent to. /// public static readonly SnowflakeOption PrivateFeedbackChannel = new("PrivateFeedbackChannel"); public static readonly SnowflakeOption EventNotificationChannel = new("EventNotificationChannel"); public static readonly SnowflakeOption DefaultRole = new("DefaultRole"); public static readonly SnowflakeOption MuteRole = new("MuteRole"); public static readonly SnowflakeOption EventNotificationRole = new("EventNotificationRole"); /// /// Controls the amount of time before a scheduled event to send a reminder in . /// public static readonly TimeSpanOption EventEarlyNotificationOffset = new( "EventEarlyNotificationOffset", TimeSpan.Zero); }