Added Day + Night crystals

This commit is contained in:
Auxilor
2021-06-12 19:28:48 +01:00
parent f2fef7b31c
commit 992c6a57c8
5 changed files with 196 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import com.willfp.talismans.talismans.talismans.ArcheryTalisman;
import com.willfp.talismans.talismans.talismans.AttackSpeedTalisman;
import com.willfp.talismans.talismans.talismans.BossTalisman;
import com.willfp.talismans.talismans.talismans.CreeperTalisman;
import com.willfp.talismans.talismans.talismans.DayCrystal;
import com.willfp.talismans.talismans.talismans.EndTalisman;
import com.willfp.talismans.talismans.talismans.ExperienceTalisman;
import com.willfp.talismans.talismans.talismans.ExtractionTalisman;
@@ -19,6 +20,7 @@ import com.willfp.talismans.talismans.talismans.GravityTalisman;
import com.willfp.talismans.talismans.talismans.HealingTalisman;
import com.willfp.talismans.talismans.talismans.ImmunityTalisman;
import com.willfp.talismans.talismans.talismans.NetherTalisman;
import com.willfp.talismans.talismans.talismans.NightCrystal;
import com.willfp.talismans.talismans.talismans.PoseidonTalisman;
import com.willfp.talismans.talismans.talismans.RaidTalisman;
import com.willfp.talismans.talismans.talismans.ResistanceTalisman;
@@ -74,6 +76,8 @@ public class Talismans {
public static final Talisman BOSS_TALISMAN = new BossTalisman();
public static final Talisman GRAVITY_TALISMAN = new GravityTalisman();
public static final Talisman ATTACK_SPEED_TALISMAN = new AttackSpeedTalisman();
public static final Talisman DAY_CRYSTAL = new DayCrystal();
public static final Talisman NIGHT_CRYSTAL = new NightCrystal();
/**
* Get all registered {@link Talisman}s.

View File

@@ -0,0 +1,68 @@
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.TalismanLevel;
import com.willfp.talismans.talismans.Talismans;
import org.bukkit.World;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class DayCrystal extends Talisman {
public DayCrystal() {
super("day");
}
@Override
public void onMeleeAttack(@NotNull final TalismanLevel level,
@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.getWorld().getEnvironment().equals(World.Environment.NORMAL)) {
return;
}
if (!(attacker.getWorld().getTime() < 12300 && attacker.getWorld().getTime() > 23850)) {
return;
}
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final TalismanLevel level,
@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.getWorld().getEnvironment().equals(World.Environment.NORMAL)) {
return;
}
if (!(attacker.getWorld().getTime() < 12300 && attacker.getWorld().getTime() > 23850)) {
return;
}
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final TalismanLevel level,
@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.getWorld().getEnvironment().equals(World.Environment.NORMAL)) {
return;
}
if (!(attacker.getWorld().getTime() < 12300 && attacker.getWorld().getTime() > 23850)) {
return;
}
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -0,0 +1,68 @@
package com.willfp.talismans.talismans.talismans;
import com.willfp.talismans.talismans.Talisman;
import com.willfp.talismans.talismans.TalismanLevel;
import com.willfp.talismans.talismans.Talismans;
import org.bukkit.World;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Trident;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.jetbrains.annotations.NotNull;
public class NightCrystal extends Talisman {
public NightCrystal() {
super("night");
}
@Override
public void onMeleeAttack(@NotNull final TalismanLevel level,
@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.getWorld().getEnvironment().equals(World.Environment.NORMAL)) {
return;
}
if (!(attacker.getWorld().getTime() > 12300 && attacker.getWorld().getTime() < 23850)) {
return;
}
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onArrowDamage(@NotNull final TalismanLevel level,
@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Arrow arrow,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.getWorld().getEnvironment().equals(World.Environment.NORMAL)) {
return;
}
if (!(attacker.getWorld().getTime() > 12300 && attacker.getWorld().getTime() < 23850)) {
return;
}
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
@Override
public void onTridentDamage(@NotNull final TalismanLevel level,
@NotNull final Player attacker,
@NotNull final LivingEntity victim,
@NotNull final Trident trident,
@NotNull final EntityDamageByEntityEvent event) {
if (!attacker.getWorld().getEnvironment().equals(World.Environment.NORMAL)) {
return;
}
if (!(attacker.getWorld().getTime() > 12300 && attacker.getWorld().getTime() < 23850)) {
return;
}
event.setDamage(event.getDamage() * (1 + (level.getConfig().getDouble(Talismans.CONFIG_LOCATION + "percent-more-damage")) / 100));
}
}

View File

@@ -0,0 +1,28 @@
enabled: true
disabled-in-worlds: [ ]
levels:
1:
name: "&aDay Crystal"
description: Deal 10% more damage at daytime.
obtaining:
craftable: true
recipe:
- daylight_sensor
- netherite_sword
- daylight_sensor
- netherite_sword
- ender_eye
- netherite_sword
- daylight_sensor
- netherite_sword
- daylight_sensor
general-config:
material: nether_star
config:
percent-more-damage: 10

View File

@@ -0,0 +1,28 @@
enabled: true
disabled-in-worlds: [ ]
levels:
1:
name: "&aNight Crystal"
description: Deal 10% more damage at daytime.
obtaining:
craftable: true
recipe:
- clock
- netherite_sword
- clock
- netherite_sword
- ender_eye
- netherite_sword
- clock
- netherite_sword
- clock
general-config:
material: nether_star
config:
percent-more-damage: 10