diff options
author | md_5 <git@md-5.net> | 2015-01-05 09:50:48 +1100 |
---|---|---|
committer | md_5 <git@md-5.net> | 2015-01-05 09:50:48 +1100 |
commit | 07fcb493a96c789173f2995c4b91ffe496255486 (patch) | |
tree | 9da5a4ee76db660536bba30e6a6cc209b8017368 /nms-patches/WorldData.patch | |
parent | e5c51c790fad12b79e0b186fe34e38a10bd57110 (diff) | |
download | craftbukkit-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.patch | 50 |
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; } |