-
-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
325f1c7
commit 9064ce4
Showing
3 changed files
with
118 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: violetc <[email protected]> | ||
Date: Tue, 27 Jun 2023 09:26:58 +0800 | ||
Subject: [PATCH] Creative fly no clip | ||
|
||
|
||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java | ||
index 58152160d609d0e9d105153aeb166a56a7955603..352ef747063f9cb1a26bf906f8cb52351ec4ae1d 100644 | ||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java | ||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java | ||
@@ -242,8 +242,8 @@ public abstract class Player extends LivingEntity { | ||
|
||
@Override | ||
public void tick() { | ||
- this.noPhysics = this.isSpectator(); | ||
- if (this.isSpectator()) { | ||
+ this.noPhysics = this.isCreativeFlyOrSpectator(); // Leaves - creative no clip | ||
+ if (this.isCreativeFlyOrSpectator()) { // Leaves - creative no clip | ||
this.setOnGround(false); | ||
} | ||
|
||
@@ -415,7 +415,7 @@ public abstract class Player extends LivingEntity { | ||
|
||
Pose entitypose1; | ||
|
||
- if (!this.isSpectator() && !this.isPassenger() && !this.canEnterPose(entitypose)) { | ||
+ if (!this.isCreativeFlyOrSpectator() && !this.isPassenger() && !this.canEnterPose(entitypose)) { // Leaves - creative no clip | ||
if (this.canEnterPose(Pose.CROUCHING)) { | ||
entitypose1 = Pose.CROUCHING; | ||
} else { | ||
@@ -576,7 +576,7 @@ public abstract class Player extends LivingEntity { | ||
} | ||
|
||
this.bob += (f - this.bob) * 0.4F; | ||
- if (this.getHealth() > 0.0F && !this.isSpectator()) { | ||
+ if (this.getHealth() > 0.0F && !this.isCreativeFlyOrSpectator()) { // Leaves - creative no clip | ||
AABB axisalignedbb; | ||
|
||
if (this.isPassenger() && !this.getVehicle().isRemoved()) { | ||
@@ -2130,6 +2130,12 @@ public abstract class Player extends LivingEntity { | ||
@Override | ||
public abstract boolean isSpectator(); | ||
|
||
+ // Leaves start - creative no clip | ||
+ public boolean isCreativeFlyOrSpectator() { | ||
+ return isSpectator() || (top.leavesmc.leaves.LeavesConfig.creativeNoClip && isCreative() && getAbilities().flying); | ||
+ } | ||
+ // Leaves end - creative no clip | ||
+ | ||
@Override | ||
public boolean canBeHitByProjectile() { | ||
return !this.isSpectator() && super.canBeHitByProjectile(); | ||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java | ||
index 25a9c38c60d183bb65b14f4d7550ab98b431c218..118a5b4c0a5268d52c69b0cfd061dbccfacf81b4 100644 | ||
--- a/src/main/java/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java | ||
+++ b/src/main/java/net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java | ||
@@ -151,7 +151,7 @@ public class ShulkerBoxBlockEntity extends RandomizableContainerBlockEntity impl | ||
for (int i = 0; i < list.size(); ++i) { | ||
Entity entity = (Entity) list.get(i); | ||
|
||
- if (entity.getPistonPushReaction() != PushReaction.IGNORE) { | ||
+ if (entity.getPistonPushReaction() != PushReaction.IGNORE && !(entity instanceof Player player && player.isCreativeFlyOrSpectator())) { // Leaves - creative no clip | ||
entity.move(MoverType.SHULKER_BOX, new Vec3((axisalignedbb.getXsize() + 0.01D) * (double) enumdirection.getStepX(), (axisalignedbb.getYsize() + 0.01D) * (double) enumdirection.getStepY(), (axisalignedbb.getZsize() + 0.01D) * (double) enumdirection.getStepZ())); | ||
} | ||
} | ||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java | ||
index d9baa85962236c42219cf09d4f3129be93ff069c..c1bd06fbc2c5683888f7264c35c25feb31b00d67 100644 | ||
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java | ||
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java | ||
@@ -19,6 +19,7 @@ import net.minecraft.util.Mth; | ||
import net.minecraft.util.RandomSource; | ||
import net.minecraft.world.entity.Entity; | ||
import net.minecraft.world.entity.EntitySelector; | ||
+import net.minecraft.world.entity.player.Player; | ||
import net.minecraft.world.entity.projectile.ThrownEnderpearl; | ||
import net.minecraft.world.level.BlockGetter; | ||
import net.minecraft.world.level.ChunkPos; | ||
@@ -128,7 +129,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { | ||
} | ||
|
||
public static boolean canEntityTeleport(Entity entity) { | ||
- return EntitySelector.NO_SPECTATORS.test(entity) && !entity.getRootVehicle().isOnPortalCooldown(); | ||
+ return EntitySelector.NO_SPECTATORS.test(entity) && !entity.getRootVehicle().isOnPortalCooldown() && !(entity instanceof Player player && player.isCreativeFlyOrSpectator()); // Leaves - creative no clip | ||
} | ||
|
||
public boolean isSpawning() { | ||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java | ||
index d5f5a9f61a4a030246c12bf48c93139196475540..627bc22798ad6bbdb599f55a2a296920573bcaa6 100644 | ||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java | ||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java | ||
@@ -595,6 +595,7 @@ public final class LeavesConfig { | ||
} | ||
|
||
public static void registerCarpetRules() { | ||
+ CarpetRules.rules.put("creativeNoClip", new CarpetRule("carpet", "creativeNoClip", Boolean.toString(creativeNoClip))); | ||
} | ||
|
||
public static boolean creativeNoClip = false; |