From 701781b9fd009873d96326cac86bce28b15f7a5b Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Sun, 20 Apr 2025 00:02:28 -0700 Subject: [PATCH] Fix a few bugs and add placeholderapi support --- build.gradle | 9 ++-- .../GalaxyEasterEggHunt.java | 26 +++++++++++- .../PlaceholderAPIExpansion.java | 42 +++++++++++++++++++ src/main/resources/plugin.yml | 1 + 4 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 src/main/java/xyz/lncvrt/galaxyEasterEggHunt/PlaceholderAPIExpansion.java diff --git a/build.gradle b/build.gradle index 446d1b4..9e44097 100644 --- a/build.gradle +++ b/build.gradle @@ -16,18 +16,19 @@ repositories { name = "sonatype" url = "https://oss.sonatype.org/content/groups/public/" } + maven { + url = "https://repo.extendedclip.com/releases/" + } } dependencies { compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") + compileOnly("me.clip:placeholderapi:2.11.6") } tasks { runServer { - // Configure the Minecraft version for our task. - // This is the only required configuration besides applying the plugin. - // Your plugin's jar (or shadowJar if present) will be used automatically. - minecraftVersion("1.20") + minecraftVersion("1.20.1") } } diff --git a/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/GalaxyEasterEggHunt.java b/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/GalaxyEasterEggHunt.java index c15db07..58e77bd 100644 --- a/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/GalaxyEasterEggHunt.java +++ b/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/GalaxyEasterEggHunt.java @@ -11,6 +11,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -22,6 +23,7 @@ public final class GalaxyEasterEggHunt extends JavaPlugin implements Listener { private File findingsFile; private FileConfiguration findingsConfig; HashMap playerTimestamps = new HashMap<>(); + private final PlaceholderAPIExpansion placeholderAPIExpansion = new PlaceholderAPIExpansion(this); @Override public void onEnable() { @@ -36,6 +38,27 @@ public final class GalaxyEasterEggHunt extends JavaPlugin implements Listener { } } findingsConfig = YamlConfiguration.loadConfiguration(findingsFile); + + placeholderAPIExpansion.register(); + } + + @Override + public void onDisable() { + placeholderAPIExpansion.unregister(); + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + String path = player.getName(); + if (!findingsConfig.contains(path)) { + findingsConfig.set(path, new HashMap()); + try { + findingsConfig.save(findingsFile); + } catch (IOException e) { + e.printStackTrace(); + } + } } @EventHandler @@ -76,6 +99,7 @@ public final class GalaxyEasterEggHunt extends JavaPlugin implements Listener { player.sendMessage(miniMessage.deserialize("You have already found that egg! (%s left)".formatted(12-totalFindings))); return; } + totalFindings = totalFindings+1; player.sendMessage(miniMessage.deserialize("%s/12 eggs found, %s left to go!".formatted(totalFindings, 12-totalFindings))); if (totalFindings == 12) { player.sendMessage(miniMessage.deserialize("Congrats! You now have the BUNNY tag!")); @@ -111,7 +135,7 @@ public final class GalaxyEasterEggHunt extends JavaPlugin implements Listener { int count = 0; for (String key : findingsConfig.getConfigurationSection(player.getName()).getKeys(false)) { - if (findingsConfig.getBoolean(player.getName() + "." + key)) { + if (findingsConfig.getBoolean(player.getName() + "." + key, false)) { count++; } } diff --git a/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/PlaceholderAPIExpansion.java b/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/PlaceholderAPIExpansion.java new file mode 100644 index 0000000..a1f2e31 --- /dev/null +++ b/src/main/java/xyz/lncvrt/galaxyEasterEggHunt/PlaceholderAPIExpansion.java @@ -0,0 +1,42 @@ +package xyz.lncvrt.galaxyEasterEggHunt; + +import me.clip.placeholderapi.expansion.PlaceholderExpansion; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class PlaceholderAPIExpansion extends PlaceholderExpansion { + private final GalaxyEasterEggHunt plugin; + + public PlaceholderAPIExpansion(GalaxyEasterEggHunt plugin) { + this.plugin = plugin; + } + + @Override + @NotNull + public String getAuthor() { + return "Lncvrt"; + } + + @Override + @NotNull + public String getIdentifier() { + return "galaxyeasteregghunt"; + } + + @Override + @NotNull + public String getVersion() { + return "1.0.0"; + } + + @Override + public String onPlaceholderRequest(Player player, @NotNull String params) { + switch (params.toLowerCase()) { + case "totalfound": + return "%s".formatted(plugin.getTotalFindings(player)); + default: + break; + } + return null; + } +} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ea142a9..5e545b9 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,3 +2,4 @@ name: GalaxyEasterEggHunt version: '${version}' main: xyz.lncvrt.galaxyEasterEggHunt.GalaxyEasterEggHunt api-version: '1.20' +depend: ["PlaceholderAPI"] \ No newline at end of file