forked from nisovin/MagicSpells
-
Notifications
You must be signed in to change notification settings - Fork 66
/
ActionBarTextEffect.java
38 lines (29 loc) · 1.15 KB
/
ActionBarTextEffect.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.nisovin.magicspells.spelleffects.effecttypes;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.configuration.ConfigurationSection;
import com.nisovin.magicspells.util.Name;
import com.nisovin.magicspells.util.Util;
import com.nisovin.magicspells.util.SpellData;
import com.nisovin.magicspells.util.config.ConfigData;
import com.nisovin.magicspells.spelleffects.SpellEffect;
import com.nisovin.magicspells.util.config.ConfigDataUtil;
@Name("actionbartext")
public class ActionBarTextEffect extends SpellEffect {
private String message;
private ConfigData<Boolean> broadcast;
@Override
protected void loadFromConfig(ConfigurationSection config) {
message = config.getString("message", "");
broadcast = ConfigDataUtil.getBoolean(config, "broadcast", false);
}
@Override
protected Runnable playEffectEntity(Entity entity, SpellData data) {
if (broadcast.get(data)) Util.forEachPlayerOnline(p -> send(p, data));
else if (entity instanceof Player p) send(p, data);
return null;
}
private void send(Player player, SpellData data) {
player.sendActionBar(Util.getMiniMessage(message, player, data));
}
}