All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.sefiraat.slimetinker.events.DurabilityEvents Maven / Gradle / Ivy

package io.github.sefiraat.slimetinker.events;

import io.github.sefiraat.slimetinker.events.friend.EventFriend;
import io.github.sefiraat.slimetinker.utils.ItemUtils;
import io.github.sefiraat.slimetinker.utils.ThemeUtils;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.concurrent.ThreadLocalRandom;

public final class DurabilityEvents {

    private DurabilityEvents() {
        throw new UnsupportedOperationException("Utility Class");
    }

    public static void rodAluBronze(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 1);
    }

    public static void headSolder(EventFriend friend) {
        ItemMeta im = friend.getTool().getItemMeta();
        assert im != null;
        Damageable damageable = (Damageable) im;
        damageable.setDamage(friend.getTool().getType().getMaxDurability() - 1);
        friend.getTool().setItemMeta(im);
        friend.setCancelEvent(true);
    }

    public static void headAluminum(EventFriend friend) {
        if (ThreadLocalRandom.current().nextInt(1, 4) == 1) {
            ItemUtils.incrementRepair(friend.getTool(), 1);
            friend.setCancelEvent(true);
        }
    }

    public static void rodAluminum(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 1);
    }

    public static void explosive(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 17);
    }

    public static void headSingInfinity(EventFriend friend) {
        friend.setDurabilityMod(0);
    }

    public static void headMythril(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 0.5);
    }

    public static void headInfinity(EventFriend friend) {
        friend.setDurabilityMod(0);
    }

    public static void headSingAluminum(EventFriend friend) {
        if (ThreadLocalRandom.current().nextInt(1, 4) == 1) {
            ItemUtils.incrementRepair(friend.getTool(), 2);
            friend.setCancelEvent(true);
        }
    }

    public static void rodSingAluminum(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 1);
    }

    public static void rodAdvancedAlloy(EventFriend friend) {
        Damageable d = (Damageable) friend.getTool().getItemMeta();
        assert d != null;
        if (d.getDamage() < 50) {
            return;
        }
        ItemStack i = new ItemStack(Material.IRON_INGOT, 1);
        if (friend.getPlayer().getInventory().containsAtLeast(new ItemStack(Material.IRON_INGOT), 1)) {
            ItemUtils.repairItem(friend.getTool(), 50);
            friend.getPlayer().getInventory().removeItem(i);
            friend.getPlayer().sendMessage(ThemeUtils.SUCCESS + "Your tool was repaired with some iron you had lying around!");
        }

    }

    public static void headScrap(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 3);
    }

    public static void plateBrass(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 2);
    }

    public static void linksBrass(EventFriend friend) {
        friend.setDurabilityMod(friend.getDurabilityMod() + 1);
    }

    public static void plateHardened(EventFriend friend) {
        friend.setCancelEvent(true);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy