mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-22 16:39:25 +00:00
Reworked effect registration
This commit is contained in:
@@ -1,16 +1,11 @@
|
|||||||
package com.willfp.ecobosses.bosses.effects;
|
package com.willfp.ecobosses.bosses.effects;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.willfp.ecobosses.bosses.effects.effects.*;
|
||||||
import com.willfp.ecobosses.bosses.effects.effects.EffectDamageNearbyPlayers;
|
|
||||||
import com.willfp.ecobosses.bosses.effects.effects.EffectGivePotionEffect;
|
|
||||||
import com.willfp.ecobosses.bosses.effects.effects.EffectLightningNearbyEntities;
|
|
||||||
import com.willfp.ecobosses.bosses.effects.effects.EffectShuffleHotbar;
|
|
||||||
import com.willfp.ecobosses.bosses.effects.effects.EffectSummon;
|
|
||||||
import com.willfp.ecobosses.bosses.effects.effects.EffectTeleport;
|
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@@ -20,14 +15,27 @@ public class Effects {
|
|||||||
/**
|
/**
|
||||||
* Registered effects.
|
* Registered effects.
|
||||||
*/
|
*/
|
||||||
private static final Map<String, Function<List<String>, Effect>> EFFECTS = new ImmutableMap.Builder<String, Function<List<String>, Effect>>()
|
private static final Map<String, Function<List<String>, Effect>> EFFECTS = new HashMap<>();
|
||||||
.put("damage-nearby-players", EffectDamageNearbyPlayers::new)
|
|
||||||
.put("lightning-nearby-entities", EffectLightningNearbyEntities::new)
|
static {
|
||||||
.put("summon", EffectSummon::new)
|
register("damage-nearby-players", EffectDamageNearbyPlayers::new);
|
||||||
.put("give-potion-effect", EffectGivePotionEffect::new)
|
register("lightning-nearby-entities", EffectLightningNearbyEntities::new);
|
||||||
.put("shuffle-hotbar", EffectShuffleHotbar::new)
|
register("summon", EffectSummon::new);
|
||||||
.put("teleport", EffectTeleport::new)
|
register("give-potion-effect", EffectGivePotionEffect::new);
|
||||||
.build();
|
register("shuffle-hotbar", EffectShuffleHotbar::new);
|
||||||
|
register("teleport", EffectTeleport::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register new effect.
|
||||||
|
*
|
||||||
|
* @param name The effect name.
|
||||||
|
* @param creator Function to create an instance of the effect given args.
|
||||||
|
*/
|
||||||
|
public void register(@NotNull final String name,
|
||||||
|
@NotNull final Function<List<String>, Effect> creator) {
|
||||||
|
EFFECTS.put(name, creator);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get effect matching name.
|
* Get effect matching name.
|
||||||
|
|||||||
Reference in New Issue
Block a user