Dateien nach "scripts" hochladen
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
registerPlugin({
|
||||
name: 'Advertising (Text)',
|
||||
version: '3.0.0',
|
||||
backends: ['ts3'],
|
||||
description: 'This script will announce one of the configured lines every x seconds.',
|
||||
author: 'SinusBot Team', // Michael Friese, Max Schmitt, Jonas Bögle
|
||||
vars: [{
|
||||
name: 'ads',
|
||||
title: 'Ads (supports bbcode)',
|
||||
type: 'multiline',
|
||||
placeholder: 'Welcome to the best TS3-Server!'
|
||||
}, {
|
||||
name: 'interval',
|
||||
title: 'Interval (in seconds)',
|
||||
type: 'number',
|
||||
placeholder: '5',
|
||||
default: 5
|
||||
}, {
|
||||
name: 'order',
|
||||
title: 'Order',
|
||||
type: 'select',
|
||||
options: [
|
||||
'line by line (default)',
|
||||
'random'
|
||||
],
|
||||
default: '0'
|
||||
}, {
|
||||
name: 'type',
|
||||
title: 'Broadcast-Type',
|
||||
type: 'select',
|
||||
options: [
|
||||
'Channel',
|
||||
'Server'
|
||||
],
|
||||
default: '0'
|
||||
}]
|
||||
}, (_, {ads, order, type, interval}) => {
|
||||
const backend = require('backend')
|
||||
const engine = require('engine')
|
||||
|
||||
ads = ads ? ads.split('\n').map(line => line.trim().replace(/\r/g, '')) : []
|
||||
|
||||
if (ads.length === 0) {
|
||||
engine.log('There are no ads configured.')
|
||||
return
|
||||
}
|
||||
if (interval <= 3) {
|
||||
engine.log('The interval is too small, use a value bigger than 3 seconds.')
|
||||
return
|
||||
}
|
||||
|
||||
const RANDOM = '1';
|
||||
const SERVER = '1';
|
||||
|
||||
let index = -1
|
||||
|
||||
setInterval(() => {
|
||||
switch (order) {
|
||||
case RANDOM:
|
||||
index = Math.floor(Math.random() * ads.length)
|
||||
break
|
||||
default:
|
||||
index = (++index % ads.length)
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case SERVER:
|
||||
backend.chat(ads[index])
|
||||
break
|
||||
default:
|
||||
backend.getCurrentChannel().chat(ads[index])
|
||||
}
|
||||
}, interval * 1000)
|
||||
})
|
||||
Reference in New Issue
Block a user