From 05f2751d58805fb0555a5986ac249bb283b48493 Mon Sep 17 00:00:00 2001 From: coder4321 <48343703+coder4321@users.noreply.github.com> Date: Sat, 7 Dec 2019 01:25:34 -0800 Subject: [PATCH 01/11] Added Soulbound Trident --- src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java index e14b08a7f..cc305d8ef 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Lists/SlimefunItems.java @@ -545,6 +545,7 @@ public final class SlimefunItems { public static final ItemStack SOULBOUND_AXE = new SlimefunItemStack("SOULBOUND_AXE", Material.DIAMOND_AXE, "&cSoulbound Axe"); public static final ItemStack SOULBOUND_SHOVEL = new SlimefunItemStack("SOULBOUND_SHOVEL", Material.DIAMOND_SHOVEL, "&cSoulbound Shovel"); public static final ItemStack SOULBOUND_HOE = new SlimefunItemStack("SOULBOUND_HOE", Material.DIAMOND_HOE, "&cSoulbound Hoe"); + public static final ItemStack SOULBOUND_TRIDENT = new SlimefunItemStack("SOULBOUND_TRIDENT", Material.TRIDENT, "&cSoulbound Trident"); public static final ItemStack SOULBOUND_HELMET = new SlimefunItemStack("SOULBOUND_HELMET", Material.DIAMOND_HELMET, "&cSoulbound Helmet"); public static final ItemStack SOULBOUND_CHESTPLATE = new SlimefunItemStack("SOULBOUND_CHESTPLATE", Material.DIAMOND_CHESTPLATE, "&cSoulbound Chestplate"); From 2281393a8b5091ed074991788d43379108c97826 Mon Sep 17 00:00:00 2001 From: coder4321 <48343703+coder4321@users.noreply.github.com> Date: Sat, 7 Dec 2019 10:09:50 -0800 Subject: [PATCH 02/11] Update SlimefunSetup.java --- .../java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index c486e1eec..b473c762c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -1315,6 +1315,11 @@ public final class SlimefunSetup { new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HOE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); + new ExcludedSoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_TRIDENT, + new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.TRIDENT), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) + .register(true); + + new SoulboundItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SOULBOUND_HELMET, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HELMET), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); From 4b8c948ad69db653fbae767ae8aaf747912d4b9f Mon Sep 17 00:00:00 2001 From: coder4321 <48343703+coder4321@users.noreply.github.com> Date: Sat, 7 Dec 2019 10:11:16 -0800 Subject: [PATCH 03/11] Update SlimefunSetup.java --- src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index b473c762c..9db457d93 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -1319,7 +1319,6 @@ public final class SlimefunSetup { new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.TRIDENT), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - new SoulboundItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SOULBOUND_HELMET, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HELMET), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); From c48cf894d429673d34ab249a421f289c92e9255b Mon Sep 17 00:00:00 2001 From: ramdon_person <48343703+ramdon-person@users.noreply.github.com> Date: Sat, 7 Dec 2019 11:56:11 -0800 Subject: [PATCH 04/11] Update SlimefunSetup.java --- .../me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index 9db457d93..e40c4c56c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -1294,6 +1294,10 @@ public final class SlimefunSetup { new SoulboundItem(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.SOULBOUND_SWORD, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SWORD), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); + + new ExcludedSoulboundTool(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.SOULBOUND_TRIDENT, + new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.TRIDENT), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) + .register(true); new SoulboundItem(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.SOULBOUND_BOW, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.BOW), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) @@ -1315,10 +1319,6 @@ public final class SlimefunSetup { new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HOE), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - new ExcludedSoulboundTool(Categories.TOOLS, (SlimefunItemStack) SlimefunItems.SOULBOUND_TRIDENT, - new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.TRIDENT), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) - .register(true); - new SoulboundItem(Categories.MAGIC_ARMOR, (SlimefunItemStack) SlimefunItems.SOULBOUND_HELMET, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_HELMET), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); From 17cf8cecdcb92a2628cc3c247754667fc69ad9ff Mon Sep 17 00:00:00 2001 From: ramdon_person <48343703+ramdon-person@users.noreply.github.com> Date: Sat, 7 Dec 2019 12:30:38 -0800 Subject: [PATCH 05/11] Update ResearchSetup.java --- .../java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java index 5c4fac528..91bcb4254 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/ResearchSetup.java @@ -125,7 +125,7 @@ public final class ResearchSetup { Slimefun.registerResearch(new Research(122, "Armored Jet Boots", 27), SlimefunItems.ARMORED_JETBOOTS); Slimefun.registerResearch(new Research(123, "Seismic Axe", 29), SlimefunItems.SEISMIC_AXE); Slimefun.registerResearch(new Research(124, "Pickaxe of Vein Mining", 29), SlimefunItems.PICKAXE_OF_VEIN_MINING); - Slimefun.registerResearch(new Research(125, "Soulbound Weapons", 29), SlimefunItems.SOULBOUND_SWORD, SlimefunItems.SOULBOUND_BOW); + Slimefun.registerResearch(new Research(125, "Soulbound Weapons", 29), SlimefunItems.SOULBOUND_SWORD, SlimefunItems.SOULBOUND_BOW, SlimefunItems.SOULBOUND_TRIDENT); Slimefun.registerResearch(new Research(126, "Soulbound Tools", 29), SlimefunItems.SOULBOUND_PICKAXE, SlimefunItems.SOULBOUND_AXE, SlimefunItems.SOULBOUND_SHOVEL, SlimefunItems.SOULBOUND_HOE); Slimefun.registerResearch(new Research(127, "Soulbound Armor", 29), SlimefunItems.SOULBOUND_HELMET, SlimefunItems.SOULBOUND_CHESTPLATE, SlimefunItems.SOULBOUND_LEGGINGS, SlimefunItems.SOULBOUND_BOOTS); Slimefun.registerResearch(new Research(129, "Delicious Drinks", 29), SlimefunItems.JUICER, SlimefunItems.APPLE_JUICE, SlimefunItems.MELON_JUICE, SlimefunItems.CARROT_JUICE, SlimefunItems.PUMPKIN_JUICE, SlimefunItems.SWEET_BERRY_JUICE); From ce5ca5146eedd71bb8556c6b7260371b0bc58453 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sun, 8 Dec 2019 22:45:03 +0200 Subject: [PATCH 06/11] Reworked Knowledge Tome --- .../SlimefunItem/items/KnowledgeTome.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java index 0410b8cdd..649603053 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java @@ -10,7 +10,6 @@ import org.bukkit.Sound; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.Research; @@ -29,26 +28,27 @@ public class KnowledgeTome extends SimpleSlimefunItem { @Override public ItemInteractionHandler getItemHandler() { return (e, p, item) -> { - if (SlimefunManager.isItemSimilar(item, getItem(), true)) { + if (SlimefunManager.isItemSimilar(item, getItem(), false)) { List lore = item.getItemMeta().getLore(); - lore.set(0, ChatColor.translateAlternateColorCodes('&', "&7Owner: &b" + p.getName())); - lore.set(1, ChatColor.BLACK + "" + p.getUniqueId()); - ItemMeta im = item.getItemMeta(); - im.setLore(lore); - item.setItemMeta(im); - p.getEquipment().setItemInMainHand(item); - p.getWorld().playSound(p.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1F, 1F); - return true; - } - else if (SlimefunManager.isItemSimilar(item, getItem(), false)) { - PlayerProfile.get(p, profile -> { - PlayerProfile.fromUUID(UUID.fromString(ChatColor.stripColor(item.getItemMeta().getLore().get(1))), owner -> { + if (lore.get(1).isEmpty()) { + lore.set(0, ChatColor.translateAlternateColorCodes('&', "&7Owner: &b" + p.getName())); + lore.set(1, ChatColor.BLACK + "" + p.getUniqueId()); + ItemMeta im = item.getItemMeta(); + im.setLore(lore); + item.setItemMeta(im); + p.getInventory().setItemInMainHand(item); + p.getWorld().playSound(p.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1F, 1F); + } else { + UUID uuid = UUID.fromString(ChatColor.stripColor(item.getItemMeta().getLore().get(1))); + if (p.getUniqueId().equals(uuid)) + return true; + PlayerProfile.get(p, profile -> PlayerProfile.fromUUID(uuid, owner -> { Set researches = owner.getResearches(); - researches.forEach(research -> profile.setResearched(research, true)); - }); - }); - - if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false); + researches.forEach(research -> research.unlock(p, true)); + })); + if (p.getGameMode() != GameMode.CREATIVE) + item.setAmount(item.getAmount() - 1); + } return true; } else return false; From 27a8aa6236e8eb6cc982cebca90db413487ed9fe Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sun, 8 Dec 2019 22:55:17 +0200 Subject: [PATCH 07/11] Tweaked instant researching Don't start researching when it's instant, just throw fireworks & message about completion --- .../me/mrCookieSlime/Slimefun/Objects/Research.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java index d053a112c..45299db94 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/Research.java @@ -228,10 +228,12 @@ public class Research { * @since 4.0 */ public void unlock(final Player p, boolean instant) { - Slimefun.runSync(() -> { - p.playSound(p.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 1F); - SlimefunPlugin.getLocal().sendMessage(p, "messages.research.progress", true, msg -> msg.replace("%research%", getName()).replace("%progress%", "0%")); - }, 10L); + if (!instant) { + Slimefun.runSync(() -> { + p.playSound(p.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 1F); + SlimefunPlugin.getLocal().sendMessage(p, "messages.research.progress", true, msg -> msg.replace("%research%", getName()).replace("%progress%", "0%")); + }, 10L); + } PlayerProfile.get(p, profile -> { if (!profile.hasUnlocked(this)) { From f0d04c75d886f6524e7f796c0a418cc57fc91916 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sun, 8 Dec 2019 23:12:11 +0200 Subject: [PATCH 08/11] Removed unnecessary action --- .../Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java index 649603053..f7bd1e07c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java @@ -29,14 +29,13 @@ public class KnowledgeTome extends SimpleSlimefunItem { public ItemInteractionHandler getItemHandler() { return (e, p, item) -> { if (SlimefunManager.isItemSimilar(item, getItem(), false)) { - List lore = item.getItemMeta().getLore(); + ItemMeta im = item.getItemMeta(); + List lore = im.getLore(); if (lore.get(1).isEmpty()) { lore.set(0, ChatColor.translateAlternateColorCodes('&', "&7Owner: &b" + p.getName())); lore.set(1, ChatColor.BLACK + "" + p.getUniqueId()); - ItemMeta im = item.getItemMeta(); im.setLore(lore); item.setItemMeta(im); - p.getInventory().setItemInMainHand(item); p.getWorld().playSound(p.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1F, 1F); } else { UUID uuid = UUID.fromString(ChatColor.stripColor(item.getItemMeta().getLore().get(1))); From 3d8add777a47fed0820739e4a14f2468acf8592e Mon Sep 17 00:00:00 2001 From: NihilistBrew Date: Mon, 9 Dec 2019 16:50:25 +0100 Subject: [PATCH 09/11] Grind andesite, granite, diorite to gravel From https://discordapp.com/channels/565557184348422174/565569155848208404/650406015246008339 --- .../Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java index 214a6a5a4..22402962f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/GrindStone.java @@ -33,6 +33,9 @@ public class GrindStone extends MultiBlockMachine { new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.ENDER_EYE), new CustomItem(SlimefunItems.ENDER_LUMP_1, 2), new ItemStack(Material.COBBLESTONE), new ItemStack(Material.GRAVEL), + new ItemStack(Material.ANDESITE), new ItemStack(Material.GRAVEL), + new ItemStack(Material.DIORITE), new ItemStack(Material.GRAVEL), + new ItemStack(Material.GRANITE), new ItemStack(Material.GRAVEL), new ItemStack(Material.DIRT), SlimefunItems.STONE_CHUNK, new ItemStack(Material.SANDSTONE), new ItemStack(Material.SAND, 4), new ItemStack(Material.RED_SANDSTONE), new ItemStack(Material.RED_SAND, 4) From 052f80eeace77aed4c36332d885cae7411c0884e Mon Sep 17 00:00:00 2001 From: ramdon_person <48343703+ramdon-person@users.noreply.github.com> Date: Mon, 9 Dec 2019 23:24:51 -0800 Subject: [PATCH 10/11] Update SlimefunSetup.java --- .../java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index e40c4c56c..c66910fcc 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -1295,7 +1295,7 @@ public final class SlimefunSetup { new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.DIAMOND_SWORD), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); - new ExcludedSoulboundTool(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.SOULBOUND_TRIDENT, + new SoulboundItem(Categories.WEAPONS, (SlimefunItemStack) SlimefunItems.SOULBOUND_TRIDENT, new ItemStack[] {null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null, null, new ItemStack(Material.TRIDENT), null, null, SlimefunItems.ESSENCE_OF_AFTERLIFE, null}) .register(true); From ac80575d8f319da08df0db3d35c515c8e5836e20 Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Tue, 10 Dec 2019 09:55:56 +0200 Subject: [PATCH 11/11] Optimized item check --- .../Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java index f7bd1e07c..302238289 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/KnowledgeTome.java @@ -15,7 +15,6 @@ import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.Research; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; -import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.PlayerProfile; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -28,7 +27,7 @@ public class KnowledgeTome extends SimpleSlimefunItem { @Override public ItemInteractionHandler getItemHandler() { return (e, p, item) -> { - if (SlimefunManager.isItemSimilar(item, getItem(), false)) { + if (isItem(item)) { ItemMeta im = item.getItemMeta(); List lore = im.getLore(); if (lore.get(1).isEmpty()) {