mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-26 02:19:19 +00:00
Polpot make make egg and snowball can knockback player
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: lilingfengdev <145678359+lilingfengdev@users.noreply.github.com>
|
||||
Date: Thu, 18 Jan 2024 13:30:02 +0800
|
||||
Subject: [PATCH] Polpot make make egg and snowball can knockback player
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
|
||||
index 440d3d72d8b2dac14f83a83caa5ae9dbf3e979b6..26f1f1c588095d791b24b678c054cccfbbbf0706 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/Snowball.java
|
||||
@@ -3,6 +3,7 @@ package net.minecraft.world.entity.projectile;
|
||||
import net.minecraft.core.particles.ItemParticleOption;
|
||||
import net.minecraft.core.particles.ParticleOptions;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
+import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
@@ -13,6 +14,9 @@ import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.EntityHitResult;
|
||||
import net.minecraft.world.phys.HitResult;
|
||||
+// Leaf start
|
||||
+import org.dreeam.leaf.LeafConfig;
|
||||
+// Leaf end
|
||||
|
||||
public class Snowball extends ThrowableItemProjectile {
|
||||
public Snowball(EntityType<? extends Snowball> type, Level world) {
|
||||
@@ -55,6 +59,12 @@ public class Snowball extends ThrowableItemProjectile {
|
||||
Entity entity = entityHitResult.getEntity();
|
||||
int i = entity.level().purpurConfig.snowballDamage >= 0 ? entity.level().purpurConfig.snowballDamage : entity instanceof Blaze ? 3 : 0; // Purpur
|
||||
entity.hurt(this.damageSources().thrown(this, this.getOwner()), (float)i);
|
||||
+ // Leaf - Polpot start - make snowball can knockback player
|
||||
+ if (LeafConfig.snowballAndEggCanKnockback && entity instanceof ServerPlayer) {
|
||||
+ entity.hurt(this.damageSources().thrown(this, this.getOwner()), 0.0000001F);
|
||||
+ ((ServerPlayer) entity).knockback(0.4000000059604645D, this.getX() - entity.getX(), this.getZ() - entity.getZ(), this);
|
||||
+ }
|
||||
+ // Leaf - Polpot end
|
||||
}
|
||||
|
||||
// Purpur start - borrowed and modified code from ThrownPotion#onHitBlock and ThrownPotion#dowseFire
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java
|
||||
index b64ecadae45c2126b92963ac8d118dde76126ddd..8daa0d7ee597f94901948a732df5d5e9e1f670ad 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownEgg.java
|
||||
@@ -15,6 +15,9 @@ import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerEggThrowEvent;
|
||||
// CraftBukkit end
|
||||
+// Leaf start
|
||||
+import org.dreeam.leaf.LeafConfig;
|
||||
+// Leaf end
|
||||
|
||||
public class ThrownEgg extends ThrowableItemProjectile {
|
||||
|
||||
@@ -45,7 +48,14 @@ public class ThrownEgg extends ThrowableItemProjectile {
|
||||
@Override
|
||||
protected void onHitEntity(EntityHitResult entityHitResult) {
|
||||
super.onHitEntity(entityHitResult);
|
||||
+ Entity entity = entityHitResult.getEntity(); // Polpot - make egg can knockback player
|
||||
entityHitResult.getEntity().hurt(this.damageSources().thrown(this, this.getOwner()), 0.0F);
|
||||
+ // Leaf - Polpot start - make egg can knockback player
|
||||
+ if (LeafConfig.snowballAndEggCanKnockback && entity instanceof ServerPlayer) {
|
||||
+ entity.hurt(this.damageSources().thrown(this, this.getOwner()), 0.0000001F);
|
||||
+ ((ServerPlayer) entity).knockback(0.4000000059604645D, this.getX() - entity.getX(), this.getZ() - entity.getZ(), this);
|
||||
+ }
|
||||
+ // Leaf - Polpot end - make egg can knockback player
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
index db12eb7e81307cc3fd4fe0602697e32e71289f7e..0439423d1c8b3a9f063595f6df542ce54aa646ab 100644
|
||||
--- a/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
+++ b/src/main/java/org/dreeam/leaf/LeafConfig.java
|
||||
@@ -325,4 +325,8 @@ public class LeafConfig {
|
||||
private static void getSkipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer() {
|
||||
skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer = getBoolean("skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer",skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer);
|
||||
}
|
||||
+ public static boolean snowballAndEggCanKnockback = false;
|
||||
+ private static void SnowballAndEggCanKnockback() {
|
||||
+ snowballAndEggCanKnockback = getBoolean("settings.snowball-egg-knockback-players", snowballAndEggCanKnockback,"Make snowball and egg can knock back player");
|
||||
+ }
|
||||
}
|
||||
Reference in New Issue
Block a user