Skip to content
This repository has been archived by the owner on Nov 20, 2023. It is now read-only.

Releases: Giggitybyte/SleepWarp

2.2.0-rc1 for Minecraft 1.20.1

12 Sep 05:06
Compare
Choose a tag to compare
Pre-release
  • Updated mappings to Minecraft 1.20.1 (compatible with 1.20)
  • Identified and fixed serious block duplication bug when tick_random_block was enabled
  • Improved usage of multithreading to improve throughput of warp world tick execution
  • Worlds which don't allow sleeping will not be ticked

v2.1.0 for Minecraft 1.20

09 Jun 20:20
82770cd
Compare
Choose a tag to compare

A simple port from Minecraft 1.19.4 to Minecraft 1.20.
Thanks to @InFTord for the initial work.

Full Changelog: 2.0.0...2.1.0

Version 2.1.0 has a serious bug stemming from the tick_random_block configuration option. When enabled, any chunk with a block which can receive a random tick will have that block be duplicated throughout the entire depth of the chunk (negative Y from the block).

If you have this version and you've slept already with tick_random_block set to true; I apologize for the damage done to your world. I did not intend for it to happen and I did not expect my time to become so limited when this issue was first reported back in June. If you decide you still want to use SleepWarp on new 1.20 worlds, be sure to set tick_random_block to false to avoid this bug.

v2.0.0 for Minecraft 1.19.2, 1.19.4

21 Apr 10:44
Compare
Choose a tag to compare

Change Log - 2.0.0 Rewrite

Basically everything has been overhauled and improved.

  • Specific Fabric API modules are no longer bundled (jar-in-jar) with SleepWarp
    • Fabric API is now a required dependency for both single player and dedicated server
  • Replaced .prop config files with JSON
    • All existing config files will no longer function.
  • Added client configuration screen for ModMenu through YetAnotherConfigLib
  • Added action bar messages
    • Number of players required to sleep
      • Only when config option use_sleep_percentage is true
    • Remaining time until thunderstorm passes
    • Remaining time until players wake up
    • Current day
      • When waking up at dawn
  • Added /sleepwarp command
    • /sleepwarp config: Allows for real-time modification of configuration options.
    • /sleepwarp status: Displays each player and whether or not they're sleeping.
    • /sleep alias for /sleepwarp (e.g. /sleep config)
  • Improved time acceleration and world simulation performance
    • Time is now ticked multiple times synchronously before ticking the world, and if there still time before dawn, then the various portions of the world will be ticked on one of three single-thread executors; monsters and animals will be ticked on one, random block ticks on another, and everything else will be ran on the third. This setup allows time to advance at a steady rate while the additional world ticks are processed sequentially and asynchronously on other threads.
  • The weather cycle is now ticked while sleeping
  • Added action_bar_messages configuration option, default true
  • Added tick_block_entities configuration option, default true
  • Added tick_random_block configuration option, default true
  • Added tick_snow_accumulation configuration option, default true
  • Added tick_ice_freezing configuration option, default true
  • Added tick_lightning configuration option, default true
  • Added tick_animals configuration option, default false
  • Added tick_monsters configuration option, default false
  • Added animal_tick_multiplier configuration option, default 0.25
    • Scales the amount of times passive animals are ticked
  • Added monster_tick_multiplier configuration option, default 0.25
    • Scales the amount of times hostile mobs are ticked
  • Changed max_ticks_added configuration option default value from 60 to 40
  • Changed player_scale configuration option default value from 0.2 to 0.4
  • Removed tick_chunks configuration option
    • Ticking whole chunks was a huge performance intensive option which became undesirable to use even in single player. If you simply wanted faster random tick speeds to increase sapling and crop growth, you had to also tick many things which you might not want to continually tick (like mob spawns).

Commit log: 1.2.0...2.0.0

2.0.0-rc3 for Minecraft 1.19.4

20 Apr 21:11
b904171
Compare
Choose a tag to compare
Pre-release

I was still not happy with the overall performance when all world simulation features were enabled. Time, weather, and additional world ticks were done synchronously and sequentially right at the end of the world tick, meaning at default settings the world would be ticked 60 times over before the next world tick would begin.

My solution is to tick time and weather synchronously before world ticking, and if there still time before dawn, then the various portions of the world will be ticked on one of three single-thread executors; monsters and animals will be ticked on one, random block ticks on another, and everything else will be ran on the third. This setup allows time to advance at a steady rate while the additional world ticks are processed sequentially and asynchronously on other threads.

  • Improved world simulation performance
  • Removed config options:
    • performance_mode
      • Performance mode and the TickMonitor class have been removed
    • tick_entities
      • This would end up ticking everything, including the items on the ground and the player
      • Replaced by tick_animals and tick_monsters
    • tick_mob_spawn
      • Too much processing time for no real gameplay benefit
    • tick_spawners
      • The code behind this actually was ticking something that wasn't spawner blocks
      • I also decided it was silly to tick spawners while you're sleeping
  • Added config options:
    • tick_monsters
    • tick_animals
    • monster_tick_multiplier
      • Not implemented
    • animal_tick_multiplier
      • Not implemented
  • Action bar messages were tweaked
  • Made improvements to the client settings screen by separating the options in each category into labeled groups, swap boolean toggle buttons out for tick boxes, and spruced up option tooltips.

v2.0.0-rc1 for Minecraft 1.19.4

11 Apr 06:59
Compare
Choose a tag to compare
Pre-release
  • Updated to Minecraft 1.19.4
  • Majority of the code was completely overhauled; should be smoother and more efficient
  • Replaced .prop config files with JSON.
    • All existing config files will no longer function.
  • Added ModMenu support through YetAnotherConfigLib.
  • Added /sleepwarp command
    • /sleepwarp config: Allows for real-time modification of configuration options.
    • /sleepwarp status: Displays each player and whether or not they're sleeping.
  • Added /sleep alias for /sleepwarp command
  • Added action bar messages
    • Number of players required to sleep
      • Only when config option use_sleep_percentage is true
    • Remaining time until players wake up
    • Current day when waking up
  • Weather is now ticked while sleeping
  • Changed player_scale configuration option default value from 0.2 to 0.6
  • Removed tick_chunks configuration option
    • Ticking chunks was a huge performance intensive option which became undesirable to use even in single player. If you simply wanted faster random tick speeds to increase sapling and crop growth, you had to also tick many things which you might not want to continually tick (like mob spawns).
    • I made this better by hand writing custom world tick code which iterates over chunks once and only ticks parts of the world that the user wants.
  • Added action_bar_messages configuration option, default true
  • Added tick_block_entities configuration option, default true
  • Added tick_random_block configuration option, default true
  • Added tick_snow_accumulation configuration option, default true
  • Added tick_ice_freezing configuration option, default true
  • Added tick_lightning configuration option, default true
  • Added tick_entities configuration option, default false
  • Added tick_mob_spawn configuration option, default false
  • Added tick_spawners configuration option, default false
  • Added performance_mode configuration option , default false

Commit log: 1.2.0...2.0.0-rc1

v1.2.0 for Minecraft 1.17.1

10 Sep 17:38
Compare
Choose a tag to compare

The 1.17 branch was a based off of the 1.18 branch and uses a Java version newer than 16, which is causing launch issues for users playing on 1.17. The required Java version has been changed to 16, with no additional adjustments to the code; users should now be able to use this mod without any issue!

v1.2.0 for Minecraft 1.16.5

10 Sep 17:38
Compare
Choose a tag to compare

The 1.16 branch was a based off of the 1.18 branch and uses a Java version newer than 8, which is causing launch issues for users playing on 1.16. The required Java version has been changed to 8 in with this commit and the code has been adjusted to match the available language features; users should now be able to use this mod without any issue!

v1.2.0 for Minecraft 1.19

15 Jun 02:34
Compare
Choose a tag to compare
refactor: minecraft 1.19

- The constructor for `ServerWorld` received an additional parameter in the 1.19 update; mixin was modified as a result
- Removed redundant ServerWorldAccessor method
- Fixed CurseForge badge in README

This commit increments the minor version number.

v1.1.1 for Minecraft 1.18.2

01 Mar 01:23
Compare
Choose a tag to compare
  • Migrated codebase to 1.18.2
  • Set minimum Minecraft version to 1.18.2

The latest Minecraft version brought a handful of breaking changes, including some modifications to some method signatures; those changes are not backwards compatible with older Minecraft 1.18 versions. As such, from this version on, Minecraft 1.18.2 will be the minimum supported version. I may backport version 1.1.0 to Minecraft 1.17 and below at some point, but fixes and new features will only be available for Minecraft 1.18.2 (1.1.1) and above.

v1.1.0 for Minecraft 1.18.1

27 Feb 14:12
Compare
Choose a tag to compare

Sleep Warp 1.1.0

This version brings two new opt-in features which provide a little more realism

Block Entity Simulation

Block entities (e.g. furnaces, spawners, pistons) can be ticked at the same rate as the time warp to simulate the passage of time.

SleepWarp_4-CUT.mp4

To enable this feature, set tickBlockEntities=true in the configuration file.

Chunk Simulation

Chunks can be ticked at the same rate as the time warp to simulate the passage of time.

SleepWarp_2-CUT.mp4

Each chunk tick is responsible for most of the world simulation (e.g. crop growth, fire spread, mob spawns).

SleepWarp_3-CUT.mp4

To enable this feature, set tickChunks=true in the configuration file.