Dateien nach "scripts" hochladen
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
registerPlugin({
|
||||
name: 'AloneMode',
|
||||
version: '3.2.0',
|
||||
backends: ['ts3', 'discord'],
|
||||
description: 'This script will save CPU and bandwidth by stopping or muting the bot when nobody is listening anyways.',
|
||||
author: 'SinusBot Team', // Michael Friese, Max Schmitt, Jonas Bögle, Fabian "fabm3n"
|
||||
vars: [{
|
||||
name: 'mode',
|
||||
title: 'Mode',
|
||||
type: 'select',
|
||||
options: [
|
||||
'mute only',
|
||||
'stop playback'
|
||||
]
|
||||
}]
|
||||
}, (_, {mode}) => {
|
||||
const engine = require('engine')
|
||||
const backend = require('backend')
|
||||
const event = require('event')
|
||||
const audio = require('audio')
|
||||
const media = require('media')
|
||||
|
||||
const MUTE_ONLY = '0'
|
||||
|
||||
let isMuted = false
|
||||
let lastPosition = 0
|
||||
let lastTrack
|
||||
|
||||
audio.setMute(false)
|
||||
|
||||
event.on('clientMove', () => {
|
||||
let currentChannel = backend.getCurrentChannel()
|
||||
let clients = currentChannel ? currentChannel.getClientCount() : 0
|
||||
|
||||
if (clients > 1 && isMuted) {
|
||||
isMuted = false
|
||||
engine.log('Ending AloneMode...')
|
||||
|
||||
if (mode == MUTE_ONLY) {
|
||||
audio.setMute(false)
|
||||
} else {
|
||||
if (lastTrack) {
|
||||
lastTrack.play()
|
||||
audio.seek(lastPosition)
|
||||
engine.log(`Seeking to ${lastPosition} of track '${lastTrack.title()}'`)
|
||||
}
|
||||
}
|
||||
} else if (clients <= 1 && audio.isPlaying() && isMuted == false) {
|
||||
isMuted = true
|
||||
engine.log('Starting AloneMode...')
|
||||
|
||||
if (mode == MUTE_ONLY) {
|
||||
audio.setMute(true)
|
||||
} else {
|
||||
lastPosition = audio.getTrackPosition()
|
||||
lastTrack = media.getCurrentTrack()
|
||||
engine.log(`Position ${lastPosition} saved for track '${lastTrack.title()}'`)
|
||||
media.stop()
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user