bag o' patches
This commit is contained in:
		
					parent
					
						
							
								2bfe9eca4d
							
						
					
				
			
			
				commit
				
					
						88d7a4ed1d
					
				
			
		
					 38 changed files with 121 additions and 109 deletions
				
			
		
							
								
								
									
										42
									
								
								patches/server/Add-EntityLoadCrossbowEvent.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								patches/server/Add-EntityLoadCrossbowEvent.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,42 @@
 | 
			
		|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Josh Roy <10731363+JRoy@users.noreply.github.com>
 | 
			
		||||
Date: Wed, 7 Oct 2020 12:04:01 -0400
 | 
			
		||||
Subject: [PATCH] Add EntityLoadCrossbowEvent
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
 | 
			
		||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
			
		||||
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
 | 
			
		||||
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
 | 
			
		||||
@@ -0,0 +0,0 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
 | 
			
		||||
         int j = this.getUseDuration(stack) - remainingUseTicks;
 | 
			
		||||
         float f = CrossbowItem.getPowerForTime(j, stack);
 | 
			
		||||
 
 | 
			
		||||
-        if (f >= 1.0F && !CrossbowItem.isCharged(stack) && CrossbowItem.tryLoadProjectiles(user, stack)) {
 | 
			
		||||
+        // Paper start - EntityLoadCrossbowEvent
 | 
			
		||||
+        if (f >= 1.0F && !CrossbowItem.isCharged(stack) /*&& CrossbowItem.tryLoadProjectiles(entityliving, itemstack)*/) {
 | 
			
		||||
+            final io.papermc.paper.event.entity.EntityLoadCrossbowEvent event = new io.papermc.paper.event.entity.EntityLoadCrossbowEvent(user.getBukkitLivingEntity(), stack.asBukkitMirror(), user.getUsedItemHand() == InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND);
 | 
			
		||||
+            if (!event.callEvent() || !tryLoadProjectiles(user, stack, event.shouldConsumeItem())) {
 | 
			
		||||
+                if (user instanceof ServerPlayer player) player.containerMenu.sendAllDataToRemote();
 | 
			
		||||
+                return;
 | 
			
		||||
+            }
 | 
			
		||||
+            // Paper end
 | 
			
		||||
             CrossbowItem.setCharged(stack, true);
 | 
			
		||||
             SoundSource soundcategory = user instanceof Player ? SoundSource.PLAYERS : SoundSource.HOSTILE;
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +0,0 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
     private static boolean tryLoadProjectiles(LivingEntity shooter, ItemStack projectile) {
 | 
			
		||||
+        // Paper start
 | 
			
		||||
+        return CrossbowItem.tryLoadProjectiles(shooter, projectile, true);
 | 
			
		||||
+    }
 | 
			
		||||
+    private static boolean tryLoadProjectiles(LivingEntity shooter, ItemStack projectile, boolean consume) {
 | 
			
		||||
+        // Paper end
 | 
			
		||||
         int i = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.MULTISHOT, projectile);
 | 
			
		||||
         int j = i == 0 ? 1 : 3;
 | 
			
		||||
-        boolean flag = shooter instanceof Player && ((Player) shooter).getAbilities().instabuild;
 | 
			
		||||
+        boolean flag = !consume || shooter instanceof Player && ((Player) shooter).getAbilities().instabuild; // Paper - add consume
 | 
			
		||||
         ItemStack itemstack1 = shooter.getProjectile(projectile);
 | 
			
		||||
         ItemStack itemstack2 = itemstack1.copy();
 | 
			
		||||
 
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue