Package com.me4502.util

Source Code of com.me4502.util.GenerateWikiICList

package com.me4502.util;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import org.apache.commons.lang.StringUtils;

import com.sk89q.craftbook.mechanics.ic.IC;
import com.sk89q.craftbook.mechanics.ic.ICFamily;
import com.sk89q.craftbook.mechanics.ic.ICManager;
import com.sk89q.craftbook.mechanics.ic.RegisteredICFactory;
import com.sk89q.craftbook.mechanics.ic.RestrictedIC;
import com.sk89q.craftbook.mechanics.ic.SelfTriggeredIC;
import com.sk89q.craftbook.mechanics.ic.plc.PlcFactory;
import com.sk89q.craftbook.util.developer.ExternalUtilityBase;

public class GenerateWikiICList extends ExternalUtilityBase {

    public GenerateWikiICList (String[] args) {
        super(args);
    }

    @Override
    public void generate(String[] args) {
        try {
            File file = new File(getGenerationFolder(), "ICList.txt");
            if(!file.exists())
                file.createNewFile();
            else {
                file.delete();
                file.createNewFile();
            }

            PrintWriter writer = new PrintWriter(file, "UTF-8");

            writer.println("{| class=\"wiki-table sortable\"");
            writer.println("! IC ID");
            writer.println("! Shorthand");
            writer.println("! Allows ST");
            writer.println("! Families");
            writer.println("! Name");
            writer.println("! Description");
            for(RegisteredICFactory ric : ICManager.inst().getICList()) {
                if(ric.getFactory() instanceof PlcFactory)
                    continue;

                boolean isSelfTriggering = false;
                if(SelfTriggeredIC.class.isAssignableFrom(ric.getFactory().getClass().getEnclosingClass()))
                    isSelfTriggering = true;

                boolean isRestricted = false;
                if(RestrictedIC.class.isAssignableFrom(ric.getFactory().getClass()))
                    isRestricted = true;

                String family = "";
                for(ICFamily fam : ric.getFamilies()) {
                    if(!family.isEmpty())
                        family = family + " ";
                    family = family + "[[../IC families/#" + StringUtils.replace(fam.getClass().getSimpleName(), "Family", "") + "|" + StringUtils.replace(fam.getClass().getSimpleName(), "Family", "") + "]]";
                }

                IC ic = ric.getFactory().create(null);

                if(ric.getShorthand().length() > (isSelfTriggering && !((SelfTriggeredIC) ic).isAlwaysST() ? 11 : 14))
                    System.err.println("Shorthand " + ric.getShorthand() + " is longer than max chars!");

                if(ric.getFactory().getShortDescription().equalsIgnoreCase("No Description."))
                    System.out.println("Missing short description for: " + ric.getId());

                writer.println("|-");
                writer.println("| [[../" + ric.getId() + "/]] || " + ric.getShorthand() + " || " + String.valueOf(isSelfTriggering) + " || " + family + " || " + ic.getTitle() + (isRestricted ? "<strong style=\"color: red\">*</strong>" : "") + " || " + ric.getFactory().getShortDescription());
            }

            writer.println("|}");
            writer.println("<strong style=\"color: red\">*</strong>Requires the permission '''craftbook.ic.restricted.*''' or the respective '''craftbook.ic.mc''XXXX''''' permission.");

            writer.close();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
TOP

Related Classes of com.me4502.util.GenerateWikiICList

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.