ToolBelt

9.6k Downloads

add a client-side Weather-changer

Ephemeris opened this issue ยท 4 comments

commented

left-click = sun
right-click = rain
shift-right-click = storm

suggested item: ghast tear (looks like rain/snow, and is generally unused by other plugins, or default game)

Not sure if that's even possible, but it would be a great addition to the creative suite.

It would ease the building (many people get more FPS without weather),
and improve the filming (good or dramatic weather for the build tour).

commented

This might now be possible as this capability has been added to Bukkit.

https://bukkit.atlassian.net/browse/BUKKIT-812
Bukkit/Bukkit#728
Bukkit/CraftBukkit#947

commented

Initial investigation not great. It appears that there is no difference for a player between WeatherType.CLEAR and WeatherType.DOWNFALL. Both of them start it raining for the player even when the server is clear. Running resetPlayerWeather() re-syncs the player with the server, but this is not the personal user weather I was hoping to see. Don't have time to investigate further today, will come back to later.

commented

Will research into what is available from the bukkit API. This is lower on my priority list, but will be investigated thoroughly.

commented

Ok, initial research done, this is not possible with just bukkit.

I can build a (probably admin only) tool that can change the weather for the entire server, please let me know if you really wish for a global version of this tool.

However, I have found that this might be possible by directly manipulating minecraft packets.
http://mcp.ocean-labs.de/files/jd124/client/net/minecraft/src/Packet70Bed.html
Oddly this packet seems to be the only one referencing changing the weather. Sending a player one of these packets with bedState = 1 would tell the client to start raining, and bedState = 2 would stop the rain.
The problem is that this would require importing more then just bukkit, which I am not comfortable doing. Feel free to fork the project and build the tool with the additional import(s).

If you find a way to modify the clients weather using pure bukkit interfaces, or if you do want a global weather changing tool, please feel free to re-open this bug with how/why.