📋 HuskyUI [v0.5.1] [API 5-7] - A simple, fast UI system for plugins - Now with Java Docs!

Now on Ore!

We’ve moved this listing to ore. Please check it out here: codeHusky / HuskyUI

7 Likes

Is this for developers or for server admins?

Currently for developers only, although it might get some basic handy features of its own.

1 Like

pls separate and put in a maven repo somewhere, looks awesome

1 Like

Planning on putting it up on a maven repo, yeah. Don’t worry haha.

@Redrield @happyzlife
A release of this lib/framework has been posted to GitHub Releases!
Use JitPack to include it in your gradle or maven configs!

1 Like

Hold on, there is a @Plugin annotated class in there. Can we shade this or do server owners need to have the plugin installed separately? Cause if it’s the latter that’s a major design flaw imo

It’s a separately installed plugin just for the sake of not bloating jar files with frameworks. If you want to include it yourself, go ahead, but I found it easier to just do that the way I did it.

I’ll also note that having the same library in 30 different plugins all installed at the same time might not work very well.
I understand wanting the full source inside of your project, but really, using the library as a dependency and then having the plugin installed at runtime is your best bet.

Also, I suggest that you use proper encapsulation as recommended by Effective Java (Make internal variables private, and expose them with getters and setters. Don’t even expose them to other classes in your own framework.

My reasoning for this is a tad selfish, but it’s also just good practice. You’re making it so that Jetbrains can’t automatically generate Kotlin property access syntax when setting the titles on Pages among other things, because it only allows for property access syntax when the variable is private and is exposed through getters and setters. I’d appreciate it if you could fix that. Thanks!

I would really do that if I wanted to spend a whole lot more time on the UI system right now. I’ll make sure to get to it when I get to it.

I did notice this when I was working on it but it mostly stems from annoyance of making getters and setters.

Might I suggest Kotlin? Really cuts down on that boilerplate :wink:

On the other hand, if you stick with Java, Lombok or other annotations based libraries can generate properly encapsulated variables, like so

@Getter @Setter private String someState;

1 Like

I’ll stick with vanilla Java for now. I’d rather not have to have to learn how to write in another bizarre language.

It’s more of my persistent laziness. I could use those libraries, but then I’d probably just want to die because of all the annotations everywhere.

I’m too picky, really.

PR’d a fix with improved formatting and proper encapsulation, if you could pull that and make a new release :smiley:

You bastard. I was just about to finish that.

que intense debate music

1 Like

rip didn’t merge mine

pls make new release i need formatting changez

2 Likes

Soon :+1: no worries

@Redrield @FerusGrim @happyzlife

v0.2.0 has been released!


This version basically is a result of the code refactor.
Report all bugs to GitHub issues because there might be a few.

2 Likes

Somewhere my changes to include a super call in RunnableAction#runAction got removed. Could you fix that?

Forgot to add the special circumstance stuff. I’ll do that.