mirror of
https://github.com/stagehacks/Cue-View.git
synced 2026-08-06 22:33:39 +00:00
handle objects better
This commit is contained in:
+337
-338
@@ -14,332 +14,26 @@ exports.config = {
|
||||
},
|
||||
};
|
||||
|
||||
let ocaIDs = [];
|
||||
|
||||
exports.ready = function ready(_device) {
|
||||
const device = _device;
|
||||
|
||||
device.data.oca = {
|
||||
ModelDescription: {
|
||||
target: 0x1000010d,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
PwrOn: {
|
||||
target: 0x10000100,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SubNet: {
|
||||
target: 0x10000109,
|
||||
method: 0x00050001,
|
||||
format: 'int32',
|
||||
},
|
||||
DeviceId: {
|
||||
target: 0x10000108,
|
||||
method: 0x00050001,
|
||||
format: 'int32',
|
||||
},
|
||||
DeviceType: {
|
||||
target: 0x10000034,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
FirmwareRevision: {
|
||||
target: 0x10000031,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameA: {
|
||||
target: 0x10008215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameB: {
|
||||
target: 0x10010215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameC: {
|
||||
target: 0x10018215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameD: {
|
||||
target: 0x10020215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
DelayA: {
|
||||
target: 0x10008207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
DelayB: {
|
||||
target: 0x10010207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
DelayC: {
|
||||
target: 0x10018207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
DelayD: {
|
||||
target: 0x10020207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
InputEnable1A: {
|
||||
target: 0x10008220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2A: {
|
||||
target: 0x10008221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3A: {
|
||||
target: 0x10008222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4A: {
|
||||
target: 0x10008223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5A: {
|
||||
target: 0x10008224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6A: {
|
||||
target: 0x10008225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7A: {
|
||||
target: 0x10008226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8A: {
|
||||
target: 0x10008227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable1B: {
|
||||
target: 0x10010220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2B: {
|
||||
target: 0x10010221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3B: {
|
||||
target: 0x10010222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4B: {
|
||||
target: 0x10010223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5B: {
|
||||
target: 0x10010224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6B: {
|
||||
target: 0x10010225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7B: {
|
||||
target: 0x10010226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8B: {
|
||||
target: 0x10010227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable1C: {
|
||||
target: 0x10018220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2C: {
|
||||
target: 0x10018221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3C: {
|
||||
target: 0x10018222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4C: {
|
||||
target: 0x10018223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5C: {
|
||||
target: 0x10018224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6C: {
|
||||
target: 0x10018225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7C: {
|
||||
target: 0x10018226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8C: {
|
||||
target: 0x10018227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable1D: {
|
||||
target: 0x10020220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2D: {
|
||||
target: 0x10020221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3D: {
|
||||
target: 0x10020222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4D: {
|
||||
target: 0x10020223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5D: {
|
||||
target: 0x10020224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6D: {
|
||||
target: 0x10020225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7D: {
|
||||
target: 0x10020226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8D: {
|
||||
target: 0x10020227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputGainA: {
|
||||
target: 0x10008206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
InputGainB: {
|
||||
target: 0x10010206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
InputGainC: {
|
||||
target: 0x10018206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
InputGainD: {
|
||||
target: 0x10020206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
SpeakerIDA: {
|
||||
target: 0x10008214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDB: {
|
||||
target: 0x10010214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDC: {
|
||||
target: 0x10018214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDD: {
|
||||
target: 0x10020214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDList: {
|
||||
target: 0x10010214,
|
||||
method: 0x00040005,
|
||||
format: 'stringArray',
|
||||
},
|
||||
OutputMode: {
|
||||
target: 0x10000111,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
OutputModeList: {
|
||||
target: 0x10000111,
|
||||
method: 0x00040005,
|
||||
format: 'stringArray',
|
||||
},
|
||||
MuteA: {
|
||||
target: 0x10008205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
MuteB: {
|
||||
target: 0x10010205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
MuteC: {
|
||||
target: 0x10018205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
MuteD: {
|
||||
target: 0x10020205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
};
|
||||
device.data.oca = structuredClone(OCAStructure);
|
||||
|
||||
const ocaKeys = Object.keys(device.data.oca);
|
||||
ocaIDs = [];
|
||||
for (let i = 0; i < ocaKeys.length; i++) {
|
||||
const key = device.data.oca[ocaKeys[i]];
|
||||
device.data.ocaKeys = Object.keys(device.data.oca);
|
||||
device.data.ocaIDs = [];
|
||||
|
||||
for (let i = 0; i < device.data.ocaKeys.length; i++) {
|
||||
const key = device.data.oca[device.data.ocaKeys[i]];
|
||||
key.parameters = [0];
|
||||
ocaIDs[i] = key;
|
||||
device.data.ocaIDs[i] = key;
|
||||
ocaCommandRequest(i, key.target, key.method, device);
|
||||
ocaSubscriptionRequest(i, key.target, key.method, device);
|
||||
}
|
||||
console.log(device.data.oca);
|
||||
};
|
||||
|
||||
exports.data = function data(_device, _buffer) {
|
||||
const device = _device;
|
||||
|
||||
if (_buffer[0] === 0x3b && _buffer[1] === 0 && _buffer[2] === 1) {
|
||||
let start = 0;
|
||||
while (start < _buffer.length - 3) {
|
||||
@@ -359,24 +53,21 @@ exports.data = function data(_device, _buffer) {
|
||||
|
||||
if (paramCount) {
|
||||
let paramsStart = 20;
|
||||
const ocaObj = device.data.ocaIDs[messageHandle];
|
||||
|
||||
ocaIDs[messageHandle].parameters = [];
|
||||
ocaObj.parameters = [];
|
||||
|
||||
while (paramsStart < message.length) {
|
||||
let paramLength = 0;
|
||||
let param;
|
||||
|
||||
if (
|
||||
ocaIDs[messageHandle].format === 'int16' ||
|
||||
ocaIDs[messageHandle].format === 'float' ||
|
||||
ocaIDs[messageHandle].format === 'int32'
|
||||
) {
|
||||
if (ocaObj.format === 'int16' || ocaObj.format === 'float' || ocaObj.format === 'int32') {
|
||||
paramLength = 2;
|
||||
param = message.slice(paramsStart, paramsStart + paramLength + 2);
|
||||
} else if (ocaIDs[messageHandle].format === 'int8') {
|
||||
} else if (ocaObj.format === 'int8') {
|
||||
paramLength = 1;
|
||||
param = message.slice(paramsStart, paramsStart + paramLength);
|
||||
} else if (ocaIDs[messageHandle].format === 'stringArray') {
|
||||
} else if (ocaObj.format === 'stringArray') {
|
||||
const nextBreak = message.indexOf(0x00, paramsStart + 1);
|
||||
|
||||
if (nextBreak < 0) {
|
||||
@@ -390,25 +81,26 @@ exports.data = function data(_device, _buffer) {
|
||||
param = message.slice(paramsStart + 2, paramsStart + 2 + paramLength);
|
||||
}
|
||||
|
||||
if (ocaIDs[messageHandle].format === 'string') {
|
||||
ocaIDs[messageHandle].parameters.push(param.toString());
|
||||
} else if (ocaIDs[messageHandle].format === 'stringArray') {
|
||||
ocaIDs[messageHandle].parameters.push(param.toString());
|
||||
} else if (ocaIDs[messageHandle].format === 'float') {
|
||||
ocaIDs[messageHandle].parameters.push(param.readFloatBE(0));
|
||||
} else if (ocaIDs[messageHandle].format === 'int16') {
|
||||
ocaIDs[messageHandle].parameters.push(param.readInt16BE(0));
|
||||
} else if (ocaIDs[messageHandle].format === 'int8') {
|
||||
ocaIDs[messageHandle].parameters.push(param.readInt8(0));
|
||||
} else if (ocaIDs[messageHandle].format === 'int32') {
|
||||
ocaIDs[messageHandle].parameters.push(param.readInt32BE(0));
|
||||
if (ocaObj.format === 'string') {
|
||||
ocaObj.parameters.push(param.toString());
|
||||
} else if (ocaObj.format === 'stringArray') {
|
||||
ocaObj.parameters.push(param.toString());
|
||||
} else if (ocaObj.format === 'float') {
|
||||
ocaObj.parameters.push(param.readFloatBE(0));
|
||||
} else if (ocaObj.format === 'int16') {
|
||||
ocaObj.parameters.push(param.readInt16BE(0));
|
||||
} else if (ocaObj.format === 'int8') {
|
||||
ocaObj.parameters.push(param.readInt8(0));
|
||||
} else if (ocaObj.format === 'int32') {
|
||||
ocaObj.parameters.push(param.readInt32BE(0));
|
||||
} else {
|
||||
ocaIDs[messageHandle].parameters.push(param);
|
||||
ocaObj.parameters.push(param);
|
||||
}
|
||||
|
||||
this.deviceInfoUpdate(device, 'status', 'ok');
|
||||
paramsStart += paramLength + 2;
|
||||
}
|
||||
}
|
||||
device.draw();
|
||||
}
|
||||
|
||||
start += messageLength;
|
||||
@@ -418,7 +110,6 @@ exports.data = function data(_device, _buffer) {
|
||||
|
||||
exports.heartbeat = function heartbeat(device) {
|
||||
device.send(Buffer.from('3b00010000000b0400010001', 'hex'));
|
||||
device.draw();
|
||||
};
|
||||
|
||||
function ocaCommandRequest(handle, target, method, device) {
|
||||
@@ -440,3 +131,311 @@ function ocaSubscriptionRequest(handle, target, method, device) {
|
||||
device.send(buf);
|
||||
return buf;
|
||||
}
|
||||
|
||||
const OCAStructure = {
|
||||
ModelDescription: {
|
||||
target: 0x1000010d,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
PwrOn: {
|
||||
target: 0x10000100,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SubNet: {
|
||||
target: 0x10000109,
|
||||
method: 0x00050001,
|
||||
format: 'int32',
|
||||
},
|
||||
DeviceId: {
|
||||
target: 0x10000108,
|
||||
method: 0x00050001,
|
||||
format: 'int32',
|
||||
},
|
||||
DeviceType: {
|
||||
target: 0x10000034,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
FirmwareRevision: {
|
||||
target: 0x10000031,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameA: {
|
||||
target: 0x10008215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameB: {
|
||||
target: 0x10010215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameC: {
|
||||
target: 0x10018215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
ChannelNameD: {
|
||||
target: 0x10020215,
|
||||
method: 0x00050001,
|
||||
format: 'string',
|
||||
},
|
||||
DelayA: {
|
||||
target: 0x10008207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
DelayB: {
|
||||
target: 0x10010207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
DelayC: {
|
||||
target: 0x10018207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
DelayD: {
|
||||
target: 0x10020207,
|
||||
method: 0x00050001,
|
||||
format: 'float',
|
||||
},
|
||||
InputEnable1A: {
|
||||
target: 0x10008220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2A: {
|
||||
target: 0x10008221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3A: {
|
||||
target: 0x10008222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4A: {
|
||||
target: 0x10008223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5A: {
|
||||
target: 0x10008224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6A: {
|
||||
target: 0x10008225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7A: {
|
||||
target: 0x10008226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8A: {
|
||||
target: 0x10008227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable1B: {
|
||||
target: 0x10010220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2B: {
|
||||
target: 0x10010221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3B: {
|
||||
target: 0x10010222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4B: {
|
||||
target: 0x10010223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5B: {
|
||||
target: 0x10010224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6B: {
|
||||
target: 0x10010225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7B: {
|
||||
target: 0x10010226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8B: {
|
||||
target: 0x10010227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable1C: {
|
||||
target: 0x10018220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2C: {
|
||||
target: 0x10018221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3C: {
|
||||
target: 0x10018222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4C: {
|
||||
target: 0x10018223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5C: {
|
||||
target: 0x10018224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6C: {
|
||||
target: 0x10018225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7C: {
|
||||
target: 0x10018226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8C: {
|
||||
target: 0x10018227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable1D: {
|
||||
target: 0x10020220,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable2D: {
|
||||
target: 0x10020221,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable3D: {
|
||||
target: 0x10020222,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable4D: {
|
||||
target: 0x10020223,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable5D: {
|
||||
target: 0x10020224,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable6D: {
|
||||
target: 0x10020225,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable7D: {
|
||||
target: 0x10020226,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputEnable8D: {
|
||||
target: 0x10020227,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
InputGainA: {
|
||||
target: 0x10008206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
InputGainB: {
|
||||
target: 0x10010206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
InputGainC: {
|
||||
target: 0x10018206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
InputGainD: {
|
||||
target: 0x10020206,
|
||||
method: 0x00040001,
|
||||
format: 'float',
|
||||
},
|
||||
SpeakerIDA: {
|
||||
target: 0x10008214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDB: {
|
||||
target: 0x10010214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDC: {
|
||||
target: 0x10018214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDD: {
|
||||
target: 0x10020214,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
SpeakerIDList: {
|
||||
target: 0x10010214,
|
||||
method: 0x00040005,
|
||||
format: 'stringArray',
|
||||
},
|
||||
OutputMode: {
|
||||
target: 0x10000111,
|
||||
method: 0x00040001,
|
||||
format: 'int16',
|
||||
},
|
||||
OutputModeList: {
|
||||
target: 0x10000111,
|
||||
method: 0x00040005,
|
||||
format: 'stringArray',
|
||||
},
|
||||
MuteA: {
|
||||
target: 0x10008205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
MuteB: {
|
||||
target: 0x10010205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
MuteC: {
|
||||
target: 0x10018205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
MuteD: {
|
||||
target: 0x10020205,
|
||||
method: 0x00040001,
|
||||
format: 'int8',
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user