Added speed relic/ring
This commit is contained in:
@@ -19,6 +19,7 @@ import com.willfp.talismans.talismans.talismans.relic.PoseidonRelic;
|
||||
import com.willfp.talismans.talismans.talismans.relic.RaidRelic;
|
||||
import com.willfp.talismans.talismans.talismans.relic.ResistanceRelic;
|
||||
import com.willfp.talismans.talismans.talismans.relic.SharpnessRelic;
|
||||
import com.willfp.talismans.talismans.talismans.relic.SpeedRelic;
|
||||
import com.willfp.talismans.talismans.talismans.relic.StrengthRelic;
|
||||
import com.willfp.talismans.talismans.talismans.ring.AlchemyRing;
|
||||
import com.willfp.talismans.talismans.talismans.ring.ArcheryRing;
|
||||
@@ -34,6 +35,7 @@ import com.willfp.talismans.talismans.talismans.ring.PoseidonRing;
|
||||
import com.willfp.talismans.talismans.talismans.ring.RaidRing;
|
||||
import com.willfp.talismans.talismans.talismans.ring.ResistanceRing;
|
||||
import com.willfp.talismans.talismans.talismans.ring.SharpnessRing;
|
||||
import com.willfp.talismans.talismans.talismans.ring.SpeedRing;
|
||||
import com.willfp.talismans.talismans.talismans.ring.StrengthRing;
|
||||
import com.willfp.talismans.talismans.talismans.talisman.AlchemyTalisman;
|
||||
import com.willfp.talismans.talismans.talismans.talisman.ArcheryTalisman;
|
||||
@@ -129,6 +131,8 @@ public class Talismans {
|
||||
public static final Talisman HEALING_RING = new HealingRing();
|
||||
public static final Talisman HEALING_RELIC = new HealingRelic();
|
||||
public static final Talisman SPEED_TALISMAN = new SpeedTalisman();
|
||||
public static final Talisman SPEED_RING = new SpeedRing();
|
||||
public static final Talisman SPEED_RELIC = new SpeedRelic();
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.willfp.talismans.talismans.talismans.relic;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.equipevent.EquipType;
|
||||
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.attribute.AttributeModifier;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class SpeedRelic extends Talisman {
|
||||
private static final UUID MODIFIER_UUID = UUID.randomUUID();
|
||||
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_relic", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
|
||||
|
||||
public SpeedRelic() {
|
||||
super("speed_relic", TalismanStrength.RELIC);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void postUpdate() {
|
||||
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_relic", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onExpChange(@NotNull final TalismanEquipEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!event.getTalisman().equals(this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
|
||||
assert movementSpeed != null;
|
||||
|
||||
if (event.getType() == EquipType.EQUIP) {
|
||||
if (this.getDisabledWorlds().contains(player.getWorld())) {
|
||||
movementSpeed.removeModifier(MODIFIER);
|
||||
} else {
|
||||
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
|
||||
movementSpeed.addModifier(MODIFIER);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
movementSpeed.removeModifier(MODIFIER);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.willfp.talismans.talismans.talismans.ring;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.equipevent.EquipType;
|
||||
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.attribute.AttributeModifier;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class SpeedRing extends Talisman {
|
||||
private static final UUID MODIFIER_UUID = UUID.randomUUID();
|
||||
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_ring", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
|
||||
|
||||
public SpeedRing() {
|
||||
super("speed_ring", TalismanStrength.RING);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void postUpdate() {
|
||||
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_ring", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onExpChange(@NotNull final TalismanEquipEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
|
||||
if (!event.getTalisman().equals(this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
|
||||
assert movementSpeed != null;
|
||||
|
||||
if (event.getType() == EquipType.EQUIP) {
|
||||
if (this.getDisabledWorlds().contains(player.getWorld())) {
|
||||
movementSpeed.removeModifier(MODIFIER);
|
||||
} else {
|
||||
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
|
||||
movementSpeed.addModifier(MODIFIER);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
movementSpeed.removeModifier(MODIFIER);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +1,32 @@
|
||||
package com.willfp.talismans.talismans.talismans.talisman;
|
||||
|
||||
import com.willfp.talismans.talismans.Talisman;
|
||||
import com.willfp.talismans.talismans.Talismans;
|
||||
import com.willfp.talismans.talismans.meta.TalismanStrength;
|
||||
import com.willfp.talismans.talismans.util.equipevent.EquipType;
|
||||
import com.willfp.talismans.talismans.util.equipevent.TalismanEquipEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.attribute.AttributeModifier;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class SpeedTalisman extends Talisman {
|
||||
private static final AttributeModifier MODIFIER = new AttributeModifier("speed_talisman", 0.2, AttributeModifier.Operation.ADD_NUMBER);
|
||||
private static final UUID MODIFIER_UUID = UUID.randomUUID();
|
||||
private static AttributeModifier MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", 0.05, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
|
||||
|
||||
public SpeedTalisman() {
|
||||
super("speed_talisman", TalismanStrength.TALISMAN);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void postUpdate() {
|
||||
MODIFIER = new AttributeModifier(MODIFIER_UUID, "speed_talisman", this.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percentage-bonus") / 100, AttributeModifier.Operation.MULTIPLY_SCALAR_1);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onExpChange(@NotNull final TalismanEquipEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
@@ -26,15 +35,19 @@ public class SpeedTalisman extends Talisman {
|
||||
return;
|
||||
}
|
||||
|
||||
AttributeInstance movementSpeed = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED);
|
||||
assert movementSpeed != null;
|
||||
|
||||
if (event.getType() == EquipType.EQUIP) {
|
||||
if (this.getDisabledWorlds().contains(player.getWorld())) {
|
||||
player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).removeModifier(MODIFIER);
|
||||
movementSpeed.removeModifier(MODIFIER);
|
||||
} else {
|
||||
player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).addModifier(MODIFIER);
|
||||
if (!movementSpeed.getModifiers().contains(MODIFIER)) {
|
||||
movementSpeed.addModifier(MODIFIER);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Bukkit.getLogger().info("bruh");
|
||||
player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).removeModifier(MODIFIER);
|
||||
movementSpeed.removeModifier(MODIFIER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
name: "Speed Relic"
|
||||
description: Move 25% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talisman:speed_ring
|
||||
- talisman:speed_ring
|
||||
- talisman:speed_ring
|
||||
|
||||
- talisman:speed_ring
|
||||
- nether_star
|
||||
- talisman:speed_ring
|
||||
|
||||
- talisman:speed_ring
|
||||
- talisman:speed_ring
|
||||
- talisman:speed_ring
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls.
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDRiYTRhYjRmOTNiODJlNjE0MTI4OTgwMWMzOWUwYmMyNzBjYmU1MTc5ZGY3NmU4NWI1NDMwNmMyNzhjMTdkYSJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 25
|
||||
@@ -0,0 +1,27 @@
|
||||
name: "Speed Ring"
|
||||
description: Move 10% faster.
|
||||
enabled: true
|
||||
|
||||
obtaining:
|
||||
# Recipes are left-right, top-bottom
|
||||
# The first item is the top left, the second is top middle, and so on. The last is bottom right.
|
||||
recipe:
|
||||
- talisman:speed_talisman
|
||||
- talisman:speed_talisman
|
||||
- talisman:speed_talisman
|
||||
|
||||
- talisman:speed_talisman
|
||||
- heart_of_the_sea
|
||||
- talisman:speed_talisman
|
||||
|
||||
- talisman:speed_talisman
|
||||
- talisman:speed_talisman
|
||||
- talisman:speed_talisman
|
||||
|
||||
general-config:
|
||||
disabled-in-worlds: []
|
||||
# Texture is base64, https://minecraft-heads.com has a list of skulls.
|
||||
texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTNjZTc2NjAyZDNmZWM3YzAyNzNkYTYwMDA5MDA3YmU0MTQwYWM5ZmFjMDM0MTQ1MGMwNzU3ZTUzZDc1MTU3NyJ9fX0=
|
||||
|
||||
config:
|
||||
percentage-bonus: 10
|
||||
Reference in New Issue
Block a user