Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
🎧 Complete framework to simplify the implementation of music commands using discord.js v14
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Discord Player is a music framework for Discord bots. Manage queues, tracks, playback, filters, and events while Remedia handles audio and Discord voice.
This README describes the v8 development branch. For v7, use the documentation matching your installed version.
Node.js 22.18+ and ESM are required. To start a new bot, generate a project:
npm create music-bot@dev my-bot
To add Discord Player to an existing project, install the dev tag (npm's latest is still v7). For embedded playback:
pnpm add discord-player@dev discord.js @remedia/node
Install FFmpeg 9 shared libraries on the machine running audio. Remote-only bot processes do not need FFmpeg locally.
import { Client, Events, GatewayIntentBits } from 'discord.js';
import { Player } from 'discord-player';
import { directMedia } from './direct-media.js';
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates],
});
const player = new Player({
nodes: [{ id: 'local', type: 'embedded' }],
plugins: [directMedia()],
send(guildId, packet) {
const guild = client.guilds.cache.get(guildId);
if (!guild) throw new Error('Guild unavailable');
return guild.shard.send(packet);
},
});
client.on('raw', (packet) => player.receive(packet));
client.once(Events.ClientReady, (ready) => {
void player.initialize(ready.user.id).catch(console.error);
});
The directMedia plugin is defined in the manual setup tutorial. Source plugins supply playable audio. Discord Player does not automatically register a music provider.
Inside your play command, after initialization:
const result = await player.play({ guildId, channelId }, 'https://your-media-host.example/song.mp3');
if (result.track) console.log('Playing', result.track.title);
Replace the example URL with a real audio file.
const queue = player.getQueue(guildId);
if (queue) {
await queue.node.pause();
await queue.node.resume();
await queue.node.setVolume(70);
await queue.skip();
}