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

Commit 0e7aed0

Browse files
committed
CarpetFix: explosionBreaksItemFrameInWaterFix
1 parent d3b4576 commit 0e7aed0

File tree

3 files changed

+50
-6
lines changed

3 files changed

+50
-6
lines changed

patches/server/0002-Vine-Config.patch

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,10 @@ index 0000000000000000000000000000000000000000..dd96b107b3208707958735ef059c6b20
140140
\ No newline at end of file
141141
diff --git a/src/main/kotlin/one/tranic/levelpowered/vine/config/VineConfig.kt b/src/main/kotlin/one/tranic/levelpowered/vine/config/VineConfig.kt
142142
new file mode 100644
143-
index 0000000000000000000000000000000000000000..cfbdc493140facfc742bbd99704bd053fcd50500
143+
index 0000000000000000000000000000000000000000..960b0d79a27c111d2d9750c05e04f8a0f216b7b0
144144
--- /dev/null
145145
+++ b/src/main/kotlin/one/tranic/levelpowered/vine/config/VineConfig.kt
146-
@@ -0,0 +1,210 @@
146+
@@ -0,0 +1,225 @@
147147
+package one.tranic.levelpowered.vine.config
148148
+
149149
+import gg.pufferfish.pufferfish.simd.SIMDDetection
@@ -212,7 +212,18 @@ index 0000000000000000000000000000000000000000..cfbdc493140facfc742bbd99704bd053
212212
+ addDefault(
213213
+ "vine.fix.incorrect-bounce-logic",
214214
+ false,
215-
+ listOf("Fixes some entities not bouncing on slime blocks and getting stuck", "Fixes: https://bugs.mojang.com/browse/MC-216985")
215+
+ listOf(
216+
+ "Fixes some entities not bouncing on slime blocks and getting stuck",
217+
+ "Fixes: https://bugs.mojang.com/browse/MC-216985"
218+
+ )
219+
+ )
220+
+ addDefault(
221+
+ "vine.fix.explosion-breaks-item-frame-in-water",
222+
+ false,
223+
+ listOf(
224+
+ "Fixes Explosions being able to destroy item frames in water",
225+
+ "Fixes: https://bugs.mojang.com/browse/MC-3697"
226+
+ )
216227
+ )
217228
+
218229
+ addDefault(
@@ -262,6 +273,7 @@ index 0000000000000000000000000000000000000000..cfbdc493140facfc742bbd99704bd053
262273
+
263274
+ private fun loadConfigValue() {
264275
+ Fix.incorrectBounceLogic = getBoolean("vine.fix.incorrect-bounce-logic")
276+
+ Fix.explosionBreaksItemFrameInWater = getBoolean("vine.fix.explosion-breaks-item-frame-in-water")
265277
+
266278
+ LevelBukkit.tryFixAnvilDrop = getBoolean("levelbukkit.try-fix-anvil-drop.enabled")
267279
+ LevelBukkit.tryFixAnvilDropLogger = getBoolean("levelbukkit.try-fix-anvil-drop.debug")
@@ -318,6 +330,9 @@ index 0000000000000000000000000000000000000000..cfbdc493140facfc742bbd99704bd053
318330
+ object Fix {
319331
+ @JvmField
320332
+ var incorrectBounceLogic = false
333+
+
334+
+ @JvmField
335+
+ var explosionBreaksItemFrameInWater = false
321336
+ }
322337
+
323338
+ object LevelBukkit {

patches/server/0025-Canvas-Optimize-Math.round-and-Math.hypot.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ index ac08e7bc5b4e25ad5bba149f358f0c46312b40d9..a45a9fc65ddcdcd51df95b6c26cd8d25
238238

239239
if (entity instanceof AbstractMinecart) {
240240
diff --git a/src/main/java/net/minecraft/util/Mth.java b/src/main/java/net/minecraft/util/Mth.java
241-
index 990ea96de8e940390b67e9462fcfd6025f2f5770..c8da0247f76eb9c2c6247833d97ffc9de0538c52 100644
241+
index 9b5aca3bb44ae0aedb0df38dfecbd7a4e3b7a65a..6994aabad832118c4f8ff0f95a25286cf28a27f1 100644
242242
--- a/src/main/java/net/minecraft/util/Mth.java
243243
+++ b/src/main/java/net/minecraft/util/Mth.java
244244
@@ -29,7 +29,7 @@ public class Mth {
@@ -399,10 +399,10 @@ index a2cb97253c0df83b5fe73eafdfe31fc1996981e6..5219167d81e3fe8cc218f9221419f90f
399399
"let exp = " + experienceProgress + "; " +
400400
level().purpurConfig.playerDeathExpDropEquation)).floatValue());
401401
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
402-
index e4d4ff0ef4a0f3283aa42fe2304816cd6d9475a8..e04f888f1490eb25d054324911e642b617f0c43a 100644
402+
index bcb15eb7c23d42ae89ec42f35aaa5eff7c6e0dc0..8fe806acf8122008d3a8457445f29fe6a61e7d90 100644
403403
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
404404
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
405-
@@ -316,7 +316,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
405+
@@ -346,7 +346,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
406406
}
407407

408408
protected static float lerpRotation(float prevRot, float newRot) {
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: 404Setup <153366651+404Setup@users.noreply.github.com>
3+
Date: Tue, 30 Jul 2024 20:25:34 +0800
4+
Subject: [PATCH] CarpetFix: explosionBreaksItemFrameInWaterFix
5+
6+
You can find the original code on https://github.com/fxmorin/carpet-fixes
7+
8+
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
9+
index 9af8fcf6abb9b768829592bc1b091ebe4599ed2e..7506f2c33582d1cf49e8a77e86da5d98c550b882 100644
10+
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
11+
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
12+
@@ -34,6 +34,7 @@ import net.minecraft.world.level.block.Blocks;
13+
import net.minecraft.world.level.block.DiodeBlock;
14+
import net.minecraft.world.level.block.state.BlockState;
15+
import net.minecraft.world.level.gameevent.GameEvent;
16+
+import net.minecraft.world.level.material.Fluids;
17+
import net.minecraft.world.level.saveddata.maps.MapId;
18+
import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
19+
import net.minecraft.world.phys.AABB;
20+
@@ -170,6 +171,9 @@ public class ItemFrame extends HangingEntity {
21+
22+
@Override
23+
public boolean hurt(DamageSource source, float amount) {
24+
+ if (one.tranic.levelpowered.vine.config.VineConfig.Fix.explosionBreaksItemFrameInWater && source.is(DamageTypeTags.IS_EXPLOSION) &&
25+
+ this.level().getFluidState(this.pos).getType().isSame(Fluids.WATER))
26+
+ return true;
27+
if (this.fixed) {
28+
return !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY) && !source.isCreativePlayer() ? false : super.hurt(source, amount);
29+
} else if (this.isInvulnerableTo(source)) {

0 commit comments

Comments
 (0)