mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-08-31 21:49:13 +00:00

* Now Tracks Commands * Resolved Performance issue with Bukkit HandlerList method. Now all timings simply uses the Spigot System * Performance Improvement simply not using TimedRegisteredListener too * Bug with SyncChunkLoad tracking resolved. Now properly tracks many aspects of sync chunk load. * Reset/On/Off accuracy - should no longer have any issues turning it on/off during runtime, so this has been re-enabled. * Paste command on RCON now works * Now tracks everything related to plugins too, so you can easily see total plugin cost * Now tracks Tasks better and where they came from * Now tracks plugins event handlers to the Listener/Method name too. * Merged some Bukkit Patches so all timings changes are in 1 patch. * Moved back to a CLQ for CustomTimingsHandler for thread safety for when tasks are created Async but then executed sync.
105 lines
3.8 KiB
Diff
105 lines
3.8 KiB
Diff
From 49e94bb7929de99d33a431e6716cd66772713094 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/server/EntityLightning.java b/src/main/java/net/minecraft/server/EntityLightning.java
|
|
index 2fd88c0..35806d1 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLightning.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLightning.java
|
|
@@ -13,6 +13,8 @@ public class EntityLightning extends EntityWeather {
|
|
// CraftBukkit start
|
|
public boolean isEffect = false;
|
|
|
|
+ public boolean isSilent = false; // Spigot
|
|
+
|
|
public EntityLightning(World world, double d0, double d1, double d2) {
|
|
this(world, d0, d1, d2, false);
|
|
}
|
|
@@ -60,9 +62,17 @@ public class EntityLightning extends EntityWeather {
|
|
}
|
|
}
|
|
|
|
+ // Spigot start
|
|
+ public EntityLightning(World world, double d0, double d1, double d2, boolean isEffect, boolean isSilent)
|
|
+ {
|
|
+ this( world, d0, d1, d2, isEffect );
|
|
+ this.isSilent = isSilent;
|
|
+ }
|
|
+ // Spigot end
|
|
+
|
|
public void h() {
|
|
super.h();
|
|
- if (this.lifeTicks == 2) {
|
|
+ if (!isSilent && this.lifeTicks == 2) { // Spigot
|
|
this.world.makeSound(this.locX, this.locY, this.locZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.random.nextFloat() * 0.2F);
|
|
this.world.makeSound(this.locX, this.locY, this.locZ, "random.explode", 2.0F, 0.5F + this.random.nextFloat() * 0.2F);
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index 167a1aa..41f70c2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -1361,6 +1361,22 @@ public class CraftWorld implements World {
|
|
{
|
|
CraftWorld.this.playEffect( location, effect, 0 );
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public LightningStrike strikeLightning(Location loc, boolean isSilent)
|
|
+ {
|
|
+ EntityLightning lightning = new EntityLightning( world, loc.getX(), loc.getY(), loc.getZ(), false, isSilent );
|
|
+ world.strikeLightning( lightning );
|
|
+ return new CraftLightningStrike( server, lightning );
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public LightningStrike strikeLightningEffect(Location loc, boolean isSilent)
|
|
+ {
|
|
+ EntityLightning lightning = new EntityLightning( world, loc.getX(), loc.getY(), loc.getZ(), true, isSilent );
|
|
+ world.strikeLightning( lightning );
|
|
+ return new CraftLightningStrike( server, lightning );
|
|
+ }
|
|
};
|
|
|
|
public 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 64e346d..be4f10f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java
|
|
@@ -1,7 +1,9 @@
|
|
package org.bukkit.craftbukkit.entity;
|
|
|
|
import net.minecraft.server.EntityLightning;
|
|
+
|
|
import org.bukkit.craftbukkit.CraftServer;
|
|
+import org.bukkit.entity.Arrow;
|
|
import org.bukkit.entity.EntityType;
|
|
import org.bukkit.entity.LightningStrike;
|
|
|
|
@@ -27,4 +29,22 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike
|
|
public EntityType getType() {
|
|
return EntityType.LIGHTNING;
|
|
}
|
|
+
|
|
+ // Spigot start
|
|
+ private final LightningStrike.Spigot spigot = new LightningStrike.Spigot()
|
|
+ {
|
|
+
|
|
+ @Override
|
|
+ public boolean isSilent()
|
|
+ {
|
|
+ return getHandle().isSilent;
|
|
+ }
|
|
+
|
|
+ };
|
|
+
|
|
+ public LightningStrike.Spigot spigot()
|
|
+ {
|
|
+ return this.spigot;
|
|
+ }
|
|
+ // Spigot end
|
|
}
|
|
--
|
|
1.9.1
|
|
|