diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/ovh/sad/snowcore/Snowcore.java b/src/main/java/ovh/sad/snowcore/Snowcore.java index 6aa91b9..690910e 100644 --- a/src/main/java/ovh/sad/snowcore/Snowcore.java +++ b/src/main/java/ovh/sad/snowcore/Snowcore.java @@ -139,9 +139,11 @@ public final class Snowcore extends JavaPlugin { for (int z = minZ; z <= maxZ; z++) { for (int y = maxY; y >= minY; y--) { Block block = world.getBlockAt(x, y, z); + Material type = block.getType(); - // Only care about full snow blocks as the base - if (block.getType() != Material.SNOW_BLOCK) continue; + if (type != Material.STONE + && type != Material.TUFF + && type != Material.ANDESITE) continue; Block above = world.getBlockAt(x, y + 1, z); Material aboveType = above.getType(); @@ -251,7 +253,7 @@ public final class Snowcore extends JavaPlugin { Snowcore.snowify( world, new Location(world, 39, 127, 157), - new Location(world, 8, 139, 215) + new Location(world, 8, 148, 215) ); Bukkit.broadcast(snowing); diff --git a/src/main/java/ovh/sad/snowcore/commands/SellCommand.java b/src/main/java/ovh/sad/snowcore/commands/SellCommand.java index 684f117..1677e5c 100644 --- a/src/main/java/ovh/sad/snowcore/commands/SellCommand.java +++ b/src/main/java/ovh/sad/snowcore/commands/SellCommand.java @@ -26,6 +26,33 @@ public class SellCommand implements BasicCommand { @Override public void execute(CommandSourceStack source, String[] args) { + if(args.length == 1 && args[0].equals("inv")) { + Player player = (Player) Objects.requireNonNull(source.getExecutor()); + + var inv = player.getInventory(); + + double finalPrice = 0d; + + for (int slot = 0; slot < 35; slot++) { + ItemStack item = inv.getItem(slot); + + if (item == null || item.getType().isAir()) continue; + + boolean prices = Prices.hasSellPrice(item.getType()); + + if(prices) { + double price = (Prices.getSellPrice(item.getType())/2) * item.getAmount(); + + finalPrice += price; + + inv.setItem(slot, null); + } + } + + Snowcore.econ.depositPlayer(player, finalPrice); + player.sendMessage(Component.text("Sold items for §a" + finalPrice + "§r! §o§c-50% due to /sell inv being used..")); + return; + } AtomicBoolean sold = new AtomicBoolean(false); Gui gui = Gui.gui() .title(Component.text("Sell Items")) diff --git a/src/main/java/ovh/sad/snowcore/commands/SnowifyCommand.java b/src/main/java/ovh/sad/snowcore/commands/SnowifyCommand.java index e3f962d..a4e457e 100644 --- a/src/main/java/ovh/sad/snowcore/commands/SnowifyCommand.java +++ b/src/main/java/ovh/sad/snowcore/commands/SnowifyCommand.java @@ -19,7 +19,7 @@ public class SnowifyCommand implements BasicCommand { Snowcore.snowify( world, new Location(world, 39, 127, 157), - new Location(world, 8, 139, 215) + new Location(world, 8, 148, 215) ); } diff --git a/src/main/java/ovh/sad/snowcore/items/Tool.java b/src/main/java/ovh/sad/snowcore/items/Tool.java index 707ab9d..d775509 100644 --- a/src/main/java/ovh/sad/snowcore/items/Tool.java +++ b/src/main/java/ovh/sad/snowcore/items/Tool.java @@ -3,6 +3,7 @@ package ovh.sad.snowcore.items; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -87,6 +88,10 @@ public abstract class Tool> { definedAbilities.stream().filter(a -> a.byDefault).toList()); meta.setEnchantmentGlintOverride(true); + meta.setUnbreakable(true); + meta.addEnchant(Enchantment.EFFICIENCY, 3, false); + meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); item.setItemMeta(meta); return item; @@ -133,6 +138,10 @@ public abstract class Tool> { meta.lore(lore); meta.setEnchantmentGlintOverride(true); + meta.setUnbreakable(true); + meta.addEnchant(Enchantment.EFFICIENCY, 3, false); + meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); item.setItemMeta(meta); return item; diff --git a/src/main/java/ovh/sad/snowcore/listeners/InteractListener.java b/src/main/java/ovh/sad/snowcore/listeners/InteractListener.java index 05cf66d..f6bcb4b 100644 --- a/src/main/java/ovh/sad/snowcore/listeners/InteractListener.java +++ b/src/main/java/ovh/sad/snowcore/listeners/InteractListener.java @@ -204,6 +204,9 @@ public class InteractListener implements Listener { } else { name = Component.text(def.type.name, NamedTextColor.YELLOW); lore.add(Component.text("Cost: " + (int) def.baseCost + "$", NamedTextColor.GOLD)); + + lore.add(Component.text(def.type.description.replaceAll("%maxValue%", String.valueOf(def.maxValue)), NamedTextColor.GOLD)); + lore.add(Component.text("Click to unlock", NamedTextColor.GRAY)); }