Use DSO Sharp instead!
A DSO decompiler for Blockland.
npm install dso.js
For client-side, use with the buffer
package.
For server-side, you can just use the native Buffer
class.
import { Buffer } from 'buffer/';
import { decompiler } from 'dso.js';
// An HTML <input> element with the type "file" and an ID of "fileUpload"
document.getElementById ('fileUpload').onchange = function ( event )
{
if ( event.target.files.length <= 0 )
{
return;
}
const file = event.target.files[0];
const reader = new FileReader ();
reader.readAsArrayBuffer (file);
reader.onload = function ( readerEvent )
{
const buffer = Buffer.from (readerEvent.target.result);
let codeString;
try
{
codeString = decompiler.decompileDSO (buffer);
}
catch ( error )
{
console.error ('Decompiler Error:', error);
return;
}
console.log (codeString);
};
};
const fs = require ('fs');
const { decompiler } = require ('dso.js');
fs.readFile ('./myFile.cs.dso', ( error, buffer ) =>
{
if ( error )
{
console.error (error);
return;
}
let codeString;
try
{
codeString = decompiler.decompileDSO (buffer);
}
catch ( decompilerError )
{
console.error ('[!] Decompiler Error:', decompilerError);
return;
}
fs.writeFileSync ('./myFile.cs', codeString);
});
The optional second argument of decompileDSO
is an options object.
The only one at the moment is the outputArray
boolean, which is false
by default. When set to true
, it makes decompileDSO
output a nested code array instead of a string.
Enable the option like this:
decompiler.decompileDSO (buffer, { outputArray: true });