Devblog 1
Tags: devblog, supremeobsidian, quests
Published: 2020-10-19 13:23:14

#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.

```java
public class CoreManager extends SubPlugin {
    @Override
    public void onEnable(Plugin plugin {
        //Do subplugin start logic
    }

    @Override
    public void onDisable(Plugin plugin) {
        //Do subplugin stop logic
    }
}
```

Then in the main plugin code, make a reference to the class and do
```java
coreManager.onEnable(this);
```
to enable that subplugin.

## Helper

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 lucko/helper no-readme %}

## Spells

![The Spells Menu](https://dev-to-uploads.s3.amazonaws.com/i/8eb6doctxyrj85gunf6k.png)

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 **PaginatedGui**s 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](https://dev-to-uploads.s3.amazonaws.com/i/fjhna583yaunpzrcq5p2.png)

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.

## Horses

![A Horse example!](https://dev-to-uploads.s3.amazonaws.com/i/y0fkcwfwpsnm7fl2f28q.png)

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**!

## Remarks

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!