Skip to content
This repository has been archived by the owner on Sep 9, 2024. It is now read-only.

Commit

Permalink
Обновление WebSocket, SocketUDP, Socket, VoiceConnection и прочее изм…
Browse files Browse the repository at this point in the history
…енения
  • Loading branch information
SNIPPIK committed Jul 28, 2024
1 parent 5fc3a67 commit 159d2a4
Show file tree
Hide file tree
Showing 15 changed files with 242 additions and 488 deletions.
184 changes: 90 additions & 94 deletions .env
Original file line number Diff line number Diff line change
@@ -1,94 +1,90 @@
#
# Bot link -> https://discord.com/api/oauth2/authorize?client_id={BOT_ID}&permissions=274914633792&scope=applications.commands%20bot
#
# (FFmpeg,FFprobe) -> https://github.com/BtbN/FFmpeg-Builds/releases | Recommend: lgpl build
#
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Настройки Webhook -> https://discord.com/api/webhooks/id/token
webhook.id="" #ID канала
webhook.token="" #Токен Webhook'а
#---------------Разработчики
owner.list="312909267327778818,556860277552054272,297456036544118785"
owner.server="677481212599599104" #Главный сервер
owner.news="1057245989121052702" #Канал с новостями
console.size=130 #Размер строки консоли для отображения времени
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Настройки ShardManager
shard.mode="worker" #Как запускать осколок | Доступен "process" || "worker"
shard.total="auto" #Кол-во осколков | Доступен "auto" || int
shard.server=100 #Кол-во серверов на один осколок | Доступен int
#---------------Настройки APIs
#Лимиты получаемых данных
APIs.limit.search=5 #Кол-во треков в поиске
APIs.limit.author=5 #Кол-во треков при запросе автора
APIs.limit.playlist=50 #Кол-во треков при получении плейлиста
APIs.limit.album=50 #Кол-во треков при получении альбома
#---------------Настройка музыки (плеера и прочего)
ffmpeg.path="ffmpeg" #Путь до FFmpeg, указать полный путь с учетом файла

#Настройки плеера
player.duration=20 #Время обновления плееров | Доступен float, указывать в ms
player.message=12 #Время обновления сообщений | Доступен float, указывать в ms
player.timeout=2000 #Задержка включения трека | Доступен float, указывать в ms
player.streamTimeout=20 #Время включения трека, если за отведенное время трек не включится он будет пропущен с ошибкой "Stream timeout"
player.radio.admin=true #Режим радио может включать и выключать только пользователь с правом MANAGE_SERVER

#Настройки аудио
audio.fade=5 #Доступен float | Длительность плавного включения/выключения
audio.volume=100 #Доступен float | Громкость аудио
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Настройки кеширования
cache=false #Бот будет кешировать треки, может не работать на некоторых хостингах
history=false #Бот будет сохранять прослушанную музыку на сервере, может не работать на некоторых хостингах
cached.dir="../node_build/.cache" #Путь куда будет кешироваться история
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Настройки перевода на другие языки (уже скоро)
language="ru" #Язык по-умолчанию, будет выбран если нет перевода, авто распознавание | Доступные: ru, en-US
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Git (База данных на github)
git="https://raw.githubusercontent.com/SNIPPIK/WatKLOK"
branch="nightly"

filters.url=".github/resource/Filters.json"
image.not=".github/resource/Icons/Note.png"
image.currentPlay=".github/resource/Icons/Disk.gif"
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Смайлики под видом прогресс бара (<:имя:ID> или string)
progress.empty.left="-"
progress.empty.right="-"
progress.empty.center="-"
progress.not_empty.left="-"
progress.not_empty.right="-"
progress.not_empty.center="-"

progress.bottom="⚪️"
progress.bottom.vk="⚪️"
progress.bottom.yandex="⚪️"
progress.bottom.youtube="⚪️"
progress.bottom.spotify="⚪️"

#Кнопки под плеером (ID смайликов)
button.pref="1154418654272819200"
button.resume="1154418665421287564"
button.pause="1154420926180499536"
button.next="1154418640880406558"
button.loop="1154418568478343209"
button.loop_one="1154418603567890502"
button.shuffle="1214604240874508339"

#Эмодзи для APIs (<:имя:ID> или string)
loading.emoji="🔗"
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Данные для авторизации
#Discord bot token
token.discord=""

#Нужен токен пользователя, нужна подписка на сервис
#Ссылка для получения https://oauth.yandex.ru/authorize?response_type=token&client_id=23cabbbdc6cd418abb4b39c32c41195d
token.yandex=""

#Нужен ClientID:ClientSecret
token.spotify=""

#Нужен токен пользователя
token.vk=""
#
# Bot link -> https://discord.com/api/oauth2/authorize?client_id={BOT_ID}&permissions=274914633792&scope=applications.commands%20bot
#
# (FFmpeg,FFprobe) -> https://github.com/BtbN/FFmpeg-Builds/releases | Recommend: lgpl build
#
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Настройки Webhook -> https://discord.com/api/webhooks/id/token
webhook.id="" #ID канала
webhook.token="" #Токен Webhook'а
#---------------Разработчики
owner.list="312909267327778818,556860277552054272,297456036544118785"
owner.server="677481212599599104" #Главный сервер
owner.news="1057245989121052702" #Канал с новостями
console.size=130 #Размер строки консоли для отображения времени
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Настройки ShardManager
shard.mode="worker" #Как запускать осколок | Доступен "process" || "worker"
shard.total="auto" #Кол-во осколков | Доступен "auto" || int
shard.server=100 #Кол-во серверов на один осколок | Доступен int
#---------------Настройки APIs
#Лимиты получаемых данных
APIs.limit.search=5 #Кол-во треков в поиске
APIs.limit.author=5 #Кол-во треков при запросе автора
APIs.limit.playlist=50 #Кол-во треков при получении плейлиста
APIs.limit.album=50 #Кол-во треков при получении альбома
#---------------Настройка музыки (плеера и прочего)
ffmpeg.path="ffmpeg"

#Настройки плеера
player.duration=20 #Время обновления плееров | Доступен float, указывать в ms
player.message=12 #Время обновления сообщений | Доступен float, указывать в ms
player.timeout=2000 #Задержка включения трека | Доступен float, указывать в ms
player.streamTimeout=20 #Время включения трека, если за отведенное время трек не включится он будет пропущен с ошибкой "Stream timeout"
player.radio.admin=true #Режим радио может включать и выключать только пользователь с правом MANAGE_SERVER

#Настройки аудио
audio.fade=5 #Доступен float | Длительность плавного включения/выключения
audio.volume=100 #Доступен float | Громкость аудио
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Настройки кеширования
cache=false #Бот будет кешировать треки, может не работать на некоторых хостингах
history=false #Бот будет сохранять прослушанную музыку на сервере, может не работать на некоторых хостингах
cached.dir="../node_build/.cache" #Путь куда будет кешироваться история
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Настройки перевода на другие языки (уже скоро)
language="ru" #Язык по-умолчанию, будет выбран если нет перевода, авто распознавание | Доступные: ru, en-US
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Git (База данных на github)
image.not="https://raw.githubusercontent.com/SNIPPIK/SNIPPIK/main/Note.png"
image.currentPlay="https://raw.githubusercontent.com/SNIPPIK/SNIPPIK/main/Disk.gif"
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Смайлики под видом прогресс бара (<:имя:ID> или string)
progress.empty.left="-"
progress.empty.right="-"
progress.empty.center="-"
progress.not_empty.left="-"
progress.not_empty.right="-"
progress.not_empty.center="-"

progress.bottom="⚪️"
progress.bottom.vk="⚪️"
progress.bottom.yandex="⚪️"
progress.bottom.youtube="⚪️"
progress.bottom.spotify="⚪️"

#Кнопки под плеером (ID смайликов)
button.pref="1154418654272819200"
button.resume="1154418665421287564"
button.pause="1154420926180499536"
button.next="1154418640880406558"
button.loop="1154418568478343209"
button.loop_one="1154418603567890502"
button.shuffle="1214604240874508339"

#Эмодзи для APIs (<:имя:ID> или string)
loading.emoji="🔗"
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#---------------Данные для авторизации
#Discord bot token
token.discord=""

#Нужен токен пользователя, нужна подписка на сервис
#Ссылка для получения https://oauth.yandex.ru/authorize?response_type=token&client_id=23cabbbdc6cd418abb4b39c32c41195d
token.yandex=""

#Нужен ClientID:ClientSecret
token.spotify=""

#Нужен токен пользователя
token.vk=""
9 changes: 3 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,9 @@
"typescript": "^5.5.3"
},
"scripts": {
"client:dev": "cd node_build && node -r tsconfig-paths/register src --dbg",
"destroy": "cd node_build && node -r tsconfig-paths/register src --RemoveAllCommands --dbg",

"client": "cd node_build && node -r tsconfig-paths/register src",
"shard": "cd node_build && node -r tsconfig-paths/register src --ShardManager",
"build": "tsc -p tsconfig.json"
"run:client": "tsc -p tsconfig.json && cd node_build && node -r tsconfig-paths/register src",
"run:sharder": "tsc -p tsconfig.json && cd node_build && node -r tsconfig-paths/register src --ShardManager",
"run:delete": "cd node_build && node -r tsconfig-paths/register src --RemoveAllCommands --dbg"
},
"engines": {
"node": ">=21.0.0"
Expand Down
12 changes: 9 additions & 3 deletions src/handlers/Events/Client/VoiceStateUpdate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,14 @@ class VoiceStateUpdate extends Constructor.Assign<Handler.Event<Events.VoiceStat
const queue = db.audio.queue.get(guild.id);
const temp = temple_db.get(guild.id);


// Если бот не в гс и есть очередь
if (!meVoice && queue) {
db.audio.queue.remove(guild.id);
return;
} else if (members < 1) {
}

// Если пользователей менее 1
else if (members < 1) {
if (queue) {
if (queue.player.status === "player/playing")
queue.player.pause();
Expand All @@ -55,7 +58,10 @@ class VoiceStateUpdate extends Constructor.Assign<Handler.Event<Events.VoiceStat
Voice.remove(guild.id);
}, timeout * 1e3)
});
} else {
}

// Если не подошли прошлые аргументы
else {
if (queue) {
if (queue.player.status === "player/pause")
queue.player.resume();
Expand Down
24 changes: 11 additions & 13 deletions src/handlers/Events/Player/message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ class onPlaying extends Constructor.Assign<Handler.Event<"message/playing">> {
name: "message/playing",
type: "player",
execute: (queue, isReturn) => {
const {color, author, image, title, url, duration, platform} = queue.songs.song;
const {color, author, image, title, url, duration, requester, platform} = queue.songs.song;
const embed = new MessageBuilder().addEmbeds([
{
color, thumbnail: image,
Expand Down Expand Up @@ -241,7 +241,7 @@ class onPlaying extends Constructor.Assign<Handler.Event<"message/playing">> {
case "last": {
if (queue.songs.size < 2)
return {
content: locale._(message.locale, "InteractionCreate.button.arg", [author]),
content: locale._(message.locale, "InteractionCreate.button.arg", [requester.username]),
color: "Yellow"
};
else if (queue.songs.length > 1) {
Expand All @@ -251,21 +251,21 @@ class onPlaying extends Constructor.Assign<Handler.Event<"message/playing">> {
}
queue.player.stop();
return {
content: locale._(message.locale, "InteractionCreate.button.last", [author]),
content: locale._(message.locale, "InteractionCreate.button.last", [requester.username]),
color: "Green"
};
}

//Кнопка случайного трека
case "shuffle": {
if (queue.songs.size < 2)
return {
content: locale._(message.locale, "InteractionCreate.button.arg", [author]),
color: "Yellow"
};
if (queue.songs.size < 2) return {
content: locale._(message.locale, "InteractionCreate.button.arg", [requester.username]),
color: "Yellow"
};

queue.shuffle = !queue.shuffle;
return {
content: locale._(message.locale, "InteractionCreate.button.shuffle", [author, queue.shuffle ? locale._(message.locale, "on") : locale._(message.locale, "off")]),
content: locale._(message.locale, "InteractionCreate.button.shuffle", [requester.username, queue.shuffle ? locale._(message.locale, "on") : locale._(message.locale, "off")]),
color: "Green"
};
}
Expand Down Expand Up @@ -300,10 +300,8 @@ class onPlaying extends Constructor.Assign<Handler.Event<"message/playing">> {

//Кнопка паузы и продолжения
case "resume_pause": {
if (queue.player.status === "player/playing")
return db.commands.get("pause").execute({ message });
else if (queue.player.status === "player/pause")
return db.commands.get("resume").execute({ message });
if (queue.player.status === "player/playing") return db.commands.get("pause").execute({ message });
else if (queue.player.status === "player/pause") return db.commands.get("resume").execute({ message });
return {
content: locale._(message.locale, "player.wait", [author]),
color: "Yellow"
Expand Down
4 changes: 2 additions & 2 deletions src/handlers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ export class Handler<T> {
this._options = options;

readdirSync(this.path).forEach((dir) => {
if (dir.endsWith(".js")) return;
if (dir.endsWith(".ts") && !dir.endsWith(".js")) return;

readdirSync(this.path + `/${dir}`).forEach((file) => {
if (!file.endsWith(".js")) return;
if (!file.endsWith(".ts") && !file.endsWith(".js")) return;

//Загружаем файл
try {
Expand Down
Loading

0 comments on commit 159d2a4

Please sign in to comment.