mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-21 07:59:28 +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;
|
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 = damager.map(DamagerProperty::getDamage).orElse(0.0);
|
||||||
|
|
||||||
playerDamage += event.getFinalDamage();
|
playerDamage += event.getFinalDamage();
|
||||||
topDamagers.removeIf(damagerProperty -> damagerProperty.getPlayer().equals(player));
|
topDamagers.removeIf(damagerProperty -> damagerProperty.getPlayerUUID().equals(player.getUniqueId()));
|
||||||
topDamagers.add(new DamagerProperty(player, playerDamage));
|
topDamagers.add(new DamagerProperty(player.getUniqueId(), playerDamage));
|
||||||
|
|
||||||
entity.removeMetadata("ecobosses-top-damagers", this.getPlugin());
|
entity.removeMetadata("ecobosses-top-damagers", this.getPlugin());
|
||||||
entity.setMetadata("ecobosses-top-damagers", this.getPlugin().getMetadataValueFactory().create(topDamagers));
|
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 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 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 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());
|
String thirdDamage = third == null ? na : StringUtils.internalToString(third.getDamage());
|
||||||
|
|
||||||
for (String spawnMessage : boss.getDeathMessages()) {
|
for (String spawnMessage : boss.getDeathMessages()) {
|
||||||
@@ -114,17 +114,17 @@ public class DeathListeners extends PluginDependent implements Listener {
|
|||||||
for (Pair<Double, String> pair : topDamagerCommands) {
|
for (Pair<Double, String> pair : topDamagerCommands) {
|
||||||
if (top != null && i == 1) {
|
if (top != null && i == 1) {
|
||||||
if (NumberUtils.randFloat(0, 100) < pair.getFirst()) {
|
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 (second != null && i == 2) {
|
||||||
if (NumberUtils.randFloat(0, 100) < pair.getFirst()) {
|
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 (third != null && i == 3) {
|
||||||
if (NumberUtils.randFloat(0, 100) < pair.getFirst()) {
|
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;
|
package com.willfp.ecobosses.bosses.util.obj;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class DamagerProperty {
|
public class DamagerProperty {
|
||||||
/**
|
/**
|
||||||
* The player.
|
* The player.
|
||||||
*/
|
*/
|
||||||
private final Player player;
|
private final UUID playerUUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The damage.
|
* The damage.
|
||||||
|
|||||||
Reference in New Issue
Block a user