diff --git a/D&D_5e_Reshaped/precompiled/D&D_5e.html b/D&D_5e_Reshaped/precompiled/D&D_5e.html
index 94f71194cb..e27425bf82 100644
--- a/D&D_5e_Reshaped/precompiled/D&D_5e.html
+++ b/D&D_5e_Reshaped/precompiled/D&D_5e.html
@@ -1,4 +1,7 @@
+ Import Data Present
+ Reject
+ Accept
//= include components/header/firstLine.html
//= include components/header/header.html
//= include components/header/nav.html
@@ -20,4 +23,4 @@
Wiki: https://wiki.roll20.net/DnD5e_Shaped_Character_Sheet
-
\ No newline at end of file
+
diff --git a/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js b/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js
index 46fd6ce5fb..34245182a0 100644
--- a/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js
+++ b/D&D_5e_Reshaped/precompiled/components/sheetWorkers.js
@@ -4798,18 +4798,45 @@ const sheetOpened = () => {
finalSetAttrs.version = currentVersion;
}
- if(v.import_data) {
- let importObject = JSON.parse(v.import_data);
- Object.keys(importObject).forEach( key => {
- finalSetAttrs[key] = importObject[key];
- });
- finalSetAttrs.import_data = '';
- }
-
setFinalAttrs(v, finalSetAttrs);
});
};
+const importData = () => {
+ getAttrs(['import_data'], v => {
+ if(v.import_data) {
+ const finalSetAttrs = {};
+ let importObject = JSON.parse(v.import_data);
+
+ if (importObject.npc) {
+ Object.keys(importObject.npc).forEach(key => {
+ finalSetAttrs[key] = importObject[key];
+ });
+ }
+ if(importObject.spells) {
+ importObject.spells.forEach(spell => {
+ const newRowId = generateRowID();
+ const repeatingString = `repeating_spell_${newRowId}_`;
+ Object.keys(spell).forEach(key => {
+ finalSetAttrs[`${repeatingString}${key}`] = spell[key];
+ });
+ });
+ }
+ finalSetAttrs.import_data = '';
+ finalSetAttrs.import_data_present = 'off';
+ setFinalAttrs(v, finalSetAttrs);
+ }
+ });
+};
+
+const deleteImportData = () => {
+ setFinalAttrs([], {import_data:'', import_data_present:'off'});
+};
+
+on('change:accept_import', importData);
+on('change:reject_import', deleteImportData);
+
+
on('sheet:opened', () => {
sheetOpened();
});