From 07fcb493a96c789173f2995c4b91ffe496255486 Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 5 Jan 2015 09:50:48 +1100 Subject: Rewrite storm / thunder event handling to catch all cases. Fixes SPIGOT-335. --- nms-patches/WorldData.patch | 50 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) (limited to 'nms-patches/WorldData.patch') 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; } -- cgit v1.2.3