Search in sources :

Example 1 with FishingHook

use of net.minecraft.world.entity.projectile.FishingHook in project Denizen-For-Bukkit by DenizenScript.

the class FishingHelperImpl method getResult.

@Override
public org.bukkit.inventory.ItemStack getResult(FishHook fishHook, CatchType catchType) {
    ItemStack result = null;
    FishingHook nmsHook = ((CraftFishHook) fishHook).getHandle();
    if (catchType == CatchType.DEFAULT) {
        float f = ((CraftWorld) fishHook.getWorld()).getHandle().random.nextFloat();
        int i = EnchantmentHelper.getMobLooting(nmsHook.getPlayerOwner());
        int j = EnchantmentHelper.getEnchantmentLevel(Enchantments.FISHING_LUCK, nmsHook.getPlayerOwner());
        float f1 = 0.1F - (float) i * 0.025F - (float) j * 0.01F;
        float f2 = 0.05F + (float) i * 0.01F - (float) j * 0.01F;
        f1 = Mth.clamp(f1, 0.0F, 1.0F);
        f2 = Mth.clamp(f2, 0.0F, 1.0F);
        if (f < f1) {
            result = catchRandomJunk(nmsHook);
        } else {
            f -= f1;
            if (f < f2) {
                result = catchRandomTreasure(nmsHook);
            } else {
                result = catchRandomFish(nmsHook);
            }
        }
    } else if (catchType == CatchType.JUNK) {
        result = catchRandomJunk(nmsHook);
    } else if (catchType == CatchType.TREASURE) {
        result = catchRandomTreasure(nmsHook);
    } else if (catchType == CatchType.FISH) {
        result = catchRandomFish(nmsHook);
    }
    if (result != null) {
        return CraftItemStack.asBukkitCopy(result);
    } else {
        return null;
    }
}
Also used : CraftFishHook(org.bukkit.craftbukkit.v1_17_R1.entity.CraftFishHook) ItemStack(net.minecraft.world.item.ItemStack) CraftItemStack(org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack) FishingHook(net.minecraft.world.entity.projectile.FishingHook) CraftWorld(org.bukkit.craftbukkit.v1_17_R1.CraftWorld)

Example 2 with FishingHook

use of net.minecraft.world.entity.projectile.FishingHook in project Denizen-For-Bukkit by DenizenScript.

the class FishingHelperImpl method spawnHook.

@Override
public FishHook spawnHook(Location location, Player player) {
    ServerLevel nmsWorld = ((CraftWorld) location.getWorld()).getHandle();
    FishingHook hook = new FishingHook(((CraftPlayer) player).getHandle(), nmsWorld, 0, 0);
    nmsWorld.addEntity(hook, CreatureSpawnEvent.SpawnReason.CUSTOM);
    return (FishHook) hook.getBukkitEntity();
}
Also used : ServerLevel(net.minecraft.server.level.ServerLevel) FishHook(org.bukkit.entity.FishHook) CraftFishHook(org.bukkit.craftbukkit.v1_17_R1.entity.CraftFishHook) FishingHook(net.minecraft.world.entity.projectile.FishingHook) CraftWorld(org.bukkit.craftbukkit.v1_17_R1.CraftWorld)

Example 3 with FishingHook

use of net.minecraft.world.entity.projectile.FishingHook in project Denizen-For-Bukkit by DenizenScript.

the class FishingHelperImpl method getResult.

@Override
public org.bukkit.inventory.ItemStack getResult(FishHook fishHook, CatchType catchType) {
    ItemStack result = null;
    FishingHook nmsHook = ((CraftFishHook) fishHook).getHandle();
    if (catchType == CatchType.DEFAULT) {
        float f = ((CraftWorld) fishHook.getWorld()).getHandle().random.nextFloat();
        int i = EnchantmentHelper.getMobLooting(nmsHook.getPlayerOwner());
        int j = EnchantmentHelper.getEnchantmentLevel(Enchantments.FISHING_LUCK, nmsHook.getPlayerOwner());
        float f1 = 0.1F - (float) i * 0.025F - (float) j * 0.01F;
        float f2 = 0.05F + (float) i * 0.01F - (float) j * 0.01F;
        f1 = Mth.clamp(f1, 0.0F, 1.0F);
        f2 = Mth.clamp(f2, 0.0F, 1.0F);
        if (f < f1) {
            result = catchRandomJunk(nmsHook);
        } else {
            f -= f1;
            if (f < f2) {
                result = catchRandomTreasure(nmsHook);
            } else {
                result = catchRandomFish(nmsHook);
            }
        }
    } else if (catchType == CatchType.JUNK) {
        result = catchRandomJunk(nmsHook);
    } else if (catchType == CatchType.TREASURE) {
        result = catchRandomTreasure(nmsHook);
    } else if (catchType == CatchType.FISH) {
        result = catchRandomFish(nmsHook);
    }
    if (result != null) {
        return CraftItemStack.asBukkitCopy(result);
    } else {
        return null;
    }
}
Also used : CraftFishHook(org.bukkit.craftbukkit.v1_18_R1.entity.CraftFishHook) CraftItemStack(org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack) ItemStack(net.minecraft.world.item.ItemStack) FishingHook(net.minecraft.world.entity.projectile.FishingHook) CraftWorld(org.bukkit.craftbukkit.v1_18_R1.CraftWorld)

Example 4 with FishingHook

use of net.minecraft.world.entity.projectile.FishingHook in project Denizen-For-Bukkit by DenizenScript.

the class FishingHelperImpl method spawnHook.

@Override
public FishHook spawnHook(Location location, Player player) {
    ServerLevel nmsWorld = ((CraftWorld) location.getWorld()).getHandle();
    FishingHook hook = new FishingHook(((CraftPlayer) player).getHandle(), nmsWorld, 0, 0);
    nmsWorld.addFreshEntity(hook, CreatureSpawnEvent.SpawnReason.CUSTOM);
    return (FishHook) hook.getBukkitEntity();
}
Also used : ServerLevel(net.minecraft.server.level.ServerLevel) CraftFishHook(org.bukkit.craftbukkit.v1_18_R1.entity.CraftFishHook) FishHook(org.bukkit.entity.FishHook) FishingHook(net.minecraft.world.entity.projectile.FishingHook) CraftWorld(org.bukkit.craftbukkit.v1_18_R1.CraftWorld)

Aggregations

FishingHook (net.minecraft.world.entity.projectile.FishingHook)4 ServerLevel (net.minecraft.server.level.ServerLevel)2 ItemStack (net.minecraft.world.item.ItemStack)2 CraftWorld (org.bukkit.craftbukkit.v1_17_R1.CraftWorld)2 CraftFishHook (org.bukkit.craftbukkit.v1_17_R1.entity.CraftFishHook)2 CraftWorld (org.bukkit.craftbukkit.v1_18_R1.CraftWorld)2 CraftFishHook (org.bukkit.craftbukkit.v1_18_R1.entity.CraftFishHook)2 FishHook (org.bukkit.entity.FishHook)2 CraftItemStack (org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack)1 CraftItemStack (org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack)1