2021-04-28 08:10:22 +10:00
|
|
|
From a26c372a2e8ad3ce0a1d68862d6309abef105103 Mon Sep 17 00:00:00 2001
|
2014-04-12 14:18:37 +10:00
|
|
|
From: drXor <mcyoungsota@gmail.com>
|
|
|
|
Date: Sun, 23 Feb 2014 16:16:59 -0400
|
|
|
|
Subject: [PATCH] Implement Silenceable Lightning API
|
|
|
|
|
|
|
|
|
2021-03-16 09:00:00 +11:00
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/EntityLightning.java b/src/main/java/net/minecraft/world/entity/EntityLightning.java
|
|
|
|
index 7a12a4666..8946fcd93 100644
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/EntityLightning.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/EntityLightning.java
|
|
|
|
@@ -35,6 +35,7 @@ public class EntityLightning extends Entity {
|
2020-06-25 10:00:00 +10:00
|
|
|
public boolean isEffect;
|
2018-07-15 10:00:00 +10:00
|
|
|
@Nullable
|
2019-04-23 12:00:00 +10:00
|
|
|
private EntityPlayer f;
|
2014-04-12 14:18:37 +10:00
|
|
|
+ public boolean isSilent = false; // Spigot
|
2016-03-01 08:33:06 +11:00
|
|
|
|
2020-06-25 10:00:00 +10:00
|
|
|
public EntityLightning(EntityTypes<? extends EntityLightning> entitytypes, World world) {
|
|
|
|
super(entitytypes, world);
|
2021-03-16 09:00:00 +11:00
|
|
|
@@ -60,7 +61,7 @@ public class EntityLightning extends Entity {
|
2019-04-23 12:00:00 +10:00
|
|
|
@Override
|
2018-07-15 10:00:00 +10:00
|
|
|
public void tick() {
|
|
|
|
super.tick();
|
2014-04-12 14:18:37 +10:00
|
|
|
- if (this.lifeTicks == 2) {
|
|
|
|
+ if (!isSilent && this.lifeTicks == 2) { // Spigot
|
2020-06-25 10:00:00 +10:00
|
|
|
EnumDifficulty enumdifficulty = this.world.getDifficulty();
|
|
|
|
|
|
|
|
if (enumdifficulty == EnumDifficulty.NORMAL || enumdifficulty == EnumDifficulty.HARD) {
|
2014-04-12 14:18:37 +10:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
2021-04-28 08:10:22 +10:00
|
|
|
index c5e284300..5a851074f 100644
|
2014-04-12 14:18:37 +10:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
2021-04-28 08:10:22 +10:00
|
|
|
@@ -2363,6 +2363,26 @@ public class CraftWorld implements World {
|
2018-07-15 10:00:00 +10:00
|
|
|
// Spigot start
|
2021-03-09 08:47:45 +11:00
|
|
|
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
|
2018-07-15 10:00:00 +10:00
|
|
|
{
|
2014-04-12 14:18:37 +10:00
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public LightningStrike strikeLightning(Location loc, boolean isSilent)
|
|
|
|
+ {
|
2020-06-25 10:00:00 +10:00
|
|
|
+ EntityLightning lightning = EntityTypes.LIGHTNING_BOLT.a( world );
|
|
|
|
+ lightning.teleportAndSync( loc.getX(), loc.getY(), loc.getZ() );
|
|
|
|
+ lightning.isSilent = isSilent;
|
2014-04-12 14:18:37 +10:00
|
|
|
+ world.strikeLightning( lightning );
|
2020-06-25 10:00:00 +10:00
|
|
|
+ return (LightningStrike) lightning.getBukkitEntity();
|
2014-04-12 14:18:37 +10:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public LightningStrike strikeLightningEffect(Location loc, boolean isSilent)
|
|
|
|
+ {
|
2020-06-25 10:00:00 +10:00
|
|
|
+ EntityLightning lightning = EntityTypes.LIGHTNING_BOLT.a( world );
|
|
|
|
+ lightning.teleportAndSync( loc.getX(), loc.getY(), loc.getZ() );
|
|
|
|
+ lightning.isEffect = true;
|
|
|
|
+ lightning.isSilent = isSilent;
|
|
|
|
+ return (LightningStrike) lightning.getBukkitEntity();
|
2014-04-12 14:18:37 +10:00
|
|
|
+ }
|
|
|
|
};
|
|
|
|
|
2021-03-09 08:47:45 +11:00
|
|
|
public org.bukkit.World.Spigot spigot()
|
2014-04-12 14:18:37 +10:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
2021-03-16 09:00:00 +11:00
|
|
|
index bd658b831..3e054592c 100644
|
2014-04-12 14:18:37 +10:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
2019-04-28 11:41:06 +10:00
|
|
|
@@ -33,6 +33,11 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike
|
2014-11-26 08:27:08 +11:00
|
|
|
// Spigot start
|
|
|
|
private final LightningStrike.Spigot spigot = new LightningStrike.Spigot() {
|
2016-11-17 12:41:12 +11:00
|
|
|
|
2014-04-12 14:18:37 +10:00
|
|
|
+ @Override
|
|
|
|
+ public boolean isSilent()
|
|
|
|
+ {
|
|
|
|
+ return getHandle().isSilent;
|
|
|
|
+ }
|
2014-11-26 08:27:08 +11:00
|
|
|
};
|
2016-11-17 12:41:12 +11:00
|
|
|
|
2014-11-26 08:27:08 +11:00
|
|
|
@Override
|
2014-04-12 14:18:37 +10:00
|
|
|
--
|
2020-05-09 18:48:11 +10:00
|
|
|
2.25.1
|
2014-04-12 14:18:37 +10:00
|
|
|
|