mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-21 16:09:24 +00:00
Moved top damagers to UUID to fix exploit
This commit is contained in:
@@ -110,12 +110,12 @@ public class AttackListeners extends PluginDependent implements Listener {
|
||||
|
||||
double playerDamage;
|
||||
|
||||
Optional<DamagerProperty> damager = topDamagers.stream().filter(damagerProperty -> damagerProperty.getPlayer().equals(player)).findFirst();
|
||||
Optional<DamagerProperty> damager = topDamagers.stream().filter(damagerProperty -> damagerProperty.getPlayerUUID().equals(player.getUniqueId())).findFirst();
|
||||
playerDamage = damager.map(DamagerProperty::getDamage).orElse(0.0);
|
||||
|
||||
playerDamage += event.getFinalDamage();
|
||||
topDamagers.removeIf(damagerProperty -> damagerProperty.getPlayer().equals(player));
|
||||
topDamagers.add(new DamagerProperty(player, playerDamage));
|
||||
topDamagers.removeIf(damagerProperty -> damagerProperty.getPlayerUUID().equals(player.getUniqueId()));
|
||||
topDamagers.add(new DamagerProperty(player.getUniqueId(), playerDamage));
|
||||
|
||||
entity.removeMetadata("ecobosses-top-damagers", this.getPlugin());
|
||||
entity.setMetadata("ecobosses-top-damagers", this.getPlugin().getMetadataValueFactory().create(topDamagers));
|
||||
|
||||
@@ -89,13 +89,13 @@ public class DeathListeners extends PluginDependent implements Listener {
|
||||
|
||||
String na = this.getPlugin().getLangYml().getString("na");
|
||||
|
||||
String topDamager = top == null ? na : top.getPlayer().getDisplayName();
|
||||
String topDamager = top == null ? na : Bukkit.getPlayer(top.getPlayerUUID()).getDisplayName();
|
||||
String topDamage = top == null ? na : StringUtils.internalToString(top.getDamage());
|
||||
|
||||
String secondDamager = second == null ? na : second.getPlayer().getDisplayName();
|
||||
String secondDamager = second == null ? na : Bukkit.getPlayer(second.getPlayerUUID()).getDisplayName();
|
||||
String secondDamage = second == null ? na : StringUtils.internalToString(second.getDamage());
|
||||
|
||||
String thirdDamager = third == null ? na : third.getPlayer().getDisplayName();
|
||||
String thirdDamager = third == null ? na : Bukkit.getPlayer(third.getPlayerUUID()).getDisplayName();
|
||||
String thirdDamage = third == null ? na : StringUtils.internalToString(third.getDamage());
|
||||
|
||||
for (String spawnMessage : boss.getDeathMessages()) {
|
||||
@@ -114,17 +114,17 @@ public class DeathListeners extends PluginDependent implements Listener {
|
||||
for (Pair<Double, String> pair : topDamagerCommands) {
|
||||
if (top != null && i == 1) {
|
||||
if (NumberUtils.randFloat(0, 100) < pair.getFirst()) {
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), pair.getSecond().replace("%player%", top.getPlayer().getName()));
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), pair.getSecond().replace("%player%", Bukkit.getOfflinePlayer(top.getPlayerUUID()).getName()));
|
||||
}
|
||||
}
|
||||
if (second != null && i == 2) {
|
||||
if (NumberUtils.randFloat(0, 100) < pair.getFirst()) {
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), pair.getSecond().replace("%player%", second.getPlayer().getName()));
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), pair.getSecond().replace("%player%", Bukkit.getOfflinePlayer(second.getPlayerUUID()).getName()));
|
||||
}
|
||||
}
|
||||
if (third != null && i == 3) {
|
||||
if (NumberUtils.randFloat(0, 100) < pair.getFirst()) {
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), pair.getSecond().replace("%player%", third.getPlayer().getName()));
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), pair.getSecond().replace("%player%", Bukkit.getOfflinePlayer(third.getPlayerUUID()).getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
package com.willfp.ecobosses.bosses.util.obj;
|
||||
|
||||
import lombok.Data;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Data
|
||||
public class DamagerProperty {
|
||||
/**
|
||||
* The player.
|
||||
*/
|
||||
private final Player player;
|
||||
private final UUID playerUUID;
|
||||
|
||||
/**
|
||||
* The damage.
|
||||
|
||||
Reference in New Issue
Block a user