mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-04-13 09:32:09 +00:00
78 lines
3.7 KiB
Diff
78 lines
3.7 KiB
Diff
From 85f130a5810f0e316013967a8208d85dce9216d3 Mon Sep 17 00:00:00 2001
|
|
From: drXor <mcyoungsota@gmail.com>
|
|
Date: Sun, 23 Feb 2014 16:16:59 -0400
|
|
Subject: [PATCH] Implement Silenceable Lightning API
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/EntityLightning.java b/src/main/java/net/minecraft/world/entity/EntityLightning.java
|
|
index e3ce1c8b2f..a56130c834 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/EntityLightning.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/EntityLightning.java
|
|
@@ -46,6 +46,7 @@ public class EntityLightning extends Entity {
|
|
private EntityPlayer cause;
|
|
private final Set<Entity> hitEntities = Sets.newHashSet();
|
|
private int blocksSetOnFire;
|
|
+ public boolean isSilent = false; // Spigot
|
|
|
|
public EntityLightning(EntityTypes<? extends EntityLightning> entitytypes, World world) {
|
|
super(entitytypes, world);
|
|
@@ -86,7 +87,7 @@ public class EntityLightning extends Entity {
|
|
@Override
|
|
public void tick() {
|
|
super.tick();
|
|
- if (this.life == 2) {
|
|
+ if (!isSilent && this.life == 2) { // Spigot
|
|
if (this.level().isClientSide()) {
|
|
this.level().playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEffects.LIGHTNING_BOLT_THUNDER, SoundCategory.WEATHER, 10000.0F, 0.8F + this.random.nextFloat() * 0.2F, false);
|
|
this.level().playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEffects.LIGHTNING_BOLT_IMPACT, SoundCategory.WEATHER, 2.0F, 0.5F + this.random.nextFloat() * 0.2F, false);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index f15c5e41dc..b3ef2dc622 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -1947,6 +1947,27 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
|
// Spigot start
|
|
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
|
|
{
|
|
+
|
|
+ @Override
|
|
+ public LightningStrike strikeLightning(Location loc, boolean isSilent)
|
|
+ {
|
|
+ EntityLightning lightning = EntityTypes.LIGHTNING_BOLT.create( world );
|
|
+ lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() );
|
|
+ lightning.isSilent = isSilent;
|
|
+ world.strikeLightning( lightning, LightningStrikeEvent.Cause.CUSTOM );
|
|
+ return (LightningStrike) lightning.getBukkitEntity();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public LightningStrike strikeLightningEffect(Location loc, boolean isSilent)
|
|
+ {
|
|
+ EntityLightning lightning = EntityTypes.LIGHTNING_BOLT.create( world );
|
|
+ lightning.moveTo( loc.getX(), loc.getY(), loc.getZ() );
|
|
+ lightning.visualOnly = true;
|
|
+ lightning.isSilent = isSilent;
|
|
+ world.strikeLightning( lightning, LightningStrikeEvent.Cause.CUSTOM );
|
|
+ return (LightningStrike) lightning.getBukkitEntity();
|
|
+ }
|
|
};
|
|
|
|
public org.bukkit.World.Spigot spigot()
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
|
index 75d1cc7b1f..d3f5d4acc2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
|
@@ -27,6 +27,11 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike
|
|
// Spigot start
|
|
private final LightningStrike.Spigot spigot = new LightningStrike.Spigot() {
|
|
|
|
+ @Override
|
|
+ public boolean isSilent()
|
|
+ {
|
|
+ return getHandle().isSilent;
|
|
+ }
|
|
};
|
|
|
|
@Override
|
|
--
|
|
2.42.0
|
|
|