Skip to content

Releases: KelpFramework/kelp

kelp-v0.4.0 - "The entity update"

24 May 13:26
1b7a876
Compare
Choose a tag to compare
Pre-release

Dear developers,

this update brings a recode of the old entity library. When implementing other entities to the old system, I realized some design weaknesses and therefore decided to go for a more bukkit-like approach. Every entity now has an own interface instead of a class, which is then implemented by the version modules - similar to CraftBukkit. This might sound redundant, but I also did some reverse engineering and ported some features from new API versions to 1.8, so that you gain maximum flexibility in the development process.

When implementing the entities, some util classes such as a Potion system were required, so a potion library has been added with the future option to create custom potion effects. It also allows Kelp developers to implement newer potion effects to older versions and use the levitation effect in 1.8 for example. But concrete implementations will follow in the future - currently, only the base mechanics for such a feature have been added.

Next to that, there are some bug fixes and adjustments for things like the ReflectionUtil, etc. You can read all changes in the changelog for more detail.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.3.4 - "The declarative command update"

21 Apr 12:30
22c9da8
Compare
Choose a tag to compare

Dear developers,
recently there was a discussion about the design of the current command system and its weaknesses. On the one hand, it encourages developers to split their complex commands into small and more readable pieces, but on the other hand, this quickly results in lots of tedious work when creating thousands of new classes and annotating them individually, ...

So @DSeeLP has come up with a new way of creating commands. The new command system has completely moved away from the "bukkit-like" approach to a more declarative approach also used by Brigadier. Brigadier is the command library written by Mojang and used natively in Minecraft 1.13+. When creating a command you are basically building up a tree of arguments and parameters, which can then be interpreted by a version module and converted to a bukkit command.

This system has lots of potential for future updates. You could for example unit-test simple command structures or implement simple tab-completion, etc.

The old command system won't be entirely deleted though to provide a more bukkit-like alternative for commands and avoid confusion among new developers or overcomplication for some use-cases.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.3.3 - Inventory patches

03 Apr 10:34
d482550
Compare
Choose a tag to compare
Pre-release

Dear developers,
the inventory system had quite a few limitations as you couldn't apply enchantments or material-specific metadata such as custom heads or leather armor color, etc. Hence, this new release brings these features to Kelp:

  • You can create custom enchantments using the KelpEnchantment class as well as applying minecraft enchantments in a version-independent way
  • You can access a player's inventory and modify its contents. The best: You can also create widgets inside it, which allows you to easily create a lobby-selector like it can be seen on NeruxVace for example
  • The KelpMaterial class has grown to more than 7000 lines of code as you can now get information about any material such as its hardness, fuel power, item group (weapon, tool, ...), whether it's a block or an item, etc.

The list contains only some highlights of the new version, check out the changelog of this version for more detailed information.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.3.2 - "The region update"

19 Mar 22:28
697df31
Compare
Choose a tag to compare
Pre-release

Dear developers,

this update focused on adding a convenient and simple to use region library to Kelp. Especially when coding minigames, regions become important to protect certain areas or control player movement, which is why we added those essential features. You can create listeners for your regions that are triggered every time a player enters or exits a region. You can move and expand them as well execute basic contains() checks for example. As of now, there are two basic types of region: EllipsoidRegion and CuboidRegion. But it is planned to add more with future releases. Furthermore, this release adds a custom Multimap implementation with thread-safety.

The testing module has been given some new testing features, which are not fully implemented yet as the inventory library is still lacking some methods, which will be added in the next release, so stay tuned.

You can read all changes and new features in this version's changelog.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.3.1 - The independent widget update

05 Mar 10:25
Compare
Choose a tag to compare

Hey developers,

as requested in #44, it should be optional to bind inventory widgets to specific players to be able to reuse them over the server runtime. This also has several design advantages as you do not have to specify the player multiple times, which would cause redundant code.

@Etrayed has therefore developed a solution that allows you to create global listeners for items and get the player instance only when you need it (when handling the click event). A detailed example of how the new global listener system can be applied, look at the /sweetinv command of the testing module that is shipped with this version.

You can read all changes and new features in this version's changelog.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.3.0 - "The World update"

27 Feb 20:37
2ac280b
Compare
Choose a tag to compare
Pre-release

Dear developers,

this release focused on creating an improved location and world management library for Kelp. In old API versions of spigot (1.15 or lower), you don't have features like PluginTickets that allow forcing to keep certain chunks loaded or a method emulating a bone meal application on a block. Kelp ports those features over to all versions. Furthermore, the work with neighbouring blocks and chunks has been improved by introducing new methods for facing and vector calculations.

With the new util classes your code becomes more readable: Instead of createExplosion(location, 4F), you can now write createExplosion(location, ExplosionPower.TNT) for example. The location and world library has already been integrated into other Kelp features such as the NPC system or the KelpPlayer/KelpEntity or the Particle Library.

You can read all changes and new features in this version's changelog.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.2.0 - "The NPC update"

15 Feb 12:06
76a9981
Compare
Choose a tag to compare
Pre-release

This update mainly focused on bringing the NPC library provided by Kelp to the next level. Until now there were no possibilities to extend the functionality of an NPC for example. You could create them, assign a few properties and let them stand stupidly in your world. This update allows you to really make them a part of your gameplay. By adding custom NPC activities such as walking you can integrate them into your city build or RPG storytelling and give the feeling of a more vital environment.

Furthermore, some details such as changing the tab list name have changed. You now have more control over the individual properties of an NPC. This also includes that you can modify its equipment while it is spawned and so on.

There are also some minor changes that might break your current NPCs, so read this version's changelog for more information.

There will be no testing-module shipped with this version as some more patches have to be made to create a fully-functional demo for NPCs. Please be patient here. But you can already try using the new NPC library with the information provided on the new Wiki page.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.1.1 - Some command & event changes

04 Feb 12:27
22ce489
Compare
Choose a tag to compare

Dear developers,
this is a rather small but useful release if you have worked with commands and events a lot in the past. The main changes are that subcommands can now inherit properties from their main commands, so you don't have to write your permission messages, etc. manually for every subcommand you create. Furthermore, you can now delegate players to the console method to avoid duplicate command handler methods.

The dynamic listener system added in 0.0.4 has been reworked with a more generic approach. You don't have to cast event classes now when handling them. In addition, you can now add criteria to your listeners, scheduled expires, and more.

Of course, there are also some additional changes and minor bug fixes that shipped with this release, but you can check out the corresponding changelog for more information. The Wiki page has already been updated to the new system.

Note: The Maven central approval process is still in progress. The release will be available there within the next few hours.

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.1.0 - "The sidebar update"

28 Jan 15:27
bd6cf65
Compare
Choose a tag to compare
Pre-release

Dear developers,
coming back to our regular update schedule, we are happy to announce a new update that fixes a fatal design mistake of the sidebar system. As reported in #33, the sidebar method being called on each title update caused weird and unexpected behaviour and might even lag out the server as database queries would be really unsafe there.

So this update focused on fixing this design issue by reworking the sidebar library. It now adopts the system of the inventory lib, while taking advantage of the component-based approach. This way, updates can now be handled via stateful and stateless components depending on the purpose. In addition, this update kind of points the future way of Kelp, which should be based more on static factory methods. In many cases, it becomes annoying to inject each dependency manually, which is why I tried to ditch dedicated factory classes for the sidebar system. This will be adopted to other parts of the framework with future updates.

Of course, there are also some additional changes and minor bug fixes that shipped with this release, but you can check out the corresponding changelog for more information. The Wiki page has already been updated to the new system.

! Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8 now. Please be patient or report bugs and issues for further improvement.

kelp-v0.0.5 - "The player interactions update"

30 Dec 19:36
d1f2d29
Compare
Choose a tag to compare

Dear developers! We are happy to announce the brand-new release of kelp at the end of the year. We hope you have had a good & healthy year despite the given circumstances. The next release is going to come by the beginning of 2021 and will mainly focus on a rewrite of the sidebar system and some features related to that.

The aim of this release was to improve interaction opportunities with players and better integration of the KelpPlayer into your plugins. Therefore we have added

  • Different types of text prompts you can use to query input from players. If you need multiple lines of text you can use a Sign GUI, if you only need a single line or only a few words, you can rely on the anvil and chat prompt.
  • Methods of interactions with the chat by adding clickable and hoverable messages, called InteractiveMessage. You can easily append multiple components per chat line with full support for color and style codes either with ChatColor.COLOR or the standard §code way.
  • Boss bars to give more variety for displaying information to your players
  • Some small bug fixes and code improvements in style and performance (including wider support for thread-safety)

Still, we would like to point out that Kelp is not yet in a production-ready stage. There have been no performance tests with big amounts of players nor the API code is final. All features are only available in Minecraft 1.8 now. Please be patient or report bugs and issues for further improvement.

For a full and more detailed list of changes, head over to the changelog for this release.