{ "common": { "database_not_found": "Database data does not exist!", "database_exists": "Database data already exists!", "database_initialized": "Database data successfully initialized!", "command_owner_only": "This command can only be used by the bot owner.", "command_server_only": "This command must be used in a server.", "private_message_not_available": "This command is not available in private messages.", "error_occurred": "An error occurred!", "success": "Success!", "failed": "Failed!", "none": "None", "unknown": "Unknown", "configure": "Configure", "enable": "Enable", "disable": "Disable", "add": "Add", "remove": "Remove", "list": "List", "status": "Status", "channel": "Channel", "no_channel_selected": "No channel selected!", "channel_configured_success": "āœ… Channel configured successfully!", "invalid_text_channel": "Please provide a valid text channel!", "invalid_channel_type": "Please provide a valid text channel!", "no_permission": "You don't have permission to use this command." }, "player": { "common": { "enabled": "āœ… Enabled", "disabled": "āŒ Disabled", "not_configured": "Not configured", "channel_not_found": "Channel not found", "configure_channel": "Configure Channel" }, "track_skipped": "Song **{title}** by **{author}** skipped!", "disconnect": "I've left the voice channel!", "not_in_voice": "You're not in a voice channel, idiot!", "not_in_same_voice": "You're not in my voice channel!", "no_queue": "No queue is currently running, search for a song instead!", "no_current_track": "No music is currently playing, search for one instead!", "no_session": "No listening session in progress!", "no_track": "No music currently playing!", "track_added": "šŸŽµ **{title}** has been added to the queue!", "track_added_playlist": "šŸŽµ **{count}** songs have been added to the queue!", "invalid_search": "No results found for your search!", "paused_status": "Playback paused", "resumed_status": "Playback resumed", "stopped_status": "Playback stopped", "skipped": "Next song", "previous": "Previous song", "shuffled": "Queue shuffled", "volume_max": "Volume is already at maximum!", "volume_min": "Volume is already at minimum!", "loop_off": "Loop disabled", "loop_track": "Track loop enabled", "loop_queue": "Queue loop enabled", "loop_autoplay": "Autoplay enabled", "no_lyrics_found": "No lyrics found!", "no_audio_found": "No audio files found in this channel.", "choose_audio_file": "Choose an audio file:", "took_too_long": "You took too long to choose!", "paused": "Music paused!", "resumed": "Music resumed!", "stopped": "Music stopped!", "volume_changed": "šŸ”Š | Volume changed to {volume}%!", "volume_changed_down": "šŸ”‰ | Volume changed to {volume}%!", "previous_played": "Previous music played!", "uptime": "Uptime", "requested_by": "Requested by {user}", "next_track": "Next track", "no_next_track": "None", "no_track_found": "No music found for **{query}**!", "music_restarted": "Restarting music after my restart...", "now_playing": "Now playing **{title}** by **{author}**!", "queue_empty": "Queue empty!", "leaving_empty_channel": "I'm leaving the voice channel because it has been empty for too long.", "no_queue_search_instead": "No queue currently active, search for music instead!", "no_track_playing": "No music currently playing.", "now_playing_no_queue": "Now playing: {track} \nNo music in the queue.", "now_playing_with_queue": "Now playing: {track} \nCurrent queue: \n{tracks}", "loading_track": "Loading music **{title}** by **{author}** on **{source}**...", "duration": "Duration", "source": "Source", "volume": "Volume", "progression": "Progress", "progression_paused": "Progress (paused)", "loop": "Loop", "loop_modes": { "off": "Off", "track": "Track", "queue": "Queue", "autoplay": "Autoplay" }, "sources": { "spotify": "Spotify", "youtube": "Youtube", "unknown": "Unknown" }, "disco": { "title": "🪩 Disco Module Configuration", "description": "Disco mode automatically updates the playback panel every 3 seconds", "description_enabled": "Disco mode is enabled! Visual and audio effects will be applied during music playback.", "description_disabled": "Disco mode is disabled. Enable it to enjoy visual and audio effects during music playback.", "channel_not_configured": "No channel configured", "configure_channel_first": "āŒ Cannot enable Disco mode! Please first configure a channel with the **Configure Channel** button.", "effects_applied": "Disco effects will be applied in {channel}.", "select_channel": "Please select the channel where to apply Disco effects:", "channel_configured_success": "Disco channel configured successfully! Effects will be applied in **{channel}**." }, "queue": { "title": "šŸŽµ Queue", "empty": "The queue is empty", "current_track": "**Currently playing:** {track}", "next_tracks": "**Next:**", "track_entry": "{index}. {title} - {author}" } }, "twitch": { "common": { "enabled": "āœ… Enabled", "disabled": "āŒ Disabled", "not_configured": "Not configured", "channel_not_found": "Channel not found", "configure_channel": "Configure Channel" }, "title": "šŸŽ® Twitch Module Configuration", "module_disabled": "The Twitch module is disabled!", "module_disabled_activate": "Twitch module is disabled, please activate with `/twitch enable`!", "channel_not_configured": "No channel configured", "streamers_count": "{count} configured", "no_streamers": "No streamers configured at the moment", "streamer_not_found": "**{username}** is not a valid Twitch username!", "user_not_found_id": "User not found for ID {id}", "streamer_already_added": "**{username}** is already added as a streamer!", "streamer_not_in_list": "**{username}** is not a streamer!", "streamer_added": "**{username}** (ID {id}) has been added as a streamer!", "streamer_removed": "**{username}** has been removed as a streamer!", "no_streamers_to_remove": "No streamers to remove!", "notifications_channel_set": "Twitch notifications will be sent to **{channel}**!", "configure_channel_first": "Please configure a channel first with the **Configure Channel** button!", "select_notification_channel": "Please select the channel where to send Twitch notifications:", "select_notification_channel_placeholder": "Select a channel for notifications", "select_streamer_to_remove": "Select the streamer to remove:", "select_streamer_prompt": "Select the streamer to remove:", "user_not_found": "User not found", "fetch_error": "Fetch error", "no_streamers_list": "No streamers are currently added!", "streamer_removed_success": "āœ… **{streamer}** has been successfully removed from the streamers list!", "streamer_not_found_list": "Streamer not found!", "no_streamer_selected": "No streamer selected!", "add_streamer_command": "To add a streamer, use the command `/twitch streamer add ` with autocomplete.\nYou can also select a member to mention them in notifications.", "managed_by": "Managed by {bot}", "notifications_sent_to": "Twitch notifications will be sent to {channel}.", "list": { "title": "šŸ“‹ Streamers List", "empty_description": "No streamers configured at the moment", "discord_not_associated": "Not associated", "user_not_found": "User not found", "fetch_error": "Fetch error", "footer": "{count} streamer(s) configured" }, "notification": { "online": { "everyone": "Hey @everyone!\n{streamer} is live on **Twitch**, come!", "everyone_with_mention": "Hey @everyone!\n<@{discordId}> is live on **Twitch**, come!", "title_unknown": "Unknown stream title", "author": "šŸ”“ {streamer} IS CURRENTLY LIVE! šŸŽ„", "description": "Playing {game} with {viewers} viewers" }, "offline": { "everyone": "Re @everyone!\n{streamer} has ended their stream on **Twitch**!", "everyone_with_mention": "Re @everyone!\n<@{discordId}> has ended their stream on **Twitch**!", "author": "⚫ IT'S OVER, THE STREAM LASTED {duration}! šŸ“¼", "duration_unknown": "I DON'T KNOW HOW LONG" } }, "ready": { "no_streamers_configured": "Twitch module is enabled but no channel is configured, please use `/twitch channel`!", "user_not_found": "User with ID {userId} not found, skipping...", "stream_restoration": "Restoring monitoring for {userName} (ID {userId}) - Active stream detected", "monitoring_restored": "Monitoring successfully restored for {userName}", "message_not_found": "Message not found for {userName}, cleaning up messageId", "stream_offline_cleanup": "Offline stream detected for {userName}, cleaning up messageId", "cleanup_error": "Error while cleaning up messageId for {userId}" } }, "amp": { "module_disabled": "AMP module is disabled, please activate with `/database edit guildAmp.enabled True`!", "host_not_configured": "AMP host is not configured, please configure it first!", "login_required": "You must login before performing another command!", "logged_in": "You are connected to the panel as **{username}**!", "instance_list": "List of {count} instances:", "running": "Running", "port": "Port", "module": "Module", "hosts_found": "{count} host(s) found!", "success": "Ok!", "manage_success": "Ok!", "restart_success": "Ok!" }, "freebox": { "common": { "enabled": "āœ… Enabled", "disabled": "āŒ Disabled", "not_configured": "Not configured", "module_enabled": "The module is enabled!", "module_disabled": "The module is disabled!", "configured": "āœ… Configured", "not_configured_error": "āŒ Not configured", "general_error": "An error occurred while processing your request!" }, "general": { "module_disabled": "Freebox module is disabled, please activate with `/database edit guildFbx.enabled True`!", "host_not_set": "Freebox host is not set, please set with `/database edit guildFbx.host `!", "version_not_set": "Freebox API version is not set, please set with `/database edit guildFbx.version `!", "app_token_not_set": "Freebox appToken is not set, please init the app with `/freebox init`!", "incomplete_configuration": "Incomplete Freebox configuration! Check that module, host, version and token are configured.", "user_denied_access": "The user denied the app access to the Freebox.", "file_saved": "File saved, you can now interact with your Freebox!", "no_file_sent": "No file was sent in your message!", "no_message_sent": "No message was sent before the time limit!", "send_ca_file": "Please send another message with the CA file attached, you have one minute.", "invalid_action": "Invalid action!", "invalid_enabled_value": "Invalid enabled value!" }, "auth": { "challenge_failed": "Failed to retrieve the challenge!", "session_failed": "Failed to retrieve the session!", "session_token_failed": "Failed to retrieve the session token!", "track_id_failed": "Failed to retrieve the track ID, please try again later." }, "api": { "version_failed": "An error occurred while retrieving the API version: {error}", "connection_failed": "Failed to retrieve the connection details!", "connection_details": "Connection details:\n{details}" }, "lcd": { "details": "LCD configuration:\n{details}", "config_failed": "Failed to retrieve LCD configuration!", "managed_by_other_bot": "LED control is managed by another bot on this server!", "leds_failed": "Failed to control LEDs!", "leds_success": "LEDs {status} successfully!", "config_title": "šŸ’” Freebox LCD Status", "led_strip": "🌈 LED Strip", "led_strip_on": "āœ… On", "led_strip_off": "āŒ Off", "brightness": "šŸ”† Brightness", "orientation": "šŸ“± Orientation", "orientation_portrait": "Portrait", "orientation_landscape": "Landscape", "auth_challenge_error": "āŒ **Authentication Error**\nUnable to get challenge", "auth_challenge_not_found": "āŒ **Authentication Error**\nChallenge not found", "auth_session_error": "āŒ **Authentication Error**\nUnable to create session", "auth_token_not_found": "āŒ **Authentication Error**\nSession token not found", "config_error": "āŒ **LCD Error**\nUnable to retrieve LCD configuration", "unexpected_error": "āŒ **Error**\nAn unexpected error occurred" }, "timer": { "auto": "ā° Automatic Timer", "status": "**LED Timer Status:**\n- Status: {status}\n- Managed by: {managedBy}", "times_required": "Morning and night times are required to enable the timer!", "invalid_time_format": "Invalid time format! Use HH:MM format (e.g., 08:00, 22:30)", "enabled": "āœ… LED Timer enabled!\nšŸŒ… Turn on: {morningTime}\nšŸŒ™ Turn off: {nightTime}", "disabled": "āŒ LED Timer disabled!", "status_field": "**Status:** {status}", "managed_by": "**Managed by:** {manager}", "morning": "**Morning time:** `{time}`", "night": "**Night time:** `{time}`", "not_configured": "Not configured", "no_manager": "None" }, "status": { "title": "šŸ“Š Freebox Status", "config_section": "šŸ”§ Configuration", "module_field": "**Module:** {status}", "host_field": "**Host:** {value}", "version_field": "**API Version:** {value}", "token_field": "**App Token:** {status}", "host_not_configured": "āŒ Not configured", "version_not_configured": "āŒ Not configured", "token_configured": "āœ… Configured", "token_not_configured": "āŒ Not configured", "timer_section": "šŸ’” LCD Timer", "timer_enabled": "āœ… Enabled", "timer_disabled": "āŒ Disabled", "timer_no_manager": "None", "timer_not_configured": "Not configured" }, "test": { "connection_failed": "āŒ Connection test failed", "auth_challenge_failed": "āŒ Authentication challenge failed", "auth_challenge_not_found": "āŒ Authentication challenge not found", "auth_session_failed": "āŒ Authentication session failed", "auth_token_not_found": "āŒ Session token not found", "api_failed": "āŒ API call failed", "connection_success_title": "āœ… Connection test successful!", "api_field": "API Version", "api_version": "v{version}", "auth_field": "Authentication", "token_valid": "āœ… Valid token", "connection_field": "Connection Status", "connection_active": "āœ… Connection active", "connection_inactive": "āŒ Connection inactive", "connection_error": "āŒ Connection test error" }, "buttons": { "test_connection": "šŸ”Œ Test Connection", "lcd_status": "šŸ’” LCD Status", "refresh_status": "šŸ”„ Refresh Status", "testing_connection": "šŸ”Œ Testing connection...", "connection_success": "āœ… Connection successful!", "connection_test_failed": "āŒ Connection test failed", "connection_error": "Connection error: {error}", "lcd_status_title": "šŸ’” LCD Configuration", "lcd_status_error": "āŒ Failed to retrieve LCD status", "lcd_status_error_details": "Error retrieving LCD status: {error}", "status_refreshed": "šŸ”„ Status refreshed successfully!", "status_test_connection": "Test Connection", "status_lcd_status": "LCD Status", "status_refresh": "Refresh" }, "error": { "inval": "invalid request or parameters", "nodev": "no device found with this name/id", "noent": "no entity found with this name/id", "netdown": "network is down", "busy": "device is busy", "invalid_port": "invalid port", "insecure_password": "the password is too weak to enable remote access", "invalid_provider": "invalid ddns provider name", "invalid_next_hop": "invalid next hop address (should be a link local address)", "auth_required": "Invalid session token, or not session token sent", "invalid_token": "The app token you are trying to use is invalid or has been revoked", "pending_token": "The app token you are trying to use has not been validated by user yet", "insufficient_rights": "Your app permissions does not allow accessing this API", "denied_from_external_ip": "You are trying to get an app_token from a remote IP", "invalid_request": "Your request is invalid", "ratelimited": "Too many auth error have been made from your IP", "new_apps_denied": "New application token request has been disabled", "apps_denied": "API access from apps has been disabled", "internal_error": "Internal error", "no_panel": "No screen detected", "setup": "Unable to setup screen", "notsup": "Operation is not supported" } }, "boost": { "not_authorized": "This command is only allowed on the Jujul Community server!", "new_boost_title": "New boost from {username}!", "new_boost_description": "Thank you for this boost.\nThanks to you, we reached {count} boosts!", "check_channel": "Go check in <#{channelId}>!" }, "welcome": { "title": "Hello {username}!", "description": "Welcome to **Jujul's** server!\nWe are currently {memberCount} members!\nFeel free to read the <#797471924367786004> and introduce yourself in <#837138238417141791>!\nIf you have questions,\nfeel free to ask them in <#837110617315344444>!\nEnjoy your stay with us!" }, "ping": { "pinging": "Pinging...", "response": "Websocket heartbeat: {heartbeat}ms.\nRoundtrip latency: {latency}ms" }, "salonpostam": { "papa": { "not_your_father": "You're not my father, get out!", "no_dm": "I can't join your voice channel in private message, papa!", "leaving_voice": "I'm leaving the voice channel, papa!", "joining_voice": "I'm joining your voice channel, papa!", "already_connected": "I'm already in your voice channel, papa!" }, "crack": { "multiple_games_found": "I found multiple games for \"{query}\"! {list}", "game_found": "Here's what I found for \"{query}\".\nYou can also click on [this link]({link}) to download the game directly!", "no_games_found": "I found nothing for \"{query}\"!", "selection_timeout": "You took too long to choose!" }, "spam": { "started": "Spam" }, "parle": { "not_in_voice": "You must be in a voice channel!", "member_not_in_voice": "This person is not in a voice channel!", "not_same_channel": "This person is not in the same channel as you!", "will_speak_over": "I'll speak over this person whenever they talk!" }, "update": { "loading": "Updating...", "members_updated": "{count} Cool People!" } }, "buttons": { "labels": { "previous": "ā®ļø", "play_pause": "ā–¶ļø", "pause": "āøļø", "stop": "ā¹ļø", "skip": "ā­ļø", "volume_down": "šŸ”‰", "volume_up": "šŸ”Š", "shuffle": "šŸ”€", "loop": "šŸ”", "configure_channel": "Configure Channel", "enable": "Enable", "disable": "Disable", "list": "List", "add": "Add", "remove": "Remove" } }, "selectmenus": { "placeholders": { "select_channel_notifications": "Select a channel for notifications", "select_channel_disco": "Select a channel for Disco effects", "select_streamer_remove": "Select a streamer to remove" } }, "locale": { "updated": "āœ… Server language updated from **{oldLanguage}** to **{newLanguage}**!" }, "database": { "owner_only": "This command can only be used by the bot owner!", "server_only": "This command must be used in a server!", "info_title": "Database Information", "guild_info": "Guild **{name}** (ID: {id})", "already_exists": "Database data for **{name}** already exists!", "initialized": "Database data for **{name}** successfully initialized!", "updated": "Database data for **{name}** successfully updated!\n**{key}**: {oldValue} -> {value}" }, "console": { "discordjs": { "ready": "[DiscordJS] Ready - Connected to Discord! Logged in as {tag}", "commands_registered": "[DiscordJS] Registering {count} commands...", "commands_registered_guild": "[DiscordJS] Registering {count} commands for {guild}...", "event_triggered": "[DiscordJS] Event {event} triggered", "guild_create": "[DiscordJS] GuildCreate - Joined \"{name}\" with {count} members", "guild_update": "[DiscordJS] GuildUpdate - Guild {name} updated", "guild_member_add": "[DiscordJS] GuildMemberAdd - No channel found with id \"{channelId}\"!", "interaction_create": { "command_not_found": "[DiscordJS] InteractionCreate - No ChatInputCommand name matching {command} was found.", "command_launched": "[DiscordJS] InteractionCreate - ChatInputCommand '{command}' launched by {user}", "command_error": "[DiscordJS] InteractionCreate - Error executing {command}", "autocomplete_not_found": "[DiscordJS] InteractionCreate - No AutocompleteRun name matching {command} was found.", "autocomplete_launched": "[DiscordJS] InteractionCreate - AutocompleteRun '{command}' launched by {user}", "autocomplete_error": "[DiscordJS] InteractionCreate - Error Autocompleting {command}", "button_not_found": "[DiscordJS] InteractionCreate - No Button id matching {id} was found.", "button_clicked": "[DiscordJS] InteractionCreate - Button '{id}' clicked by {user}", "button_error": "[DiscordJS] InteractionCreate - Error clicking {id}", "selectmenu_not_found": "[DiscordJS] InteractionCreate - No SelectMenu id matching {id} was found.", "selectmenu_used": "[DiscordJS] InteractionCreate - SelectMenu '{id}' used by {user}", "selectmenu_error": "[DiscordJS] InteractionCreate - Error using {id}" }, "error": "[DiscordJS] Error - An error occurred: {message}", "boost": { "no_member": "[DiscordJS] Boost - No member found!", "not_in_guild": "[DiscordJS] Boost - I'm not in the server!", "no_channel": "[DiscordJS] Boost - No channel found with id \"{channelId}\"!", "no_boost_role": "[DiscordJS] Boost - No boost role found!" }, "replay": { "no_data": "[DiscordJS] Replay - No replay data for bot {botId}", "no_text_channel_id": "[DiscordJS] Replay - No textChannelId configured for bot {botId}", "no_voice_channel_id": "[DiscordJS] Replay - No voiceChannelId configured for bot {botId}", "text_channel_not_found": "[DiscordJS] Replay - No textChannel found with id {channelId} for bot {botId}", "voice_channel_not_found": "[DiscordJS] Replay - No voiceChannel found with id {channelId} for bot {botId}" } }, "discord_player": { "extractor_loaded": "[Discord-Player] Ready - {extractor} extractor loaded", "event_triggered": "[Discord-Player] Event {event} triggered", "error": "[Discord-Player] Error - General player error event: {message}", "player_error": "[Discord-Player] PlayerError - Player error event: {message}", "debug": "[Discord-Player] Debug - Player debug event: {message}", "disco": { "channel_not_configured": "[Discord-Player] PlayerDisco - {guild} Channel is not configured!", "channel_not_found": "[Discord-Player] PlayerDisco - {guild} No channel found with id {channelId}", "general_error": "[Discord-Player] Disco - General disco module error" }, "progress_saving": { "missing_ids": "[Discord-Player] ProgressSaving - GuildId or BotId is missing!", "start": "[Discord-Player] ProgressSaving - Starting save for server {guildId} (bot {botId})", "stop": "[Discord-Player] ProgressSaving - Stopping save for server {guildId} (bot {botId})", "error": "[Discord-Player] ProgressSaving - Error saving progress for guild {guildId} (bot {botId})", "database_not_exist": "[Discord-Player] ProgressSaving - Database data does not exist!" }, "replay": { "connect_error": "[Discord-Player] Replay - Error connecting to voice channel", "play_error": "[Discord-Player] Replay - Error playing track" }, "play": { "connect_error": "[Discord-Player] Play - Error connecting to voice channel", "execution_error": "[Discord-Player] Play - Error executing track" } }, "mongoose": { "connecting": "[Mongoose] Connecting to MongoDB...", "connected": "[Mongoose] Connected to MongoDB!", "disconnected": "[Mongoose] Disconnected from MongoDB!", "error": "[Mongoose] An error occurred with the database connection: {message}", "event_triggered": "[Mongoose] Event {event} triggered", "guild_init": "[Mongoose] Initializing guild profile for {name} ({id})", "guild_create": "[Mongoose] GuildCreate - Database data for new guild \"{name}\" successfully initialized!", "locale_fetch_error": "[Mongoose] Error fetching guild locale for {guildId}" }, "twitch": { "starting_listener": "[Twitch] Starting listener with {adapter}...", "stream_online": "[Twitch] Stream from {streamer} (ID {id}) is now online, sending Discord messages...", "stream_offline": "[Twitch] Stream from {streamer} (ID {id}) is now offline, editing Discord messages...", "processing_guild": "[Twitch] Processing guild: {name} (ID: {id}) for streamer {streamer}", "notification_failed": "[Twitch] StreamWatching - {guild} Notification generation failed with status: {status}", "no_db_data": "[Twitch] StreamWatching - {guild} No dbData found", "streamer_not_found": "[Twitch] StreamWatching - {guild} Streamer {streamer} not found in this guild", "message_exists": "[Twitch] StreamWatching - {guild} Message already exists for {streamer}, skipping", "sending_notification": "[Twitch] StreamWatching - {guild} Sending notification for {streamer}", "message_sent": "[Twitch] StreamWatching - {guild} Message sent with ID: {id}", "error_processing_guild": "[Twitch] Error processing guild {name}", "guild_failed": "[Twitch] Guild {index} failed:", "user_operational": "[Twitch] User {name} (ID {id}) is operational", "listener_registered": "[Twitch] Listener \"{type}\" registered for {name} (ID {id})", "listener_removed": "[Twitch] Listener removed for {name} (ID {id})", "unsubscribed": "[Twitch] Unsubscribed from {type} for {id}", "start_watching": "[Twitch] StreamWatching - Starting watch for {streamer} (ID {id}) on {guildId}", "stop_watching": "[Twitch] StreamWatching - Stopping watch for {streamer} (ID {id})", "embed_missing": "[Twitch] StreamWatching - {guild} Embed is missing", "error_editing_message": "[Twitch] StreamWatching - {guild} Error editing message for {streamer} (ID {id})", "error_watching": "[Twitch] StreamWatching - Error watching {streamer} (ID {id}) on {guildId}", "database_not_exist": "[Twitch] StreamWatching - {guild} Database data does not exist!", "module_disabled": "[Twitch] StreamWatching - {guild} Twitch module is not enabled or channel ID is missing", "channel_not_found": "[Twitch] StreamWatching - {guild} Channel with ID {channelId} not found for Twitch notifications", "user_data_not_found": "[Twitch] StreamWatching - {guild} User data not found for {streamer} (ID {id})", "stream_data_not_found": "[Twitch] StreamWatching - {guild} Stream data not found for {streamer} (ID {id})", "message_id_not_found": "[Twitch] StreamWatching - {guild} Message ID not found for {streamer} (ID {id})", "user_fetch_error": "[Twitch] Error fetching user for ID {id}", "starting_listener_ngrok": "[Twitch] Starting listener with ngrok...", "listener_removal_error": "[Twitch] Error removing listener for {streamerName}", "missing_credentials": "[Twitch] Missing TWITCH_APP_ID or TWITCH_APP_SECRET in environment variables!", "starting_listener_port": "[Twitch] Starting listener with port {port}...", "streamer_already_processing": "[Twitch] StreamWatching - {{{guildName}}} Streamer {broadcasterName} already being processed, skipping", "stop_watching_error": "[Twitch] Error stopping watching for {streamer} (ID {id}) on {guildId}" }, "freebox": { "lcd_timer_restored": "Timers restored successfully for {guild}!", "authorization_pending": "[Freebox] Authorization pending...", "timer_scheduled": "[Freebox] Timer scheduled for {guildId} - Turn on: {nextMorning}, Turn off: {nextNight}", "timers_cleaned": "[Freebox] Timers cleaned for {guildId}", "all_timers_cleaned": "[Freebox] All timers have been cleaned", "missing_configuration": "[Freebox] Missing configuration for server {guildId}", "challenge_error": "[Freebox] Error retrieving challenge for {guildId}", "challenge_not_found": "[Freebox] Challenge not found for {guildId}", "session_error": "[Freebox] Error creating session for {guildId}", "session_token_not_found": "[Freebox] Session token not found for {guildId}", "leds_control_error": "[Freebox] Error controlling LEDs for {guildId}", "leds_success": "[Freebox] LEDs {status} successfully for {guildId}", "leds_error": "[Freebox] Error controlling LEDs for {guildId}", "lcd_status_error": "[Freebox] Error retrieving LCD status", "test_connection_error": "[Freebox] Error testing connection" } } }