As fireworks are let off for the end of 2017, we are releasing this year's final version: 2018.0.0. In the last month, we've been working hard on polishing Glowstone as much as we could, and this has resulted in one of our most productive months in terms of commits, merges, bugs resolved and code written.
We'll start with a quick changelog of what has been done since the last release, 2017.11, then follow with a recap of the year!
Glowstone 2018.0.0
This month, we've pushed 138 commits consisting of 17,993 additions and 11,491 deletions in 938 files.
There are a lot more changes than what I can list here, so you check check out the git diff if you want more details.
- Implemented
/clone
command (#590)
- Implemented Ender Pearls (#602)
- Added support for Java 9 (#649) (#652)
- Note that while Glowstone can run on Java 9, it can only be built on Java 8.
- Fixed a number of bugs with player interactions (#644)
- Fixed issues when shift-clicking in the crafting inventory
- Fixed an exception when joining a Glowstone server run from an IDE
- Fixed gravity not updating the location of items (#591)
- Fixed a number of bugs with fall damage
- Fixed the minimum food level to regenerate health from 19 to 18
- Fixed, rewrote and optimized chunk indices (Chunk.Key)
- Improved region file I/O, fixing some issues (#199) (#510)
- More details can be found in commits
98aeb19
, 34ce26b
, 3179cef
- Optimized chunk streaming to players
- Improved hanging entities (paintings, item frames) (#597)
- Fixed a number of bugs with Sign editor (#596)
- Fixed an exception when pinging the server behind a proxy (#599)
- Updated Netty from
4.1.0.CR7
to 4.1.17.Final
- Improvements to network library, updated to Java 8
- Fixed inventory slots in HumanEntity spawn packet
- Rewrote ItemTable to use
Material
instead of item IDs
- Fixed inconsistencies with PlayerInteractEvent (#595)
- Fixed open inventory not being closed when player is teleported (#594)
- Partially implemented MapView/map rendering API (#572) (#605)
- Added slf4j back-end dependency (#612)
- Abstracted WorldStorageProvider to allow plugins to change how world data is saved and loaded
- Added log4j configuration
- Cleaned up chunk locks (#623)
- Implemented Fire Resistance potion
- Refactored EntityManager and BossBar management (#636) (#641) (#642)
- Fixed a concurrency exception when players switch worlds (#628)
- Implemented ItemSpawnEvent and ItemDespawnEvent (#643)
- Updated checkstyle
- Removed metrics
- Removed GlowClient and related dependencies
- A lot of code and documentation cleanup
- Updated Kotlin runtime to 1.2.0
- Updated CI to use CircleCI 2.0 on all branches, builds are now much faster
Whew, that was a lot of polishing. In addition of all these changes, we are also pleased to welcome 2 new developers as part of the team: Pr0methean and keanganxt.
Note that we now use the dev
branch for ongoing work, while the master
branch will be deleted. We have decided to try a new release format for 2018. We have updated our download section to reflect these changes.
We created a long-term support branch (LTS), 2018.0.x
. While we will be continuing ongoing development on the dev branch, we will backport fixes into the 2018.0.x
branch continuously. At the end of each month, there will be 2 releases, one tagged on each branch. For example, in one month, we will release both 2018.1.0
(like before) and 2018.0.1
, the latter containing all the bug fixes from January, without the unstable/ongoing features.
As for protocol updates (1.13+), we will be backporting them to the long-term support branch one month after they are released on the dev branch.
2017 in Review
Let's take a step back and look at what we have accomplished in 2017.
590 commits have been pushed to the master/dev branch, consisting of 35,242 additions and 12,287 deletions.
We have released a total of 13 releases (including today's), which can be summed up to these key points:
- We are sponsored by Aternos <3
- We have a brand new website, with goodies like news posts and users
- Our team grew by 5 developers! Welcome, PickNChew, Postremus, Kyureki, Pr0methean, and kaenganxt
- In total, we received code contributions from 24 users
- ProtocolSupport natively supports Glowstone
- We now have a CLA and a new Code of Conduct
- Glowstone is much more stable, polished and optimized
- A lot more features have been implemented
- Entities are much, much better and complete
- Implemented Boats, Ender Crystals, Paintings, Parrots, XP Orbs, Leashes, Ender Pearls, complex entities (Ender Dragon)
- Entity physics
- Ambient and hurt sounds
- Basic entity AI tasking
- Custom entities for plugins
- Basic piston implementation
- Rewrote most commands, including multiple tools to parse and implement new commands
- And a lot, lot more.
So thank you, everyone, for such a wonderful year. Here's to another solid, productive and joyful new year for all of you.
See you next time, and thanks for all the (498) stars this year,
The Glowstone Project.