Skip to content

Useful script #3

@ReinforceZwei

Description

@ReinforceZwei

Convert a C# class file to MCC ChatBot script.

let fs = require("fs");

function extractClass(content){
    let start = content.search("class");
    let lines = content.substring(start);
    let bCount = 0;
    let included = false;
    let endIdx;

    for (let i = 0; i < lines.length; i++){
        if (lines[i] === "{") {bCount++; continue;}
        if (lines[i] === "}") {bCount--; continue;}
        if (bCount > 0) included = true;
        if (included && bCount == 0) {endIdx = i; break;}
    }

    //console.log(endIdx);

    lines = lines.substring(0, endIdx);
    //console.log(lines);

    let linesArr = lines.split(/[\r\n]+/);
    let newContent = [];

    linesArr.forEach(l => {
        if (l.startsWith("    "))
            newContent.push(l.substring(4));
        else
            newContent.push(l);
    });
    return newContent.join("\r\n");
}

function extractClassName(classString){
    return /class (\w+) :/.exec(classString)[1];
}

function test(){
    let lines = fs.readFileSync("a.txt").toString();
    let c = extractClass(lines);
    let converted = `//MCCScript 1.0
MCC.LoadBot(new ${extractClassName(c)}());
//MCCScript Extensions
${c}`;
    fs.writeFileSync("new.cs", converted);
}

//test();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions