fancydialogs: Add fancyanalytics integration

This commit is contained in:
Oliver
2025-06-20 16:42:29 +02:00
parent 2fbbdc2b88
commit 64e919ef29
4 changed files with 58 additions and 8 deletions

View File

@@ -2,13 +2,6 @@ Commit hash: %COMMIT_HASH%
Commit message: %COMMIT_MESSAGE% Commit message: %COMMIT_MESSAGE%
Changes:
- Removed close action
- Added console_command, player_command and send_to_server actions
- Made dialog registry and action registry accessible from the API
- Added confirmation dialogs to certain commands
- Removed html encoding for default dialogs
*(The last commit message does not always directly reflect the changes related to this version.)* *(The last commit message does not always directly reflect the changes related to this version.)*
Keep in mind that this is a snapshot version. Snapshot versions are **not** meant to be used in production. They are for **testing purposes only** and may contain bugs or incomplete features. Use at your own risk. Keep in mind that this is a snapshot version. Snapshot versions are **not** meant to be used in production. They are for **testing purposes only** and may contain bugs or incomplete features. Use at your own risk.

View File

@@ -1 +1 @@
0.0.3 0.0.4

View File

@@ -1,6 +1,7 @@
package com.fancyinnovations.fancydialogs; package com.fancyinnovations.fancydialogs;
import com.fancyinnovations.fancydialogs.actions.ActionRegistryImpl; import com.fancyinnovations.fancydialogs.actions.ActionRegistryImpl;
import com.fancyinnovations.fancydialogs.analytics.Analytics;
import com.fancyinnovations.fancydialogs.api.Dialog; import com.fancyinnovations.fancydialogs.api.Dialog;
import com.fancyinnovations.fancydialogs.api.DialogActionRegistry; import com.fancyinnovations.fancydialogs.api.DialogActionRegistry;
import com.fancyinnovations.fancydialogs.api.FancyDialogs; import com.fancyinnovations.fancydialogs.api.FancyDialogs;
@@ -153,6 +154,10 @@ public class FancyDialogsPlugin extends JavaPlugin implements FancyDialogs {
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
Analytics analytics = new Analytics();
analytics.registerMetrics();
analytics.start();
fancyLogger.info("Successfully enabled FancyDialogs version %s".formatted(getDescription().getVersion())); fancyLogger.info("Successfully enabled FancyDialogs version %s".formatted(getDescription().getVersion()));
} }

View File

@@ -0,0 +1,52 @@
package com.fancyinnovations.fancydialogs.analytics;
import com.fancyinnovations.fancydialogs.FancyDialogsPlugin;
import de.oliver.fancyanalytics.api.FancyAnalyticsAPI;
import de.oliver.fancyanalytics.api.metrics.MetricSupplier;
import org.bukkit.Bukkit;
public class Analytics {
private final FancyAnalyticsAPI api;
public Analytics() {
api = new FancyAnalyticsAPI("ebed5533-b25e-44b3-894c-6898f64f5033", "2DNDnGE0NmQwYWE5ZTYzMDQzYTZJNoFa");
api.getConfig().setDisableLogging(true);
}
public void registerMetrics() {
api.registerMinecraftPluginMetrics(FancyDialogsPlugin.get());
api.getExceptionHandler().registerLogger(FancyDialogsPlugin.get().getLogger());
api.getExceptionHandler().registerLogger(Bukkit.getLogger());
api.getExceptionHandler().registerLogger(FancyDialogsPlugin.get().getFancyLogger());
api.registerStringMetric(new MetricSupplier<>("server_size", () -> {
long onlinePlayers = Bukkit.getOnlinePlayers().size();
if (onlinePlayers == 0) {
return "empty";
}
if (onlinePlayers <= 25) {
return "small";
}
if (onlinePlayers <= 100) {
return "medium";
}
if (onlinePlayers <= 500) {
return "large";
}
return "very_large";
}));
api.registerNumberMetric(new MetricSupplier<>("amount_dialogs", () -> (double) FancyDialogsPlugin.get().getDialogRegistry().getAll().size()));
}
public void start() {
api.initialize();
}
}