From c1cfb0c856c5912cffa15bdc499100f1e01a4332 Mon Sep 17 00:00:00 2001 From: lars Date: Sat, 20 Jul 2024 22:32:25 +0200 Subject: [PATCH] added Fleischerchest --- .../java/eu/mhsl/craftattack/spawn/Main.java | 4 +++- .../fleischerchest/Fleischerchest.java | 24 +++++++++++++++++++ .../FleischerchestCraftItemListener.java | 18 ++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/Fleischerchest.java create mode 100644 src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/FleischerchestCraftItemListener.java diff --git a/src/main/java/eu/mhsl/craftattack/spawn/Main.java b/src/main/java/eu/mhsl/craftattack/spawn/Main.java index 1558e88..f6a9248 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/Main.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/Main.java @@ -4,6 +4,7 @@ import eu.mhsl.craftattack.spawn.aggregates.displayName.DisplayName; import eu.mhsl.craftattack.spawn.api.HttpServer; import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.spawn.appliances.adminMarker.AdminMarker; +import eu.mhsl.craftattack.spawn.appliances.fleischerchest.Fleischerchest; import eu.mhsl.craftattack.spawn.appliances.kick.Kick; import eu.mhsl.craftattack.spawn.appliances.chatMessages.ChatMessages; import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed; @@ -55,7 +56,8 @@ public final class Main extends JavaPlugin { new PanicBan(), new Outlawed(), new DisplayName(), - new Debug() + new Debug(), + new Fleischerchest() ); Bukkit.getLogger().info("Loading appliances..."); diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/Fleischerchest.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/Fleischerchest.java new file mode 100644 index 0000000..8e0356b --- /dev/null +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/Fleischerchest.java @@ -0,0 +1,24 @@ +package eu.mhsl.craftattack.spawn.appliances.fleischerchest; + +import eu.mhsl.craftattack.spawn.appliance.Appliance; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextColor; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class Fleischerchest extends Appliance { + public void renameItem(ItemStack item) { + ItemMeta meta = item.getItemMeta(); + meta.displayName(Component.text("Fleischerchest").color(TextColor.color(235, 20, 28))); + item.setItemMeta(meta); + } + + @Override + protected @NotNull List eventHandlers() { + return List.of(new FleischerchestCraftItemListener()); + } +} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/FleischerchestCraftItemListener.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/FleischerchestCraftItemListener.java new file mode 100644 index 0000000..964bb90 --- /dev/null +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/fleischerchest/FleischerchestCraftItemListener.java @@ -0,0 +1,18 @@ +package eu.mhsl.craftattack.spawn.appliances.fleischerchest; + +import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.inventory.ItemStack; + +public class FleischerchestCraftItemListener extends ApplianceListener { + @EventHandler + public void onPrepareItemCraft(PrepareItemCraftEvent event) { + ItemStack result = event.getInventory().getResult(); + if(result == null) return; + if(result.getType() == Material.RED_SHULKER_BOX) { + getAppliance().renameItem(event.getInventory().getResult()); + } + } +}