mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-15 08:22:37 +02:00
Only allow phone calls to one channel at a time
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user