mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-04-19 17:58:15 +02:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@04a97aac more renames PaperMC/Paper@bc310d25 fix wrong absorb PaperMC/Paper@546acb55 fix debug pathfinding flag PaperMC/Paper@dfa3e44f Reorganize level storage layout to closer mirror 26.1 vanilla with CB per-level 'world container' behavior. PaperMC/Paper@b50fa5ca Call BlockDispenseEvent for SpawnEggItem PaperMC/Paper@15af4554 Cleanup final CombatTracker diff PaperMC/Paper@439972cd Readd BlockGrowEvent for cactus flower PaperMC/Paper@57e26551 Correctly replace setBlock in TripWireHookBlock PaperMC/Paper@c20b0909 Skip villager treasure map trade if disabled PaperMC/Paper@fd22888e Get MapData from server data storage PaperMC/Paper@17e063ac cleanup block data PaperMC/Paper@c7003253 [ci/skip] revert command size limit to vanilla for test server PaperMC/Paper@3ed80980 Adjust tick loop logic PaperMC/Paper@af7555e5 Fix block entity ticking list (#13724) PaperMC/Paper@062aadc6 remove type id from note block instruments PaperMC/Paper@6a08bca0 finish TagKey -> HolderSet migration PaperMC/Paper@fe91bd9e fix SO error for breeze target PaperMC/Paper@a12cd1a5 update crystal proximity checks for new range PaperMC/Paper@a44c689a Reduce diff in VineBlock.java PaperMC/Paper@b3fabd13 Correctly move FarmlandBlock#fallOn super call PaperMC/Paper@4932672f Simplify diff in AbstractPiglin PaperMC/Paper@71497253 Readd dropped StemBlock BlockGrowEvent hunk PaperMC/Paper@0110d9fe Simplify diff in DoublePlantBlock PaperMC/Paper@5b507f54 Readd dropped isInWorldBounds "inline" PaperMC/Paper@63078f4b Simplify diff in ConduitBlockEntity PaperMC/Paper@fd98513c fix provides_banner_patterns component type PaperMC/Paper@6a154f13 fix some client desync PaperMC/Paper@d6b3a3f3 missed one case PaperMC/Paper@d957fb49 Call WorldGameRuleChangeEvent for World Options Menu (#13720) PaperMC/Paper@03853ba2 Skip transient components in dumpitem command (#13689)
66 lines
2.8 KiB
Diff
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 c5a866735d7d918ea58306ea2299a8b82be52f3f..d6ddbcff911ce4c97a20883af10d2b4752b63f55 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
@@ -1343,4 +1343,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 29124cd1cf3b8fcbaa82430f6aecac5662d0a9b8..ad65c2c26195ffa423a59ae6b67d910d528aee09 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
@@ -646,6 +646,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;
|
|
}
|
|
|
|
@@ -1167,6 +1176,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);
|
|
}
|