9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2025-12-24 09:29:23 +00:00

Added aerobic, lucky, rich, and streamlined reforges

This commit is contained in:
Auxilor
2021-08-12 19:50:24 +01:00
parent ad66eac88a
commit 3a4ddc1051
9 changed files with 215 additions and 0 deletions

View File

@@ -4,10 +4,14 @@ import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableSet;
import com.willfp.eco.core.config.updating.ConfigUpdater;
import com.willfp.reforges.reforges.reforges.ReforgeAerobic;
import com.willfp.reforges.reforges.reforges.ReforgeDynamic;
import com.willfp.reforges.reforges.reforges.ReforgeGravitated;
import com.willfp.reforges.reforges.reforges.ReforgeLight;
import com.willfp.reforges.reforges.reforges.ReforgeLucky;
import com.willfp.reforges.reforges.reforges.ReforgeRich;
import com.willfp.reforges.reforges.reforges.ReforgeSharp;
import com.willfp.reforges.reforges.reforges.ReforgeStreamlined;
import com.willfp.reforges.reforges.reforges.ReforgeStrong;
import com.willfp.reforges.reforges.reforges.ReforgeWealthy;
import com.willfp.reforges.reforges.reforges.ReforgeWise;
@@ -32,6 +36,10 @@ public class Reforges {
public static final Reforge GRAVITATED = new ReforgeGravitated();
public static final Reforge STRONG = new ReforgeStrong();
public static final Reforge WEALTHY = new ReforgeWealthy();
public static final Reforge RICH = new ReforgeRich();
public static final Reforge LUCKY = new ReforgeLucky();
public static final Reforge AEROBIC = new ReforgeAerobic();
public static final Reforge STREAMLINED = new ReforgeStreamlined();
/**
* Get all registered {@link Reforge}s.

View File

@@ -0,0 +1,30 @@
package com.willfp.reforges.reforges.reforges;
import com.willfp.reforges.reforges.Reforge;
import com.willfp.reforges.reforges.Reforges;
import com.willfp.reforges.reforges.meta.ReforgeTarget;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ReforgeAerobic extends Reforge {
public ReforgeAerobic() {
super("aerobic");
}
@Override
public ReforgeTarget getTarget() {
return ReforgeTarget.BOW;
}
@Override
public void onArrowDamage(@NotNull final LivingEntity attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.isOnGround()) {
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "multiplier"));
}
}
}

View File

@@ -0,0 +1,33 @@
package com.willfp.reforges.reforges.reforges;
import com.willfp.eco.util.NumberUtils;
import com.willfp.reforges.reforges.Reforge;
import com.willfp.reforges.reforges.Reforges;
import com.willfp.reforges.reforges.meta.ReforgeTarget;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ReforgeLucky extends Reforge {
public ReforgeLucky() {
super("lucky");
}
@Override
public ReforgeTarget getTarget() {
return ReforgeTarget.BOW;
}
@Override
public void onArrowDamage(@NotNull final LivingEntity attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (NumberUtils.randFloat(0, 100) < this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "chance")) {
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "multiplier"));
} else {
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "bad-multiplier"));
}
}
}

View File

@@ -0,0 +1,50 @@
package com.willfp.reforges.reforges.reforges;
import com.willfp.eco.core.events.EntityDeathByEntityEvent;
import com.willfp.eco.util.ArrowUtils;
import com.willfp.reforges.reforges.Reforge;
import com.willfp.reforges.reforges.Reforges;
import com.willfp.reforges.reforges.meta.ReforgeTarget;
import com.willfp.reforges.reforges.util.ReforgeUtils;
import com.willfp.reforges.vault.EconomyHandler;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
public class ReforgeRich extends Reforge {
public ReforgeRich() {
super("rich");
}
@Override
public ReforgeTarget getTarget() {
return ReforgeTarget.BOW;
}
@EventHandler
public void onKill(@NotNull final EntityDeathByEntityEvent event) {
if (!(event.getKiller() instanceof Arrow arrow)) {
return;
}
if (!(arrow.getShooter() instanceof Player player)) {
return;
}
ItemStack bow = ArrowUtils.getBow(arrow);
if (bow == null) {
return;
}
Reforge reforge = ReforgeUtils.getReforge(bow);
if (reforge == null || !reforge.equals(this)) {
return;
}
EconomyHandler.getInstance().depositPlayer(player, this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "money"));
}
}

View File

@@ -0,0 +1,28 @@
package com.willfp.reforges.reforges.reforges;
import com.willfp.reforges.reforges.Reforge;
import com.willfp.reforges.reforges.Reforges;
import com.willfp.reforges.reforges.meta.ReforgeTarget;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class ReforgeStreamlined extends Reforge {
public ReforgeStreamlined() {
super("streamlined");
}
@Override
public ReforgeTarget getTarget() {
return ReforgeTarget.BOW;
}
@Override
public void onArrowDamage(@NotNull final LivingEntity attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
event.setDamage(event.getDamage() * this.getConfig().getDouble(Reforges.CONFIG_LOCATION + "multiplier"));
}
}

View File

@@ -0,0 +1,16 @@
#
# Aerobic Reforge
#
name: "<gradient:#B993D6>Aerobic</gradient:#8CA6DB>"
enabled: true
description: "Deal &a9%&r more damage when shot in the air"
stone-config:
requires-stone: false
texture: ''
craftable: false
recipe: []
config:
multiplier: 1.09 # Damage multiplier

View File

@@ -0,0 +1,18 @@
#
# Lucky Reforge
#
name: "<gradient:#43C6AC>Lucky</gradient:#F8FFAE>"
enabled: true
description: "&a5%&r chance to deal &a3x&r damage, or deal &a10%&r less damage"
stone-config:
requires-stone: false
texture: ''
craftable: false
recipe: []
config:
chance: 5
multiplier: 3
bad-multiplier: 0.9

View File

@@ -0,0 +1,16 @@
#
# Rich Reforge
#
name: "<gradient:#DBDBDB>Rich</gradient:#F2F2F2>"
enabled: true
description: "Gain &e\$10&r for each mob you kill"
stone-config:
requires-stone: true
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmUzZjhjY2NlMzMxZGM0Mjg3NWY3OGY4YjUyMjNkZWNmNDg3ZTY4YTE4OTExMjJkZGYyZjEyZGJkNzMxODdjYSJ9fX0=
craftable: false
recipe: []
config:
money: 10

View File

@@ -0,0 +1,16 @@
#
# Streamlined Reforge
#
name: "<gradient:#74ebd5>Streamlined</gradient:#ACB6E5>"
enabled: true
description: "Deal &a4%&r more damage"
stone-config:
requires-stone: false
texture: ''
craftable: false
recipe: []
config:
multiplier: 1.04 # Damage multiplier