diff --git a/.env.example b/.env.example index 79ae6b0c2..23e3a6021 100644 --- a/.env.example +++ b/.env.example @@ -13,7 +13,7 @@ BOT_ACTIVITY_TYPE= 0 # Activity type is a number from 0 to 5. See more here: htt BOT_ACTIVITY=" Lavamusic" # Your bot activity. DATABASE_URL= "" # Your database url (If you want to use sqlite, then you can leave it blank.). AUTO_NODE=" false" # true for auto node. It is given from lavainfo-api (https://lavainfo-api.deno.dev). -SEARCH_ENGINE= "YouTubeMusic" # Search engine to be used when playing the song. You can use: YouTube, YouTubeMusic, SoundCloud, Spotify, Apple, Deezer, Yandex and (JioSaavn +SEARCH_ENGINE= "YouTubeMusic" # Search engine to be used when playing the song. You can use: YouTube, YouTubeMusic, SoundCloud, Spotify, Apple, Deezer, Yandex and JioSaavn MAX_PLAYLIST_SIZE= "100" # Max playlist size. MAX_QUEUE_SIZE= "100" # Max queue size. diff --git a/Lavalink/example.application.yml b/Lavalink/example.application.yml index 2a189eae2..d2ae0f771 100644 --- a/Lavalink/example.application.yml +++ b/Lavalink/example.application.yml @@ -90,6 +90,12 @@ plugins: - ANDROID_LITE - MEDIA_CONNECT - IOS + # This secure your lavalink is working and playing music if you used this two things below. + #oauth: + # enabled: true # IF YOU RUN YOUR LAVALINK CHECK YOUR CONSOLE AND CLICK THE GOOGLE.COM/DEVICES LINK AND THERE IS A CODE THAT YOU NEED TO PUT IN TO THE GOOGLE AND USE A BURNER ACCOUNT OR ALT ACCOUNT THERE IS A POSSIBLE CHANGE YOU CAN GET BANNED FROM GOOGLE OR YOUTUBE SO JUST USE A BURNER ACCOUNT IN CASE. + #pot: + # token: "" # THIS REQUIRE INSTALLING https://github.com/iv-org/youtube-trusted-session-generator THIS IS A PYTHON FILE INSTALL THE REQUIREMENTS AND RUN PYTON INDEX FILE AND AFTER RUNNING YOU WILL RECIVE AND TOKEN AND VISTOR DATA AND PASTE IT BELOW. + # visitorData: "" lavalink: plugins: - dependency: "com.github.appujet:jiosaavn-plugin:0.1.7" diff --git a/locales/Bulgarian.json b/locales/Bulgarian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Bulgarian.json +++ b/locales/Bulgarian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Croatian.json b/locales/Croatian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Croatian.json +++ b/locales/Croatian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Czech.json b/locales/Czech.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Czech.json +++ b/locales/Czech.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Danish.json b/locales/Danish.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Danish.json +++ b/locales/Danish.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Dutch.json b/locales/Dutch.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Dutch.json +++ b/locales/Dutch.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/EnglishGB.json b/locales/EnglishGB.json index 92f1b2581..67c09d3b6 100644 --- a/locales/EnglishGB.json +++ b/locales/EnglishGB.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/EnglishUS.json b/locales/EnglishUS.json index 3d2e01d36..67c09d3b6 100644 --- a/locales/EnglishUS.json +++ b/locales/EnglishUS.json @@ -586,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Finnish.json b/locales/Finnish.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Finnish.json +++ b/locales/Finnish.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Greek.json b/locales/Greek.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Greek.json +++ b/locales/Greek.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Hungarian.json b/locales/Hungarian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Hungarian.json +++ b/locales/Hungarian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Italian.json b/locales/Italian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Italian.json +++ b/locales/Italian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Korean.json b/locales/Korean.json index b6f8810f5..097a4f30b 100644 --- a/locales/Korean.json +++ b/locales/Korean.json @@ -3,7 +3,7 @@ "247": { "description": "봇이 음성 채널에서 나가지 않도록 설정해요", "errors": { - "not_in_voice": "이 명령어를 사용하려면 음성 채널에 접속해주세요.", + "not_in_voice": "이 명령어를 사용하려면 음성 채널에 있어야 해요.", "generic": "이 명령어를 실행하는 도중 오류가 발생했어요." }, "messages": { @@ -19,9 +19,10 @@ "requested_by": "요청자: {author}" }, "lavalink": { - "description": "Lavalink 노드의 통계를 보여줘요", - "title": "Lavalink 통계", - "content": "플레이어: {players}\n활성 플레이어: {playingPlayers}\n가동시간: {uptime}\n코어: {cores} 코어\n메모리 사용량: {used} / {reservable}\n시스템 부하: {systemLoad}%\nLavalink 부하: {lavalinkLoad}%" + "description": "Lavalink 노드의 상태를 보여줘요", + "title": "Lavalink 상태", + "content": "플레이어: {players}\n재생 중: {playingPlayers}\n업타임: {uptime}\n코어 수: {cores}개\n메모리 사용량: {used} / {reservable}\n시스템 로드: {systemLoad}%\nLavalink 로드: {lavalinkLoad}%", + "page_info": "{index} 페이지 중 {total} 페이지" }, "invite": { "description": "봇의 초대 링크를 표시해요", @@ -30,7 +31,7 @@ "help": { "description": "도움말 메뉴를 출력해요", "options": { - "command": "특정 명령어의 정보를 얻고 싶다면 여기에 명령어를 입력해주세요" + "command": "특정 명령어의 정보를 얻고 싶다면 여기에 입력해주세요" }, "content": "안녕하세요! 저는 [Lavamusic](https://github.com/appujet/lavamusic)과 Discord로 만들어진 음악 봇이에요. `{prefix}help <명령어>`를 사용하여 그 명령어의 자세한 정보를 얻을 수 있어요.", "title": "도움말 메뉴", @@ -40,12 +41,12 @@ }, "botinfo": { "description": "봇에 대한 정보를 표시해요", - "content": "봇 정보:\n- **운영 체제**: {osInfo}\n- **업타임**: {osUptime}\n- **호스트 이름**: {osHostname}\n- **CPU 아키텍처**: {cpuInfo}\n- **CPU 사용량**: {cpuUsed}%\n- **메모리 사용량**: {memUsed}MB / {memTotal}GB\n- **Node 버전**: {nodeVersion}\n- **Discord 버전**: {discordJsVersion}\n- 서버 {guilds}개, 채널 {channels}개, 멤버 {users}명\n- **명령어 수**: {commands}개" + "content": "봇 정보:\n- **운영 체제**: {osInfo}\n- **업타임**: {osUptime}\n- **호스트 이름**: {osHostname}\n- **CPU 아키텍처**: {cpuInfo}\n- **CPU 사용량**: {cpuUsed}%\n- **메모리 사용량**: {memUsed}MB / {memTotal}GB\n- **Node 버전**: {nodeVersion}\n- **Discord 버전**: {discordJsVersion}\n- 서버 {guilds}개, 채널 {channels}개, 유저 {users}명\n- **명령어 수**: {commands}개" }, "about": { "description": "봇에 대해 알려줘요", "fields": { - "creator": "제작자", + "creator": "제작", "repository": "GitHub 저장소", "support": "지원", "description": "그는 더 많은 코딩 경험을 위해 자신의 첫 번째 오픈 소스 프로젝트를 만들고 싶어했어요. 이 프로젝트에서 그는 버그가 적은 프로젝트를 만들려고 노력했어요. 여러분이 LavaMusic를 즐겁게 즐기고 계시길 바라요!" @@ -78,7 +79,7 @@ "language": { "description": "언어를 설정해요", "invalid_language": "올바른 언어를 지정해주세요. 예시: `EnglishUS` = 영어 (미국)\n\n[여기](https://discord.com/developers/docs/reference#locales)에서 지원되는 언어 목록을 확인할 수 있어요.\n\n**현재 사용 가능한 언어:**\n{languages}", - "already_set": "`{language}`로 언어가 이미 설정되어 있어요.", + "already_set": "`{language}`로 이미 설정되어 있어요.", "not_set": "언어가 설정되지 않았어요.", "set": "`✅` | 언어가 `{language}`로 변경되었어요.", "reset": "`✅` | 언어가 기본 언어로 초기화되었어요.", @@ -109,7 +110,7 @@ "errors": { "channel_exists": "음악채널이 이미 설정되어 있어요.", "channel_not_exists": "음악채널이 존재하지 않아요.", - "channel_delete_fail": "음악 채널이 삭제되었어요. 만약 삭제되지 않았다면 직접 삭제하세요." + "channel_delete_fail": "음악 채널이 데이터베이스에서 삭제되었어요. 채널은 직접 삭제해주세요." }, "messages": { "channel_created": "<#{channelId}>로 음악 채널이 만들어졌어요.", @@ -239,7 +240,7 @@ } }, "grab": { - "description": "DM으로 현재 재생 중인 노래를 보내줘요", + "description": "현재 재생 중인 노래를 DM으로 보내요", "loading": "로드 중...", "content": "**길이:** {length}\n**요청자:** <@{requester}>\n**링크:** [클릭]({uri})", "check_dm": "DM을 확인해주세요.", @@ -248,13 +249,13 @@ "join": { "description": "봇이 음성 채널에 들어와요", "already_connected": "<#{channelId}>에 이미 들어와있어요.", - "no_voice_channel": "음성 채널에 먼저 접속해주세요.", + "no_voice_channel": "이 명령어를 사용하려면 음성 채널에 있어야 해요.", "joined": "<#{channelId}>에 들어왔어요." }, "leave": { "description": "봇을 음성 채널에서 퇴장시켜요", "left": "<#{channelId}>에서 나갔어요.", - "not_in_channel": "봇이 음성 채널에 들어와 있지 않네요." + "not_in_channel": "봇이 음성 채널에 들어와 있지 않아요." }, "loop": { "description": "현재 노래, 또는 대기열을 반복해요", @@ -280,14 +281,14 @@ "errors": { "search_error": "노래를 검색하던 도중 문제가 발생했어요.", "no_results": "검색 결과가 없어요.", - "queue_too_long": "대기열 한도를 초과했어요. 최대 한도은 {maxQueueSize}개예요.", - "playlist_too_long": "플레이리스트 한도를 초과했어요. 최대 한도는 {maxPlaylistSize}개예요." + "queue_too_long": "대기열 한도를 초과했어요. 최대 {maxQueueSize}개까지만 추가할 수 있어요.", + "playlist_too_long": "플레이리스트 한도를 초과했어요. 최대 {maxPlaylistSize}개까지만 추가할 수 있어요." }, "added_to_queue": "대기열에 추가되었어요: [{title}]({uri})", "added_playlist_to_queue": "{length}개의 노래가 추가되었어요." }, "playnext": { - "description": "노래가 현재 노래 다음으로 재생되도록 예약해요", + "description": "노래를 바로 다음 대기열에 추가해요", "options": { "song": "재생할 노래 제목 또는 URL " }, @@ -295,11 +296,11 @@ "errors": { "search_error": "노래를 검색하던 도중 문제가 발생했어요.", "no_results": "검색 결과가 없어요.", - "queue_too_long": "대기열 한도를 초과했어요. 최대 한도은 {maxQueueSize}개예요.", - "playlist_too_long": "플레이리스트 한도를 초과했어요. 최대 한도는 {maxPlaylistSize}개예요." + "queue_too_long": "대기열 한도를 초과했어요. 최대 {maxQueueSize}개까지만 추가할 수 있어요.", + "playlist_too_long": "플레이리스트 한도를 초과했어요. 최대 {maxPlaylistSize}개까지만 추가할 수 있어요." }, - "added_to_play_next": "이 노래가 바로 다음에 재생되도록 예약되었어요: [{title}]({uri}).", - "added_playlist_to_play_next": "{length}개의 노래가 바로 다음에 재생되도록 예약되었어요." + "added_to_play_next": "이 노래가 바로 다음 대기열에 추가되었어요: [{title}]({uri}).", + "added_playlist_to_play_next": "{length}개의 노래가 바로 다음 대기열에 추가되었어요." }, "queue": { "description": "현재의 대기열을 알려줘요", @@ -380,7 +381,7 @@ } }, "skipto": { - "description": "노래를 특정 대기열로 스킵해요", + "description": "노래를 대기열 번호로 스킵해요", "options": { "number": "스킵할 노래의 번호" }, @@ -506,7 +507,7 @@ "skip": "스킵", "loop": "반복", "errors": { - "not_author": "이 버튼을 사용할 수 없어요." + "not_author": "지금은 이 버튼을 사용할 수 없어요." } }, "player": { @@ -522,7 +523,7 @@ "now_playing": "재생 중", "requested_by": "요청자: {user}", "duration": "길이", - "author": "제작자", + "author": "게시자", "not_connected_to_voice_channel": "이 버튼을 사용하려면 먼저 <#{channel}>에 접속해주세요.", "need_dj_role": "이 명령어를 사용하려면 DJ 권한이 있어야 해요.", "previous_by": "{user}에 의해 이전 노래 재생 중", @@ -537,12 +538,12 @@ }, "setupStart": { "now_playing": "재생 중", - "description": "[{title}]({uri}), 제작자 {author} • `[{length}]` - 요청자: <@{requester}>", + "description": "[{title}]({uri}), 게시자 {author} • `[{length}]` - 요청자: <@{requester}>", "error_searching": "노래를 검색하는 도중 오류가 발생했어요.", "no_results": "검색결과가 없어요.", "nothing_playing": "현재 재생 중인 노래가 없어요.", - "queue_too_long": "대기열 한도를 초과했어요. 최대 한도는 {maxQueueSize}개예요.", - "playlist_too_long": "플레이리스트 한도를 초과했어요. 최대 한도는 {maxPlaylistSize}개예요.", + "queue_too_long": "대기열 한도를 초과했어요. 최대 {maxQueueSize}개까지만 추가할 수 있어요.", + "playlist_too_long": "플레이리스트 한도를 초과했어요. 최대 {maxPlaylistSize}개까지만 추가할 수 있어요.", "added_to_queue": "대기열에 추가되었어요: [{title}]({uri})", "added_playlist_to_queue": "[{length}]개의 노래가 추가되었어요." } @@ -553,7 +554,7 @@ "no_send_message": "봇에게 **`메시지 보내기`**, **`채널 보기`**, **`링크 첨부`** 또는 **`메시지 기록 보기`** 권한이 `{guild}`에 없어요.\n채널: {channel}.", "no_permission": "이 명령어를 실행하기 위한 봇의 권한이 부족해요.", "no_user_permission": "이 명령어를 실행하기 위한 권한이 부족해요.", - "no_voice_channel": "`{command}` 명령어를 사용하려면 음성 채널에 접속해주세요.", + "no_voice_channel": "`{command}` 명령어를 사용하려면 음성 채널에 있어야 해요요.", "no_connect_permission": "`{command}` 명령어를 사용하려면 봇에게 `연결` 권한이 필요해요.", "no_speak_permission": "`{command}` 명령어를 사용하려면 봇에게 `말하기` 권한이 필요해요.", "no_request_to_speak": "`{command}` 명령어를 사용하려면 봇에게 `발언권 요청하기` 권한이 필요해요.", @@ -569,7 +570,7 @@ "no_send_message": "봇에게 **`메시지 보내기`**, **`채널 보기`**, **`링크 첨부`** 또는 **`메시지 기록 보기`** 권한이 `{guild}`에 없어요.\n채널: {channel}.", "no_permission": "이 명령어를 실행하기 위한 봇의 권한이 부족해요.", "no_user_permission": "이 명령어를 실행하기 위한 권한이 부족해요.", - "no_voice_channel": "{command} 명령어를 사용하려면 음성 채널에 접속해주세요.", + "no_voice_channel": "{command} 명령어를 사용하려면 음성 채널에 있어야 해요.", "no_connect_permission": "`{command}` 명령어를 사용하려면 봇에게 `연결` 권한이 필요해요.", "no_speak_permission": "`{command}` 명령어를 사용하려면 봇에게 `말하기` 권한이 필요해요.", "no_request_to_speak": "`{command}` 명령어를 사용하려면 봇에게 `발언권 요청하기` 권한이 필요해요.", @@ -585,7 +586,9 @@ "error": "오류: `{error}`", "no_voice_channel_queue": "대기열에 노래를 추가하려면 음성 채널에 접속해주세요.", "no_permission_connect_speak": "<#{channel}>에서 연결/말하기 권한이 없어요.", - "different_voice_channel_queue": "노래를 대기열에 추가하려면 <#{channel}> 채널에 접속해주세요." + "different_voice_channel_queue": "노래를 대기열에 추가하려면 <#{channel}> 채널에 있어야 해요.", + "vote_button": "투표하기", + "vote_message": "잠깐! 이 명령어를 사용하려면 top.gg에서 투표해야 해요." }, "setupButton": { "no_voice_channel_button": "이 버튼을 사용하려면 음성 채널에 접속해주세요.", @@ -596,7 +599,7 @@ "no_dj_permission": "이 버튼을 사용하려면 DJ 권한이 있어야 해요.", "volume_set": "볼륨이 {vol}%로 변경되었어요.", "volume_footer": "볼륨: {vol}%", - "paused": "일시 정지", + "paused": "일시정지", "resumed": "재계", "pause_resume": "음악이 {name}되었어요.", "pause_resume_footer": "{displayName}에 의해 {name}됨", diff --git a/locales/Lithuanian.json b/locales/Lithuanian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Lithuanian.json +++ b/locales/Lithuanian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/PortugueseBR.json b/locales/PortugueseBR.json index 92f1b2581..67c09d3b6 100644 --- a/locales/PortugueseBR.json +++ b/locales/PortugueseBR.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Romanian.json b/locales/Romanian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Romanian.json +++ b/locales/Romanian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Swedish.json b/locales/Swedish.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Swedish.json +++ b/locales/Swedish.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Thai.json b/locales/Thai.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Thai.json +++ b/locales/Thai.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Turkish.json b/locales/Turkish.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Turkish.json +++ b/locales/Turkish.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/locales/Ukrainian.json b/locales/Ukrainian.json index 92f1b2581..67c09d3b6 100644 --- a/locales/Ukrainian.json +++ b/locales/Ukrainian.json @@ -21,7 +21,8 @@ "lavalink": { "description": "Shows the current Lavalink stats.", "title": "Lavalink Stats", - "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%" + "content": "Player: {players}\nPlaying Players: {playingPlayers}\nUptime: {uptime}\nCores: {cores} Core(s)\nMemory Usage: {used} / {reservable}\nSystem Load: {systemLoad}%\nLavalink Load: {lavalinkLoad}%", + "page_info": "Page {index} of {total}" }, "invite": { "description": "Get the bot invite link.", @@ -585,7 +586,9 @@ "error": "An error occurred: `{error}`", "no_voice_channel_queue": "You are not connected to a voice channel to queue songs.", "no_permission_connect_speak": "I don't have enough permission to connect/speak in <#{channel}>.", - "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs." + "different_voice_channel_queue": "You are not connected to <#{channel}> to queue songs.", + "vote_button": "Vote for me!", + "vote_message": "Wait! You need to vote on top.gg to use this command. Thanks." }, "setupButton": { "no_voice_channel_button": "You are not connected to a voice channel to use this button.", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 1a61c9c3e..6ea936c86 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -21,7 +21,6 @@ model Guild { stay Stay? dj Dj? roles Role[] - botchannel Botchannel? setup Setup? } @@ -64,20 +63,9 @@ model Song { @@unique([track, playlistId]) } -model Botchannel { - guildId String @id - textId String - Guild Guild @relation(fields: [guildId], references: [guildId]) -} - model Setup { guildId String @id textId String messageId String Guild Guild @relation(fields: [guildId], references: [guildId]) } - -model Premium { - userId String @id - guildId String -} diff --git a/src/commands/dev/CreateInvite.ts b/src/commands/dev/CreateInvite.ts index 266225e84..fc0bcdfd1 100644 --- a/src/commands/dev/CreateInvite.ts +++ b/src/commands/dev/CreateInvite.ts @@ -1,5 +1,5 @@ -import { Command, type Context, type Lavamusic } from "../../structures/index.js"; import { ChannelType, PermissionFlagsBits, type TextChannel } from "discord.js"; +import { Command, type Context, type Lavamusic } from "../../structures/index.js"; export default class CreateInvite extends Command { constructor(client: Lavamusic) { @@ -55,8 +55,8 @@ export default class CreateInvite extends Command { const invite = await textChannel.createInvite({ maxAge: 3600, - maxUses: 1, - reason: `Requested by admin: ${ctx.author.username}`, + maxUses: 0, + reason: `Requested by developer: ${ctx.author.username}`, }); return await ctx.sendMessage({ diff --git a/src/commands/music/Play.ts b/src/commands/music/Play.ts index f8680d747..fbf56afc3 100644 --- a/src/commands/music/Play.ts +++ b/src/commands/music/Play.ts @@ -1,6 +1,6 @@ +import type { AutocompleteInteraction } from "discord.js"; import { LoadType } from "shoukaku"; import { Command, type Context, type Lavamusic } from "../../structures/index.js"; -import type { AutocompleteInteraction } from "discord.js"; export default class Play extends Command { constructor(client: Lavamusic) { diff --git a/src/commands/music/PlayNext.ts b/src/commands/music/PlayNext.ts index 37cc4cabd..6d0a9c83d 100644 --- a/src/commands/music/PlayNext.ts +++ b/src/commands/music/PlayNext.ts @@ -1,6 +1,6 @@ +import type { AutocompleteInteraction } from "discord.js"; import { LoadType } from "shoukaku"; import { Command, type Context, type Lavamusic } from "../../structures/index.js"; -import type { AutocompleteInteraction } from "discord.js"; export default class PlayNext extends Command { constructor(client: Lavamusic) { diff --git a/src/config.ts b/src/config.ts index 1a32706e3..34257ddd3 100644 --- a/src/config.ts +++ b/src/config.ts @@ -44,7 +44,7 @@ export default { topGG: process.env.TOPGG, keepAlive: parseBoolean(process.env.KEEP_ALIVE), autoNode: parseBoolean(process.env.AUTO_NODE), - searchEngine: SearchEngine.YouTubeMusic, // YouTube (YouTube Search), YouTubeMusic (YouTube Music Search), Spotify (Spotify Search), Deezer (Deezer Search), Apple (Apple Search), SoundCloud (SoundCloud Search), Yandex (Yandex Search) or JioSaavn (JioSaavn Search) + searchEngine: SearchEngine[process.env.SEARCH_ENGINE] || SearchEngine.YouTubeMusic, maxPlaylistSize: parseInt(process.env.MAX_PLAYLIST_SIZE || "100"), botStatus: process.env.BOT_STATUS || "online", botActivity: process.env.BOT_ACTIVITY || "Lavamusic", diff --git a/src/events/client/MessageCreate.ts b/src/events/client/MessageCreate.ts index a1e2a6701..79efd5f9b 100644 --- a/src/events/client/MessageCreate.ts +++ b/src/events/client/MessageCreate.ts @@ -106,13 +106,13 @@ export default class MessageCreate extends Event { if (!voted) { const voteBtn = new ActionRowBuilder().addComponents( new ButtonBuilder() - .setLabel("Vote for Me!") + .setLabel(T(locale, "event.message.vote_button")) .setURL(`https://top.gg/bot/${this.client.config.clientId}/vote`) .setStyle(ButtonStyle.Link), ); return await message.reply({ - content: "Wait! Before using this command, you must vote on top.gg. Thank you.", + content: T(locale, "event.message.vote_message"), components: [voteBtn], }); } diff --git a/src/structures/Queue.ts b/src/structures/Queue.ts index 82f4fe15b..5223677b3 100644 --- a/src/structures/Queue.ts +++ b/src/structures/Queue.ts @@ -32,12 +32,20 @@ export class Queue extends Map { if (!guild) throw new Error("No guild was provided"); let dispatcher = this.get(guild.id); - if (!dispatcher) { - let player = this.client.shoukaku.players.get(guild.id); - if (player) { - this.client.shoukaku.leaveVoiceChannel(guild.id); - player.destroy(); + const connection = this.client.shoukaku.connections.get(guild.id); + let player = this.client.shoukaku.players.get(guild.id); + if (player && connection) { + if (!dispatcher) { + dispatcher = new Dispatcher({ + client: this.client, + guildId: guild.id, + channelId: channel.id, + player, + node: player.node, + }); + this.set(guild.id, dispatcher); } + } else { const node = givenNode ?? this.client.shoukaku.options.nodeResolver(this.client.shoukaku.nodes); player = await this.client.shoukaku.joinVoiceChannel({ guildId: guild.id,