mirror of
https://github.com/zeshan321/ActionHealth.git
synced 2025-03-10 13:49:07 +01:00
Created action system and added new placeholder
This commit is contained in:
parent
ab892b6163
commit
b6be979e8d
23
config.yml
23
config.yml
@ -4,6 +4,7 @@
|
|||||||
# {maxhealth} shows the max health of the mob or player.
|
# {maxhealth} shows the max health of the mob or player.
|
||||||
# {usestyle} will use the defined chars.
|
# {usestyle} will use the defined chars.
|
||||||
# {displayname} will use player/mob custom name.
|
# {displayname} will use player/mob custom name.
|
||||||
|
# {opponentlastdamage} the amount of damage the enemy last received.
|
||||||
# Has support for PlaceholderAPI and MVdWPlaceholderAPI.
|
# Has support for PlaceholderAPI and MVdWPlaceholderAPI.
|
||||||
Health Message: '&7&l{name}: {usestyle}'
|
Health Message: '&7&l{name}: {usestyle}'
|
||||||
|
|
||||||
@ -98,4 +99,24 @@ Name:
|
|||||||
|
|
||||||
# Translate names using Client Language. Need to install LanguageUtils
|
# Translate names using Client Language. Need to install LanguageUtils
|
||||||
# https://www.spigotmc.org/resources/1-7-x-1-12-language-utils.8859/
|
# https://www.spigotmc.org/resources/1-7-x-1-12-language-utils.8859/
|
||||||
Use Client Language: false
|
Use Client Language: false
|
||||||
|
|
||||||
|
# If enabled, when a player gets into combat they will be tagged for the configurable amount of time.
|
||||||
|
# When the enemy triggers an action the provided message will be sent.
|
||||||
|
# Supports all placeholders from above.
|
||||||
|
# Supported events: CONSUME, RIGHTCLICK, LEFTCLICK, SWAP
|
||||||
|
Action:
|
||||||
|
Enabled: false
|
||||||
|
# In seconds
|
||||||
|
TagLength: 20
|
||||||
|
# Amount of players a player can tag during combat. -1 for unlimited
|
||||||
|
TagAmount: 2
|
||||||
|
Events:
|
||||||
|
CONSUME:
|
||||||
|
GOLDEN_APPLE: '&7&l{name} consumed &cgolden apple&7&l!'
|
||||||
|
REGENERATION_POTION: '&7&l{name} consumed &cregen potion&7&l!'
|
||||||
|
RIGHTCLICK:
|
||||||
|
ENDER_PEARL: '&7&l{name} used &cender pearl&7&l!'
|
||||||
|
SWAP:
|
||||||
|
ENDER_PEARL: '&7&l{name} swapped to &cender pearls&7&l. {usestyle}&7&l'
|
||||||
|
POTION: '&7&l{name} swapped to &cpotion&7&l. {usestyle}&7&l'
|
@ -1,6 +1,6 @@
|
|||||||
name: ActionHealth
|
name: ActionHealth
|
||||||
main: com.zeshanaslam.actionhealth.Main
|
main: com.zeshanaslam.actionhealth.Main
|
||||||
version: 3.3.6
|
version: 3.4.0
|
||||||
softdepend: [PlaceholderAPI, MVdWPlaceholderAPI, WorldGuard, mcMMO, MythicMobs, LangUtils]
|
softdepend: [PlaceholderAPI, MVdWPlaceholderAPI, WorldGuard, mcMMO, MythicMobs, LangUtils]
|
||||||
commands:
|
commands:
|
||||||
Actionhealth:
|
Actionhealth:
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.zeshanaslam.actionhealth;
|
package com.zeshanaslam.actionhealth;
|
||||||
|
|
||||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||||
|
import com.zeshanaslam.actionhealth.action.ActionListener;
|
||||||
|
import com.zeshanaslam.actionhealth.action.ActionTask;
|
||||||
import com.zeshanaslam.actionhealth.commands.HealthCommand;
|
import com.zeshanaslam.actionhealth.commands.HealthCommand;
|
||||||
import com.zeshanaslam.actionhealth.config.ConfigStore;
|
import com.zeshanaslam.actionhealth.config.ConfigStore;
|
||||||
import com.zeshanaslam.actionhealth.events.HealthListeners;
|
import com.zeshanaslam.actionhealth.events.HealthListeners;
|
||||||
@ -8,6 +10,7 @@ import com.zeshanaslam.actionhealth.support.WorldGuardAPI;
|
|||||||
import com.zeshanaslam.actionhealth.utils.HealthUtil;
|
import com.zeshanaslam.actionhealth.utils.HealthUtil;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -24,6 +27,7 @@ public class Main extends JavaPlugin {
|
|||||||
public boolean mcMMOEnabled;
|
public boolean mcMMOEnabled;
|
||||||
public boolean mythicMobsEnabled;
|
public boolean mythicMobsEnabled;
|
||||||
public boolean langUtilsEnabled;
|
public boolean langUtilsEnabled;
|
||||||
|
public BukkitTask actionTask;
|
||||||
|
|
||||||
public List<UUID> toggle = new ArrayList<>();
|
public List<UUID> toggle = new ArrayList<>();
|
||||||
|
|
||||||
@ -43,6 +47,7 @@ public class Main extends JavaPlugin {
|
|||||||
|
|
||||||
// Register listeners
|
// Register listeners
|
||||||
getServer().getPluginManager().registerEvents(new HealthListeners(this), this);
|
getServer().getPluginManager().registerEvents(new HealthListeners(this), this);
|
||||||
|
getServer().getPluginManager().registerEvents(new ActionListener(this), this);
|
||||||
|
|
||||||
// Register commands
|
// Register commands
|
||||||
getCommand("Actionhealth").setExecutor(new HealthCommand(this));
|
getCommand("Actionhealth").setExecutor(new HealthCommand(this));
|
||||||
@ -63,6 +68,8 @@ public class Main extends JavaPlugin {
|
|||||||
if (Bukkit.getServer().getPluginManager().isPluginEnabled("LangUtils")) {
|
if (Bukkit.getServer().getPluginManager().isPluginEnabled("LangUtils")) {
|
||||||
langUtilsEnabled = true;
|
langUtilsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
actionTask = new ActionTask(this).runTaskTimer(this, 0, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
100
src/com/zeshanaslam/actionhealth/action/ActionListener.java
Normal file
100
src/com/zeshanaslam/actionhealth/action/ActionListener.java
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
package com.zeshanaslam.actionhealth.action;
|
||||||
|
|
||||||
|
import com.zeshanaslam.actionhealth.Main;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.Action;
|
||||||
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||||
|
import org.bukkit.event.player.PlayerItemHeldEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.potion.Potion;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ActionListener implements Listener {
|
||||||
|
|
||||||
|
private final Main main;
|
||||||
|
|
||||||
|
public ActionListener(Main main) {
|
||||||
|
this.main = main;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
public void onComabat(EntityDamageByEntityEvent event) {
|
||||||
|
if (!main.configStore.actionStore.enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getDamager() instanceof Player && event.getEntity() instanceof Player) {
|
||||||
|
Player damager = (Player) event.getDamager();
|
||||||
|
Player damaged = (Player) event.getEntity();
|
||||||
|
|
||||||
|
main.configStore.actionStore.addTag(damager.getUniqueId(), damaged.getUniqueId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
public void onConsume(PlayerItemConsumeEvent event) {
|
||||||
|
if (!main.configStore.actionStore.enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ActionStore.ActionType actionType = ActionStore.ActionType.CONSUME;
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
executeTriggers(actionType, player, event.getItem());
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
public void onSwap(PlayerItemHeldEvent event) {
|
||||||
|
if (!main.configStore.actionStore.enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ActionStore.ActionType actionType = ActionStore.ActionType.SWAP;
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
ItemStack itemStack = player.getInventory().getItem(event.getNewSlot());
|
||||||
|
|
||||||
|
executeTriggers(actionType, player, itemStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onInteract(PlayerInteractEvent event) {
|
||||||
|
if (!main.configStore.actionStore.enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
ItemStack itemStack = event.getItem();
|
||||||
|
|
||||||
|
if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||||
|
ActionStore.ActionType actionType = ActionStore.ActionType.RIGHTCLICK;
|
||||||
|
|
||||||
|
executeTriggers(actionType, player, itemStack);
|
||||||
|
} else if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK) {
|
||||||
|
ActionStore.ActionType actionType = ActionStore.ActionType.LEFTCLICK;
|
||||||
|
executeTriggers(actionType, player, itemStack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void executeTriggers(ActionStore.ActionType actionType, Player player, ItemStack itemStack) {
|
||||||
|
if (itemStack != null) {
|
||||||
|
for (String name: getName(itemStack))
|
||||||
|
main.configStore.actionStore.triggerAction(actionType, player, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getName(ItemStack itemStack) {
|
||||||
|
List<String> possibleMaterials = new ArrayList<>();
|
||||||
|
|
||||||
|
String name = itemStack.getType().name();
|
||||||
|
possibleMaterials.add(name);
|
||||||
|
|
||||||
|
if (name.contains("POTION")) {
|
||||||
|
possibleMaterials.add(Potion.fromItemStack(itemStack).getType().getEffectType().getName() + "_" + name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return possibleMaterials;
|
||||||
|
}
|
||||||
|
}
|
93
src/com/zeshanaslam/actionhealth/action/ActionStore.java
Normal file
93
src/com/zeshanaslam/actionhealth/action/ActionStore.java
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
package com.zeshanaslam.actionhealth.action;
|
||||||
|
import com.zeshanaslam.actionhealth.Main;
|
||||||
|
import com.zeshanaslam.actionhealth.action.data.Action;
|
||||||
|
import com.zeshanaslam.actionhealth.action.data.Tagged;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class ActionStore {
|
||||||
|
|
||||||
|
private final Main main;
|
||||||
|
public boolean enabled;
|
||||||
|
public int tagLength;
|
||||||
|
public int tagAmount;
|
||||||
|
public HashMap<ActionType, List<Action>> events;
|
||||||
|
public HashMap<UUID, List<Tagged>> tagged = new HashMap<>();
|
||||||
|
|
||||||
|
public ActionStore(Main main) {
|
||||||
|
this.main = main;
|
||||||
|
enabled = main.getConfig().getBoolean("Action.Enabled");
|
||||||
|
tagLength = main.getConfig().getInt("Action.TagLength");
|
||||||
|
tagAmount = main.getConfig().getInt("Action.TagAmount");
|
||||||
|
events = new HashMap<>();
|
||||||
|
|
||||||
|
for (String action: main.getConfig().getConfigurationSection("Action.Events").getKeys(false)) {
|
||||||
|
for (String type: main.getConfig().getConfigurationSection("Action.Events." + action).getKeys(false)) {
|
||||||
|
String output = main.getConfig().getString("Action.Events." + action + "." + type);
|
||||||
|
ActionType actionType = ActionType.valueOf(action);
|
||||||
|
|
||||||
|
if (events.containsKey(actionType)) {
|
||||||
|
events.get(actionType).add(new Action(type, output));
|
||||||
|
} else {
|
||||||
|
List<Action> actions = new ArrayList<>();
|
||||||
|
actions.add(new Action(type, output));
|
||||||
|
|
||||||
|
events.put(actionType, actions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addTag(UUID damager, UUID damaged) {
|
||||||
|
if (tagged.containsKey(damager)) {
|
||||||
|
// Remove oldest if > tag amount to add new player
|
||||||
|
if (tagAmount != -1 && tagged.get(damager).size() >= tagAmount)
|
||||||
|
tagged.get(damager).remove(0);
|
||||||
|
|
||||||
|
tagged.get(damager).add(new Tagged(damager, damaged, System.currentTimeMillis()));
|
||||||
|
} else {
|
||||||
|
List<Tagged> taggedList = new ArrayList<>();
|
||||||
|
taggedList.add(new Tagged(damager, damaged, System.currentTimeMillis()));
|
||||||
|
|
||||||
|
tagged.put(damager, taggedList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendMessage(UUID user, String message) {
|
||||||
|
for (List<Tagged> taggedList: tagged.values()) {
|
||||||
|
for (Tagged tagged: taggedList) {
|
||||||
|
if (tagged.damaged.equals(user)) {
|
||||||
|
Player damager = Bukkit.getServer().getPlayer(tagged.damager);
|
||||||
|
Player damaged = Bukkit.getServer().getPlayer(tagged.damaged);
|
||||||
|
|
||||||
|
String output = main.healthUtil.getOutput(damaged.getHealth(), message, damager, damaged);
|
||||||
|
|
||||||
|
if (output != null)
|
||||||
|
main.healthUtil.sendActionBar(damager, output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void triggerAction(ActionType actionType, Player player, String material) {
|
||||||
|
if (main.configStore.actionStore.events.containsKey(actionType)) {
|
||||||
|
List<Action> actionList = new ArrayList<>(main.configStore.actionStore.events.get(actionType));
|
||||||
|
Optional<Action> actionOptional = actionList.stream()
|
||||||
|
.filter(a -> a.material.equalsIgnoreCase(material)).findAny();
|
||||||
|
|
||||||
|
if (actionOptional.isPresent()) {
|
||||||
|
Action action = actionOptional.get();
|
||||||
|
main.configStore.actionStore.sendMessage(player.getUniqueId(), action.output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ActionType {
|
||||||
|
CONSUME,
|
||||||
|
SWAP,
|
||||||
|
RIGHTCLICK,
|
||||||
|
LEFTCLICK
|
||||||
|
}
|
||||||
|
}
|
33
src/com/zeshanaslam/actionhealth/action/ActionTask.java
Normal file
33
src/com/zeshanaslam/actionhealth/action/ActionTask.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package com.zeshanaslam.actionhealth.action;
|
||||||
|
|
||||||
|
import com.zeshanaslam.actionhealth.Main;
|
||||||
|
import com.zeshanaslam.actionhealth.action.data.Tagged;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class ActionTask extends BukkitRunnable {
|
||||||
|
|
||||||
|
private final Main main;
|
||||||
|
|
||||||
|
public ActionTask(Main main) {
|
||||||
|
this.main = main;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
for (UUID key: main.configStore.actionStore.tagged.keySet()) {
|
||||||
|
Iterator<Tagged> taggedIterator = main.configStore.actionStore.tagged.get(key).iterator();
|
||||||
|
while (taggedIterator.hasNext()) {
|
||||||
|
Tagged tagged = taggedIterator.next();
|
||||||
|
long secondsLeft = ((tagged.timestamp / 1000) + main.configStore.actionStore.tagLength)
|
||||||
|
- (System.currentTimeMillis() / 1000);
|
||||||
|
|
||||||
|
if (secondsLeft <= 0) {
|
||||||
|
taggedIterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
src/com/zeshanaslam/actionhealth/action/data/Action.java
Normal file
12
src/com/zeshanaslam/actionhealth/action/data/Action.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package com.zeshanaslam.actionhealth.action.data;
|
||||||
|
|
||||||
|
public class Action {
|
||||||
|
|
||||||
|
public String material;
|
||||||
|
public String output;
|
||||||
|
|
||||||
|
public Action(String material, String output) {
|
||||||
|
this.material = material;
|
||||||
|
this.output = output;
|
||||||
|
}
|
||||||
|
}
|
16
src/com/zeshanaslam/actionhealth/action/data/Tagged.java
Normal file
16
src/com/zeshanaslam/actionhealth/action/data/Tagged.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.zeshanaslam.actionhealth.action.data;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Tagged {
|
||||||
|
|
||||||
|
public UUID damager;
|
||||||
|
public UUID damaged;
|
||||||
|
public long timestamp;
|
||||||
|
|
||||||
|
public Tagged(UUID damager, UUID damaged, long timestamp) {
|
||||||
|
this.damager = damager;
|
||||||
|
this.damaged = damaged;
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package com.zeshanaslam.actionhealth.config;
|
|||||||
|
|
||||||
import com.zeshanaslam.actionhealth.LookThread;
|
import com.zeshanaslam.actionhealth.LookThread;
|
||||||
import com.zeshanaslam.actionhealth.Main;
|
import com.zeshanaslam.actionhealth.Main;
|
||||||
|
import com.zeshanaslam.actionhealth.action.ActionStore;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
@ -46,6 +47,7 @@ public class ConfigStore {
|
|||||||
public int limitHealth;
|
public int limitHealth;
|
||||||
public boolean showNPC;
|
public boolean showNPC;
|
||||||
public boolean showMiniaturePets;
|
public boolean showMiniaturePets;
|
||||||
|
public ActionStore actionStore;
|
||||||
|
|
||||||
public ConfigStore(Main plugin) {
|
public ConfigStore(Main plugin) {
|
||||||
// Clear settings for reloads
|
// Clear settings for reloads
|
||||||
@ -171,5 +173,6 @@ public class ConfigStore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
showMiniaturePets = plugin.getConfig().getBoolean("ShowMiniaturePets");
|
showMiniaturePets = plugin.getConfig().getBoolean("ShowMiniaturePets");
|
||||||
|
actionStore = new ActionStore(plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package com.zeshanaslam.actionhealth.events;
|
|||||||
|
|
||||||
import com.zeshanaslam.actionhealth.Main;
|
import com.zeshanaslam.actionhealth.Main;
|
||||||
import com.zeshanaslam.actionhealth.utils.FileHandler;
|
import com.zeshanaslam.actionhealth.utils.FileHandler;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -10,6 +11,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
|
||||||
@ -48,6 +50,8 @@ public class HealthListeners implements Listener {
|
|||||||
// Send health
|
// Send health
|
||||||
if (damaged instanceof LivingEntity) {
|
if (damaged instanceof LivingEntity) {
|
||||||
LivingEntity livingEntity = (LivingEntity) damaged;
|
LivingEntity livingEntity = (LivingEntity) damaged;
|
||||||
|
|
||||||
|
livingEntity.setLastDamage(event.getFinalDamage());
|
||||||
plugin.healthUtil.sendHealth(player, livingEntity, livingEntity.getHealth() - event.getFinalDamage());
|
plugin.healthUtil.sendHealth(player, livingEntity, livingEntity.getHealth() - event.getFinalDamage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,21 +64,21 @@ public class HealthUtil {
|
|||||||
|
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
String output = getOutput(entity.getHealth(), receiver, entity);
|
String output = getOutput(entity.getHealth(), plugin.configStore.healthMessage, receiver, entity);
|
||||||
|
|
||||||
if (output != null)
|
if (output != null)
|
||||||
sendActionBar(receiver, output);
|
sendActionBar(receiver, output);
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, plugin.configStore.delayTick);
|
}.runTaskLater(plugin, plugin.configStore.delayTick);
|
||||||
} else {
|
} else {
|
||||||
String output = getOutput(health, receiver, entity);
|
String output = getOutput(health, plugin.configStore.healthMessage, receiver, entity);
|
||||||
|
|
||||||
if (output != null)
|
if (output != null)
|
||||||
sendActionBar(receiver, output);
|
sendActionBar(receiver, output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getOutput(double health, Player receiver, LivingEntity entity) {
|
public String getOutput(double health, String output, Player receiver, LivingEntity entity) {
|
||||||
double maxHealth = entity.getMaxHealth();
|
double maxHealth = entity.getMaxHealth();
|
||||||
|
|
||||||
if (health < 0.0 || entity.isDead()) health = 0.0;
|
if (health < 0.0 || entity.isDead()) health = 0.0;
|
||||||
@ -87,8 +87,6 @@ public class HealthUtil {
|
|||||||
if (plugin.healthUtil.isBlacklisted(entity, name)) return null;
|
if (plugin.healthUtil.isBlacklisted(entity, name)) return null;
|
||||||
if (plugin.configStore.stripName) name = ChatColor.stripColor(name);
|
if (plugin.configStore.stripName) name = ChatColor.stripColor(name);
|
||||||
|
|
||||||
String output = plugin.configStore.healthMessage;
|
|
||||||
|
|
||||||
if (entity instanceof Player) {
|
if (entity instanceof Player) {
|
||||||
String displayName;
|
String displayName;
|
||||||
Player player = (Player) entity;
|
Player player = (Player) entity;
|
||||||
@ -121,6 +119,7 @@ public class HealthUtil {
|
|||||||
output = output.replace("{name}", name);
|
output = output.replace("{name}", name);
|
||||||
output = output.replace("{health}", String.valueOf((int) health));
|
output = output.replace("{health}", String.valueOf((int) health));
|
||||||
output = output.replace("{maxhealth}", String.valueOf((int) maxHealth));
|
output = output.replace("{maxhealth}", String.valueOf((int) maxHealth));
|
||||||
|
output = output.replace("{opponentlastdamage}", String.valueOf((int) entity.getLastDamage()));
|
||||||
|
|
||||||
if (output.contains("{usestyle}")) {
|
if (output.contains("{usestyle}")) {
|
||||||
StringBuilder style = new StringBuilder();
|
StringBuilder style = new StringBuilder();
|
||||||
|
Loading…
Reference in New Issue
Block a user