/soundboard -> /sfxboard
This commit is contained in:
@@ -57,7 +57,7 @@ function getSfxCategories() {
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName("soundboard")
|
.setName("sfxboard")
|
||||||
.setDescription("Interactive soundboard with categorized buttons"),
|
.setDescription("Interactive soundboard with categorized buttons"),
|
||||||
|
|
||||||
async execute(interaction, guildConfig) {
|
async execute(interaction, guildConfig) {
|
||||||
|
|||||||
@@ -6,13 +6,12 @@ const {
|
|||||||
AudioPlayerStatus,
|
AudioPlayerStatus,
|
||||||
entersState,
|
entersState,
|
||||||
getVoiceConnection,
|
getVoiceConnection,
|
||||||
generateDependencyReport
|
} = require("@discordjs/voice");
|
||||||
} = require('@discordjs/voice');
|
const { ChannelType } = require("discord.js");
|
||||||
const { ChannelType } = require('discord.js');
|
|
||||||
|
|
||||||
// Try to use ffmpeg-static as fallback if system ffmpeg is not available
|
// Try to use ffmpeg-static as fallback if system ffmpeg is not available
|
||||||
try {
|
try {
|
||||||
const ffmpegPath = require('ffmpeg-static');
|
const ffmpegPath = require("ffmpeg-static");
|
||||||
if (ffmpegPath && !process.env.FFMPEG_PATH) {
|
if (ffmpegPath && !process.env.FFMPEG_PATH) {
|
||||||
process.env.FFMPEG_PATH = ffmpegPath;
|
process.env.FFMPEG_PATH = ffmpegPath;
|
||||||
}
|
}
|
||||||
@@ -28,17 +27,17 @@ class VoiceService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Join a voice channel
|
* Join a voice channel
|
||||||
* @param {VoiceChannel} channel
|
* @param {VoiceChannel} channel
|
||||||
* @returns {VoiceConnection}
|
* @returns {VoiceConnection}
|
||||||
*/
|
*/
|
||||||
async join(channel) {
|
async join(channel) {
|
||||||
if (!channel || channel.type !== ChannelType.GuildVoice) {
|
if (!channel || channel.type !== ChannelType.GuildVoice) {
|
||||||
throw new Error('Invalid voice channel');
|
throw new Error("Invalid voice channel");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if already connected
|
// Check if already connected
|
||||||
let connection = getVoiceConnection(channel.guild.id);
|
let connection = getVoiceConnection(channel.guild.id);
|
||||||
|
|
||||||
if (!connection) {
|
if (!connection) {
|
||||||
connection = joinVoiceChannel({
|
connection = joinVoiceChannel({
|
||||||
channelId: channel.id,
|
channelId: channel.id,
|
||||||
@@ -79,7 +78,7 @@ class VoiceService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Leave a voice channel
|
* Leave a voice channel
|
||||||
* @param {string} guildId
|
* @param {string} guildId
|
||||||
*/
|
*/
|
||||||
leave(guildId) {
|
leave(guildId) {
|
||||||
const connection = this.connections.get(guildId);
|
const connection = this.connections.get(guildId);
|
||||||
@@ -92,15 +91,15 @@ class VoiceService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Play an audio file
|
* Play an audio file
|
||||||
* @param {string} guildId
|
* @param {string} guildId
|
||||||
* @param {string} filePath
|
* @param {string} filePath
|
||||||
* @param {Object} options
|
* @param {Object} options
|
||||||
* @returns {AudioPlayer}
|
* @returns {AudioPlayer}
|
||||||
*/
|
*/
|
||||||
async play(guildId, filePath, options = {}) {
|
async play(guildId, filePath, options = {}) {
|
||||||
const connection = this.connections.get(guildId);
|
const connection = this.connections.get(guildId);
|
||||||
if (!connection) {
|
if (!connection) {
|
||||||
throw new Error('Not connected to voice channel');
|
throw new Error("Not connected to voice channel");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create or get player for this guild
|
// Create or get player for this guild
|
||||||
@@ -131,8 +130,8 @@ class VoiceService {
|
|||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
|
|
||||||
player.once('error', (error) => {
|
player.once("error", (error) => {
|
||||||
console.error('Player error:', error);
|
console.error("Player error:", error);
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -140,7 +139,7 @@ class VoiceService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop playing audio
|
* Stop playing audio
|
||||||
* @param {string} guildId
|
* @param {string} guildId
|
||||||
*/
|
*/
|
||||||
stop(guildId) {
|
stop(guildId) {
|
||||||
const player = this.players.get(guildId);
|
const player = this.players.get(guildId);
|
||||||
@@ -151,7 +150,7 @@ class VoiceService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if connected to a voice channel
|
* Check if connected to a voice channel
|
||||||
* @param {string} guildId
|
* @param {string} guildId
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
isConnected(guildId) {
|
isConnected(guildId) {
|
||||||
@@ -160,7 +159,7 @@ class VoiceService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current voice connection
|
* Get the current voice connection
|
||||||
* @param {string} guildId
|
* @param {string} guildId
|
||||||
* @returns {VoiceConnection|undefined}
|
* @returns {VoiceConnection|undefined}
|
||||||
*/
|
*/
|
||||||
getConnection(guildId) {
|
getConnection(guildId) {
|
||||||
@@ -168,4 +167,4 @@ class VoiceService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = new VoiceService();
|
module.exports = new VoiceService();
|
||||||
|
|||||||
Reference in New Issue
Block a user