From fb1b4c27febf96107dc342aa20e398f9476789f1 Mon Sep 17 00:00:00 2001 From: Mirco Wittrien Date: Sat, 3 Nov 2018 10:04:32 +0100 Subject: [PATCH] Added mute in DND option to all audios in NotificationSounds --- .../NotificationSounds.plugin.js | 104 ++++++++++-------- Plugins/PluginRepo/PluginRepo.plugin.js | 26 +++-- 2 files changed, 70 insertions(+), 60 deletions(-) diff --git a/Plugins/NotificationSounds/NotificationSounds.plugin.js b/Plugins/NotificationSounds/NotificationSounds.plugin.js index 8993d4fa31..444110edb4 100644 --- a/Plugins/NotificationSounds/NotificationSounds.plugin.js +++ b/Plugins/NotificationSounds/NotificationSounds.plugin.js @@ -5,35 +5,35 @@ class NotificationSounds { this.patchCancels = []; this.types = { - "message1": {implemented:true, name:"New Chatmessage", src:"/assets/dd920c06a01e5bb8b09678581e29d56f.mp3"}, - "dm": {implemented:true, name:"Direct Message", src:"/assets/84c9fa3d07da865278bd77c97d952db4.mp3"}, - "mentioned": {implemented:true, name:"Mention Ping", src:"/assets/a5f42064e8120e381528b14fd3188b72.mp3"}, - "deafen": {implemented:true, name:"Voicechat Deafen", src:"/assets/e4d539271704b87764dc465b1a061abd.mp3"}, - "mute": {implemented:true, name:"Voicechat Mute", src:"/assets/429d09ee3b86e81a75b5e06d3fb482be.mp3"}, - "disconnect": {implemented:true, name:"Voicechat Disconnect", src:"/assets/7e125dc075ec6e5ae796e4c3ab83abb3.mp3"}, - "undeafen": {implemented:true, name:"Voicechat Undeafen", src:"/assets/5a000a0d4dff083d12a1d4fc2c7cbf66.mp3"}, - "unmute": {implemented:true, name:"Voicechat Unmute", src:"/assets/43805b9dd757ac4f6b9b58c1a8ee5f0d.mp3"}, - "user_join": {implemented:true, name:"Voicechat User Joined", src:"/assets/5dd43c946894005258d85770f0d10cff.mp3"}, - "user_leave": {implemented:true, name:"Voicechat User Left", src:"/assets/4fcfeb2cba26459c4750e60f626cebdc.mp3"}, - "user_moved": {implemented:true, name:"Voicechat User Moved", src:"/assets/e81d11590762728c1b811eadfa5be766.mp3"}, - "ptt_start": {implemented:true, name:"Push2Talk Start", src:"/assets/8b63833c8d252fedba6b9c4f2517c705.mp3"}, - "ptt_stop": {implemented:true, name:"Push2Talk Stop", src:"/assets/74ab980d6890a0fa6aa0336182f9f620.mp3"}, - "call_calling": {implemented:true, name:"Outgoing Call", src:"/assets/c6e92752668dde4eee5923d70441579f.mp3"}, - "call_ringing": {implemented:true, name:"Incoming Call", src:"/assets/84a1b4e11d634dbfa1e5dd97a96de3ad.mp3"}, - "call_ringing_beat": {implemented:false, name:"Incoming Call Beat", src:"/assets/b9411af07f154a6fef543e7e442e4da9.mp3"}, - "ddr-down": {implemented:true, name:"HotKeys Window Down", src:"/assets/71f048f8aa7d4b24bf4268a87cbbb192.mp3"}, - "ddr-left": {implemented:true, name:"HotKeys Window Left", src:"/assets/1de04408e62b5d52ae3ebbb91e9e1978.mp3"}, - "ddr-right": {implemented:true, name:"HotKeys Window Right", src:"/assets/2c0433f93db8449e4a82b76dc520cb29.mp3"}, - "ddr-up": {implemented:true, name:"HotKeys Window Up", src:"/assets/68472713f7a62c7c37e0a6a5d5a1faeb.mp3"}, - "human_man": {implemented:false, name:"Human Man Voice", src:"/assets/a37dcd6272ae41cf49295d58c9806fe3.mp3"}, - "mention1": {implemented:false, name:"Mention Ping 1", src:"/assets/fa4d62c3cbc80733bf1f01b9c6f181de.mp3"}, - "mention2": {implemented:false, name:"Mention Ping 2", src:"/assets/a5f42064e8120e381528b14fd3188b72.mp3"}, - "mention3": {implemented:false, name:"Mention Ping 3", src:"/assets/84c9fa3d07da865278bd77c97d952db4.mp3"}, - "message2": {implemented:false, name:"New Chatmessage 2", src:"/assets/15fe810f6cfab609c7fcda61652b9b34.mp3"}, - "message3": {implemented:false, name:"New Chatmessage 3", src:"/assets/53ce6a92d3c233e8b4ac529d34d374e4.mp3"}, - "overlayunlock": {implemented:false, name:"Overlay Unlocked", src:"/assets/ad322ffe0a88436296158a80d5d11baa.mp3"}, - "reconnect": {implemented:false, name:"Voicechat Reconnect", src:"/assets/471cfd0005b112ff857705e894bf41a6.mp3"}, - "robot_man": {implemented:false, name:"Robot Man Voice", src:"/assets/66598bea6e59eb8acdf32cf2d9d75ba9.mp3"} + "message1": {implemented:true, name:"New Chatmessage", src:"/assets/dd920c06a01e5bb8b09678581e29d56f.mp3", mute:true}, + "dm": {implemented:true, name:"Direct Message", src:"/assets/84c9fa3d07da865278bd77c97d952db4.mp3", mute:true}, + "mentioned": {implemented:true, name:"Mention Ping", src:"/assets/a5f42064e8120e381528b14fd3188b72.mp3", mute:true}, + "deafen": {implemented:true, name:"Voicechat Deafen", src:"/assets/e4d539271704b87764dc465b1a061abd.mp3", mute:false}, + "mute": {implemented:true, name:"Voicechat Mute", src:"/assets/429d09ee3b86e81a75b5e06d3fb482be.mp3", mute:false}, + "disconnect": {implemented:true, name:"Voicechat Disconnect", src:"/assets/7e125dc075ec6e5ae796e4c3ab83abb3.mp3", mute:false}, + "undeafen": {implemented:true, name:"Voicechat Undeafen", src:"/assets/5a000a0d4dff083d12a1d4fc2c7cbf66.mp3", mute:false}, + "unmute": {implemented:true, name:"Voicechat Unmute", src:"/assets/43805b9dd757ac4f6b9b58c1a8ee5f0d.mp3", mute:false}, + "user_join": {implemented:true, name:"Voicechat User Joined", src:"/assets/5dd43c946894005258d85770f0d10cff.mp3", mute:false}, + "user_leave": {implemented:true, name:"Voicechat User Left", src:"/assets/4fcfeb2cba26459c4750e60f626cebdc.mp3", mute:false}, + "user_moved": {implemented:true, name:"Voicechat User Moved", src:"/assets/e81d11590762728c1b811eadfa5be766.mp3", mute:false}, + "ptt_start": {implemented:true, name:"Push2Talk Start", src:"/assets/8b63833c8d252fedba6b9c4f2517c705.mp3", mute:false}, + "ptt_stop": {implemented:true, name:"Push2Talk Stop", src:"/assets/74ab980d6890a0fa6aa0336182f9f620.mp3", mute:false}, + "call_calling": {implemented:true, name:"Outgoing Call", src:"/assets/c6e92752668dde4eee5923d70441579f.mp3", mute:false}, + "call_ringing": {implemented:true, name:"Incoming Call", src:"/assets/84a1b4e11d634dbfa1e5dd97a96de3ad.mp3", mute:true}, + "call_ringing_beat": {implemented:false, name:"Incoming Call Beat", src:"/assets/b9411af07f154a6fef543e7e442e4da9.mp3", mute:true}, + "ddr-down": {implemented:true, name:"HotKeys Window Down", src:"/assets/71f048f8aa7d4b24bf4268a87cbbb192.mp3", mute:true}, + "ddr-left": {implemented:true, name:"HotKeys Window Left", src:"/assets/1de04408e62b5d52ae3ebbb91e9e1978.mp3", mute:true}, + "ddr-right": {implemented:true, name:"HotKeys Window Right", src:"/assets/2c0433f93db8449e4a82b76dc520cb29.mp3", mute:true}, + "ddr-up": {implemented:true, name:"HotKeys Window Up", src:"/assets/68472713f7a62c7c37e0a6a5d5a1faeb.mp3", mute:true}, + "human_man": {implemented:false, name:"Human Man Voice", src:"/assets/a37dcd6272ae41cf49295d58c9806fe3.mp3", mute:true}, + "mention1": {implemented:false, name:"Mention Ping 1", src:"/assets/fa4d62c3cbc80733bf1f01b9c6f181de.mp3", mute:true}, + "mention2": {implemented:false, name:"Mention Ping 2", src:"/assets/a5f42064e8120e381528b14fd3188b72.mp3", mute:true}, + "mention3": {implemented:false, name:"Mention Ping 3", src:"/assets/84c9fa3d07da865278bd77c97d952db4.mp3", mute:true}, + "message2": {implemented:false, name:"New Chatmessage 2", src:"/assets/15fe810f6cfab609c7fcda61652b9b34.mp3", mute:true}, + "message3": {implemented:false, name:"New Chatmessage 3", src:"/assets/53ce6a92d3c233e8b4ac529d34d374e4.mp3", mute:true}, + "overlayunlock": {implemented:false, name:"Overlay Unlocked", src:"/assets/ad322ffe0a88436296158a80d5d11baa.mp3", mute:true}, + "reconnect": {implemented:false, name:"Voicechat Reconnect", src:"/assets/471cfd0005b112ff857705e894bf41a6.mp3", mute:true}, + "robot_man": {implemented:false, name:"Robot Man Voice", src:"/assets/66598bea6e59eb8acdf32cf2d9d75ba9.mp3", mute:true} }; this.defaults = { @@ -95,7 +95,7 @@ class NotificationSounds { getDescription () {return "Allows you to replace the native sounds of Discord with your own";} - getVersion () {return "3.1.9";} + getVersion () {return "3.2.0";} getAuthor () {return "DevilBro";} @@ -119,7 +119,7 @@ class NotificationSounds { for (var type in this.types) { var choice = BDFDB.loadData(type, this, "choices"); var unimplemented = this.types[type].implemented ? "" : " unimplemented"; - settingshtml += `

${this.types[type].name}:

`; + settingshtml += `

${this.types[type].name}:

Mute in DnD:
`; for (var key of fields) { settingshtml += `
${key}:
${choice[key]}
`; } @@ -139,6 +139,13 @@ class NotificationSounds { .on("click", ".btn-addsong", (e) => {this.saveAudio(settingspanel);}) .on("keyup", ".songInput", (e) => {if (e.which == 13) this.saveAudio(settingspanel);}) .on("click", ".reset-button", () => {this.resetAll(settingspanel);}) + .on("click", ".mute-checkbox", (e) => { + var checkbox = e.currentTarget; + var type = checkbox.parentElement.getAttribute("type"); + var choice = BDFDB.loadData(type, this, "choices"); + choice.mute = checkbox.checked; + this.saveChoice(type, choice, false); + }) .on("click", "#input-unimplemented", (e) => { $(settingspanel).find(".unimplemented").toggle(e.currentTarget.checked); }) @@ -170,17 +177,15 @@ class NotificationSounds { if (typeof BDFDB === "object") { BDFDB.loadMessage(this); - this.ChannelSettingsModule = BDFDB.WebModules.findByProperties(["isChannelMuted"]); + this.ChannelSettingsModule = BDFDB.WebModules.findByProperties(["isGuildOrCategoryOrChannelMuted"]); this.patchCancels.push(BDFDB.WebModules.monkeyPatch(BDFDB.WebModules.findByProperties(["receiveMessage"]), "receiveMessage", {before: (e) => { - if (this.dontPlayAudio()) return; let message = e.methodArguments[1]; - if (message.author.id != BDFDB.myData.id) { - if (!message.guild_id) { - if (!this.ChannelSettingsModule.isChannelMuted(null, message.channel_id)) { - this.fireEvent("dm"); - this.playAudio("dm"); - } + let guildid = message.guild_id ? message.guild_id : null; + if (!this.ChannelSettingsModule.isGuildOrCategoryOrChannelMuted(guildid, message.channel_id) && message.author.id != BDFDB.myData.id) { + if (!guildid) { + this.fireEvent("dm"); + this.playAudio("dm"); } else if (message.mentions) { for (let mention of message.mentions) if (mention.id == BDFDB.myData.id) { @@ -192,7 +197,6 @@ class NotificationSounds { }})); this.patchCancels.push(BDFDB.WebModules.monkeyPatch(BDFDB.WebModules.findByProperties(["playSound"]), "playSound", {instead: (e) => { - if (this.dontPlayAudio()) return; setImmediate(() => { var type = e.methodArguments[0]; if (type == "message1") { @@ -214,7 +218,7 @@ class NotificationSounds { this.oldStopRining = this.incomingCallOwnerInstance.stopRinging; this.incomingCallOwnerInstance.startRinging = () => { incomingCallAudio.pause(); - if (this.dontPlayAudio()) return; + if (this.dontPlayAudio("call_ringing")) return; incomingCallAudio.loop = true; incomingCallAudio.src = this.choices["call_ringing"].src; incomingCallAudio.volume = this.choices["call_ringing"].volume/100; @@ -236,7 +240,7 @@ class NotificationSounds { if (!this.hasPatchedOutgoing) { var outgoingCallAudio = new Audio(); let play = () => { - if (this.dontPlayAudio()) return; + if (this.dontPlayAudio("call_calling")) return; outgoingCallAudio.loop = true; outgoingCallAudio.src = this.choices["call_calling"].src; outgoingCallAudio.volume = this.choices["call_calling"].volume/100; @@ -342,7 +346,6 @@ class NotificationSounds { } choice.src = this.audios[choice.category][choice.song]; choice.src = choice.src ? choice.src : this.types[type].src; - choice.volume = settingspanel.querySelector(`.${type}-volume`).value; this.saveChoice(type, choice, true); }); $(document).on("mousedown.select" + this.getName(), (e2) => { @@ -475,7 +478,8 @@ class NotificationSounds { } } } - if (!songFound) choice = {"category":"---","song":"---","volume":100,"src":this.types[type].src}; + if (!songFound) choice = {category:"---",song:"---",volume:100,src:this.types[type].src,mute:this.types[type].mute}; + if (typeof choice.mute == "undefined") choice.mute = this.types[type].mute; this.saveChoice(type, choice, false); } } @@ -486,16 +490,20 @@ class NotificationSounds { if (play) this.playAudio(type, this.settingsaudio); } - playAudio (type, audio = new Audio()) { - audio.pause(); + playAudio (type, audio) { + if (!audio) { + if (this.dontPlayAudio(type)) return; + audio = new Audio() + } + else audio.pause(); audio.src = this.choices[type].src; audio.volume = this.choices[type].volume/100; audio.play(); } - dontPlayAudio () { + dontPlayAudio (type) { let status = BDFDB.getUserStatus(); - return status == "dnd" || status == "streaming"; + return this.choices[type].mute && (status == "dnd" || status == "streaming"); } fireEvent (type) { diff --git a/Plugins/PluginRepo/PluginRepo.plugin.js b/Plugins/PluginRepo/PluginRepo.plugin.js index 6b49e6b56a..71f864ebe3 100644 --- a/Plugins/PluginRepo/PluginRepo.plugin.js +++ b/Plugins/PluginRepo/PluginRepo.plugin.js @@ -675,19 +675,21 @@ class PluginRepo { e.delegateTarget.querySelector(BDFDB.dotCN.noticedismiss).click(); }); } - setTimeout(() => {webview.remove();},10000); - if (BDFDB.myData.id == "278543574059057154") { - let wrongUrls = []; - for (let url of this.foundPlugins) if (url && !this.loadedPlugins[url] && !wrongUrls.includes(url)) wrongUrls.push(url); - if (wrongUrls.length > 0) { - var bar = BDFDB.createNotificationsBar(`PluginRepo: ${wrongUrls.length} Plugin${wrongUrls.length > 1 ? "s" : ""} could not be loaded.`, {type:"danger",btn:"List"}); - $(bar).on("click." + this.getName(), BDFDB.dotCN.noticebutton, (e) => { - var toast = BDFDB.showToast(wrongUrls.join("\n"),{type:"error"}); - toast.style.overflow = "hidden"; - console.log(wrongUrls.length == 1 ? wrongUrls[0] : wrongUrls); - }); + setTimeout(() => { + webview.remove(); + if (BDFDB.myData.id == "278543574059057154") { + let wrongUrls = []; + for (let url of this.foundPlugins) if (url && !this.loadedPlugins[url] && !wrongUrls.includes(url)) wrongUrls.push(url); + if (wrongUrls.length > 0) { + var bar = BDFDB.createNotificationsBar(`PluginRepo: ${wrongUrls.length} Plugin${wrongUrls.length > 1 ? "s" : ""} could not be loaded.`, {type:"danger",btn:"List"}); + $(bar).on("click." + this.getName(), BDFDB.dotCN.noticebutton, (e) => { + var toast = BDFDB.showToast(wrongUrls.join("\n"),{type:"error"}); + toast.style.overflow = "hidden"; + console.log(wrongUrls.length == 1 ? wrongUrls[0] : wrongUrls); + }); + } } - } + },10000); }); }); }