Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.NamespacedKey;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.BlockBreakEvent;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.inventory.ItemFlag;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.ShapedRecipe;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.util.ArrayList;
- import java.util.List;
- public final class OpPickaxes extends JavaPlugin implements Listener {
- @Override
- public void onEnable() {
- getServer().broadcastMessage(ChatColor.GOLD + "The plugin is working!");
- this.getServer().getPluginManager().registerEvents(this, this);
- Bukkit.addRecipe(ePick());
- Bukkit.addRecipe(fastPick());
- Bukkit.addRecipe(sharpPick());
- Bukkit.addRecipe(woodCutter());
- Bukkit.addRecipe(oreConverter());
- }
- @Override
- public void onDisable() {
- // Plugin shutdown logic
- }
- public ShapedRecipe ePick() {
- // telling the item that I want as the output
- ItemStack item = new ItemStack(Material.IRON_PICKAXE);
- ItemMeta meta = item.getItemMeta();
- assert meta != null;
- meta.setDisplayName(ChatColor.GREEN + "EMERALD PICKAXE");
- meta.addEnchant(Enchantment.LOOT_BONUS_BLOCKS, 255, true);
- meta.setUnbreakable(true);
- List<String> list = new ArrayList<>();
- list.add("");
- list.add("Try mining an ore... you may get a lot of it");
- meta.setLore(list);
- meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
- item.setItemMeta(meta);
- // defining the namespaced key
- NamespacedKey key = new NamespacedKey(this, "emerald_pickaxe");
- ShapedRecipe recipe = new ShapedRecipe(key, item);
- // giving the shape of the recipe or how to craft the item
- recipe.shape("EEE", " S ", " S ");
- recipe.setIngredient('E', Material.EMERALD_BLOCK);
- recipe.setIngredient('S', Material.STICK);
- return recipe;
- }
- public ShapedRecipe sharpPick() {
- ItemStack item = new ItemStack(Material.WOODEN_PICKAXE);
- ItemMeta meta = item.getItemMeta();
- assert meta != null;
- meta.setDisplayName(ChatColor.GREEN + "A VERY SHARP PICKAXE");
- meta.addEnchant(Enchantment.DAMAGE_ALL, 68, true);
- meta.setUnbreakable(true);
- meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
- item.setItemMeta(meta);
- NamespacedKey key = new NamespacedKey(this, "sharp_pickaxe");
- ShapedRecipe recipe = new ShapedRecipe(key, item);
- recipe.shape("EEE", " S ", " S ");
- recipe.setIngredient('E', Material.IRON_SWORD);
- recipe.setIngredient('S', Material.STICK);
- return recipe;
- }
- public ShapedRecipe oreConverter() {
- ItemStack item = new ItemStack(Material.DIAMOND_PICKAXE);
- ItemMeta meta = item.getItemMeta();
- assert meta != null;
- meta.setDisplayName(ChatColor.GREEN + "ORE CONVERTER");
- List<String> list = new ArrayList<>();
- list.add("");
- list.add(ChatColor.BLUE + "A pickaxe that converts the ore you are mining to a block");
- meta.setLore(list);
- meta.setUnbreakable(true);
- meta.addEnchant(Enchantment.DAMAGE_ARTHROPODS, 100, true);
- meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
- item.setItemMeta(meta);
- NamespacedKey key = new NamespacedKey(this, "ore_pickaxe");
- ShapedRecipe recipe = new ShapedRecipe(key, item);
- recipe.shape("EAB", " S ", " S ");
- recipe.setIngredient('E', Material.IRON_BLOCK);
- recipe.setIngredient('A', Material.COAL_BLOCK);
- recipe.setIngredient('B', Material.COPPER_BLOCK);
- recipe.setIngredient('S', Material.STICK);
- return recipe;
- }
- @EventHandler
- public void oreConverter(BlockBreakEvent event) {
- if (event.getPlayer().getInventory().getItemInMainHand().hasItemMeta() && event.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.DIAMOND_PICKAXE)) {
- if (event.getBlock().getType().equals(Material.COAL_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.COAL_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_COAL_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.COAL_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.COPPER_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.COPPER_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_COPPER_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.COPPER_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.LAPIS_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.LAPIS_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_LAPIS_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.LAPIS_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.REDSTONE_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.REDSTONE_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_REDSTONE_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.REDSTONE_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.GOLD_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.GOLD_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_GOLD_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.GOLD_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.NETHER_QUARTZ_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.QUARTZ_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.IRON_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.IRON_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_IRON_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.IRON_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DIAMOND_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.DIAMOND_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.DEEPSLATE_DIAMOND_ORE)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.DIAMOND_BLOCK);
- }
- if (event.getBlock().getType().equals(Material.ANCIENT_DEBRIS)) {
- event.setCancelled(true);
- event.getBlock().setType(Material.NETHERITE_BLOCK);
- }
- }
- }
- public ShapedRecipe woodCutter() {
- ItemStack item = new ItemStack(Material.NETHERITE_AXE);
- ItemMeta meta = item.getItemMeta();
- assert meta != null;
- meta.setDisplayName(ChatColor.GREEN + "" + ChatColor.BOLD + "Axe Pickaxe");
- meta.addEnchant(Enchantment.DIG_SPEED, 68, false);
- meta.setUnbreakable(true);
- List<String> list = new ArrayList<>();
- list.add("");
- list.add("This isn't a pickaxe... huh");
- meta.setLore(list);
- meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
- meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- item.setItemMeta(meta);
- NamespacedKey key = new NamespacedKey(this, "wood_cutter");
- ShapedRecipe recipe = new ShapedRecipe(key, item);
- recipe.shape("LLL", " S ", " S ");
- recipe.setIngredient('L', Material.OAK_LOG);
- recipe.setIngredient('S', Material.STICK);
- return recipe;
- }
- public ShapedRecipe fastPick() {
- ItemStack item = new ItemStack(Material.NETHERITE_PICKAXE);
- ItemMeta meta = item.getItemMeta();
- assert meta != null;
- meta.addEnchant(Enchantment.DIG_SPEED, 255, true);
- meta.setUnbreakable(true);
- List<String> list = new ArrayList<>();
- list.add("");
- list.add("Just your standard fast pickaxe");
- meta.setLore(list);
- meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- meta.addItemFlags(ItemFlag.HIDE_UNBREAKABLE);
- meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
- NamespacedKey key = new NamespacedKey(this, "fast_pick");
- ShapedRecipe recipe = new ShapedRecipe(key, item);
- recipe.shape("DDD", " S ", " S ");
- recipe.setIngredient('D', Material.DIAMOND_BLOCK);
- recipe.setIngredient('S', Material.STICK);
- return null;
- }
- @EventHandler
- public void entityDamage(EntityDamageByEntityEvent event) {
- // tells if the entity that did the damage is a player or not
- if (event.getDamager().getType().equals(EntityType.PLAYER)) {
- Player player = (Player) event.getDamager();
- // gets if the player's item in hand was a netherite axe and if it had an item meta
- if (player.getInventory().getItemInMainHand().hasItemMeta() && player.getInventory().getItemInMainHand().getType().equals(Material.NETHERITE_AXE)) {
- event.setCancelled(true);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement