Skip to content

Commit

Permalink
2.1.228
Browse files Browse the repository at this point in the history
  • Loading branch information
nossr50 committed Feb 14, 2024
1 parent 5bfca3c commit 85f27fd
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 28 deletions.
10 changes: 7 additions & 3 deletions Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
Version 2.1.228
Fixed stack trace due to Spigot API break on EntityDamageEvent and EntityDamageByEntity event
(API) - Removed FakeEntityDamageEvent and FakeEntityDamageByEntityEvent, you can use our metadata constant to check if damage is from mcMMO instead
(API) - Temporarily removed McMMOEntityDamageByRuptureEvent, this needs to be reworked for the new spigot API changes
Fixed a stack trace due to Spigot API break on EntityDamageEvent and EntityDamageByEntity event
(API) - Removed FakeEntityDamageEvent and FakeEntityDamageByEntityEvent
(API) - Reworked McMMOEntityDamageByRuptureEvent, this no longer extends EntityDamageByEntityEvent, instead it extends EntityEvent

Notes:
Some care went into keeping mcMMO compatible with older versions despite a big API break from Spigot, this may introduce some new bugs, so please report them if you run into any.

Version 2.1.227
Fixed bug where some text would not be displayed to players (Adventure dependency update)
Repair sound effect from mcMMO can now be adjusted in Minecraft sound options (Thanks MithicSpirit)
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.nossr50.mcMMO</groupId>
<artifactId>mcMMO</artifactId>
<version>2.1.228-SNAPSHOT</version>
<version>2.1.228</version>
<name>mcMMO</name>
<url>https://github.com/mcMMO-Dev/mcMMO</url>
<scm>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,57 @@
//package com.gmail.nossr50.events.skills.rupture;
//
//import com.gmail.nossr50.datatypes.player.McMMOPlayer;
//import org.bukkit.entity.Entity;
//import org.bukkit.event.entity.EntityDamageByEntityEvent;
//import org.jetbrains.annotations.NotNull;
//
//public class McMMOEntityDamageByRuptureEvent extends EntityDamageByEntityEvent {
// private final McMMOPlayer mcMMODamager;
//
// public McMMOEntityDamageByRuptureEvent(@NotNull McMMOPlayer damager, @NotNull Entity damagee, double damage) {
// this.mcMMODamager = damager;
// }
//
// @NotNull
// public McMMOPlayer getMcMMODamager() {
// return mcMMODamager;
// }
//}
package com.gmail.nossr50.events.skills.rupture;

import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import org.bukkit.entity.Entity;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.NotNull;

public class McMMOEntityDamageByRuptureEvent extends EntityEvent implements Cancellable {
private final McMMOPlayer damager;
private final Entity damagee;
private double damage;
private boolean isCancelled = false;
private static final HandlerList handlers = new HandlerList();

public McMMOEntityDamageByRuptureEvent(@NotNull McMMOPlayer damager, @NotNull Entity damagee, double damage) {
super(damagee);
this.damager = damager;
this.damagee = damagee;
this.damage = damage;
}

@NotNull
@Deprecated
public McMMOPlayer getMcMMODamager() {
return damager;
}

public McMMOPlayer getDamager() {
return damager;
}

public double getDamage() {
return damage;
}

public void setDamage(double damage) {
this.damage = Math.max(0, damage);
}

@Override
public boolean isCancelled() {
return isCancelled;
}

@Override
public void setCancelled(boolean cancel) {
isCancelled = cancel;
}

@NotNull
@Override
public HandlerList getHandlers() {
return handlers;
}
}
17 changes: 13 additions & 4 deletions src/main/java/com/gmail/nossr50/runnables/skills/RuptureTask.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package com.gmail.nossr50.runnables.skills;

import com.gmail.nossr50.datatypes.MobHealthbarType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.events.skills.rupture.McMMOEntityDamageByRuptureEvent;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.CancellableRunnable;
import com.gmail.nossr50.util.MetadataConstants;
import com.gmail.nossr50.util.MobHealthbarUtils;
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
import com.google.common.base.Objects;
import org.bukkit.entity.LivingEntity;
Expand Down Expand Up @@ -82,15 +85,21 @@ private boolean applyRupture() {

//Ensure victim has health
if (healthBeforeRuptureIsApplied > 0.01) {
// TODO: Needs updating for new spigot API
double damage = calculateAdjustedTickDamage(); //Use raw damage for Rupture
//Send a fake damage event
McMMOEntityDamageByRuptureEvent event =
new McMMOEntityDamageByRuptureEvent(ruptureSource, targetEntity, calculateAdjustedTickDamage());
mcMMO.p.getServer().getPluginManager().callEvent(event);

if (damage <= 0 || healthBeforeRuptureIsApplied - damage <= 0) {
//Ensure the event wasn't cancelled and damage is still greater than 0
double damage = event.getDamage(); //Use raw damage for Rupture

if (event.isCancelled() || damage <= 0 || healthBeforeRuptureIsApplied - damage <= 0)
return true;
}

double damagedHealth = healthBeforeRuptureIsApplied - damage;

targetEntity.setHealth(damagedHealth); //Hurt entity without the unwanted side effects of damage()}
MobHealthbarUtils.handleMobHealthbars(targetEntity, damage, mcMMO.p);
}

return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public static void handleMobHealthbars(LivingEntity target, double damage, mcMMO
return;
}

if (isBoss(target)) {
if (isBoss(target) || target instanceof Player) {
return;
}

Expand Down

0 comments on commit 85f27fd

Please sign in to comment.