Prefer Leaves#455 to luminol (#77)
* feat: prefer Leaves#452 to luminol * feat: rename Files * rename: fixup a file name
This commit is contained in:
committed by
MrHua269
parent
177bb8eed2
commit
bbb0933042
@@ -0,0 +1,59 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
||||||
|
Date: Sun, 6 Apr 2025 10:42:47 +0800
|
||||||
|
Subject: [PATCH] Leaves Fix SculkCatalyst exp skip
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java b/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java
|
||||||
|
index 42ffb81708b327f765ba3235fdd1ab69cd7589fd..0a7e37420f8d024ffba1fd1c52edc50c10408e6e 100644
|
||||||
|
--- a/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java
|
||||||
|
+++ b/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java
|
||||||
|
@@ -25,17 +25,25 @@ public class EntityDeathEvent extends EntityEvent implements org.bukkit.event.Ca
|
||||||
|
private float deathSoundVolume;
|
||||||
|
private float deathSoundPitch;
|
||||||
|
// Paper end
|
||||||
|
+ private int rewardExp; // Leaves - exp fix
|
||||||
|
|
||||||
|
public EntityDeathEvent(@NotNull final LivingEntity entity, @NotNull DamageSource damageSource, @NotNull final List<ItemStack> drops) {
|
||||||
|
this(entity, damageSource, drops, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityDeathEvent(@NotNull final LivingEntity what, @NotNull DamageSource damageSource, @NotNull final List<ItemStack> drops, final int droppedExp) {
|
||||||
|
+ // Leaves start - exp fix
|
||||||
|
+ this(what, damageSource, drops, droppedExp, droppedExp);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public EntityDeathEvent(@NotNull final LivingEntity what, @NotNull DamageSource damageSource, @NotNull final List<ItemStack> drops, final int droppedExp, final int rewardExp) {
|
||||||
|
super(what);
|
||||||
|
this.damageSource = damageSource;
|
||||||
|
this.drops = drops;
|
||||||
|
this.dropExp = droppedExp;
|
||||||
|
+ this.rewardExp = rewardExp;
|
||||||
|
}
|
||||||
|
+ // Leaves end - exp fix
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
@@ -75,6 +83,7 @@ public class EntityDeathEvent extends EntityEvent implements org.bukkit.event.Ca
|
||||||
|
*/
|
||||||
|
public void setDroppedExp(int exp) {
|
||||||
|
this.dropExp = exp;
|
||||||
|
+ this.rewardExp = exp; // Leaves - exp fix
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -226,4 +235,14 @@ public class EntityDeathEvent extends EntityEvent implements org.bukkit.event.Ca
|
||||||
|
this.deathSoundPitch = pitch;
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
+
|
||||||
|
+ // Leaves start - exp fix
|
||||||
|
+ public int getRewardExp() {
|
||||||
|
+ return rewardExp;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setRewardExp(int rewardExp) {
|
||||||
|
+ this.rewardExp = rewardExp;
|
||||||
|
+ }
|
||||||
|
+ // Leaves end - exp fix
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
||||||
|
Date: Sun, 6 Apr 2025 10:42:45 +0800
|
||||||
|
Subject: [PATCH] Leaves Fix SculkCatalyst exp skip
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
index af903ff99441e56402278dfab069a056ce54b6c3..ca610a9ed7f8bb5e92504731df9d1678e46f0c7b 100644
|
||||||
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
@@ -293,6 +293,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
|
protected float appliedScale = 1.0F;
|
||||||
|
// CraftBukkit start
|
||||||
|
public int expToDrop;
|
||||||
|
+ public int expToReward; // Leaves - exp fix
|
||||||
|
public ArrayList<DefaultDrop> drops = new ArrayList<>(); // Paper - Restore vanilla drops behavior
|
||||||
|
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
|
||||||
|
public boolean collides = true;
|
||||||
|
@@ -1761,6 +1762,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
|
entity.killedEntity((ServerLevel) this.level(), this);
|
||||||
|
}
|
||||||
|
this.gameEvent(GameEvent.ENTITY_DIE);
|
||||||
|
+ if (!this.wasExperienceConsumed()) this.dropExperience((ServerLevel) this.level(), damageSource.getEntity()); // Leaves - exp fix
|
||||||
|
} else {
|
||||||
|
this.dead = false;
|
||||||
|
this.setHealth((float) deathEvent.getReviveHealth());
|
||||||
|
@@ -1835,7 +1837,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
|
this.drops = new ArrayList<>();
|
||||||
|
// this.dropEquipment(level); // CraftBukkit - moved up
|
||||||
|
// CraftBukkit end
|
||||||
|
- this.dropExperience(level, damageSource.getEntity());
|
||||||
|
+ // this.dropExperience(level, damageSource.getEntity()); // Leaves - exp fix
|
||||||
|
return deathEvent; // Paper
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
||||||
|
index bd6693af6412fb08a28ca9a71d5c70d54f72c6e6..8c2e35d087150fb0fc67c7457a4af9298f4b41e1 100644
|
||||||
|
--- a/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
||||||
|
+++ b/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java
|
||||||
|
@@ -96,8 +96,7 @@ public class SculkCatalystBlockEntity extends BlockEntity implements GameEventLi
|
||||||
|
public boolean handleGameEvent(ServerLevel level, Holder<GameEvent> gameEvent, GameEvent.Context context, Vec3 pos) {
|
||||||
|
if (gameEvent.is(GameEvent.ENTITY_DIE) && context.sourceEntity() instanceof LivingEntity livingEntity) {
|
||||||
|
if (!livingEntity.wasExperienceConsumed()) {
|
||||||
|
- DamageSource lastDamageSource = livingEntity.getLastDamageSource();
|
||||||
|
- int experienceReward = livingEntity.getExperienceReward(level, Optionull.map(lastDamageSource, DamageSource::getEntity));
|
||||||
|
+ int experienceReward = livingEntity.expToReward; // Leaves - exp fix
|
||||||
|
if (livingEntity.shouldDropExperience() && experienceReward > 0) {
|
||||||
|
this.sculkSpreader.addCursors(BlockPos.containing(pos.relative(Direction.UP, 0.5)), experienceReward);
|
||||||
|
this.tryAwardItSpreadsAdvancement(level, livingEntity);
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
||||||
|
Date: Sun, 6 Apr 2025 10:42:46 +0800
|
||||||
|
Subject: [PATCH] Leaves Fix SculkCatalyst exp skip
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
|
index bef7a026676ab59a84fc33c8af50ad2b9447fd8c..0a678458bcee4ced98d2880821dbff302f59b7f6 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
|
@@ -991,7 +991,7 @@ public class CraftEventFactory {
|
||||||
|
CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity();
|
||||||
|
CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource);
|
||||||
|
CraftWorld world = (CraftWorld) entity.getWorld();
|
||||||
|
- EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward(world.getHandle(), damageSource.getEntity())); // Paper - Restore vanilla drops behavior
|
||||||
|
+ EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward(world.getHandle(), damageSource.getEntity()), victim.getExperienceReward(world.getHandle(), damageSource.getEntity())); // Paper - Restore vanilla drops behavior // Leaves - exp fix
|
||||||
|
populateFields(victim, event); // Paper - make cancellable
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
@@ -1002,6 +1002,7 @@ public class CraftEventFactory {
|
||||||
|
playDeathSound(victim, event);
|
||||||
|
// Paper end
|
||||||
|
victim.expToDrop = event.getDroppedExp();
|
||||||
|
+ victim.expToReward = event.getRewardExp(); // Leaves - exp fix
|
||||||
|
lootCheck.run(); // Paper - advancement triggers before destroying items
|
||||||
|
|
||||||
|
// Paper start - Restore vanilla drops behavior
|
||||||
|
@@ -1037,6 +1038,7 @@ public class CraftEventFactory {
|
||||||
|
victim.newLevel = event.getNewLevel();
|
||||||
|
victim.newTotalExp = event.getNewTotalExp();
|
||||||
|
victim.expToDrop = event.getDroppedExp();
|
||||||
|
+ victim.expToReward = event.getRewardExp(); // Leaves - exp fix
|
||||||
|
victim.newExp = event.getNewExp();
|
||||||
|
|
||||||
|
// Paper start - Restore vanilla drops behavior
|
||||||
Reference in New Issue
Block a user