diff --git a/README.md b/README.md index dd2f43459..fa0e763d2 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ if you add too much content to Slimefun 4, you should rather make an Addon for i ## Data Collection Slimefun4 uses various systems that collect or download data.
-We do not collect any personal information from you but here is a full list of what services may collect or download data. +We do not collect any personal information from you but here is a full list of what services may collect or download other kind of data. ### Auto-Updates Slimefun4 uses an Auto-Updater which connects to https://thebusybiscuit.github.io/builds/ to check for and download updates.
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java new file mode 100644 index 000000000..c5ce41f2c --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java @@ -0,0 +1,41 @@ +package io.github.thebusybiscuit.slimefun4.utils.itemstack; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Color; +import org.bukkit.FireworkEffect; +import org.bukkit.FireworkEffect.Type; +import org.bukkit.Material; +import org.bukkit.inventory.meta.FireworkEffectMeta; + +import io.github.thebusybiscuit.cscorelib2.chat.ChatColors; +import io.github.thebusybiscuit.cscorelib2.item.CustomItem; + +public class ColoredFireworkStar extends CustomItem { + + public ColoredFireworkStar(Color color, String name, String... lore) { + super(Material.FIREWORK_STAR, im -> { + if (name != null) { + im.setDisplayName(ChatColors.color(name)); + } + + ((FireworkEffectMeta) im).setEffect( + FireworkEffect.builder() + .with(Type.BURST) + .withColor(color) + .build() + ); + + if (lore.length > 0) { + List lines = new ArrayList<>(); + + for (String line : lore) { + lines.add(ChatColors.color(line)); + } + im.setLore(lines); + } + }); + } + +} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index c09097c21..4178bf5d2 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -1,18 +1,12 @@ package me.mrCookieSlime.Slimefun.Lists; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; -import org.bukkit.ChatColor; import org.bukkit.Color; -import org.bukkit.FireworkEffect; -import org.bukkit.FireworkEffect.Type; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.FireworkEffectMeta; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; @@ -24,6 +18,7 @@ import io.github.thebusybiscuit.slimefun4.core.attributes.MachineType; import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactivity; import io.github.thebusybiscuit.slimefun4.utils.ChatUtils; import io.github.thebusybiscuit.slimefun4.utils.LoreBuilder; +import io.github.thebusybiscuit.slimefun4.utils.itemstack.ColoredFireworkStar; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.StormStaff; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -554,89 +549,17 @@ public final class SlimefunItems { public static final ItemStack SOULBOUND_BOOTS = new SlimefunItemStack("SOULBOUND_BOOTS", Material.DIAMOND_BOOTS, "&cSoulbound Boots"); /* Runes */ - public static final ItemStack BLANK_RUNE; - public static final ItemStack RUNE_AIR; - public static final ItemStack RUNE_WATER; - public static final ItemStack RUNE_FIRE; - public static final ItemStack RUNE_EARTH; - public static final ItemStack RUNE_ENDER; - public static final ItemStack RUNE_RAINBOW; - public static final ItemStack RUNE_LIGHTNING; - public static final ItemStack RUNE_SOULBOUND; + public static final ItemStack BLANK_RUNE = new SlimefunItemStack("BLANK_RUNE", new ColoredFireworkStar(Color.BLACK, "&8Blank Rune"));; - static { - ItemStack itemB = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imB = (FireworkEffectMeta) itemB.getItemMeta(); - imB.setEffect(FireworkEffect.builder().with(Type.BURST).with(Type.BURST).withColor(Color.BLACK).build()); - imB.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&8Blank Rune")); - itemB.setItemMeta(imB); - BLANK_RUNE = new SlimefunItemStack("BLANK_RUNE", itemB); - - ItemStack itemA = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imA = (FireworkEffectMeta) itemA.getItemMeta(); - imA.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.AQUA).build()); - imA.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&b&lAir&8&l]")); - itemA.setItemMeta(imA); - RUNE_AIR = new SlimefunItemStack("ANCIENT_RUNE_AIR", itemA); - - ItemStack itemW = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imW = (FireworkEffectMeta) itemW.getItemMeta(); - imW.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.BLUE).build()); - imW.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&1&lWater&8&l]")); - itemW.setItemMeta(imW); - RUNE_WATER = new SlimefunItemStack("ANCIENT_RUNE_WATER", itemW); - - ItemStack itemF = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imF = (FireworkEffectMeta) itemF.getItemMeta(); - imF.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.RED).build()); - imF.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&4&lFire&8&l]")); - itemF.setItemMeta(imF); - RUNE_FIRE = new SlimefunItemStack("ANCIENT_RUNE_FIRE", itemF); - - ItemStack itemE = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imE = (FireworkEffectMeta) itemE.getItemMeta(); - imE.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.fromRGB(112, 47, 7)).build()); - imE.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&c&lEarth&8&l]")); - itemE.setItemMeta(imE); - RUNE_EARTH = new SlimefunItemStack("ANCIENT_RUNE_EARTH", itemE); - - ItemStack itemN = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imN = (FireworkEffectMeta) itemN.getItemMeta(); - imN.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.PURPLE).build()); - imN.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&5&lEnder&8&l]")); - itemN.setItemMeta(imN); - RUNE_ENDER = new SlimefunItemStack("ANCIENT_RUNE_ENDER", itemN); - - ItemStack itemR = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imR = (FireworkEffectMeta) itemR.getItemMeta(); - imR.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.FUCHSIA).build()); - imR.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&d&lRainbow&8&l]")); - itemR.setItemMeta(imR); - RUNE_RAINBOW = new SlimefunItemStack("ANCIENT_RUNE_RAINBOW", itemR); - - ItemStack itemL = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imL = (FireworkEffectMeta) itemL.getItemMeta(); - imL.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.fromRGB(255, 255, 95)).build()); - imL.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&e&lLightning&8&l]")); - itemL.setItemMeta(imL); - RUNE_LIGHTNING = new SlimefunItemStack("ANCIENT_RUNE_LIGHTNING", itemL); - - ItemStack itemS = new ItemStack(Material.FIREWORK_STAR); - FireworkEffectMeta imS = (FireworkEffectMeta) itemS.getItemMeta(); - imS.setEffect(FireworkEffect.builder().with(Type.BURST).withColor(Color.fromRGB(47, 0, 117)).build()); - imS.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&7Ancient Rune &8&l[&5&lSoulbound&8&l]")); - List lore = new ArrayList<>(); - lore.add(ChatColor.YELLOW + "Drop this rune onto a dropped item to"); - lore.add(ChatColor.DARK_PURPLE + "bind " + ChatColor.YELLOW + "that item to your soul."); - lore.add(" "); - lore.add(ChatColor.YELLOW + "It is advised that you only use this rune"); - lore.add(ChatColor.YELLOW + "on " + ChatColor.GOLD + "important " + ChatColor.YELLOW + "items."); - lore.add(" "); - lore.add(ChatColor.YELLOW + "Items bound to your soul won't drop on death."); - imS.setLore(lore); - itemS.setItemMeta(imS); - RUNE_SOULBOUND = new SlimefunItemStack("ANCIENT_RUNE_SOULBOUND", itemS); - } + public static final ItemStack RUNE_AIR = new SlimefunItemStack("ANCIENT_RUNE_AIR", new ColoredFireworkStar(Color.AQUA, "&7Ancient Rune &8&l[&b&lAir&8&l]")); + public static final ItemStack RUNE_WATER = new SlimefunItemStack("ANCIENT_RUNE_WATER", new ColoredFireworkStar(Color.BLUE, "&7Ancient Rune &8&l[&1&lWater&8&l]"));; + public static final ItemStack RUNE_FIRE = new SlimefunItemStack("ANCIENT_RUNE_FIRE", new ColoredFireworkStar(Color.RED, "&7Ancient Rune &8&l[&4&lFire&8&l]"));; + public static final ItemStack RUNE_EARTH = new SlimefunItemStack("ANCIENT_RUNE_EARTH", new ColoredFireworkStar(Color.fromRGB(112, 47, 7), "&7Ancient Rune &8&l[&c&lEarth&8&l]"));; + public static final ItemStack RUNE_ENDER = new SlimefunItemStack("ANCIENT_RUNE_ENDER", new ColoredFireworkStar(Color.PURPLE, "&7Ancient Rune &8&l[&5&lEnder&8&l]"));; + + public static final ItemStack RUNE_RAINBOW = new SlimefunItemStack("ANCIENT_RUNE_RAINBOW", new ColoredFireworkStar(Color.FUCHSIA, "&7Ancient Rune &8&l[&d&lRainbow&8&l]")); + public static final ItemStack RUNE_LIGHTNING = new SlimefunItemStack("ANCIENT_RUNE_LIGHTNING", new ColoredFireworkStar(Color.fromRGB(255, 255, 95), "&7Ancient Rune &8&l[&e&lLightning&8&l]")); + public static final ItemStack RUNE_SOULBOUND = new SlimefunItemStack("ANCIENT_RUNE_SOULBOUND", new ColoredFireworkStar(Color.fromRGB(47, 0, 117), "&7Ancient Rune &8&l[&5&lSoulbound&8&l]", "&eDrop this rune onto a dropped item to", "&5bind ðat item to your soul.", " ", "&eIt is advised that you only use this rune", "&eon &6important &eitems.", " ", "&eItems bound to your soul won't drop on death.")); /* Electricity */ public static final ItemStack SOLAR_GENERATOR = new SlimefunItemStack("SOLAR_GENERATOR", Material.DAYLIGHT_DETECTOR, "&bSolar Generator", "", LoreBuilder.machine(MachineTier.BASIC, MachineType.GENERATOR), LoreBuilder.powerBuffer(0), LoreBuilder.powerPerSecond(4));