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


#1

:clipboard: HuskyUI


This is just a nice fancy library to make chest GUIs a breeze to make.
HuskyUI is for developers to use and for server managers to download and drop in.

:electric_plug: Plugins using HuskyUI


  • HuskyCrates v1.6.0+
  • Market v0.2+

If you use HuskyUI and want to appear in this list, feel free to reply and tell me which plugin of yours uses it!~

:video_camera: Media


Notice how few lines needed to be written to make that GUI possible. It’s around 70, if not less after some code optimization I did.

:question: Examples


Check the README.md file on the repo page (sourcecode link below) for some examples.

:link: Links


Source
JavaDocs
Releases

I suggest using JitPack for using this as a dependency.
JitPack Info
This service will allow you to use the GitHub releases easily as dependencies, without having to worry about updating your jar.
I suggest using version master.


Market - A GUI based player shop plugin for Sponge
πŸ“¦ HuskyCrates [v2.0.0-PRE5] [API 5-7] - Give everyone keys, use Custom Particles, Keys, and more!
Pixelmon Plugin Request
Custom Inventories?
MenuAPI - Easily create GUIs
Set inventory item in a specific slot
#2

Is this for developers or for server admins?


#3

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


#4

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


#5

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


#6

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


#7

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


#8

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.


#9

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!


#10

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.


#11

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;


#12

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.


#13

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


#14

You bastard. I was just about to finish that.


#15

que intense debate music


#16

rip didn't merge mine

pls make new release i need formatting changez


#17

Soon :+1: no worries


#18

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


#19

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


#20

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