Prison 3

Prison 3

191k Downloads

Prison 4.0.0 - The Quantum Update

fynntimes opened this issue ยท 0 comments

commented

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

Branch

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 into prison-api and prison-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 a ui library with opinionated user interface design.
  • Reconsider the internal and game 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