Prison 4.0.0 - The Quantum Update
fynntimes opened this issue ยท 0 comments
Note: There is a version jump here. This is because we don't want to cause confusion with the already-existing 2.x versions, and we didn't quite think it through when we set the version to 1.0.0!
Introduction
Preface
At the time of writing, Prison 1.0.0 released on December 31st, 2017, after a year and a half of hard work and dedication. Prison 2 was written when I was a rather new developer, in 2014, and has since become obsolete and dysfunctional in many regards - this recode was necessary.
Goals
Now, it's time to take what we did in this recode and use it to expand the project. Among the goals are to restructure/refactor the hastily written API, create better platform implementations for Spigot and Sponge, and to deliver on our promises of new features. This update will set the stage for Prison and its users throughout much of 2018 and 2019.
These goals are subject to change. Note that while this update will take a while, we will be providing iterations to the current 1.x version.
Tasks
Core
- Split
prison-common
intoprison-api
andprison-common
, to ensure that the API project only contains API-related materials and thus minimizing dependency sizes. - Adapt lucko's helper library for use in Prison API.
- Adapt aikar's commands library for use in Prison API.
- New functional storage system.
- Reconsider the
output
packages, perhaps replacing with aui
library with opinionated user interface design. - Reconsider the
internal
andgame
packages.
We want to move from a Java 6-style approach of interfacing -- that is, creating an individual class for every event, mob, and inventory item -- and move to a more modern and less heavy-duty provider system, as seen in the Sponge project. You may also notice that many components of our core are being outsourced to faizaand's work-in-progress libraries. Our reasons are mostly psychological: if we create an independent project for commands, storage, and events, we'll probably do a better job because we'll be scrutinized for that one purpose as opposed to for the entire Prison system.
Mines
- Rewrite, to be more consistent with Ranks code style.
TODO
Ranks
TODO