Hey there, I have 2 API Scripts one is creating a graphic, the other uses the event add:graphic . The first time after saving the script using add:graphic it is triggerd properly. Afterwards it is not triggered anymore. Creating a graphic by dragging it in from the journal works fine. I tested it with one script. Same result. Here is my testscript: What am I doing wrong? var API_Meta = API_Meta || {}; //eslint-disable-line no-var
var TestApi = TestApi || (function () {
'use strict';
//Update your API Command
var apiCall = '!testapi';
var generateToken = function () {
var characterId = '-N-C69c9o6i9kSTpH1tW';
var pageId = Campaign().get("playerpageid");
var character = getObj("character", characterId);
const imgsrc = getCleanImgsrc(character.get('avatar'));
createObj('graphic', {
_type: "graphic",
_subtype: "token",
_pageid: pageId,
represents: characterId,
layer: "objects",
isdrawing: false,
imgsrc: imgsrc,
top: 210,
left: 210,
width: 70,
height: 70,
});
}
var testAddGraphic = function (obj) {
log(obj);
}
var getCleanImgsrc = function (imgsrc) {
var parts = imgsrc.match(/(.*\/images\/.*)(thumb|med|original|max)([^\?]*)(\?[^?]+)?$/);
if (parts) {
return parts[1] + 'thumb' + parts[3] + (parts[4] ? parts[4] : `?${Math.round(Math.random() * 9999999)}`);
}
return;
}
//Event Handlers
var handleInput = function (msg) {
if (msg.type !== "api") {
return;
}
if (!msg.content.startsWith(apiCall)) {
return;
}
generateToken();
}
var checkInstall = function () { }
var registerEventHandlers = function () {
on('chat:message', handleInput);
on('add:graphic', testAddGraphic);;
};
return {
CheckInstall: checkInstall,
RegisterEventHandlers: registerEventHandlers
};
}());
on("ready", function () {
'use strict';
TestApi.CheckInstall();
TestApi.RegisterEventHandlers();
});