on('ready', () => { const multiplyTurn = (token_id,count) => { let to = JSON.parse(Campaign().get('turnorder')||'[]'); let turn = {pr:-10000}; to = to.filter((o) => { if(o.id !== token_id){ return true; } if( o.id === token_id ) { if(o.pr>turn.pr) { turn = o; } } return false; }); if(turn.id){ [...Array(parseInt(count)).keys()].forEach((n)=>{ to.push(Object.assign({},turn,{pr:(parseInt(turn.pr)-(100*n))})); }); } Campaign().set({ turnorder: JSON.stringify(to.sort((a,b)=>parseFloat(b.pr)-parseFloat(a.pr))) }); }; on('chat:message', (msg) => { if( 'api'===msg.type && /^!dup-turn/.test(msg.content) ){ let args = msg.content.split(/\s+/); let count = args[1]||2; msg.selected.forEach((m)=>multiplyTurn(m._id,count)); } }); });