Fix some phone bugs

This commit is contained in:
Dragon Fire
2020-02-29 21:48:27 -05:00
parent bc62bec1d7
commit ca56570728
3 changed files with 10 additions and 6 deletions
+3 -2
View File
@@ -62,9 +62,10 @@ client.on('message', async msg => {
const origin = client.phone.find(call => call.origin.id === msg.channel.id);
const recipient = client.phone.find(call => call.recipient.id === msg.channel.id);
if (!origin && !recipient) return;
const call = origin || recipient;
if (!call.active) return;
try {
if (origin) await origin.send(origin.recipient, msg);
if (recipient) await recipient.send(recipient.origin, msg);
await call.send(origin ? call.recipient : call.origin, msg);
} catch (err) {
return; // eslint-disable-line no-useless-return
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "xiao",
"version": "110.10.0",
"version": "110.10.1",
"description": "Your personal server companion.",
"main": "Xiao.js",
"scripts": {
+6 -3
View File
@@ -32,19 +32,22 @@ module.exports = class PhoneCall {
}
async decline(validation) {
const directMsg = validation === 0 ? 'didn\'t answer...' : 'declined the call...';
this.client.phone.delete(this.id);
await this.origin.send(`☎️ **${this.recipient.guild.name}** ${directMsg}`);
await this.hangup('declined', validation);
return this;
}
async hangup(nonQuitter) {
async hangup(nonQuitter, validation) {
this.active = false;
clearTimeout(this.timeout);
this.client.phone.delete(this.id);
if (nonQuitter === 'time') {
await this.origin.send('☎️ Call ended due to inactivity.');
await this.recipient.send('☎️ Call ended due to inactivity.');
} else if (nonQuitter === 'declined') {
const directMsg = validation === 0 ? 'didn\'t answer...' : 'declined the call...';
await this.origin.send(`☎️ **${this.recipient.guild.name}** ${directMsg}`);
await this.recipient.send('☎️ Declined the call.');
} else {
const quitter = nonQuitter.id === this.origin.id ? this.recipient : this.origin;
await nonQuitter.send(`☎️ **${quitter.guild.name}** hung up.`);