From 4018d78716bcb259c280e77361b8676cfad1ce5b Mon Sep 17 00:00:00 2001 From: wolf Date: Wed, 4 Sep 2024 15:55:01 -0700 Subject: [PATCH] Fire Gem --- .../me/trouper/ultrabliss/UltraBliss.java | 6 ++- .../ultrabliss/commands/AdminCommand.java | 40 +++++++++++++++ .../me/trouper/ultrabliss/data/Config.java | 15 ++++++ .../ultrabliss/server/gems/FireGem.java | 45 +++++++++++++++++ .../me/trouper/ultrabliss/utils/Text.java | 50 +++++++++++++++++++ 5 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 src/main/java/me/trouper/ultrabliss/commands/AdminCommand.java create mode 100644 src/main/java/me/trouper/ultrabliss/data/Config.java create mode 100644 src/main/java/me/trouper/ultrabliss/server/gems/FireGem.java create mode 100644 src/main/java/me/trouper/ultrabliss/utils/Text.java diff --git a/src/main/java/me/trouper/ultrabliss/UltraBliss.java b/src/main/java/me/trouper/ultrabliss/UltraBliss.java index 44537df..c8186e6 100644 --- a/src/main/java/me/trouper/ultrabliss/UltraBliss.java +++ b/src/main/java/me/trouper/ultrabliss/UltraBliss.java @@ -2,6 +2,7 @@ package me.trouper.ultrabliss; import io.github.itzispyder.pdk.PDK; import io.github.itzispyder.pdk.utils.misc.config.JsonSerializable; +import me.trouper.ultrabliss.data.Config; import me.trouper.ultrabliss.data.GemStorage; import org.bukkit.plugin.java.JavaPlugin; @@ -11,6 +12,8 @@ public final class UltraBliss extends JavaPlugin { public static File gemStorageFile = new File("plugins/UltraBliss/gemStorage.json"); public static GemStorage gemStorage = JsonSerializable.load(gemStorageFile,GemStorage.class,new GemStorage()); + public static File configFile = new File("plugins/UltraBliss/config.json"); + public static Config config = JsonSerializable.load(configFile,Config.class,new Config()); private static UltraBliss instance; @Override @@ -31,7 +34,8 @@ public final class UltraBliss extends JavaPlugin { private void initStorage() { gemStorage = JsonSerializable.load(gemStorageFile,GemStorage.class,new GemStorage()); - gemStorage.save(); + config = JsonSerializable.load(configFile,Config.class,new Config()); + config.save(); } } diff --git a/src/main/java/me/trouper/ultrabliss/commands/AdminCommand.java b/src/main/java/me/trouper/ultrabliss/commands/AdminCommand.java new file mode 100644 index 0000000..4d7fab2 --- /dev/null +++ b/src/main/java/me/trouper/ultrabliss/commands/AdminCommand.java @@ -0,0 +1,40 @@ +package me.trouper.ultrabliss.commands; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import me.trouper.ultrabliss.UltraBliss; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.awt.*; + +public class AdminCommand implements CustomCommand { + @Override + public void dispatchCommand(CommandSender commandSender, Command command, String s, Args args) { + + } + + @Override + public void dispatchCompletions(CommandSender commandSender, Command command, String s, CompletionBuilder b) { + + } + + private void handleGiveGemCommand(Player p, Args args) { + if (args.getSize() < 3) return; + + String gemType = args.get(2).toString(); + + switch (gemType) { + case "fire" -> p.getInventory().setItemInOffHand(Gems.FIRE_GEM.item()); + case "life" -> p.getInventory().setItemInOffHand(Gems.LIFE_GEM.item()); + case "puff" -> p.getInventory().setItemInOffHand(Gems.PUFF_GEM.item()); + case "speed" -> p.getInventory().setItemInOffHand(Gems.SPEED_GEM.item()); + case "wealth" -> p.getInventory().setItemInOffHand(Gems.WEALTH_GEM.item()); + case "strength" -> p.getInventory().setItemInOffHand(Gems.STRENGTH_GEM.item()); + case "astra" -> p.getInventory().setItemInOffHand(Gems.ASTRA_GEM.item()); + } + p.sendMessage(color(UltraBliss.config.prefix + "Given you a &a%s&7 gem!".formatted(gemType))); + } +} diff --git a/src/main/java/me/trouper/ultrabliss/data/Config.java b/src/main/java/me/trouper/ultrabliss/data/Config.java new file mode 100644 index 0000000..b5623cf --- /dev/null +++ b/src/main/java/me/trouper/ultrabliss/data/Config.java @@ -0,0 +1,15 @@ +package me.trouper.ultrabliss.data; + +import io.github.itzispyder.pdk.utils.misc.config.JsonSerializable; +import me.trouper.ultrabliss.UltraBliss; + +import java.io.File; + +public class Config implements JsonSerializable { + @Override + public File getFile() { + return UltraBliss.configFile; + } + + public String prefix = "&9UltraBliss> &7"; +} diff --git a/src/main/java/me/trouper/ultrabliss/server/gems/FireGem.java b/src/main/java/me/trouper/ultrabliss/server/gems/FireGem.java new file mode 100644 index 0000000..0e5ebd4 --- /dev/null +++ b/src/main/java/me/trouper/ultrabliss/server/gems/FireGem.java @@ -0,0 +1,45 @@ +package me.trouper.ultrabliss.server.gems; + +import io.github.itzispyder.pdk.plugin.builders.ItemBuilder; +import me.trouper.ultrabliss.server.GemData; +import me.trouper.ultrabliss.utils.Text; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + +import java.util.List; + +public class FireGem { + + private static final ItemStack FIRE_GEM = ItemBuilder.create() + .material(Material.MAGMA_CREAM) + .name(Text.color("&c&lFire Gem")) + .lore(Text.color("&8➥ &7Fire Resistance")) + .enchant(Enchantment.MENDING,1) + .flag(ItemFlag.HIDE_ENCHANTS) + .build(); + + private static final ItemStack FIRE_GEM_UPGRADE = ItemBuilder.create() + .material(Material.MAGMA_CREAM) + .name(Text.color("&c&lFire Gem &6\uD83E\uDC45")) + .lore(Text.color("&8➥ &7Fire Resistance")) + .lore(Text.color("")) + .lore(Text.color("&e★ &fShoot Fireball")) + .lore(Text.color("")) + .lore(Text.color("&7Press &n(Swap-Hands)&r&7 to use &e★&7 ability")) + .enchant(Enchantment.MENDING,1) + .flag(ItemFlag.HIDE_ENCHANTS) + .build(); + + public static GemData gem = new GemData.Builder(1000) + .setPassive(List.of( + new PotionEffect(PotionEffectType.FIRE_RESISTANCE,20*5,1) + )) + .setItem(FIRE_GEM) + .build(); + + public static GemData +} diff --git a/src/main/java/me/trouper/ultrabliss/utils/Text.java b/src/main/java/me/trouper/ultrabliss/utils/Text.java new file mode 100644 index 0000000..f598ad2 --- /dev/null +++ b/src/main/java/me/trouper/ultrabliss/utils/Text.java @@ -0,0 +1,50 @@ +package me.trouper.ultrabliss.utils; + +import me.trouper.ultrabliss.UltraBliss; + +public class Text { + public static final char SECTION_SYMBOL = (char)167; + + public static String color(String msg) { + return msg.replace('&', SECTION_SYMBOL); + } + public static String prefix(String text) { + String prefix = UltraBliss.config.prefix; + return color(prefix + text); + } + + public static String cleanName(String type) { + return type.replace('_', ' ').toLowerCase(); + } + + public static String removeFirstColor(String input) { + if (input.startsWith("\u00a7")) { + if (input.length() > 2) { + return input.substring(2); + } else { + return ""; + } + } else { + return input; + } + } + public static String replaceRepeatingLetters(String message) { + StringBuilder result = new StringBuilder(); + char prevChar = '\0'; + int count = 0; + + for (char c : message.toCharArray()) { + if (c == prevChar) { + count++; + if (count <= 3) { + result.append(c); + } + } else { + prevChar = c; + count = 1; + result.append(c); + } + } + return result.toString(); + } +}