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:
@@ -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.
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
16
eco-core/core-plugin/src/main/resources/reforges/aerobic.yml
Normal file
16
eco-core/core-plugin/src/main/resources/reforges/aerobic.yml
Normal 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
|
||||
18
eco-core/core-plugin/src/main/resources/reforges/lucky.yml
Normal file
18
eco-core/core-plugin/src/main/resources/reforges/lucky.yml
Normal 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
|
||||
16
eco-core/core-plugin/src/main/resources/reforges/rich.yml
Normal file
16
eco-core/core-plugin/src/main/resources/reforges/rich.yml
Normal 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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user