diff --git a/.github/assets/serverwave_banner.png b/.github/assets/serverwave_banner.png deleted file mode 100644 index bfbbcc9..0000000 Binary files a/.github/assets/serverwave_banner.png and /dev/null differ diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 2427043..d2e9654 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -19,10 +19,10 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' cache: maven @@ -39,7 +39,7 @@ jobs: files: target/*.jar changelog-file: CHANGELOG.md game-versions: | - 1.21 + 26 loaders: | bukkit spigot diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index b03f93e..4e98f44 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -18,10 +18,10 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '21' distribution: 'temurin' cache: maven diff --git a/pom.xml b/pom.xml index d9ef712..e588a8a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,13 @@ fr.gamecreep BasicHomes - 1.9.8-RELEASE-26.1.1 + 1.9.8-BETA-26.1.1 jar BasicHomes Basic Minecraft Spigot plugin to use homes ! - 1.8 UTF-8 https://github.com/iGameCreep/BasicHomes @@ -25,8 +24,8 @@ maven-compiler-plugin 3.8.1 - 16 - 16 + 21 + 21 @@ -77,6 +76,11 @@ sonatype https://oss.sonatype.org/content/groups/public/ + + faststats-releases + FastStats + https://repo.faststats.dev/releases + @@ -91,6 +95,11 @@ bstats-bukkit 3.2.1 + + dev.faststats.metrics + bukkit + 0.10.0 + org.projectlombok lombok diff --git a/src/main/java/fr/gamecreep/basichomes/BasicHomes.java b/src/main/java/fr/gamecreep/basichomes/BasicHomes.java index c26ba95..782b7c6 100644 --- a/src/main/java/fr/gamecreep/basichomes/BasicHomes.java +++ b/src/main/java/fr/gamecreep/basichomes/BasicHomes.java @@ -18,8 +18,6 @@ import fr.gamecreep.basichomes.utils.TeleportUtils; import fr.gamecreep.basichomes.utils.Updater; import lombok.Getter; -import org.bstats.bukkit.Metrics; -import org.bstats.charts.SimplePie; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.permissions.PermissionAttachment; @@ -110,13 +108,13 @@ private void loadConfig() { private void loadMetrics() { try { - final Metrics metrics = new Metrics(this, Constants.BSTATS_PLUGIN_ID); - - metrics.addCustomChart(new SimplePie("using_warps", - () -> Boolean.toString((Boolean) this.pluginConfig.getConfig().getOrDefault(ConfigElement.WARPS_ENABLED, false)) - )); + MetricsLoader loader = new MetricsLoader(this); + loader.loadbStats(); LoggerUtils.logInfo("Metrics (bStats) successfully loaded !"); + + loader.loadFastStats(); + LoggerUtils.logInfo("Metrics (FastStats) successfully loaded !"); } catch (Exception e) { LoggerUtils.logWarning("Failed to register plugin metrics: " + e.getMessage()); } diff --git a/src/main/java/fr/gamecreep/basichomes/Constants.java b/src/main/java/fr/gamecreep/basichomes/Constants.java index 3338562..bf0ee0c 100644 --- a/src/main/java/fr/gamecreep/basichomes/Constants.java +++ b/src/main/java/fr/gamecreep/basichomes/Constants.java @@ -10,6 +10,7 @@ public class Constants { public static final String PLUGIN_VERSION = "1.9.8"; public static final int BSTATS_PLUGIN_ID = 25429; + public static final String FASTSTATS_TOKEN = "c958237076bde0583471cdd8e83cae05"; public static final ChatColor INFO_COLOR = ChatColor.DARK_AQUA; public static final ChatColor SUCCESS_COLOR = ChatColor.GREEN; @@ -21,7 +22,7 @@ public class Constants { String colorTemp; try { colorTemp = net.md_5.bungee.api.ChatColor.of("#2596be").toString(); - } catch (Throwable t) { + } catch (Exception e) { colorTemp = ChatColor.DARK_AQUA.toString(); } PLUGIN_COLOR = colorTemp; diff --git a/src/main/java/fr/gamecreep/basichomes/MetricsLoader.java b/src/main/java/fr/gamecreep/basichomes/MetricsLoader.java new file mode 100644 index 0000000..19b9f6f --- /dev/null +++ b/src/main/java/fr/gamecreep/basichomes/MetricsLoader.java @@ -0,0 +1,42 @@ +package fr.gamecreep.basichomes; + +import dev.faststats.bukkit.BukkitMetrics; +import dev.faststats.core.ErrorTracker; +import dev.faststats.core.chart.Chart; +import fr.gamecreep.basichomes.config.enums.ConfigElement; +import org.bstats.charts.SimplePie; + +import java.util.Map; + +public class MetricsLoader { + public static final ErrorTracker ERROR_TRACKER = ErrorTracker.contextAware(); + + private final BasicHomes plugin; + + public MetricsLoader(BasicHomes plugin) { + this.plugin = plugin; + } + + public void loadbStats() { + org.bstats.bukkit.Metrics metrics = new org.bstats.bukkit.Metrics(this.plugin, Constants.BSTATS_PLUGIN_ID); + + SimplePie warpsChart = new SimplePie("using_warps", () -> Boolean.toString(getWarpMetricValue())); + metrics.addCustomChart(warpsChart); + } + + public void loadFastStats() { + Chart warpsChart = Chart.bool("using_warps", this::getWarpMetricValue); + + BukkitMetrics.factory() + .token(Constants.FASTSTATS_TOKEN) + .errorTracker(ERROR_TRACKER) + .addChart(warpsChart) + .create(plugin); + } + + private boolean getWarpMetricValue() { + Map pluginConfig = plugin.getPluginConfig().getConfig(); + + return (Boolean) pluginConfig.getOrDefault(ConfigElement.WARPS_ENABLED, false); + } +} diff --git a/src/main/java/fr/gamecreep/basichomes/commands/permission/PermissionCommand.java b/src/main/java/fr/gamecreep/basichomes/commands/permission/PermissionCommand.java index 18fc1c3..abcdc5a 100644 --- a/src/main/java/fr/gamecreep/basichomes/commands/permission/PermissionCommand.java +++ b/src/main/java/fr/gamecreep/basichomes/commands/permission/PermissionCommand.java @@ -41,13 +41,13 @@ public boolean onCommand(@NonNull final CommandSender sender, @NonNull final String label, @NonNull final String @NonNull[] args ) { - if (args.length < 3) return false; - if (!sender.hasPermission(Permission.PERMISSIONS.getName())) { ChatUtils.sendNoPermission(sender, Permission.PERMISSIONS); return true; } + if (args.length < 3) return false; + final String action = args[0].toLowerCase(); final boolean isSet = action.equals(ActionType.SET.getStringValue()); final boolean isRemove = action.equals(ActionType.REMOVE.getStringValue());