Skip to content
This repository was archived by the owner on Apr 13, 2025. It is now read-only.

Commit b3e72ea

Browse files
BillyGalbreathgranny
authored andcommitted
Config for mob last hurt by player time
1 parent 32c1652 commit b3e72ea

4 files changed

Lines changed: 27 additions & 59 deletions

File tree

patches/server/0233-Config-for-mob-last-hurt-by-player-time.patch

Lines changed: 0 additions & 59 deletions
This file was deleted.

purpur-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,20 @@
9797
this.noActionTime = 0;
9898
if (amount < 0.0F) {
9999
amount = 0.0F;
100+
@@ -1536,11 +_,11 @@
101+
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
102+
Entity entity = damageSource.getEntity();
103+
if (entity instanceof Player player) {
104+
- this.lastHurtByPlayerTime = 100;
105+
+ this.lastHurtByPlayerTime = this.level().purpurConfig.mobLastHurtByPlayerTime; // Purpur - Config for mob last hurt by player time
106+
this.lastHurtByPlayer = player;
107+
return player;
108+
} else if (entity instanceof Wolf wolf && wolf.isTame()) {
109+
- this.lastHurtByPlayerTime = 100;
110+
+ this.lastHurtByPlayerTime = this.level().purpurConfig.mobLastHurtByPlayerTime; // Purpur - Config for mob last hurt by player time
111+
if (wolf.getOwner() instanceof Player player1) {
112+
this.lastHurtByPlayer = player1;
113+
} else {
100114
@@ -1594,6 +_,18 @@
101115
}
102116
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
2+
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
3+
@@ -523,7 +_,7 @@
4+
net.minecraft.server.level.ServerPlayer entityPlayer = killer == null ? null : ((CraftPlayer) killer).getHandle();
5+
getHandle().lastHurtByPlayer = entityPlayer;
6+
getHandle().lastHurtByMob = entityPlayer;
7+
- getHandle().lastHurtByPlayerTime = entityPlayer == null ? 0 : 100; // 100 value taken from EntityLiving#damageEntity
8+
+ getHandle().lastHurtByPlayerTime = entityPlayer == null ? 0 : getHandle().level().purpurConfig.mobLastHurtByPlayerTime; // 100 value taken from EntityLiving#damageEntity // Purpur - Config for mob last hurt by player time
9+
}
10+
// Paper end
11+

purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ private void arrowSettings() {
143143
public boolean thunderStopsAfterSleep = true;
144144
public boolean persistentTileEntityLore = false;
145145
public boolean persistentTileEntityDisplayName = true;
146+
public int mobLastHurtByPlayerTime = 100;
146147
private void miscGameplayMechanicsSettings() {
147148
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
148149
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
@@ -175,6 +176,7 @@ private void miscGameplayMechanicsSettings() {
175176
}
176177
persistentTileEntityLore = getBoolean("gameplay-mechanics.persistent-tileentity-lore", persistentTileEntityLore);
177178
persistentTileEntityDisplayName = getBoolean("gameplay-mechanics.persistent-tileentity-display-name", persistentTileEntityDisplayName);
179+
mobLastHurtByPlayerTime = getInt("gameplay-mechanics.mob-last-hurt-by-player-time", mobLastHurtByPlayerTime);
178180
}
179181

180182
public int daytimeTicks = 12000;

0 commit comments

Comments
 (0)