Skip to content

Commit

Permalink
feat(folia): add extensions v2 support
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuasing committed Apr 2, 2023
1 parent 3e5824a commit c433719
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
/**
* Bukkit Chameleon bootstrap implementation.
*/
final class BukkitChameleonBootstrap extends ChameleonBootstrap<BukkitChameleon> {
public final class BukkitChameleonBootstrap extends ChameleonBootstrap<BukkitChameleon> {

private final @NotNull Class<? extends ChameleonPlugin> chameleonPlugin;
private final @NotNull JavaPlugin bukkitPlugin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,13 @@
*/
package dev.hypera.chameleon.platform.folia;

import com.google.errorprone.annotations.DoNotCall;
import dev.hypera.chameleon.ChameleonPlugin;
import dev.hypera.chameleon.ChameleonPluginData;
import dev.hypera.chameleon.event.EventBus;
import dev.hypera.chameleon.exception.instantiation.ChameleonInstantiationException;
import dev.hypera.chameleon.extension.ChameleonExtension;
import dev.hypera.chameleon.extension.ExtensionMap;
import dev.hypera.chameleon.logger.ChameleonLogger;
import dev.hypera.chameleon.platform.Platform;
import dev.hypera.chameleon.platform.PluginManager;
import dev.hypera.chameleon.platform.bukkit.BukkitChameleon;
Expand All @@ -35,7 +38,6 @@
import dev.hypera.chameleon.platform.folia.platform.FoliaPluginManager;
import dev.hypera.chameleon.platform.folia.scheduler.FoliaScheduler;
import dev.hypera.chameleon.scheduler.Scheduler;
import java.util.Collection;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.ApiStatus.Experimental;
import org.jetbrains.annotations.ApiStatus.Internal;
Expand All @@ -54,12 +56,12 @@ public final class FoliaChameleon extends BukkitChameleon {
private final @Nullable FoliaScheduler scheduler;

@Internal
FoliaChameleon(@NotNull Class<? extends ChameleonPlugin> chameleonPlugin, @NotNull Collection<ChameleonExtension<?>> extensions, @NotNull JavaPlugin foliaPlugin, @NotNull ChameleonPluginData pluginData) throws ChameleonInstantiationException {
super(chameleonPlugin, extensions, foliaPlugin, pluginData);
boolean isFolia = isFolia();
this.platform = isFolia ? new FoliaPlatform() : null;
this.pluginManager = isFolia ? new FoliaPluginManager() : null;
this.scheduler = isFolia ? new FoliaScheduler(this) : null;
FoliaChameleon(@NotNull Class<? extends ChameleonPlugin> chameleonPlugin, @NotNull JavaPlugin foliaPlugin, @NotNull ChameleonPluginData pluginData, @NotNull EventBus eventBus, @NotNull ChameleonLogger logger, @NotNull ExtensionMap extensions) throws ChameleonInstantiationException {
super(chameleonPlugin, foliaPlugin, pluginData, eventBus, logger, extensions);
boolean folia = isFolia();
this.platform = folia ? new FoliaPlatform() : null;
this.pluginManager = folia ? new FoliaPluginManager() : null;
this.scheduler = folia ? new FoliaScheduler(this) : null;
}

/**
Expand All @@ -68,8 +70,11 @@ public final class FoliaChameleon extends BukkitChameleon {
* @param chameleonPlugin Unsupported.
* @param bukkitPlugin Unsupported.
* @param pluginData Unsupported.
* @return Unsupported.
*
* @return Unsupported.
* @deprecated Not supported on Folia.
*/
@DoNotCall("Always throws java.lang.UnsupportedOperationException")
@Deprecated
@SuppressWarnings("unused")
public static @NotNull BukkitChameleonBootstrap create(@NotNull Class<? extends ChameleonPlugin> chameleonPlugin, @NotNull JavaPlugin bukkitPlugin, @NotNull ChameleonPluginData pluginData) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,41 +27,36 @@
import dev.hypera.chameleon.ChameleonPlugin;
import dev.hypera.chameleon.ChameleonPluginData;
import dev.hypera.chameleon.exception.instantiation.ChameleonInstantiationException;
import dev.hypera.chameleon.extension.ChameleonExtension;
import dev.hypera.chameleon.logger.ChameleonJavaLogger;
import dev.hypera.chameleon.logger.ChameleonLogger;
import dev.hypera.chameleon.platform.folia.extension.ChameleonFoliaExtension;
import java.util.Collection;
import dev.hypera.chameleon.logger.ChameleonSlf4jLogger;
import dev.hypera.chameleon.platform.Platform;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.ApiStatus.Internal;
import org.jetbrains.annotations.NotNull;

/**
* Folia Chameleon bootstrap implementation.
*/
public final class FoliaChameleonBootstrap extends ChameleonBootstrap<FoliaChameleon, ChameleonFoliaExtension<?, ?>> {
public final class FoliaChameleonBootstrap extends ChameleonBootstrap<FoliaChameleon> {

private final @NotNull Class<? extends ChameleonPlugin> chameleonPlugin;
private final @NotNull JavaPlugin foliaPlugin;
private final @NotNull ChameleonPluginData pluginData;

@Internal
FoliaChameleonBootstrap(@NotNull Class<? extends ChameleonPlugin> chameleonPlugin, @NotNull JavaPlugin foliaPlugin, @NotNull ChameleonPluginData pluginData) {
super(new ChameleonSlf4jLogger(foliaPlugin.getSLF4JLogger()), Platform.FOLIA);
this.chameleonPlugin = chameleonPlugin;
this.foliaPlugin = foliaPlugin;
this.pluginData = pluginData;
}

@Internal
@Override
protected @NotNull FoliaChameleon loadInternal(@NotNull Collection<ChameleonExtension<?>> extensions) throws ChameleonInstantiationException {
return new FoliaChameleon(this.chameleonPlugin, extensions, this.foliaPlugin, this.pluginData);
}

@Internal
@Override
protected @NotNull ChameleonLogger createLogger() {
return new ChameleonJavaLogger(this.foliaPlugin.getLogger());
protected @NotNull FoliaChameleon loadInternal() throws ChameleonInstantiationException {
return new FoliaChameleon(
this.chameleonPlugin, this.foliaPlugin, this.pluginData,
this.eventBus, this.logger, this.extensions
);
}

}

This file was deleted.

0 comments on commit c433719

Please sign in to comment.