Skip to content

Commit

Permalink
refactor(api)!: remove plugin data (#263)
Browse files Browse the repository at this point in the history
* refactor(api)!: remove plugin data

BREAKING CHANGE: Removes plugin data from the API, breaking platform
bootstrap creation methods.

* chore: improve AUTHORS file header
  • Loading branch information
joshuasing authored Aug 31, 2023
1 parent 8801722 commit 160b2a8
Show file tree
Hide file tree
Showing 33 changed files with 72 additions and 512 deletions.
5 changes: 2 additions & 3 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# The Chameleon Framework Authors
#
# This is a list of entities who own copyright to portions of Chameleon's code.
# Chameleon Framework Copyright Owners (the "Chameleon Framework Authors")
# This is a list of entities who own copyright for portions of this project's code.
#
# Acceptable formats for names in this file:
# Organisation Name
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,4 @@ If you have spotted a problem or mistake in someone else's pull request, feel fr
## Supporting the authors
If you wish to support this project in a way other than reporting bugs, suggesting ideas, or contributing code, the authors accept donations via GitHub Sponsors and Ko-fi, these donations go towards allowing the authors to spend more time working on this project, or paying for infrastructure for the author's personal projects.
- [Joshua (joshuasing)](https://github.com/sponsors/joshuasing)
- [Luis (SLLCoding)](https://ko-fi.com/SLLCoding)
- [Luis (SLLCoding)](https://ko-fi.com/SLLCoding)
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ address security vulnerabilities that affect the most recent version of this fra

| Version | Supported |
|---------------------|--------------------|
| `0.15.0-SNAPSHOT` | :white_check_mark: |
| < `0.15.0-SNAPSHOT` | :x: |
| `0.16.0-SNAPSHOT` | :white_check_mark: |
| < `0.16.0-SNAPSHOT` | :x: |

### Reporting a Vulnerability

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,10 @@
package dev.hypera.chameleon.annotations.processing.generation;

import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.CodeBlock;
import com.squareup.javapoet.ParameterizedTypeName;
import com.squareup.javapoet.TypeName;
import dev.hypera.chameleon.ChameleonPluginData;
import dev.hypera.chameleon.annotations.Plugin;
import dev.hypera.chameleon.annotations.exception.ChameleonAnnotationException;
import java.util.Arrays;
import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.TypeElement;
import org.jetbrains.annotations.ApiStatus.NonExtendable;
Expand All @@ -56,21 +53,6 @@ public abstract class Generator {
*/
public abstract void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull ProcessingEnvironment env) throws ChameleonAnnotationException;


protected @NotNull CodeBlock createPluginData(@NotNull Plugin data) {
return CodeBlock.builder().add(
"$T pluginData = $T.builder($S, $S).description($S).url($S).authors($T.asList($L)).build()",
ChameleonPluginData.class,
ChameleonPluginData.class,
data.name().isEmpty() ? data.id() : data.name(),
data.version(),
data.description(),
data.url(),
Arrays.class,
data.authors().length > 0 ? '"' + String.join("\",\"", data.authors()) + '"' : ""
).build();
}

protected @NotNull ParameterizedTypeName generic(@NotNull ClassName clazz, @NotNull TypeName... arguments) {
return ParameterizedTypeName.get(clazz, arguments);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
MethodSpec constructorSpec = MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.create($T.class, this, $N).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.bukkit", "BukkitChameleon"), plugin, "pluginData")
.addStatement("this.$N = $T.create($T.class, this).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.bukkit", "BukkitChameleon"), plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("getLogger().log($T.SEVERE, \"An error occurred while loading Chameleon\", $N)", Level.class, "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,7 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.create($T.class, this, $N).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.bungeecord", "BungeeCordChameleon"), plugin, "pluginData")
.addStatement("this.$N = $T.create($T.class, this).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.bungeecord", "BungeeCordChameleon"), plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("getLogger().log($T.SEVERE, \"An error occurred while loading Chameleon\", $N)", Level.class, "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
MethodSpec constructorSpec = MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.createFoliaBootstrap($T.class, this, $N).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.folia", "FoliaChameleon"), plugin, "pluginData")
.addStatement("this.$N = $T.createFoliaBootstrap($T.class, this).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.folia", "FoliaChameleon"), plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("getLogger().log($T.SEVERE, \"An error occurred while loading Chameleon\", $N)", Level.class, "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
MethodSpec constructorSpec = MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.create($T.class, this, $N).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.minestom", "MinestomChameleon"), plugin, "pluginData")
.addStatement("this.$N = $T.create($T.class, this).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.minestom", "MinestomChameleon"), plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("getLogger().error(\"An error occurred while loading Chameleon\", $N)", "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,7 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.create($T.class, this, $N).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.nukkit", "NukkitChameleon"), plugin, "pluginData")
.addStatement("this.$N = $T.create($T.class, this).load()", CHAMELEON_VAR, clazz("dev.hypera.chameleon.platform.nukkit", "NukkitChameleon"), plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("getLogger().error(\"An error occurred while loading Chameleon\", $N)", "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,8 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
.addStatement("this.$N = $N", PLUGIN_CONTAINER_VAR, PLUGIN_CONTAINER_VAR)
.addStatement("this.$N = $N", LOGGER_VAR, LOGGER_VAR)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.create($T.class, this, $N).load()", CHAMELEON_VAR,
spongeChameleon, plugin, "pluginData")
.addStatement("this.$N = $T.create($T.class, this).load()", CHAMELEON_VAR,
spongeChameleon, plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("this.$N.error(\"An error occurred while loading Chameleon\", $N)", LOGGER_VAR, "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,8 @@ public void generate(@NotNull Plugin data, @NotNull TypeElement plugin, @NotNull
.addStatement(SET_STATEMENT, LOGGER_VAR, LOGGER_VAR)
.addStatement(SET_STATEMENT, DATA_DIRECTORY_VAR, DATA_DIRECTORY_VAR)
.beginControlFlow("try")
.addStatement(createPluginData(data))
.addStatement("this.$N = $T.create($T.class, this, $N).load()", CHAMELEON_VAR,
velocityChameleon, plugin, "pluginData")
.addStatement("this.$N = $T.create($T.class, this).load()", CHAMELEON_VAR,
velocityChameleon, plugin)
.nextControlFlow("catch ($T ex)", ChameleonInstantiationException.class)
.addStatement("this.$N.error(\"An error occurred while loading Chameleon\", $N)", LOGGER_VAR, "ex")
.addStatement("throw new $T($N)", clazz("dev.hypera.chameleon.exception", "ChameleonRuntimeException"), "ex")
Expand Down
13 changes: 1 addition & 12 deletions api/src/main/java/dev/hypera/chameleon/Chameleon.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,11 @@ public abstract class Chameleon {
private final @NotNull ChameleonLogger internalLogger;

private final @NotNull ChameleonPlugin plugin;
private final @NotNull ChameleonPluginData pluginData;
private final @NotNull EventBus eventBus;
private final @NotNull ExtensionManager extensionManager;

@Internal
protected Chameleon(@NotNull Class<? extends ChameleonPlugin> plugin, @NotNull ChameleonPluginData pluginData, @NotNull EventBus eventBus, @NotNull ChameleonLogger logger, @NotNull ExtensionMap extensions) throws ChameleonInstantiationException {
protected Chameleon(@NotNull Class<? extends ChameleonPlugin> plugin, @NotNull EventBus eventBus, @NotNull ChameleonLogger logger, @NotNull ExtensionMap extensions) throws ChameleonInstantiationException {
Preconditions.checkNotNull("plugin", plugin);
Preconditions.checkNotNull("pluginData", plugin);
Preconditions.checkNotNull("eventBus", eventBus);
Expand All @@ -72,7 +71,6 @@ protected Chameleon(@NotNull Class<? extends ChameleonPlugin> plugin, @NotNull C
this.logger = logger;
this.internalLogger = new ChameleonInternalLogger(logger);
this.plugin = plugin.getConstructor(Chameleon.class).newInstance(this);
this.pluginData = pluginData;
this.eventBus = eventBus;
this.extensionManager = new ExtensionManagerImpl(this, extensions);
} catch (Exception ex) {
Expand Down Expand Up @@ -114,15 +112,6 @@ public void onDisable() {
return this.plugin;
}

/**
* Get the plugin data.
*
* @return the plugin data.
*/
public final @NotNull ChameleonPluginData getData() {
return this.pluginData;
}

/**
* Get the logger instance.
*
Expand Down
9 changes: 0 additions & 9 deletions api/src/main/java/dev/hypera/chameleon/ChameleonPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,4 @@ public void onLoad() {
*/
public abstract void onDisable();

/**
* Get Chameleon plugin data.
*
* @return the stored Chameleon plugin data.
*/
public final @NotNull ChameleonPluginData getData() {
return this.chameleon.getData();
}

}
154 changes: 0 additions & 154 deletions api/src/main/java/dev/hypera/chameleon/ChameleonPluginData.java

This file was deleted.

Loading

0 comments on commit 160b2a8

Please sign in to comment.