Only allow phone calls to one channel at a time

This commit is contained in:
Dragon Fire
2020-05-18 11:57:43 -04:00
parent efe4ffdd4d
commit 9210ada744
6 changed files with 12 additions and 8 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ module.exports = class BlackjackCommand extends Command {
});
}
async run(msg, { deckCount }) { // eslint-disable-line complexity
async run(msg, { deckCount }) {
const current = this.client.games.get(msg.channel.id);
if (current) return msg.reply(`Please wait until the current game of \`${current.name}\` is finished.`);
try {
+1 -1
View File
@@ -28,7 +28,7 @@ module.exports = class HangmanCommand extends Command {
});
}
async run(msg) { // eslint-disable-line complexity
async run(msg) {
const current = this.client.games.get(msg.channel.id);
if (current) return msg.reply(`Please wait until the current game of \`${current.name}\` is finished.`);
this.client.games.set(msg.channel.id, { name: this.name });
+1 -2
View File
@@ -24,8 +24,7 @@ module.exports = class AdminPhoneCommand extends Command {
}
async run(msg, { channelID }) {
const inCall = this.client.phone.some(call => [call.origin.id, call.recipient.id].includes(msg.channel.id));
if (inCall) return msg.say('This channel is already in a phone call.');
if (this.client.inPhoneCall(msg.channel)) return msg.say('This channel is already in a phone call.');
const channel = this.client.channels.cache.get(channelID);
if (!channel || !channel.guild) return msg.reply('This channel does not exist.');
try {
+4 -3
View File
@@ -41,14 +41,14 @@ module.exports = class PhoneCommand extends Command {
if (channelID !== 'count' && (!msg.channel.topic || !msg.channel.topic.includes('<xiao:phone>'))) {
return msg.say('You can only start a call in a channel with `<xiao:phone>` in the topic.');
}
const inCall = this.client.phone.some(call => [call.origin.id, call.recipient.id].includes(msg.channel.id));
if (channelID !== 'count' && inCall) {
if (channelID !== 'count' && this.client.inPhoneCall(msg.channel)) {
return msg.say('This channel is already in a phone call.');
}
const channels = this.client.channels.cache.filter(channel => channel.guild
&& channel.topic
&& channel.topic.includes('<xiao:phone>')
&& !msg.guild.channels.cache.has(channel.id));
&& !msg.guild.channels.cache.has(channel.id)
&& (channelID ? true : !this.client.inPhoneCall(channel)));
if (!channels.size) return msg.reply('No channels currently allow phone calls...');
let channel;
if (channelID) {
@@ -58,6 +58,7 @@ module.exports = class PhoneCommand extends Command {
if (!channel.topic || !channel.topic.includes('<xiao:phone>')) {
return msg.reply('This channel does not allow phone calls.');
}
if (this.client.inPhoneCall(channel)) return msg.reply('This channel is already in a call.');
} else {
channel = channels.random();
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "xiao",
"version": "114.13.1",
"version": "114.13.2",
"description": "Your personal server companion.",
"main": "Xiao.js",
"scripts": {
+4
View File
@@ -33,4 +33,8 @@ module.exports = class XiaoClient extends CommandoClient {
this.activities = activities;
this.leaveMessages = leaveMsgs;
}
inPhoneCall(channel) {
return this.phone.some(call => call.origin.id === channel.id || call.recipient.id === channel.id);
}
};