BioSeasons
/ Check out my other plugins /
This Plugin will make it possible to enjoy the four Seasons on a bukkit Server. For this my Plugin will change each Biome for each Season. I've used the Plugin BiomeEdit in order to create this project. So everything is based on it.
Please mind: You can choose which worlds and which Biomes should be affected by this Plugin. So the following does ONLY affect these biomes/worlds.
The Seasons
Summer
This is the normal State. (plains are plains ; deserts are deserts ; taiga stays taiga)
Autumn
In Autumn each Biome, excepted SnowBiomes, will changed to desert. This is because of the textures of leaves and grass. In a desert they are looking more like autumn.
Winter
Each Biome excepted the deserts will be changed to Ice-plains. So it's snowing everywhere. There are also some cool features in Winter.
Spring
Each Biome will be changed back to their normal State/Biometype. The fallen snow will be removed and ice will be replaced by water during those days. Please mind.
SpecialFeatures
- In Winter you have to wear leather armour to protect yourself from the cold. Helding a torch is also possible. (You won't get damaged in deserts)
- Plants won't grow or will grow slower. (excepted in deserts)
- A calendar 'Update: 0.2.3'
Events
::Update 0.2.2::
These Events are connected to the In-Game-Days and will repeat each circle of the (In-Game)-Year. You can set the duration of this year in your Plugin-configuration.
You can add/change/delete Events in the "Events.txt": The Event-File-Description.
Events that are connected to the real time (e.g.: [DD.MM.YYYY] 12.01.2014) (e.g.: [HH:MM] 22:35) will be add in a further version.
Configuration
How it works
- Each biome will be registered and saved in a file, so we can rebuild each Biome after each circle
- The plugin also saves each Chunk to make to sure, that each biome will only registered once
- The Plugin updates automatically this file, while discovering new areas.
- Changing Biomes will cost it's time and please make sure that your server is "strong" enough to keep everything running
- When there are problems with your BiomeAreas: "When you regenerate the specific area, the biome code itself will be reset too." (quotation) -> The default Biomesettings
- The biomes are changed at the FIRST day of each Season
- Problems: The outlines of the Biomes are not perfect. There's a max tolerance of four Blocks. (This is not really a problem at all)
Updates
- Version 1.7.2 will be released soon -> Done
- move the Save-Files in the plugin-folder.
- more effective/dynamic BiomeChange
- More Pictures for the description
- Specialdays <> The Event-update -> Done
Commands
Update: 0.2.3
- /bioseasonDay [set [no.] / get] : Sets the current day of a year. Returns the current Season / day
- /bioseason cal [enable/disable] : enable/disable the sidebar-calendar
- /bioseason maintenance : enable sidebar maintenance
- /UpdateLogs [add/replace] : This will check the loaded Chunks/Areas and will add them to List. Usefull if you run this plugin on a server which was used before. This process may take up to a couple of hours and your server will lag.
- /bioseason set [winter/normal/autumn] : Set the current state of the biomes manually. Good if you want to stop using this plugin.To 'reset' all of your biomes. This will not affect the Season. It is JUST for Server-maintenance.
- /rem_winterEffects [start/stop] : This command will remove ice & snow in the affected Biomes (ckeck config-File)
- /Bioseason_EventCommand : this command will trigger the EventCommand. Please read the Event-File-Description for more informations.
Permissions
- bioseason.Day #Command-permissions
- bioseason.UpdateLogs #Command-permissions
- bioseason.setBiome #Command-permissions
- bioseason.rem_winterEffects #Command-permissions
- bioseason.Bioseason_EventCommand #Command-permissions
- bioseason.nodamage # with this permission you'll not get damaged during the winter
- bioseasons.cal # Can show the calendar in scoreboard
- bioseason.maintenance # Can use maintenance-scoreboard
Know Errors
- If you execute commands using wrong parameters; -> An error will occur
- If your Server can't manage changing some many Biomes at one time -> An error will occur
- If there are some wrong parameters in the SaveBiomeArea.txt / SaveChunks.txt / Events.txt-> An error will occur
Fixing Problems
Comming soon.
What's left
- Important: There are no Biomes in the Worldtypes "Nether" and "End". -> This will cause an error!
- This Plugin supports more than only one "Overworld"
- If you want to:
- use my code for your own project
- use my project as an API
... take what you want, but rememeber it's not all mine. So please name Cubenation in your descriptions.
If you still got some questions feel free to ask. I will update this page continuously. If you want more features leave it below.
Videos
J_Crafter29 just made a video of my plugin. I linked it here even if it's not english. (It's German). He's an aspiring youtuber so give him a chance.
Special thanks to:
Without you, I would have never come so far.
@cottox
Bei 6GB RAM sollte das eig. kein Problam darstellen
@dome77
Your last pasted error seems to be memory induced "OutOfMemoryError"
Wie viel RAM weist du dem Server zu? Habe selbst Speicherprobleme bei der 'Winterumstellung' ;) habe zwar mehrere Adminplugins im Hintergrund am laufen, sollte aber nicht wirklichder Auslöser sein. Habe selbst 1,5GB RAM zugewiesen. Sollte ausreichen für den Testbetrieb mit um die 300-500 Chunks, tuts aber teilsleider nicht. Entweder muss die Effizienz gesteigert werden (woran ja gearbeitet wird), es gibt n Leck oder aber andere Plugins mischen mit?! (zB Worldborder, Essentials, Worldedit?)
Error:
[17:42:40 WARN]: [BioSeasons] Task #12 for BioSeasons v0.2.3 generated an exception java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) [?:1.7.0_17] at java.lang.Thread.start(Thread.java:691) [?:1.7.0_17] at me.jayjay.bioSeasons.Chunk_Biome_Management.Feature_Player_movement.run(Feature_Player_movement.java:46) [?:?] at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java:53) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:587) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
[17:42:40 WARN]: [BioSeasons] Task #12 for BioSeasons v0.2.3 generated an exception java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) [?:1.7.0_17] at java.lang.Thread.start(Thread.java:691) [?:1.7.0_17] at And Crash:
[17:42:40 ERROR]: This crash report has been saved to: /home/kd30726/server/minecraft_9147/./crash-reports/crash-2014-03-18_17.42.40-server.txt
[17:43:15 WARN]: Exception in thread "Snooper Timer"
[17:43:16 WARN]: java.lang.OutOfMemoryError: unable to create new native thread
[17:43:16 WARN]: at java.lang.Thread.start0(Native Method)
[17:43:16 WARN]: at java.lang.Thread.start(Thread.java:691)
[17:43:16 WARN]: at sun.net.www.http.KeepAliveCache$1.run(KeepAliveCache.java:112)
[17:43:16 WARN]: at sun.net.www.http.KeepAliveCache$1.run(KeepAliveCache.java:96)
[17:43:16 WARN]: at java.security.AccessController.doPrivileged(Native Method)
[17:43:16 WARN]: at sun.net.www.http.KeepAliveCache.put(KeepAliveCache.java:95)
[17:43:16 WARN]: at sun.net.www.http.HttpClient.putInKeepAliveCache(HttpClient.java:353)
[17:43:16 WARN]: at sun.net.www.http.HttpClient.finished(HttpClient.java:341)
[17:43:16 WARN]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1582)
[17:43:16 WARN]: at net.minecraft.server.v1_7_R1.HttpUtilities.a(SourceFile:74)
[17:43:16 WARN]: at net.minecraft.server.v1_7_R1.HttpUtilities.a(SourceFile:49)
[17:43:16 WARN]: at net.minecraft.server.v1_7_R1.MojangStatisticsTask.run(SourceFile:54)
[17:43:16 WARN]: at java.util.TimerThread.mainLoop(Timer.java:555)
[17:43:16 WARN]: at java.util.TimerThread.run(Timer.java:505)
Killed
My suggestions:
Mony suggestions :D
I hope that will help you
Viel Spaß beim coden :)
First off, I'd like to thank you for creating such an immersive plugin!
I've encountered 3 problems up to now:
--Edit:[20:52:34] [Thread-1884/WARN]: Exception in thread "Thread-1884" [20:52:34] [Thread-1884/WARN]: net.minecraft.server.v1_7_R1.ReportedException: Invalid Biome id [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.WorldChunkManager.getWetness(SourceFile:95) [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.BiomeCacheBlock.<init>(SourceFile:26) [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.BiomeCache.a(SourceFile:52) [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.BiomeCache.b(SourceFile:61) [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.WorldChunkManager.getBiome(SourceFile:61) [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.World.getBiome(World.java:93) [20:52:34] [Thread-1884/WARN]: at org.bukkit.craftbukkit.v1_7_R1.CraftWorld.getBiome(CraftWorld.java:525) [20:52:34] [Thread-1884/WARN]: at me.jayjay.bioSeasons.BiomeEditor.parseChunkOnMainThread(BiomeEditor.java:97) [20:52:34] [Thread-1884/WARN]: at me.jayjay.bioSeasons.BiomeEditor.findBiomeArea(BiomeEditor.java:50) [20:52:34] [Thread-1884/WARN]: at me.jayjay.bioSeasons.Chunk_Biome_Management.Thread_PlayerMovement.run(Thread_PlayerMovement.java:92) [20:52:34] [Thread-1884/WARN]: Caused by: java.lang.NullPointerException [20:52:34] [Thread-1884/WARN]: at net.minecraft.server.v1_7_R1.WorldChunkManager.getWetness(SourceFile:82) [20:52:34] [Thread-1884/WARN]: ... 9 more [20:52:36] [Thread-1890/WARN]: Exception in thread "Thread-1890" [20:52:36] [Thread-1890/WARN]: java.lang.ArrayIndexOutOfBoundsException: -10 [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.CrashReport.a(CrashReport.java:186) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.CrashReport.a(CrashReport.java:173) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.WorldChunkManager.getWetness(SourceFile:87) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.BiomeCacheBlock.<init>(SourceFile:26) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.BiomeCache.a(SourceFile:52) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.BiomeCache.b(SourceFile:61) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.WorldChunkManager.getBiome(SourceFile:61) [20:52:36] [Thread-1890/WARN]: at net.minecraft.server.v1_7_R1.World.getBiome(World.java:93) [20:52:36] [Thread-1890/WARN]: at org.bukkit.craftbukkit.v1_7_R1.CraftWorld.getBiome(CraftWorld.java:525) [20:52:36] [Thread-1890/WARN]: at me.jayjay.bioSeasons.BiomeEditor.parseChunkOnMainThread(BiomeEditor.java:97) [20:52:36] [Thread-1890/WARN]: at me.jayjay.bioSeasons.BiomeEditor.findBiomeArea(BiomeEditor.java:50) [20:52:36] [Thread-1890/WARN]: at me.jayjay.bioSeasons.Chunk_Biome_Management.Thread_PlayerMovement.run(Thread_PlayerMovement.java:92)
Absolutely love it (but it crashes from time to time, but will that calm down once it has loaded all the biomes? I play at a 10k x 10k map)
Just one thing I miss, having control of which biome to change to, im not too happy with the desert as autumn, even tho I get the idea behind it, because there is no rain or passive mobs.
Also would love to be able to control how often it rains each season, like in that other season plugin that is around here somewhere. (feks sun:60 rain:30 thunder:10)
Does this plugin include a calendar that can be set to a specific date, and changes based on in game time?
How is 0.2.4 coming along? I have been enabling/disabling the plugin on my server whenever I feel like changing seasons but it doesn't work the way I would want it to. It def has a rough time changing all the biomes seems to miss a few every time. And I have to restore the entire map. Seems like it is corrupting my map every time. :(
Hmmm, haste Skype oder TS³?
@Q2Lummox
This is an error of my snow-removal-system. I checked my sourcecode again and found the issue. I think it's because of an already rewritten variable.
The next update [0.2.4] will hopefully fix this.
@Q2Lummox
Does Layer mean, a specific altitude/ height [Y = ...]. So you won't get hurt e.g.: below Sea-level?
@dome77
If they donnot have the permission [bioSeason.*], they shouldn't be allowed to change the Season as well.
Or did you mean, that the permissions-system does not work? I've never used a permissions API. I don't know if this could be the reason for your problem.
Why does everyone have permissions to change the seasons???
Last Spigot
Last BioSeasons
Plugins:
Essentials (Last)
Vault (Last)
BioSeasons (Last)
Error:
http://pastebin.com/xsHJuT8p
Please make confiruable options such as the amount of damage received from exposure to snow, and every few seconds you get hurt again.
Another thing that would be nice, would be able to configure only hurt in winter from X layer. For example:
Winter_effects:
- Frozen: yes
- Layer: 120
- Damage:
- Number: 2 (2 is a heart)
- Seconds 10
In this way only hurts you from layer 120 and up, would subtract 2 hearts every 10 seconds.
It would be a way to take more benefit to damage by exposure to cold. This for rpg servers would be fine.
Example Video of this Plugin working on my server
https://www.youtube.com/watch?v=1s1XB-YfMMM
Wish I could get it back up and running though without crashing the server. :(
@Silversbane
I could really think of this as a problem. I've never thought, that this plugin should be runned on huge server (with huge Biomes). So when it updates a chunk it writes the whole Biome-information uncompressed in a textfile. Well I know this is not pretty effective. I'm very sorry you and all the other server owners have so many problems.
I'll try to get it done as soon as possible, but till then you should remove this plugin. I'll send you a PM if I think I fixed it (again). Maybe you could also send me your server IP to get a closer look to the Error.
Thanks
@Karonar
This is an issue of v.0.2.2 and earlier. 0.2.3 has fixed this.
@huntjay
Thanks so much, I'll try the new update later.