As API version 7 is getting closer and closer to a release, many pull requests have started to be merged and various changes are being made. There are a few more changes set to be merged before the release, but not many of those should be breaking changes. I just thought I would collect some of the recent changes of the past two weeks plugin developers and server owners may be interested in or may need to make changes for. If you scroll further down I list some pull requests that could use reviews and feedback if you have the knowledge and the time.
API Changes/Additions
Changes which are breaking that may require you update your code will be in bold.
-
A convenience method was added to
Chest
to get all connected chests. -
A few missing sound types relating to the toast UI were added.
-
A lot of the enchantment API was rewritten for cleanup and to move to the implementation.
-
Added a plethora of new generic arguments you can use for your commands.
Important Implement Fixes/Changes/Additions
-
The proper world config is now used in all places it should be.
-
/sponge:help
and vanilla commands that do not require OP now have permissions. -
Some creature spawn issues were fixed for custom chunk generators.
-
Fixed players being sent back through a nether portal they just used.
-
Fixed not properly supporting multiple protection enchantments.
-
Fixed Sponge not respecting wrapped chunk generator structure lookups for generation.
-
Only fire SetAITargetEvent when it is actually needed to help performance.
-
Only fire various inventory transfer events when necessary for performance reasons.
-
Implemented various APIs mentioned above.
-
Some cleanup to entity registry registrations/defaults.
-
Some cleanup relating to tracking phases and phase states.
-
Some other general cleanup, fixes, and changes.
There are many more changes expected in the next few weeks, so be on the look out. Remember if you find an issue please report it to the proper repositories, and if you would like to see some APIs added point them out. If you want to help get various changes in that are already pull requested, please review these pull requests, or else it is hard to know what developers and users actually want and some mistakes may get through if people aren’t reviewing the changes.
Some pull requests that could use feedback and reviews now are:
Changing entity spawning return types to make them useful
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1622
Adding fastutil as an API dependency
Rewriting Color class and moving it to the implementation
API: https://github.com/SpongePowered/SpongeAPI/pull/1699
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1625
A proposal for ChangeDataHolderEvent.ValueChange
Implementation: [WIP] Refactor and implement ChangeDataHolderEvent.ValueChange by Aaron1011 · Pull Request #1866 · SpongePowered/SpongeForge · GitHub
SizeData changes and implementation
API: Make some changes for size data by parlough · Pull Request #1636 · SpongePowered/SpongeAPI · GitHub
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1492
TagData for scoreboard tags
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1490
Some explosion fixes and changes
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1368
Adding location based AI tasks
API: https://github.com/SpongePowered/SpongeAPI/pull/1470
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1159
Implementing CreatePortalEvent
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1608
Add exhaustion control to damage source
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1573
Implement pickup events for other entities than players
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1615
Refactoring inventory, fixing issues, increasing understanding, and cleaning up various code
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1585
** Refactoring BlockChangeFlags*
API: https://github.com/SpongePowered/SpongeAPI/pull/1712
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1635
Some pull requests are aimed towards API 8 and/or Minecraft 1.13, and as a result are highly volatile, but could still use some feedback.
A broad pull request, making various changes to support 1.13
API: https://github.com/SpongePowered/SpongeAPI/pull/1704
Adding an API for data packs
API: https://github.com/SpongePowered/SpongeAPI/pull/1706
A new high-level command API, which plans to support Brigadier well
API: https://github.com/SpongePowered/SpongeAPI/pull/1587
Implementation: https://github.com/SpongePowered/SpongeCommon/pull/1400
Something to remember is that one of the best ways to get changes into Sponge and support the development is to make pull requests, whether that it is to the API, the implementation, the documentation, Ore, libraries we rely on, etc.
There are hundreds of issues that are approachable, you just have to find something you feel comfortable with. If you have any questions while developing don’t forget to come on Discord and ask for help.
SpongeAPI Issues: https://github.com/spongepowered/spongeapi/issues
SpongeCommon Issues: https://github.com/SpongePowered/SpongeCommon/issues
SpongeForge Issues: Issues · SpongePowered/SpongeForge · GitHub
SpongeDocs Issues: https://github.com/SpongePowered/Spongedocs/issues
Ore Issues: https://github.com/SpongePowered/ore/issues