public PluginDescriptionFile build() throws Exception {
        PluginDescriptionFile pdf = new PluginDescriptionFile(name, version, plugin.getClass().getName());
        
        Field depend = pdf.getClass().getDeclaredField("depend");
        Field description = pdf.getClass().getDeclaredField("description");
        Field softDepend = pdf.getClass().getDeclaredField("softDepend");
        Field database = pdf.getClass().getDeclaredField("database");
        Field website = pdf.getClass().getDeclaredField("website");
        Field authors = pdf.getClass().getDeclaredField("authors");
        
        depend.setAccessible(true);
        description.setAccessible(true);
        softDepend.setAccessible(true);
        database.setAccessible(true);
        website.setAccessible(true);
        authors.setAccessible(true);
        
        if (this.depend != null) {
            depend.set(pdf, this.depend);
        }
        
        if (this.softDepend != null) {
            softDepend.set(pdf, this.softDepend);
        }
        
        if (this.database) {
            database.set(pdf, this.database);
        }
        
        if (this.website != null) {
            website.set(pdf, this.website);
        }
        
        if (this.authors != null) {
            authors.set(pdf, this.authors);
        }
        
        if (this.description != null) {
            description.set(pdf, this.description);
        }
        
        return pdf;
    }