Fix interaction response object issue, fix soundplayer voice state detection
This commit is contained in:
parent
ab2d6e2ef0
commit
7c9f22cd34
3 changed files with 19 additions and 17 deletions
|
@ -19,10 +19,10 @@ class PlayCommand extends MusicCommand {
|
|||
}
|
||||
try {
|
||||
const url = new URL(query);
|
||||
return await play(this.client, url, { channel: this.channel, member: this.member, type: this.type, interaction: this.interaction }, true);
|
||||
return play(this.client, url, { channel: this.channel, member: this.member, type: this.type, interaction: this.interaction }, true);
|
||||
} catch {
|
||||
const search = prefixes.some(v => query.startsWith(v)) ? query : !query && attachment ? attachment.url : `ytsearch:${query}`;
|
||||
return await play(this.client, search, { channel: this.channel, member: this.member, type: this.type, interaction: this.interaction }, true);
|
||||
return play(this.client, search, { channel: this.channel, member: this.member, type: this.type, interaction: this.interaction }, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,11 +31,8 @@ export default async (client, interaction) => {
|
|||
content: result,
|
||||
flags: commandClass.success ? 0 : 64
|
||||
});
|
||||
} else if (typeof result === "object" && result.embeds) {
|
||||
await interaction[replyMethod](Object.assign(result, {
|
||||
flags: result.flags ?? (commandClass.success ? 0 : 64)
|
||||
}));
|
||||
} else if (typeof result === "object" && result.contents) {
|
||||
} else if (typeof result === "object") {
|
||||
if (result.contents && result.name) {
|
||||
const fileSize = 8388119;
|
||||
if (result.contents.length > fileSize) {
|
||||
if (process.env.TEMPDIR && process.env.TEMPDIR !== "") {
|
||||
|
@ -49,6 +46,11 @@ export default async (client, interaction) => {
|
|||
} else {
|
||||
await interaction[replyMethod](result.text ? result.text : { files: [result] });
|
||||
}
|
||||
} else {
|
||||
await interaction[replyMethod](Object.assign({
|
||||
flags: result.flags ?? (commandClass.success ? 0 : 64)
|
||||
}, result));
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
const replyMethod = interaction.acknowledged ? "editOriginal" : "createMessage";
|
||||
|
|
|
@ -61,7 +61,7 @@ export function reload() {
|
|||
export async function play(client, sound, options, music = false) {
|
||||
if (!manager) return { content: "The sound commands are still starting up!", flags: 64 };
|
||||
if (!options.channel.guild) return { content: "This command only works in servers!", flags: 64 };
|
||||
if (!options.member.voiceState.channelID) return { content: "You need to be in a voice channel first!", flags: 64 };
|
||||
if (!options.member.voiceState) return { content: "You need to be in a voice channel first!", flags: 64 };
|
||||
if (!options.channel.guild.permissionsOf(client.user.id.toString()).has("CONNECT")) return { content: "I can't join this voice channel!", flags: 64 };
|
||||
const voiceChannel = options.channel.guild.channels.get(options.member.voiceState.channelID);
|
||||
if (!voiceChannel.permissionsOf(client.user.id.toString()).has("CONNECT")) return { content: "I don't have permission to join this voice channel!", flags: 64 };
|
||||
|
|
Loading…
Reference in a new issue