9
0
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:
lilingfengdev
2024-01-18 13:30:27 +08:00
parent 7ba5b5ee9e
commit 475b0d9fe1

View File

@@ -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");
+ }
}