9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00
Files
LeavesMC/leaves-server/minecraft-patches/features/0077-Spider-jockeys-drop-gapples.patch
MC_XiaoHei 90080d238e 1.21.10 (#752)
---------

Co-authored-by: Lumine1909 <133463833+Lumine1909@users.noreply.github.com>
Co-authored-by: violetc <58360096+s-yh-china@users.noreply.github.com>
Co-authored-by: Helvetica Volubi <88063803+Suisuroru@users.noreply.github.com>
2025-11-28 03:15:54 +08:00

60 lines
3.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Tue, 5 Sep 2023 08:49:01 +0800
Subject: [PATCH] Spider jockeys drop gapples
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 37a60cf7b00adaadbca129659b3aea3d8f10c4e2..f1dab982211cf9e1018f98d238cea04cfd82e31b 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -130,4 +130,25 @@ public class Skeleton extends AbstractSkeleton {
SoundEvent getStepSound() {
return SoundEvents.SKELETON_STEP;
}
+
+ // Leaves start - spider jockeys drop gapples
+ @Override
+ protected void dropCustomDeathLoot(net.minecraft.server.level.ServerLevel level, DamageSource damageSource, boolean recentlyHit) {
+ super.dropCustomDeathLoot(level, damageSource, recentlyHit);
+ if (damageSource.getEntity() instanceof Creeper creeper && creeper.isPowered() && !creeper.droppedSkulls) {
+ creeper.droppedSkulls = true;
+ this.spawnAtLocation(level, net.minecraft.world.item.Items.SKELETON_SKULL);
+ }
+ }
+
+ @Override
+ protected void dropFromLootTable(net.minecraft.server.level.ServerLevel level, DamageSource damageSource, boolean causedByPlayer) {
+ super.dropFromLootTable(level, damageSource, causedByPlayer);
+ if (org.leavesmc.leaves.LeavesConfig.modify.spiderJockeysDropGapples > 0.0D) {
+ if (this.getRootVehicle().getType() == EntityType.SPIDER && this.random.nextDouble() < org.leavesmc.leaves.LeavesConfig.modify.spiderJockeysDropGapples) {
+ this.spawnAtLocation(level, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ENCHANTED_GOLDEN_APPLE));
+ }
+ }
+ }
+ // Leaves end - spider jockeys drop gapples
}
diff --git a/net/minecraft/world/entity/monster/Spider.java b/net/minecraft/world/entity/monster/Spider.java
index a0008c2c5338d442040598ee79a667060a649695..3b578eb1a4bffb790b2baec7ba35d027158ea8d2 100644
--- a/net/minecraft/world/entity/monster/Spider.java
+++ b/net/minecraft/world/entity/monster/Spider.java
@@ -139,6 +139,18 @@ public class Spider extends Monster {
this.entityData.set(DATA_FLAGS_ID, b);
}
+ // Leaves start - spider jockeys drop gapples
+ @Override
+ protected void dropFromLootTable(net.minecraft.server.level.ServerLevel level, DamageSource damageSource, boolean causedByPlayer) {
+ super.dropFromLootTable(level, damageSource, causedByPlayer);
+ if (org.leavesmc.leaves.LeavesConfig.modify.spiderJockeysDropGapples > 0.0D) {
+ if (this.hasPassenger(entity -> entity.getType() == EntityType.SKELETON) && this.random.nextDouble() < org.leavesmc.leaves.LeavesConfig.modify.spiderJockeysDropGapples) {
+ this.spawnAtLocation(level, new net.minecraft.world.item.ItemStack(net.minecraft.world.item.Items.ENCHANTED_GOLDEN_APPLE));
+ }
+ }
+ }
+ // Leaves end - spider jockeys drop gapples
+
@Nullable
@Override
public SpawnGroupData finalizeSpawn(