Skip to content
This repository has been archived by the owner on Sep 20, 2020. It is now read-only.

Commit

Permalink
Rooms rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
Hazed SPaCEx committed Mar 18, 2019
1 parent a405bd1 commit 9ccffb4
Show file tree
Hide file tree
Showing 3 changed files with 130 additions and 28 deletions.
67 changes: 55 additions & 12 deletions events/voiceChannelJoin.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,70 @@ exports.Run = async function Run(caller, member, newChannel, GuildDB) {
const Guild = GuildDB;
if (Guild.privateChannel && !member.bot) {
if (Guild.privateChannel === newChannel.id) {
const newPos = newChannel.position + 1;

let privateChannel;
try {
privateChannel = await member.guild.createChannel(`${member.username} [Private Room]`, 2, 'Private Rooms Function', newChannel.parentID);
await privateChannel.editPosition(newChannel.guild.id, newPos);
await privateChannel.editPermission(member.guild.id, 1024, 1048576, 'role');
await privateChannel.editPermission(member.id, 17826816, 0, 'member');
await privateChannel.editPermission(caller.bot.user.id, 286262288, 0, 'member');
privateChannel = await caller.utils.createChannel(member.guild.id, {
name: `${member.username} [Private Room]`,
type: 2,
bitrate: 64000,
position: newChannel.position + 1,
parent_id: newChannel.parentID,
permission_overwrites: [
{
id: newChannel.guild.id,
type: 'role',
allow: 1024,
deny: 1048576,
},
{
id: member.id,
type: 'member',
allow: 17826816,
deny: 0,
},
{
id: caller.bot.user.id,
type: 'member',
allow: 286262288,
deny: 0,
},
],
});
} catch (e) {
caller.logger.warn(
`[voiceChannelJoin:privateChannel] ${e.code} ${e.message.replace(/\n\s/g, '')}`,
);
return;
}

try {
const move = await member.guild.createChannel(`Delete Room [${member.username}]`, 2, 'Private Rooms Function / Waiting For Move', newChannel.parentID);
await move.editPosition(newChannel.guild.id, newPos + 1);
await move.editPermission(member.guild.id, 0, 2097153, 'role');
await move.editPermission(member.id, 16777216, 0, 'member');
await move.editPermission(caller.bot.user.id, 286261264, 0, 'member');
await caller.utils.createChannel(member.guild.id, {
name: `Delete Room [${member.username}]`,
type: 2,
bitrate: 64000,
position: newChannel.position + 2,
parent_id: newChannel.parentID,
permission_overwrites: [
{
id: newChannel.guild.id,
type: 'role',
allow: 0,
deny: 3146753,
},
{
id: member.id,
type: 'member',
allow: 16777216,
deny: 0,
},
{
id: caller.bot.user.id,
type: 'member',
allow: 286261264,
deny: 0,
},
],
});
await member.edit({ channelID: privateChannel.id }, 'Private Room Function');
await member.guild.channels
.find((chann) => chann.id === Guild.privateChannel)
Expand Down
66 changes: 54 additions & 12 deletions events/voiceChannelSwitch.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,66 @@ exports.Run = async function Run(caller, member, newChannel, oldChannel, GuildDB
const Guild = GuildDB;
if (Guild.privateChannel && !member.bot) {
if (newChannel.id === Guild.privateChannel) {
const newPos = newChannel.position + 1;

let privateChannel;
try {
privateChannel = await caller.bot.createChannel(Guild.id, `${member.username} [Private Room]`, 2, 'Private Rooms Function', newChannel.parentID);
await privateChannel.editPosition(newChannel.guild.id, newPos);
await privateChannel.editPermission(member.guild.id, 1024, 1048576, 'role');
await privateChannel.editPermission(member.id, 17826816, 0, 'member');
await privateChannel.editPermission(caller.bot.user.id, 286262288, 0, 'member');
privateChannel = await caller.utils.createChannel(member.guild.id, {
name: `${member.username} [Private Room]`,
type: 2,
bitrate: 64000,
position: newChannel.position + 1,
parent_id: newChannel.parentID,
permission_overwrites: [
{
id: newChannel.guild.id,
type: 'role',
allow: 1024,
deny: 1048576,
},
{
id: member.id,
type: 'member',
allow: 17826816,
deny: 0,
},
{
id: caller.bot.user.id,
type: 'member',
allow: 286262288,
deny: 0,
},
],
});
} catch (e) {
caller.logger.warn(`[voiceChannelSwitch:privateChannel] ${e.code} ${e.message.replace(/\n\s/g, '')}`);
}
try {
const move = await caller.bot.createChannel(Guild.id, `Delete Room [${member.username}]`, 2, 'Private Rooms Function / Waiting For Move', newChannel.parentID);
await move.editPosition(Guild.id, newPos + 1);
await move.editPermission(member.guild.id, 0, 2097153, 'role');
await move.editPermission(member.id, 16777216, 0, 'member');
await move.editPermission(caller.bot.user.id, 286261264, 0, 'member');
await caller.utils.createChannel(member.guild.id, {
name: `Delete Room [${member.username}]`,
type: 2,
bitrate: 64000,
position: newChannel.position + 2,
parent_id: newChannel.parentID,
permission_overwrites: [
{
id: newChannel.guild.id,
type: 'role',
allow: 0,
deny: 3146753,
},
{
id: member.id,
type: 'member',
allow: 16777216,
deny: 0,
},
{
id: caller.bot.user.id,
type: 'member',
allow: 286261264,
deny: 0,
},
],
});
await member.edit({ channelID: privateChannel.id }, 'Private Room Function');

await member.guild.channels.find((chann) => chann.id === Guild.privateChannel).editPermission(member.id, 0, 1048576, 'member');
Expand Down
25 changes: 21 additions & 4 deletions src/Utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -557,10 +557,6 @@ class Utils {
color: 7271027,
title: 'Translations Loaded',
description: `**Cluster:** ${this.caller.id}\n**Languages:** ${Object.keys(this.lang).join(', ')}`,
footer: {
text: this.bot.user.username,
icon_url: this.bot.user.avatarURL,
},
timestamp: new Date(),
},
],
Expand All @@ -578,6 +574,27 @@ class Utils {
});
});
}

createChannel(guild, data) {
return new Promise((resolve, reject) => {
request(
{
uri: `https://discordapp.com/api/guilds/${guild}/channels`,
json: true,
method: 'POST',
body: data,
headers: {
Authorization: `Bot ${process.env.TOKEN}`,
},
},
(err, res, body) => {
if (err) {
reject(err);
} else resolve(body);
},
);
});
}
}

module.exports = Utils;

0 comments on commit 9ccffb4

Please sign in to comment.