Skip to content

Commit

Permalink
Port to 1.17
Browse files Browse the repository at this point in the history
Co-authored-by: TheSilkMiner <[email protected]>
  • Loading branch information
jaredlll08 and TheSilkMiner committed Jan 8, 2022
1 parent 649dfbc commit 2b37f61
Show file tree
Hide file tree
Showing 833 changed files with 54,530 additions and 944 deletions.
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ out
*.ipr
*.iws
*.iml
.idea
.idea/*
!.idea/scopes

# gradle
build
Expand All @@ -21,3 +22,14 @@ build
eclipse
run
run_server

Common/docsOut
Fabric/docsOut
Forge/docsOut

classes
logs

fabric-game-tests.html

secrets.json
4 changes: 4 additions & 0 deletions .idea/scopes/Fabric_sources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/scopes/Forge_sources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

78 changes: 0 additions & 78 deletions Annotations/Crafttweaker_Annotation_Processors/build.gradle

This file was deleted.

46 changes: 46 additions & 0 deletions Annotations/Crafttweaker_Annotation_Processors/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
plugins {
java
eclipse
idea
`maven-publish`
}

group = "com.blamejared.crafttweaker"
version = "2.0.0" + (if (System.getenv().containsKey("BUILD_NUMBER")) ".${System.getenv("BUILD_NUMBER")}" else "")

val projectDeps = setOf(":Crafttweaker_Annotations", ":JavaAnnotations")
val baseArchiveName = "Crafttweaker_Annotation_Processors-1.17.1"

base {
archivesName.set(baseArchiveName)
}

tasks.jar {
dependsOn.addAll(projectDeps.map { "$it:compileJava" })
}

dependencies {
projectDeps.forEach { implementation(project(it)) }

implementation("org.jetbrains:annotations:22.0.0")
implementation("org.reflections:reflections:0.10.2")
implementation(files("libs/tools.jar"))
implementation("com.google.code.gson:gson:2.8.9")
}

publishing {

publications {

register("mavenJava", MavenPublication::class) {
artifactId = baseArchiveName
from(components["java"])
}

}

repositories {

maven("file://${System.getenv("local_maven")}")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public Set<String> getSupportedAnnotationTypes() {
final HashSet<String> result = new HashSet<>(2);
result.add("com.blamejared.crafttweaker_annotations.annotations.Document");
result.add("net.minecraftforge.fml.common.Mod");
result.add("net.minecraft.obfuscate.DontObfuscate");
return result;
}

Expand Down Expand Up @@ -74,6 +75,7 @@ protected void performInitialization() {
@Override
protected boolean performProcessing(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {

System.out.println(annotations);
if(roundEnv.processingOver()) {
handleLastRound();
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.blamejared.crafttweaker_annotation_processors.processors.document.DocumentRegistry;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.DocumentConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.comment.CommentConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.expansion.member.ExpansionStaticMethodConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.expansion.member.ExpansionVirtualMemberConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.member.static_member.StaticMemberConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.type.TypeConverter;
Expand All @@ -12,6 +13,7 @@
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.info.TypeName;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.info.TypePageInfo;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.header.examples.Example;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.header.examples.ExampleData;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.static_member.DocumentedStaticMembers;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.virtual_member.DocumentedVirtualMembers;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.page.DocumentationPage;
Expand All @@ -30,14 +32,16 @@ public class ExpansionConverter extends DocumentConverter {
private final ExpansionVirtualMemberConverter virtualMemberConverter;
private final TypeConverter typeConverter;
private final DocumentRegistry documentRegistry;
private final ExpansionStaticMethodConverter expansionStaticMethodConverter;

public ExpansionConverter(KnownModList knownModList, CommentConverter commentConverter, DocumentRegistry documentRegistry, TypeConverter typeConverter, StaticMemberConverter staticMemberConverter, ExpansionVirtualMemberConverter virtualMemberConverter, DocumentRegistry documentRegistry1) {
public ExpansionConverter(KnownModList knownModList, CommentConverter commentConverter, DocumentRegistry documentRegistry, TypeConverter typeConverter, StaticMemberConverter staticMemberConverter, ExpansionVirtualMemberConverter virtualMemberConverter, ExpansionStaticMethodConverter expansionStaticMethodConverter) {

super(knownModList, commentConverter);
this.staticMemberConverter = staticMemberConverter;
this.virtualMemberConverter = virtualMemberConverter;
this.typeConverter = typeConverter;
this.documentRegistry = documentRegistry;
this.expansionStaticMethodConverter = expansionStaticMethodConverter;
}

@Override
Expand All @@ -53,6 +57,7 @@ public DocumentationPage convert(TypeElement typeElement, DocumentationPageInfo

final DocumentedVirtualMembers virtualMembers = getVirtualMembers(typeElement, expandedType);
final DocumentedStaticMembers staticMembers = getStaticMembers(typeElement, pageInfo);
expansionStaticMethodConverter.convertAndAddTo(typeElement, staticMembers, pageInfo, expandedType);

return new ExpansionPage(expandedType, pageInfo, virtualMembers, staticMembers);
}
Expand Down Expand Up @@ -86,7 +91,7 @@ private TypePageInfo getPageInfo(TypePageTypeInfo expandedType) {

final TypeName zenCodeName = expandedType.getZenCodeName();
final Optional<TypePageInfo> pageInfoByName = documentRegistry.getPageInfoByName(zenCodeName);
return pageInfoByName.orElseThrow(() -> new IllegalArgumentException("Invalid Expanded Type! " + zenCodeName + " " + expandedType.getClass()));
return pageInfoByName.orElseGet(() -> new DummyTypePageInfo(zenCodeName));
}

private DocumentedStaticMembers getStaticMembers(TypeElement typeElement, DocumentationPageInfo pageInfo) {
Expand All @@ -110,7 +115,23 @@ private Example getExpandedTypeThisExample(TypeElement typeElement) {

final TypePageInfo pageInfoForType = getPageInfoForType(getExpandedType(typeElement));
final DocumentationComment classComment = pageInfoForType.getClassComment();
return classComment.getExamples().getExampleFor("this");
ExampleData examples = classComment.getExamples();
return examples.tryGetExampleFor("this").orElseGet(() -> new Example("my" + pageInfoForType.getSimpleName()));
}

}
public static class DummyTypePageInfo extends TypePageInfo {

public DummyTypePageInfo(TypeName zenCodeName) {

super("crafttweaker", "", zenCodeName);
}

@Override
public boolean shouldOutput() {

return false;
}

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
package com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.expansion.member;

import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.comment.CommentConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.comment.documentation_parameter.ReturnTypeInfoReader;
import com.blamejared.crafttweaker_annotation_processors.processors.document.conversion.converter.member.header.HeaderConverter;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.comment.DocumentationComment;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.info.DocumentationPageInfo;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.header.MemberHeader;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.static_member.DocumentedStaticMembers;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.member.static_member.StaticMethodMember;
import com.blamejared.crafttweaker_annotation_processors.processors.document.page.type.AbstractTypeInfo;
import org.openzen.zencode.java.ZenCodeType;

import javax.annotation.Nullable;
import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeParameterElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
import java.util.List;

public class ExpansionStaticMethodConverter {

private final CommentConverter commentConverter;
private final HeaderConverter headerConverter;
private final ReturnTypeInfoReader returnTypeInfoReader;

public ExpansionStaticMethodConverter(CommentConverter commentConverter, HeaderConverter headerConverter, ReturnTypeInfoReader returnTypeInfoReader) {

this.commentConverter = commentConverter;
this.headerConverter = headerConverter;
this.returnTypeInfoReader = returnTypeInfoReader;
}

public void convertAndAddTo(Element enclosingElement, DocumentedStaticMembers result, DocumentationPageInfo expansionTypeInfo, AbstractTypeInfo expandedTypeInfo) {

for(Element enclosedElement : enclosingElement.getEnclosedElements()) {
if(canConvert(enclosedElement)) {
final StaticMethodMember staticMethodMember = convertStaticMethodMember(enclosedElement, expansionTypeInfo);
result.addMethod(staticMethodMember, expandedTypeInfo);
}
}
}

private StaticMethodMember convertStaticMethodMember(Element enclosedElement, DocumentationPageInfo expandedTypeInfo) {

ExecutableElement method = (ExecutableElement) enclosedElement;
return convertMethodMember(method, expandedTypeInfo);
}

private StaticMethodMember convertMethodMember(ExecutableElement method, DocumentationPageInfo pageInfo) {

final String name = getName(method);
final MemberHeader header = getHeader(method);
final DocumentationComment comment = getComment(method, pageInfo);
final String returnTypeInfo = getReturnTypeInfo(method);

return new StaticMethodMember(name, header, comment, returnTypeInfo);
}

private boolean canConvert(Element enclosedElement) {

return enclosedElement.getAnnotation(ZenCodeType.StaticExpansionMethod.class) != null;
}

private MemberHeader getHeader(ExecutableElement enclosedElement) {

final List<? extends VariableElement> parameters = getParameters(enclosedElement);
final List<? extends TypeParameterElement> typeParameters = getTypeParameters(enclosedElement);
final TypeMirror returnType = getReturnType(enclosedElement);
return headerConverter.convertHeaderFor(parameters, typeParameters, returnType);
}

private List<? extends VariableElement> getParameters(ExecutableElement enclosedElement) {

return enclosedElement.getParameters();
}

private List<? extends TypeParameterElement> getTypeParameters(ExecutableElement enclosedElement) {

return enclosedElement.getTypeParameters();
}

private TypeMirror getReturnType(ExecutableElement enclosedElement) {

return enclosedElement.getReturnType();
}

private DocumentationComment getComment(ExecutableElement enclosedElement, DocumentationPageInfo pageInfo) {

return commentConverter.convertForMethod(enclosedElement, pageInfo);
}


@Nullable
private String getReturnTypeInfo(ExecutableElement method) {

return returnTypeInfoReader.readForMethod(method).orElse(null);
}

private String getName(ExecutableElement method) {

String customMethodName = method.getAnnotation(ZenCodeType.StaticExpansionMethod.class).value();
return customMethodName.isEmpty() ? method.getSimpleName().toString() : customMethodName;
}

}
Loading

0 comments on commit 2b37f61

Please sign in to comment.