DEV Community 👩‍💻👨‍💻

Fisher for SupremeObsidian

Posted on

Devblog 1

What's new this week in SupremeObsidian.

This past week we made a ton of progress in the way of team collaboration, amongst other things. We didn't push too much content per se, but we did make developing new features very streamlined, as we've put all of our changes into a new Core plugin. This allows us to easily make changes to one plugin instead of asking others to make changes to their plugins.

So far, we've got four of our plugins integrated and working with the core. Since we're updating the namespaces, and in some cases, class names, we've got to change other plugins so have the same namespaces and class names since we've updated them. Instead of changing them in standalone plugins, we've really been trying to implement everything into one plugin.

Instead of having a class that extends JavaPlugin, it will extend SubPlugin, that still has onEnable and onDisable so that we can still treat them like plugins, and they will have all of their code in the correct places, but it will only register one plugin with the server, being SupremeCore.

public class CoreManager extends SubPlugin {
    public void onEnable(Plugin plugin {
        //Do subplugin start logic

    public void onDisable(Plugin plugin) {
        //Do subplugin stop logic
Enter fullscreen mode Exit fullscreen mode

Then in the main plugin code, make a reference to the class and do

Enter fullscreen mode Exit fullscreen mode

to enable that subplugin.


This week, I've added helper to our project by Luck, the same guy who made LuckPerms among other things. His library allows us to rapidly prototype features, among other things, and really allows us to build things fast. The feature that I've most used this week from this project is the PaginatedGui class and the Gui class, to auto paginate things for the spells menu.

See Here:

GitHub logo lucko / helper

A collection of utilities and extended APIs to support the rapid and easy development of Bukkit plugins.


The Spells Menu

This week I've made some way in the Spells department, making an intuitive GUI to hold the spell items and a unique way to deploy them and get stats from them. Using PaginatedGuis has made this process incredibly simple to both prototype, and see which features make the cut.

How I plan for it to work is as so: A player will select the spell from the top four rows, and then use the bottom red rows (that imitate the user's hotbar to select which slot in their hotbar the spell should go. This should make the selection process very easy for the Action-based RPG style that we're going for along with the Quick Menu that I've implemented for this.

Quick Menu

The Quick Menu

The Quick Menu is another feature that I'm very fond of. To use the quick menu, you double tap your offhand swap key in quick succession, default "F", and it will bring up the Quick Menu, so that the player won't have to interact with chat or run commands.

The goal is to have the players never interact with the chat other than typing messages. It should be straightforward to where the prompts don't get in the way, and they player can quickly do what they need to do without taking their hands off of their mouse.


A Horse example!

For horses, we're trying to go with the concept of having your horse always available to you, with cooldowns. What this means is that, if you summon your horse, you'll have a cooldown before you can put it away again. Also, if you're attacked, there will be a damage cooldown, so that you can't put your horse away as soon as you're attacked to avoid your horse dying.

There will be certain actions that will aid your horse and up its' stats, such as feeding it, brushing it, and even riding it. Every horse has a level (starting at 1), and to gain a new level, you use the horse or brush it, or feed it. Each level has a certain amount of points you need to get to level your horse up.

For example, level one has 100 points to get to level two. Each action you do has a certain amount of points that your horse will get to level up. Also, each new level your horse gets, the faster it will be, the higher it will jump, and the more stamina it will have!


I'm very proud of how the team has worked, myself, Async, Maxy, and kohlerpop1. Also, I'm very excited for the creative freedom that Kalinox has given me :)

Tune in next week for an update on what's been going on!

Top comments (0)

Timeless DEV post...

How to write a kickass README

Arguably the single most important piece of documentation for any open source project is the README. A good README not only informs people what the project does and who it is for but also how they use and contribute to it.

If you write a README without sufficient explanation of what your project does or how people can use it then it pretty much defeats the purpose of being open source as other developers are less likely to engage with or contribute towards it.