Skip to content

Instantly share code, notes, and snippets.

@trandaison
Last active July 22, 2024 04:13
Show Gist options
  • Save trandaison/40b1d83618ae8e3d2da59df8c395093a to your computer and use it in GitHub Desktop.
Save trandaison/40b1d83618ae8e3d2da59df8c395093a to your computer and use it in GitHub Desktop.
Get full version of StarUML

Note: This is the guide for v 2.x.

For the v3, please follow this url: https://blog.csdn.net/sam_shan/article/details/80585240 Thanks @liy-cn for contributing.

StarUML

Download: StarUML.io

Crack

Source: jorgeancal

After installing StartUML successfully, modify LicenseManagerDomain.js as follow:

/**
 * File name: LicenseManagerDomain.js
 * Mac OS: /Applications/StarUML.app/Contents/www/license/node/
 * Linux: /opt/staruml/www/license/node/
 */

(function () {
    "use strict";
 
    var NodeRSA = require('node-rsa');
 
    function validate(PK, name, product, licenseKey) {
        return{
           name: "sontd",
           product: "StarUML",
           licenseType: "vip",
           quantity: "unlimited",
           licenseKey: "no, thanks!"
        };
    }
 
    function init(domainManager) {
        if (!domainManager.hasDomain("LicenseManager")) {
            domainManager.registerDomain("LicenseManager", {major: 0, minor: 1});
        }
        domainManager.registerCommand(
            "LicenseManager", // domain name
            "validate",       // command name
            validate,         // command handler function
            false,            // this command is synchronous in Node ("false" means synchronous")
            "Validate License",
            [
                {
                    name: "PK",
                    type: "string",
                    description: "PK"
                },
                {
                    name: "name",
                    type: "string",
                    description: "name of license owner"
                },
                {
                    name: "product",
                    type: "string",
                    description: "product name"
                },
                {
                    name: "licenseKey",
                    type: "string",
                    description: "license key"
                }
            ],
            [
                {
                    name: "result", // return values
                    type: "object",
                    description: "result"
                }
            ]
        );
    }
 
    exports.init = init;
 
}());

Now, open it and go to Help > Enter License and you have to write the name and the licence key which you have written on LicenseManagerDomain.js. In this example would be the next:

name: "sontd"
License Key: "no, thanks!"

Enjoy it!

@MinskThD
Copy link

MinskThD commented Jun 5, 2024

Hello, my language is not English, so I will use a translator.
I also had this problem and I was able to solve it.
This worked for me in Start UML v6.1.1
What you have to do is to enter src/engine/diagram-export.js.

change this in the PNG and JPEG section

// Draw watermark if application is not registered
  if (app.licenseManager.getStatus() !== true) {
    diagram.drawWatermark(
      canvas,
      canvasElement.width,
      canvasElement.height,
      70,
      12,
      "UNREGISTERED",
    );
  } else if (app.licenseManager.getLicenseInfo().licenseType === "STD") {
    const dgmType = diagram.constructor.name;
    if (app.licenseManager.isProDiagram(dgmType)) {
      diagram.drawWatermark(
        canvas,
        canvasElement.width,
        canvasElement.height,
        45,
        12,
        "PRO ONLY",
      );
    }
  }

to

// Draw watermark if application is not registered
  if (app.licenseManager.getStatus() !== true) {
    diagram.drawWatermark(
      canvas,
      canvasElement.width,
      canvasElement.height,
      45,
      12,
      "PRO ONLY",
    );
  } 

This also needs to be changed in the SVG part

// Draw watermark if application is not registered
  if (app.licenseManager.getStatus() !== true) {
    diagram.drawWatermark(
      canvas,
      boundingBox.getWidth(),
      boundingBox.getHeight(),
      70,
      12,
      "UNREGISTERED",
    );
  } else if (app.licenseManager.getLicenseInfo().licenseType === "STD") {
    const dgmType = diagram.constructor.name;
    if (app.licenseManager.isProDiagram(dgmType)) {
      diagram.drawWatermark(
        canvas,
        boundingBox.getWidth(),
        boundingBox.getHeight(),
        45,
        12,
        "PRO ONLY",
      );
    }
  }

to

// Draw watermark if application is not registered
  if (app.licenseManager.getStatus() !== true) {
    diagram.drawWatermark(
      canvas,
      boundingBox.getWidth(),
      boundingBox.getHeight(),
      45,
      12,
      "PRO ONLY",
    );
  }

And you also need to change the PDF part

// Draw watermark if application is not registered
    if (app.licenseManager.getStatus() !== true) {
      drawWatermarkPDF(doc, 70, 12, "UNREGISTERED");
    } else if (app.licenseManager.getLicenseInfo().licenseType === "STD") {
      const dgmType = diagram.constructor.name;
      if (app.licenseManager.isProDiagram(dgmType)) {
        drawWatermarkPDF(doc, 45, 12, "PRO ONLY");
      }
    }

to

    // Draw watermark if application is not registered
    if (app.licenseManager.getStatus() !== true) {
        drawWatermarkPDF(doc, 45, 12, "PRO ONLY");
      }

I'm new to GitHub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment