diff --git a/Plugins/TimedLightDarkMode/TimedLightDarkMode.plugin.js b/Plugins/TimedLightDarkMode/TimedLightDarkMode.plugin.js index 14c6217a4a..6b4ab6f56d 100644 --- a/Plugins/TimedLightDarkMode/TimedLightDarkMode.plugin.js +++ b/Plugins/TimedLightDarkMode/TimedLightDarkMode.plugin.js @@ -3,7 +3,7 @@ class TimedLightDarkMode { getName () {return "TimedLightDarkMode";} - getVersion () {return "1.0.0";} + getVersion () {return "1.0.1";} getAuthor () {return "DevilBro";} @@ -15,6 +15,9 @@ class TimedLightDarkMode { }; this.defaults = { + settings: { + running: {value: true} + }, values: { timer1: {value:25}, timer2: {value:75} @@ -62,7 +65,7 @@ class TimedLightDarkMode { if (global.BDFDB && typeof BDFDB === "object" && BDFDB.loaded) { clearInterval(this.checkInterval); - BDFDB.removeEles(".TLDM-slider", ".TLDM-header"); + BDFDB.removeEles(".TLDM-settingsbox"); BDFDB.unloadMessage(this); } @@ -73,29 +76,37 @@ class TimedLightDarkMode { processRadioGroup (instance, wrapper) { if (instance.props && Array.isArray(instance.props.options) && instance.props.options[0] && instance.props.options[0].value == "light" && instance.props.options[1] && instance.props.options[1].value == "dark" && wrapper.parentElement.firstElementChild.innerText && wrapper.parentElement.firstElementChild.innerText.toUpperCase() == BDFDB.LanguageStrings.THEME.toUpperCase()) { + var settings = BDFDB.getAllData(this, "settings"); var values = BDFDB.getAllData(this, "values"); - var header = BDFDB.htmlToElement(`
${BDFDB.LanguageStrings.THEME} Timer
`); - var slider = BDFDB.htmlToElement(`
00:00
03:00
06:00
09:00
12:00
15:00
18:00
21:00
24:00
`); - wrapper.parentElement.appendChild(header); - wrapper.parentElement.appendChild(slider); + var settingsbox = BDFDB.htmlToElement(`
${BDFDB.LanguageStrings.THEME} Timer
00:00
03:00
06:00
09:00
12:00
15:00
18:00
21:00
24:00
`); + wrapper.parentElement.appendChild(settingsbox); + var slider = settingsbox.querySelector(BDFDB.dotCN.slider); + + BDFDB.initElements(settingsbox, this); this.updateSlider(slider, values); - BDFDB.addChildEventListener(slider, "mousedown", BDFDB.dotCN.slidergrabber, e => {this.dragSlider(e.currentTarget);}); + BDFDB.addChildEventListener(settingsbox, "mousedown", BDFDB.dotCN.slidergrabber, e => {this.dragSlider(e.currentTarget);}); + BDFDB.addChildEventListener(settingsbox, "click", ".settings-switch", e => { + this.startInterval(); + BDFDB.toggleClass(slider, BDFDB.disCN.sliderdisabled, !e.currentTarget.checked); + }); } } startInterval () { clearInterval(this.checkInterval); - var values = BDFDB.getAllData(this, "values"); - var inverted = values.timer1 > values.timer2; - var timer1LOW = this.getTime(values.timer1), timer2LOW = this.getTime(values.timer2); - var timer1HIGH = this.getHighTime(timer2LOW), timer2HIGH = this.getHighTime(timer1LOW); - this.checkInterval = setInterval(() => { - var currenttime = new Date(); - var currenthours = currenttime.getHours(); - var currentminutes = currenttime.getMinutes(); - if (inverted) this.changeTheme(!(this.checkTime(timer1LOW, timer1HIGH, [currenthours, currentminutes]))); - else this.changeTheme(this.checkTime(timer2LOW, timer2HIGH, [currenthours, currentminutes])); - },60000); + if (BDFDB.getData("running", this, "settings")) { + var values = BDFDB.getAllData(this, "values"); + var inverted = values.timer1 > values.timer2; + var timer1LOW = this.getTime(values.timer1), timer2LOW = this.getTime(values.timer2); + var timer1HIGH = this.getHighTime(timer2LOW), timer2HIGH = this.getHighTime(timer1LOW); + this.checkInterval = setInterval(() => { + var currenttime = new Date(); + var currenthours = currenttime.getHours(); + var currentminutes = currenttime.getMinutes(); + if (inverted) this.changeTheme(!(this.checkTime(timer1LOW, timer1HIGH, [currenthours, currentminutes]))); + else this.changeTheme(this.checkTime(timer2LOW, timer2HIGH, [currenthours, currentminutes])); + },60000); + } } checkTime (timerLOW, timerHIGH, time) { @@ -111,6 +122,7 @@ class TimedLightDarkMode { dragSlider (grabber) { var track = grabber.parentNode; + if (BDFDB.containsClass(track.parentNode, BDFDB.disCN.sliderdisabled)) return; var type = grabber.getAttribute("key"); var input = track.parentNode.querySelector(`${BDFDB.dotCN.sliderinput}[key="${type}"]`); var values = BDFDB.getAllData(this, "values");