Skip to content

Commit

Permalink
🐛 Fixed annotations being allowed on elements that aren't classes
Browse files Browse the repository at this point in the history
  • Loading branch information
itsTyrion committed Dec 2, 2023
1 parent 6273bcf commit 10d6f32
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 18 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {
}

group 'de.itsTyrion'
version '1.1.1'
version '1.1.2'

dependencies {
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/de/itsTyrion/pluginAnnotation/BungeePlugin.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package de.itsTyrion.pluginAnnotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
public @interface BungeePlugin {
String name();
String[] depends() default {};
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/de/itsTyrion/pluginAnnotation/Plugin.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package de.itsTyrion.pluginAnnotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
public @interface Plugin {
String name();
String[] depend() default {};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,30 +28,26 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
}

for (val element : roundEnv.getElementsAnnotatedWith(Plugin.class)) {
if (element instanceof TypeElement) {
val pluginAnnotation = element.getAnnotation(Plugin.class);
val pluginAnnotation = element.getAnnotation(Plugin.class);

// fully qualified name, required for plugin.yml `main` property
val fullyQualifiedName = ((TypeElement) element).getQualifiedName().toString();
// fully qualified name, required for plugin.yml `main` property
val fullyQualifiedName = ((TypeElement) element).getQualifiedName().toString();

// `libraries` section of plugin.yml, used by Spigot-based servers to DL dependencies as needed
val librariesString = processingEnv.getOptions().get("spigotLibraries");
val libraries = librariesString != null ? librariesString.split(";") : new String[0];
// `libraries` section of plugin.yml, used by Spigot-based servers to DL dependencies as needed
val librariesString = processingEnv.getOptions().get("spigotLibraries");
val libraries = librariesString != null ? librariesString.split(";") : new String[0];

val content = generatePluginYmlContent(pluginAnnotation, fullyQualifiedName, projectVersion, libraries);
writeYml("plugin.yml", content, fullyQualifiedName);
}
val content = generatePluginYmlContent(pluginAnnotation, fullyQualifiedName, projectVersion, libraries);
writeYml("plugin.yml", content, fullyQualifiedName);
}
for (val element : roundEnv.getElementsAnnotatedWith(BungeePlugin.class)) {
if (element instanceof TypeElement) {
val pluginAnnotation = element.getAnnotation(BungeePlugin.class);
val pluginAnnotation = element.getAnnotation(BungeePlugin.class);

// fully qualified name, required for bungee.yml `main` property
val fullyQualifiedName = ((TypeElement) element).getQualifiedName().toString();
// fully qualified name, required for bungee.yml `main` property
val fullyQualifiedName = ((TypeElement) element).getQualifiedName().toString();

val content = generateBungeeYmlContent(pluginAnnotation, fullyQualifiedName, projectVersion);
writeYml("bungee.yml", content, fullyQualifiedName);
}
val content = generateBungeeYmlContent(pluginAnnotation, fullyQualifiedName, projectVersion);
writeYml("bungee.yml", content, fullyQualifiedName);
}

return true;
Expand Down

0 comments on commit 10d6f32

Please sign in to comment.