Skip to content

HorseEnhancer 2.0

Compare
Choose a tag to compare
@Nevakanezah Nevakanezah released this 23 Nov 01:11
· 42 commits to master since this release

Poro rewrote the entire codebase in Kotlin. This may need to get updated to reduce the filesize, as it's currently quite large.

Rewriting this project using Kotlin

Why Kotlin?

No NPE (nulls are opt-ins, thus making code safer from unexpected NPEs)
Less verbose code
[Coroutines](https://kotlinlang.org/docs/coroutines-overview.html)! Finally, we can safely and easily defer code without hogging the server threads.
[Extensions](https://kotlinlang.org/docs/extensions.html)! Make code easier to read and write by extending them!
[Operator overloading](https://kotlinlang.org/docs/operator-overloading.html)! We can now combine TextComponents without spamming addExtra with component + anotherComponent + "text component!"

Cleaning up the project

Moved the persistent data to SQLite
Structured project in Maven for better project and dependency management
Converted traditional § formatted chat messages to JSON-style rich formatting chat messages
    Easier formatting! Just nest sections together!
    Clickable and hover text!
Added permission support
Segmenting commands into subcommands
    Cleaner code with separate subcommand logic within respective files
    Better maintainability
    Code reuse
Using a library for YAML config reading/writing
    Comment support!
    Upgrading support! We can now add new fields to the config file without nuking the existing one!

Breaking changes

Version bump to 2.0.0 to signify breaking changes
Existing horse saves will be lost
    Should we add a migrator?
Depends on Spigot's dependency resolver to reduce package size
    See [Spigot plugin.yml documentation](https://www.spigotmc.org/wiki/plugin-yml/), [JavaDocs API](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/plugin/PluginDescriptionFile.html#getLibraries())