Files
Purpur/purpur-server/paper-patches/features/0002-Ridables.patch
granny 2a46cfc530 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@20e9fe8e Fix javadocs in DriedGhast
PaperMC/Paper@1366eaa5 Readd dropped hunk
PaperMC/Paper@4b6fae10 1.21.6-pre2
PaperMC/Paper@5cfd6383 Fix compile issues
PaperMC/Paper@18924de7 run generator
PaperMC/Paper@fbc139e0 some fixes
PaperMC/Paper@0c3879ac track block for lava/conduit damage
PaperMC/Paper@767e99c9 Moonrise attempt
PaperMC/Paper@b15c51ce Rest of feature patches
PaperMC/Paper@c136222e Moonrise compile fixes and changes
PaperMC/Paper@52880cec Fix LayeredCauldronBlock event call
PaperMC/Paper@4fa21c21 Update Moonrise to 1.21.6-pre2
PaperMC/Paper@cb705c41 Add DataConverter patch
PaperMC/Paper@87b3d8ba Replace deprecated Thread#getId usage with Thread#threadId
PaperMC/Paper@5b362692 Add MCUtil#toLocation from Folia
PaperMC/Paper@b2f3c2c9 Move over to non discarding reporter
PaperMC/Paper@4c4ddfcc Update ItemType
2025-06-03 22:14:04 -07:00

66 lines
2.8 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 5 Jul 2020 22:19:49 -0500
Subject: [PATCH] Ridables
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 5fcfbb42c4491ee0878c87bd1724b9bfab57c128..7aaeafd5ee030d032d6e0574fc991942fac5eaa7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1348,4 +1348,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.entity.get(io.papermc.paper.datacomponent.PaperDataComponentType.bukkitToMinecraft(type)) != null;
}
+ // Purpur start - Ridables
+ @Override
+ public org.bukkit.entity.Player getRider() {
+ net.minecraft.world.entity.player.Player rider = getHandle().getRider();
+ return rider != null ? (org.bukkit.entity.Player) rider.getBukkitEntity() : null;
+ }
+
+ @Override
+ public boolean hasRider() {
+ return getHandle().getRider() != null;
+ }
+
+ @Override
+ public boolean isRidable() {
+ return getHandle().isRidable();
+ }
+
+ @Override
+ public boolean isRidableInWater() {
+ return !getHandle().dismountsUnderwater();
+ }
+ // Purpur end - Ridables
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 5ceb08265f883e6634f3f4189c74aa8395addd12..5d64ce696db99f4cefe2c74357b400e00a4ccf60 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -515,6 +515,15 @@ public class CraftEventFactory {
}
craftServer.getPluginManager().callEvent(event);
+ // Purpur start - Ridables
+ if (player != null) {
+ switch (action) {
+ case LEFT_CLICK_BLOCK, LEFT_CLICK_AIR -> player.processClick(InteractionHand.MAIN_HAND);
+ case RIGHT_CLICK_BLOCK, RIGHT_CLICK_AIR -> player.processClick(InteractionHand.OFF_HAND);
+ }
+ }
+ // Purpur end - Ridables
+
return event;
}
@@ -1047,6 +1056,7 @@ public class CraftEventFactory {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
+ damager.processClick(InteractionHand.MAIN_HAND); // Purpur - Ridables
} else {
event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions);
}