mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
71 lines
4.9 KiB
Diff
71 lines
4.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Encode42 <me@encode42.dev>
|
|
Date: Sun, 7 Mar 2021 19:08:16 -0500
|
|
Subject: [PATCH] Configurable Ender Pearl cooldown, damage, and Endermite RNG
|
|
|
|
- Survival and Creative Cooldown speed
|
|
- Damage dealt on pearl usage
|
|
- Endermite spawn chance
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityEnderPearl.java b/src/main/java/net/minecraft/world/entity/projectile/EntityEnderPearl.java
|
|
index cf2c691357c41a7e7044f7a719144db2ffab5dbe..d80c1abefe53e6b20dd2a020f60c11e380b57bb1 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/EntityEnderPearl.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityEnderPearl.java
|
|
@@ -69,7 +69,7 @@ public class EntityEnderPearl extends EntityProjectileThrowable {
|
|
Bukkit.getPluginManager().callEvent(teleEvent);
|
|
|
|
if (!teleEvent.isCancelled() && !entityplayer.playerConnection.isDisconnected()) {
|
|
- if (this.random.nextFloat() < 0.05F && this.world.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING)) {
|
|
+ if (this.random.nextFloat() < this.world.purpurConfig.enderPearlEndermiteChance && this.world.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING)) { // Purpur
|
|
EntityEndermite entityendermite = (EntityEndermite) EntityTypes.ENDERMITE.a(this.world);
|
|
|
|
entityendermite.setPlayerSpawned(true);
|
|
@@ -84,7 +84,7 @@ public class EntityEnderPearl extends EntityProjectileThrowable {
|
|
entityplayer.playerConnection.teleport(teleEvent.getTo());
|
|
entity.fallDistance = 0.0F;
|
|
CraftEventFactory.entityDamage = this;
|
|
- entity.damageEntity(DamageSource.FALL, 5.0F);
|
|
+ entity.damageEntity(DamageSource.FALL, this.world.purpurConfig.enderPearlDamage); // Purpur
|
|
CraftEventFactory.entityDamage = null;
|
|
}
|
|
// CraftBukkit end
|
|
diff --git a/src/main/java/net/minecraft/world/item/ItemEnderPearl.java b/src/main/java/net/minecraft/world/item/ItemEnderPearl.java
|
|
index 9896d77381e7fadf1ef2619210713e190c1445d0..61512c6755f29cb2c228ae3e80b1e08348d784a5 100644
|
|
--- a/src/main/java/net/minecraft/world/item/ItemEnderPearl.java
|
|
+++ b/src/main/java/net/minecraft/world/item/ItemEnderPearl.java
|
|
@@ -36,7 +36,7 @@ public class ItemEnderPearl extends Item {
|
|
|
|
world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_ENDER_PEARL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (net.minecraft.world.entity.Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F));
|
|
entityhuman.b(StatisticList.ITEM_USED.b(this));
|
|
- entityhuman.getCooldownTracker().setCooldown(this, 20);
|
|
+ entityhuman.getCooldownTracker().setCooldown(this, entityhuman.abilities.canInstantlyBuild ? world.purpurConfig.enderPearlCooldownCreative : world.purpurConfig.enderPearlCooldown); // Purpur
|
|
} else {
|
|
// Paper end
|
|
if (entityhuman instanceof net.minecraft.server.level.EntityPlayer) {
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index e4b1019b89febf04e544208ccabc43798ccd44ef..db4f818982d7f920b1083c25f1272f88a719302f 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -170,6 +170,10 @@ public class PurpurWorldConfig {
|
|
public List<Item> itemImmuneToFire = new ArrayList<>();
|
|
public boolean dontRunWithScissors = false;
|
|
public double scissorsRunningDamage = 1D;
|
|
+ public float enderPearlDamage = 5.0F;
|
|
+ public int enderPearlCooldown = 20;
|
|
+ public int enderPearlCooldownCreative = 20;
|
|
+ public float enderPearlEndermiteChance = 0.05F;
|
|
private void itemSettings() {
|
|
itemImmuneToCactus.clear();
|
|
getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> {
|
|
@@ -200,6 +204,10 @@ public class PurpurWorldConfig {
|
|
});
|
|
dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors);
|
|
scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage);
|
|
+ enderPearlDamage = (float) getDouble("gameplay-mechanics.item.ender-pearl.damage", enderPearlDamage);
|
|
+ enderPearlCooldown = getInt("gameplay-mechanics.item.ender-pearl.cooldown", enderPearlCooldown);
|
|
+ enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative);
|
|
+ enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance);
|
|
}
|
|
|
|
public boolean idleTimeoutKick = true;
|