MCPcopy Index your code
hub / github.com/codebymitch/TitanBot / createTemporaryChannel

Function createTemporaryChannel

src/services/joinToCreateService.js:482–551  ·  view source on GitHub ↗
(guild, member, options = {})

Source from the content-addressed store, hash-verified

480}
481
482export async function createTemporaryChannel(guild, member, options = {}) {
483 try {
484 if (!guild || !member) {
485 throw new TitanBotError(
486 'Invalid guild or member',
487 ErrorTypes.VALIDATION
488 );
489 }
490
491 const {
492 nameTemplate,
493 userLimit,
494 bitrate,
495 parentId
496 } = options;
497
498 if (nameTemplate) {
499 validateChannelNameTemplate(nameTemplate);
500 }
501 if (userLimit !== undefined) {
502 validateUserLimit(userLimit);
503 }
504 if (bitrate !== undefined) {
505 validateBitrate(bitrate / 1000);
506 }
507
508 const channelName = formatChannelName(nameTemplate || '{username}\'s Room', {
509 username: member.user.username,
510 displayName: member.displayName,
511 userTag: member.user.tag,
512 guildName: guild.name
513 });
514
515 const tempChannel = await guild.channels.create({
516 name: channelName,
517 type: ChannelType.GuildVoice,
518 parent: parentId,
519 userLimit: userLimit === 0 ? undefined : userLimit,
520 bitrate: bitrate || 64000,
521 permissionOverwrites: [
522 {
523 id: member.id,
524 allow: [PermissionFlagsBits.Connect, PermissionFlagsBits.Speak, PermissionFlagsBits.PrioritySpeaker, PermissionFlagsBits.MoveMembers]
525 },
526 {
527 id: guild.id,
528 allow: [PermissionFlagsBits.Connect, PermissionFlagsBits.Speak]
529 }
530 ]
531 });
532
533 logger.info(`Created temporary voice channel ${tempChannel.name} (${tempChannel.id}) for user ${member.user.tag}`);
534
535 return {
536 id: tempChannel.id,
537 name: tempChannel.name,
538 ownerId: member.id
539 };

Callers

nothing calls this directly

Calls 4

formatChannelNameFunction · 0.90
validateUserLimitFunction · 0.85
validateBitrateFunction · 0.85

Tested by

no test coverage detected