music: funny low quality mode
This commit is contained in:
		
							parent
							
								
									850b65b19f
								
							
						
					
					
						commit
						d1c7903541
					
				
					 1 changed files with 61 additions and 48 deletions
				
			
		| 
						 | 
					@ -140,14 +140,15 @@ async function createVoiceConnection(guild_id, voice_id, text_id) {
 | 
				
			||||||
  connection._music_eventEnd = async function () {
 | 
					  connection._music_eventEnd = async function () {
 | 
				
			||||||
    if (connection._music_queue.length > 0) {
 | 
					    if (connection._music_queue.length > 0) {
 | 
				
			||||||
      const next = connection._music_queue.splice(0, 1)[0];
 | 
					      const next = connection._music_queue.splice(0, 1)[0];
 | 
				
			||||||
      await enqueue(
 | 
					      await enqueue({
 | 
				
			||||||
        guild_id,
 | 
					        guild_id,
 | 
				
			||||||
        voice_id,
 | 
					        voice_id,
 | 
				
			||||||
        text_id,
 | 
					        text_id,
 | 
				
			||||||
        next.url,
 | 
					        url: next.url,
 | 
				
			||||||
        next.type,
 | 
					        type: next.type,
 | 
				
			||||||
        next.addedBy
 | 
					        addedBy: next.addedBy,
 | 
				
			||||||
      );
 | 
					        speex: next.speex,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      await connection.disconnect();
 | 
					      await connection.disconnect();
 | 
				
			||||||
      if (!connection._music_leave) {
 | 
					      if (!connection._music_leave) {
 | 
				
			||||||
| 
						 | 
					@ -169,7 +170,7 @@ async function createVoiceConnection(guild_id, voice_id, text_id) {
 | 
				
			||||||
  return connection;
 | 
					  return connection;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function enqueue(
 | 
					async function enqueue({
 | 
				
			||||||
  guild_id,
 | 
					  guild_id,
 | 
				
			||||||
  voice_id,
 | 
					  voice_id,
 | 
				
			||||||
  text_id,
 | 
					  text_id,
 | 
				
			||||||
| 
						 | 
					@ -177,8 +178,9 @@ async function enqueue(
 | 
				
			||||||
  type,
 | 
					  type,
 | 
				
			||||||
  addedBy,
 | 
					  addedBy,
 | 
				
			||||||
  suppress = false,
 | 
					  suppress = false,
 | 
				
			||||||
  queueNext = false
 | 
					  queueNext = false,
 | 
				
			||||||
) {
 | 
					  speex = false,
 | 
				
			||||||
 | 
					}) {
 | 
				
			||||||
  if (!url) return;
 | 
					  if (!url) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const connection =
 | 
					  const connection =
 | 
				
			||||||
| 
						 | 
					@ -270,6 +272,7 @@ async function enqueue(
 | 
				
			||||||
      length,
 | 
					      length,
 | 
				
			||||||
      addedBy,
 | 
					      addedBy,
 | 
				
			||||||
      stream,
 | 
					      stream,
 | 
				
			||||||
 | 
					      speex,
 | 
				
			||||||
      id: Math.random().toString(16).substring(2),
 | 
					      id: Math.random().toString(16).substring(2),
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -323,7 +326,11 @@ async function enqueue(
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    await connection.play(media, {inlineVolume: true, voiceDataTimeout: -1});
 | 
					    await connection.play(media, {
 | 
				
			||||||
 | 
					      inlineVolume: true,
 | 
				
			||||||
 | 
					      voiceDataTimeout: -1,
 | 
				
			||||||
 | 
					      encoderArgs: speex ? ["-acodec speex", "-b:a 8000", "-ar 8000"] : null,
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    textChannel.createMessage({
 | 
					    textChannel.createMessage({
 | 
				
			||||||
      embeds: [
 | 
					      embeds: [
 | 
				
			||||||
| 
						 | 
					@ -443,6 +450,12 @@ command.callback = async function (msg, line) {
 | 
				
			||||||
          argStr = argStr.replace(/--next/, "").trim();
 | 
					          argStr = argStr.replace(/--next/, "").trim();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let speex = false;
 | 
				
			||||||
 | 
					        if (argStr.match(/--speex/)) {
 | 
				
			||||||
 | 
					          speex = true;
 | 
				
			||||||
 | 
					          argStr = argStr.replace(/--speex/, "").trim();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let type;
 | 
					        let type;
 | 
				
			||||||
        let playlist = false;
 | 
					        let playlist = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -510,15 +523,16 @@ command.callback = async function (msg, line) {
 | 
				
			||||||
                  : track.permalink_url;
 | 
					                  : track.permalink_url;
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              await enqueue(
 | 
					              await enqueue({
 | 
				
			||||||
                msg.guildID,
 | 
					                guild_id: msg.guildID,
 | 
				
			||||||
                msg.member.voiceState.channelID,
 | 
					                voice_id: msg.member.voiceState.channelID,
 | 
				
			||||||
                msg.channel.id,
 | 
					                text_id: msg.channel.id,
 | 
				
			||||||
                url,
 | 
					                url,
 | 
				
			||||||
                type,
 | 
					                type,
 | 
				
			||||||
                msg.author.id,
 | 
					                addedBy: msg.author.id,
 | 
				
			||||||
                true
 | 
					                supress: true,
 | 
				
			||||||
              );
 | 
					                speex,
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            await statusMessage.edit({
 | 
					            await statusMessage.edit({
 | 
				
			||||||
              embeds: [
 | 
					              embeds: [
 | 
				
			||||||
| 
						 | 
					@ -530,16 +544,16 @@ command.callback = async function (msg, line) {
 | 
				
			||||||
              ],
 | 
					              ],
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            await enqueue(
 | 
					            await enqueue({
 | 
				
			||||||
              msg.guildID,
 | 
					              guild_id: msg.guildID,
 | 
				
			||||||
              msg.member.voiceState.channelID,
 | 
					              voice_id: msg.member.voiceState.channelID,
 | 
				
			||||||
              msg.channel.id,
 | 
					              text_id: msg.channel.id,
 | 
				
			||||||
              argStr,
 | 
					              url: argStr,
 | 
				
			||||||
              type,
 | 
					              type,
 | 
				
			||||||
              msg.author.id,
 | 
					              addedBy: msg.author.id,
 | 
				
			||||||
              false,
 | 
					              queueNext,
 | 
				
			||||||
              queueNext
 | 
					              speex,
 | 
				
			||||||
            );
 | 
					            });
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          if (argStr.match(/https?:\/\//)) {
 | 
					          if (argStr.match(/https?:\/\//)) {
 | 
				
			||||||
| 
						 | 
					@ -550,32 +564,32 @@ command.callback = async function (msg, line) {
 | 
				
			||||||
              contentType.startsWith("audio/") ||
 | 
					              contentType.startsWith("audio/") ||
 | 
				
			||||||
              contentType.startsWith("video/")
 | 
					              contentType.startsWith("video/")
 | 
				
			||||||
            ) {
 | 
					            ) {
 | 
				
			||||||
              await enqueue(
 | 
					              await enqueue({
 | 
				
			||||||
                msg.guildID,
 | 
					                guild_id: msg.guildID,
 | 
				
			||||||
                msg.member.voiceState.channelID,
 | 
					                voice_id: msg.member.voiceState.channelID,
 | 
				
			||||||
                msg.channel.id,
 | 
					                text_id: msg.channel.id,
 | 
				
			||||||
                argStr,
 | 
					                url: argStr,
 | 
				
			||||||
                "file",
 | 
					                type: "file",
 | 
				
			||||||
                msg.author.id,
 | 
					                addedBy: msg.author.id,
 | 
				
			||||||
                false,
 | 
					                queueNext,
 | 
				
			||||||
                queueNext
 | 
					                speex,
 | 
				
			||||||
              );
 | 
					              });
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
              return "Unsupported content type.";
 | 
					              return "Unsupported content type.";
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            const url = await youtubeSearch(msg, argStr);
 | 
					            const url = await youtubeSearch(msg, argStr);
 | 
				
			||||||
            if (url?.startsWith("https://youtu.be/")) {
 | 
					            if (url?.startsWith("https://youtu.be/")) {
 | 
				
			||||||
              await enqueue(
 | 
					              await enqueue({
 | 
				
			||||||
                msg.guildID,
 | 
					                guild_id: msg.guildID,
 | 
				
			||||||
                msg.member.voiceState.channelID,
 | 
					                voice_id: msg.member.voiceState.channelID,
 | 
				
			||||||
                msg.channel.id,
 | 
					                text_id: msg.channel.id,
 | 
				
			||||||
                url,
 | 
					                url,
 | 
				
			||||||
                "yt",
 | 
					                type: "yt",
 | 
				
			||||||
                msg.author.id,
 | 
					                addedBy: msg.author.id,
 | 
				
			||||||
                false,
 | 
					                queueNext,
 | 
				
			||||||
                queueNext
 | 
					                speex,
 | 
				
			||||||
              );
 | 
					              });
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
              return url;
 | 
					              return url;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -744,9 +758,9 @@ command.callback = async function (msg, line) {
 | 
				
			||||||
            return {
 | 
					            return {
 | 
				
			||||||
              key: item.id,
 | 
					              key: item.id,
 | 
				
			||||||
              display: (item.title ?? item.url).substr(0, 100),
 | 
					              display: (item.title ?? item.url).substr(0, 100),
 | 
				
			||||||
              description:
 | 
					              description: hasManageMessages
 | 
				
			||||||
                hasManageMessages &&
 | 
					                ? `Added by: ${user.username}#${user.discriminator}`
 | 
				
			||||||
                `Added by: ${user.username}#${user.discriminator}`,
 | 
					                : "",
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
          }),
 | 
					          }),
 | 
				
			||||||
          30000,
 | 
					          30000,
 | 
				
			||||||
| 
						 | 
					@ -754,7 +768,6 @@ command.callback = async function (msg, line) {
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (Array.isArray(toRemove)) {
 | 
					        if (Array.isArray(toRemove)) {
 | 
				
			||||||
          console.log(toRemove);
 | 
					 | 
				
			||||||
          connection._music_queue = connection._music_queue.filter(
 | 
					          connection._music_queue = connection._music_queue.filter(
 | 
				
			||||||
            (item) => !toRemove.includes(item.id)
 | 
					            (item) => !toRemove.includes(item.id)
 | 
				
			||||||
          );
 | 
					          );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue