Skip to content

Commit

Permalink
Add HologramsConverted event
Browse files Browse the repository at this point in the history
  • Loading branch information
OliverSchlueter committed Dec 26, 2024
1 parent 948ebf0 commit d1400fa
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 13 deletions.
9 changes: 6 additions & 3 deletions src/main/java/de/oliver/fancyholograms/FancyHolograms.java
Original file line number Diff line number Diff line change
Expand Up @@ -326,13 +326,13 @@ private void registerMetrics() {
metrics.addCustomChart(new Metrics.SimplePie("update_notifications", () -> configuration.areVersionNotificationsMuted() ? "No" : "Yes"));
metrics.addCustomChart(new Metrics.SimplePie("using_development_build", () -> isDevelopmentBuild ? "Yes" : "No"));

fancyAnalytics = new FancyAnalyticsAPI("3b77bd59-2b01-46f2-b3aa-a9584401797f", "E2gW5zc2ZTk1OGFkNGY2ZDQ0ODlM6San");
fancyAnalytics.getConfig().setDisableLogging(true);

if (!isDevelopmentBuild) {
return;
}

fancyAnalytics = new FancyAnalyticsAPI("3b77bd59-2b01-46f2-b3aa-a9584401797f", "E2gW5zc2ZTk1OGFkNGY2ZDQ0ODlM6San");
fancyAnalytics.getConfig().setDisableLogging(true);

fancyAnalytics.registerMinecraftPluginMetrics(INSTANCE);
fancyAnalytics.getExceptionHandler().registerLogger(getLogger());
fancyAnalytics.getExceptionHandler().registerLogger(Bukkit.getLogger());
Expand Down Expand Up @@ -381,4 +381,7 @@ private void registerMetrics() {
fancyAnalytics.initialize();
}

public FancyAnalyticsAPI getFancyAnalytics() {
return fancyAnalytics;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,26 @@
import java.io.File;
import java.util.*;

public class DecentHologramsConverter implements HologramConverter {
public class DecentHologramsConverter extends HologramConverter {
private static final float VANILLA_PIXEL_BLOCK_SIZE = 0.0625f;
private static final float TEXT_DISPLAY_PIXEL = VANILLA_PIXEL_BLOCK_SIZE / 3;
private static final float TEXT_DISPLAY_LINE_HEIGHT = TEXT_DISPLAY_PIXEL * 14;
private static final String PROCESS_ICONS_FLAG = "--processIcons";
private static final String ICON_PREFIX = "#ICON: ";
private static final File DECENT_HOLOGRAMS_DATA = new File("./plugins/DecentHolograms/holograms/");

@Override
public @NotNull String getId() {
return "DecentHolograms";
}

@Override
public boolean canRunConverter() {
return DECENT_HOLOGRAMS_DATA.exists();
}

@Override
public @NotNull List<HologramData> convert(@NotNull HologramConversionSession spec) {
public @NotNull List<HologramData> convertHolograms(@NotNull HologramConversionSession spec) {
boolean processIcons = Arrays.stream(spec.getAdditionalArguments()).anyMatch((arg) -> arg.equalsIgnoreCase(PROCESS_ICONS_FLAG));

if (processIcons) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ public class FHConversionRegistry {
private static final Map<String, HologramConverter> converters = new HashMap<>();

public static void registerBuiltInConverters() {
register("DecentHolograms", new DecentHologramsConverter());
register(new DecentHologramsConverter());
}

public static boolean register(@NotNull String id, HologramConverter converter) {
return converters.putIfAbsent(id, converter) != null;
public static boolean register(HologramConverter converter) {
return converters.putIfAbsent(converter.getId(), converter) != null;
}

public static @NotNull Optional<HologramConverter> getConverterById(@NotNull String id) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,44 @@
package de.oliver.fancyholograms.storage.converter;

import de.oliver.fancyanalytics.api.events.Event;
import de.oliver.fancyholograms.FancyHolograms;
import de.oliver.fancyholograms.api.data.HologramData;
import org.jetbrains.annotations.NotNull;

import java.util.List;

public interface HologramConverter {
public abstract class HologramConverter {

boolean canRunConverter();
public abstract @NotNull String getId();

public abstract boolean canRunConverter();

/**
* Returns a list of converted holograms
* @param spec Configuration of the hologram conversion
* @return A list of converted holograms.
*/
@NotNull List<HologramData> convert(@NotNull HologramConversionSession spec);
protected abstract @NotNull List<HologramData> convertHolograms(@NotNull HologramConversionSession spec);

default @NotNull List<String> getConvertableHolograms() {
return List.of();

/**
* Returns a list of converted holograms
* @param spec Configuration of the hologram conversion
* @return A list of converted holograms.
*/
public final @NotNull List<HologramData> convert(@NotNull HologramConversionSession spec) {
List<HologramData> converted = convertHolograms(spec);

Event event = new Event("HologramsConverted")
.withProperty("converter", getId())
.withProperty("target", spec.getTarget().getRegex().pattern())
.withProperty("amount", String.valueOf(converted.size()));
FancyHolograms.get().getFancyAnalytics().sendEvent(event);

return converted;
}

public @NotNull List<String> getConvertableHolograms() {
return List.of();
}
}

0 comments on commit d1400fa

Please sign in to comment.