Excerpt from API this.parseCmd = function(item, index) {
var arg = item["commandText"].trim().split(' ');
log("--"+item["commandText"]);
switch (arg[0].toLowerCase()) {
case _cmdPLAYSXLIST: // !enchantR --playsxlist listName
var valid = this.validateArgs(arg,1, "Usage => !enchantR --playsxlist [listName]");
if (!valid) {break;}
var listName = "";
var listId = "";
for(i=1;i<arg.length;i++) {
listName += arg[i]+" ";
}
responseOut = "/w GM Invalid Playlist";
var folders = JSON.parse(Campaign().get('_jukeboxfolder'));
for (var p in folders) {
if(folders[p]['n'] && folders[p]['n'].toLowerCase() === listName.toLowerCase().trim()) { listId = folders[p]['id']; }
}
if (listId.length>0) { playJukeboxPlaylist(listId); } else { stopJukeboxPlaylist(); }
log("playList = "+listId);
if (listId.length>0) {
responseOut = "/w GM Starting Playlist: "+listName;
}
log("--leaving sync call");
this.output.push({"speakAs":this.speakAs,"response":responseOut});
item["processed"]=true;
break;
case _cmdSTOPSOUND: // !enchantR --stopsound
var sxTracks = findObjs({ _type: 'jukeboxtrack', });
_.each(sxTracks, track => {
var trackObj = JSON.parse(JSON.stringify(track));
log(trackObj.title + ": playing = "+trackObj.playing+", softstop = "+ trackObj.softstop);
if (trackObj.playing) {
log("Playing: " + trackObj.title+ " ["+trackObj._id+"]");
var trackPlay = getObj("jukeboxtrack", trackObj._id)
trackPlay.set({playing:false,softstop:true,loop:false});
}
});
stopJukeboxPlaylist();
log("--leaving sync call");
this.output.push({"speakAs":this.speakAs,"response":"/w GM Stopping Music"});
item["processed"]=true;
break;
...
}
}