-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
68 lines (58 loc) · 1.35 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
'use strict'
const settings = require('standard-settings')
const { SpacebroClient } = require('spacebro-client')
const dgram = require('dgram')
const udpclient = dgram.createSocket('udp4')
const udp = {
host: settings.get('udp:host') || '127.0.0.1',
port: settings.get('udp:port') || 41234
}
const verbose = settings.get('verbose') || false
const events = settings.get('events')
const raw = [
// ID (“Siudi_7B”)
'53',
'69',
'75',
'64',
'69',
'5F',
'37',
'42',
// OPCODE
'6D',
'00',
// SCENE INDEX
'00',
'00',
// PAGE INDEX
'00',
'00',
// COMMAND
'01',
'00',
// VALUE
'00',
'00',
'00',
'00'
]
// scene raw array index : 10
// scene raw array index : 12
const spacebroclient = new SpacebroClient()
events.forEach((event) => {
spacebroclient.on(event.name, (datas) => {
if (!event.requiredData || Object.values(datas).includes(event.requiredData)) {
console.log(`sending "${event.name}"...`)
if (event.delay) console.log(`waiting ${event.delay}s...`)
raw.splice(10, 1, event.scene)
raw.splice(12, 1, event.page)
const message = new Buffer(raw.join(''), 'hex')
setTimeout(() => {
udpclient.send(message, 0, message.length, udp.port, udp.host, (err, bytes) => {
console.log(`"${event.name}" sent!`)
})
}, (event.delay || 0) * 1000)
}
})
})