diff --git a/Changelog.txt b/Changelog.txt index 7618395dd8..556a336e54 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,5 @@ +Version 2.1.211 + Added /mmodebug info for players hitting other players Version 2.1.210 Fixed a memory leak involving mob metadata Fixed a potential null pointer exception in InventoryListener diff --git a/pom.xml b/pom.xml index 3aa6e813fd..091a939e87 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.210 + 2.1.211-SNAPSHOT mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index 14a9407635..74f2fa2dba 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -28,9 +28,11 @@ import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.worldguard.WorldGuardManager; import com.gmail.nossr50.worldguard.WorldGuardUtils; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; +import org.bukkit.attribute.Attribute; import org.bukkit.block.Block; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.*; @@ -453,6 +455,62 @@ public void onEntityDamageMonitor(EntityDamageByEntityEvent entityDamageEvent) { if(entityDamageEvent.getDamager() instanceof Projectile) { CombatUtils.cleanupArrowMetadata((Projectile) entityDamageEvent.getDamager()); } + + if(entityDamageEvent.getEntity() instanceof Player player && entityDamageEvent.getDamager() instanceof Player) { + McMMOPlayer mmoPlayer = UserManager.getPlayer(player); + if(mmoPlayer != null) { + if(mmoPlayer.isDebugMode()) { + player.sendMessage(ChatColor.GOLD + "(mmodebug start of combat report) EntityDamageByEntityEvent DEBUG Info:"); + player.sendMessage("You are being damaged by another player in this event"); + player.sendMessage("Damage: " + entityDamageEvent.getDamage()); + player.sendMessage("Final damage: " + entityDamageEvent.getFinalDamage()); + player.sendMessage("Your max health: "+player.getAttribute(Attribute.GENERIC_MAX_HEALTH)); + player.sendMessage("Your current health: "+player.getHealth()); + + if(entityDamageEvent instanceof FakeEntityDamageByEntityEvent) { + player.sendMessage("This report is for a fake damage event used by mcMMO to test a players permission to hurt another"); + } + + if(entityDamageEvent instanceof McMMOEntityDamageByRuptureEvent) { + player.sendMessage("This report is for a Rupture damage event, which is sent out by mcMMO"); + } + + if(entityDamageEvent.isCancelled()) { + player.sendMessage("Event was cancelled, which means no damage should be done."); + } + + player.sendMessage(ChatColor.RED + "(mmodebug end of combat report)"); + } + } + } + + if(entityDamageEvent.getDamager() instanceof Player player && entityDamageEvent.getEntity() instanceof Player otherPlayer) { + McMMOPlayer mmoPlayer = UserManager.getPlayer(player); + if(mmoPlayer != null) { + if(mmoPlayer.isDebugMode()) { + player.sendMessage(ChatColor.GOLD + "(mmodebug start of combat report) EntityDamageByEntityEvent DEBUG Info:"); + player.sendMessage("You are dealing damage to another player in this event"); + player.sendMessage("Damage: " + entityDamageEvent.getDamage()); + player.sendMessage("Final damage: " + entityDamageEvent.getFinalDamage()); + player.sendMessage("Target players max health: "+otherPlayer.getAttribute(Attribute.GENERIC_MAX_HEALTH)); + player.sendMessage("Target players current health: "+otherPlayer.getHealth()); + + if(entityDamageEvent instanceof FakeEntityDamageByEntityEvent) { + player.sendMessage("This report is for a fake damage event used by mcMMO to test a players permission to hurt another"); + } + + if(entityDamageEvent instanceof McMMOEntityDamageByRuptureEvent) { + player.sendMessage("This report is for a Rupture damage event, which is sent out by mcMMO"); + } + + if(entityDamageEvent.isCancelled()) { + player.sendMessage("Event was cancelled, which means no damage should be done."); + } + + player.sendMessage(ChatColor.RED + "(mmodebug end of combat report)"); + } + } + } } public boolean checkParties(Cancellable event, Player defendingPlayer, Player attackingPlayer) {