summaryrefslogtreecommitdiffstats
path: root/nms-patches/WorldData.patch
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2015-01-05 09:50:48 +1100
committermd_5 <git@md-5.net>2015-01-05 09:50:48 +1100
commit07fcb493a96c789173f2995c4b91ffe496255486 (patch)
tree9da5a4ee76db660536bba30e6a6cc209b8017368 /nms-patches/WorldData.patch
parente5c51c790fad12b79e0b186fe34e38a10bd57110 (diff)
downloadcraftbukkit-07fcb493a96c789173f2995c4b91ffe496255486.tar
craftbukkit-07fcb493a96c789173f2995c4b91ffe496255486.tar.gz
craftbukkit-07fcb493a96c789173f2995c4b91ffe496255486.tar.lz
craftbukkit-07fcb493a96c789173f2995c4b91ffe496255486.tar.xz
craftbukkit-07fcb493a96c789173f2995c4b91ffe496255486.zip
Rewrite storm / thunder event handling to catch all cases. Fixes SPIGOT-335.
Diffstat (limited to 'nms-patches/WorldData.patch')
-rw-r--r--nms-patches/WorldData.patch50
1 files changed, 47 insertions, 3 deletions
diff --git a/nms-patches/WorldData.patch b/nms-patches/WorldData.patch
index 41e25097..877ae674 100644
--- a/nms-patches/WorldData.patch
+++ b/nms-patches/WorldData.patch
@@ -1,6 +1,50 @@
---- ../work/decompile-8eb82bde//net/minecraft/server/WorldData.java Sat Nov 29 19:36:33 2014
-+++ src/main/java/net/minecraft/server/WorldData.java Sat Nov 29 19:35:56 2014
-@@ -645,4 +645,12 @@
+--- ../work/decompile-8eb82bde/net/minecraft/server/WorldData.java 2015-01-05 09:50:01.989188327 +1100
++++ src/main/java/net/minecraft/server/WorldData.java 2015-01-05 09:50:01.993188321 +1100
+@@ -1,6 +1,9 @@
+ package net.minecraft.server;
+
+ import java.util.concurrent.Callable;
++import org.bukkit.Bukkit;
++import org.bukkit.event.weather.ThunderChangeEvent;
++import org.bukkit.event.weather.WeatherChangeEvent;
+
+ public class WorldData {
+
+@@ -395,6 +398,16 @@
+ }
+
+ public void setThundering(boolean flag) {
++ // CraftBukkit start
++ org.bukkit.World world = Bukkit.getWorld(getName());
++ if (world != null) {
++ ThunderChangeEvent thunder = new ThunderChangeEvent(world, flag);
++ Bukkit.getServer().getPluginManager().callEvent(thunder);
++ if (thunder.isCancelled()) {
++ return;
++ }
++ }
++ // CraftBukkit end
+ this.s = flag;
+ }
+
+@@ -411,6 +424,16 @@
+ }
+
+ public void setStorm(boolean flag) {
++ // CraftBukkit start
++ org.bukkit.World world = Bukkit.getWorld(getName());
++ if (world != null) {
++ WeatherChangeEvent weather = new WeatherChangeEvent(world, flag);
++ Bukkit.getServer().getPluginManager().callEvent(weather);
++ if (weather.isCancelled()) {
++ return;
++ }
++ }
++ // CraftBukkit end
+ this.q = flag;
+ }
+
+@@ -645,4 +668,12 @@
static boolean q(WorldData worlddata) {
return worlddata.x;
}