#hangar-dev
1 messages · Page 9 of 1
the forum software
ooh
Did we decide where to put various threads on the paper forums? Cause some projects have multiple platforms
that and tags

Yeah... what’s up with the headers on markdown? It wasn’t always like that. Something changed afaik
I don't know
It's been so long that I can't tell if that was something I did or someone else
easy fix: blame bootstrap
well like ik I had to something w/it when I moved stuff over to vue components, but I'm 100% sure I double checked it was working
Is there a list of stuff that needs doing before initial release?
Kinda keen to help a bit, as it seems BukkitDev has actually died, been waiting 5 days now for a WorldEdit update to be approved
lol
Yes, the Release Project on gh has a bunch of issues/features that need to be done for an initial release.
Ah, didn't think to check projects - thanks
DBO is transferring stuff to Overwolf, approvals are on hold until everything is transferred.
db who?
thanks
in message.properties, are we not double quoting apostrophes? i.e. rn it's couldn't, i thought you had to do couldn''t
I haven't run into where that is an issue? so for now, just stick to the format that's already there
easy enough to fix it later all at once if its an issue
yeah i was just curious
I think that might be a ResourceBundle quirk, hence why things like Essentials tell you to do that
Not sure for certain tho
is it missing or is it there?
if you're thinking of yaml, you '' due to the fact that you've generally got it in a quote already
hence it's gotta escape it and that's what yaml does
property files don't have the concept of a quoted string, it's a simple K=V
i.e. rn it's couldn't, i thought you had to do couldn''t
yeah yall are right
Most people have used Essentials' properties files, which have always recommended doubling it for some reason
yeah i think that's probably where i get that from
Not sure if that holds up in EssentialsX, but we still do that in our files anyway
also, my ide was considering ' as strings for some reason so that didn't help either lol
i know this isn't development related, but it's a curiosity i have about hangar. will it be possible to upload multiple files per version - i.e. one core plugin and optional addon plugins and such
or will that kinda stuff just be left for zip files
I think add-ons can be separate plugins?
Yes, but that's kinda annoying having to thru each addon's page to get it
hangar links dependencies as proper links
so you can just click around
a addon would be a soft dependency I guess?
Usually the addon would have a hard dependency on the main plugin though
Does it also make "these plugins depend on currently viewed plugin"?
yeah I guess we should make it display a reverse dependencies
"this projects uses those projects (hard/soft) and is used by these projects (hard/soft)"
then you have both directions
I think viewing reverse dependencies will quickly become a pain for bigger plugins - would need to be searchable.
one is defined by authors (assisted by plugin.yml lookups), the other is automated
My plugin also has an optional bungeecord plugin and addon for different servers, allowing you to join a minigame from a different server the minigame is on. None of these files depend on each other, but do belong together, currently I use child files on DBO and a zip on SpigotMC, but child files are preferably.
yeah, UI is a different quitestion
can somebody throw these thouths onto an issue, so discussion doesnt get lost?
Sure
take essentailsx for example
will every essentialsx module be in separate projects or will they all be distributed together
nice stef
What do people think about allowing users to create "collections" of plugins that get their own pages?
eg I could create an "EssentialsX suite" collection and add all EssX modules to it, then people can find all those projects from one page on Hangar
Could also be used for curated lists of plugins, eg members of the community could create a "vanilla survival starter pack" collection of Hangar plugins
That way we can encourage people to post that type of list on Hangar itself
(Doesn't necessarily change whether we have dependency/dependents views - we could still add those)
i would love that. would solve my issues with the current system
my plugin is structured very similarly to essentialsx's module system
||wouldn't recommend mimicking EssentialsX 2.x 👀||
but the core is really only an API for other first-party dependents to depend on, so it wouldn't make sense to distribute the plugins separately
lol it suits the project - one core plugin that provides a common API, and other modules that implement actual functionality
I mean there are good ways to do that, but Essentials 2.x's weird "module" plugin thing is pointless
i mean, i didn't exactly mimic essentialsx's system
i was just using it as an abstract example - you would want to distribute essentialsx alongside it's modules so users know what is available
I'll open an issue and see what people think
Not sure if it's been brought up before but what about projects that support multiple platforms individually?
Like velocity, paper, waterfall, 3 separate jars
3 separate jar’s are supported as 3 separate versions (right now)
Or they will be once mini checks over my pr
3 separate platforms in 1 jar is already supported nicely.
How do people do releases with a different jar for each platform? Do they release an update to all 3 if nothing has changed about two of them?
I think there needs to be a list of all possible ways some author would want to upload the jar for their plugin.
Cause there seems to be a new one that pops up every so often

For luckperms (and probably geyser too) they release it on the separate platforms, but if they support velocity, waterfall, and paper that would be 3 separate jars on one site, instead of across 3
There's also their site which contains all of them
does luckperms actually upload a jar to their version releases on spigotmc?
cause you can always use an external link and have that for whatever platform combination you want
they do upload the universal one on spigot
imo there is not a lot of reason to do different jars per platform beyond "I don't know how to do an universal one"
oh wait, they apparently only ship the bukkit one on spigot lol
maybe tehy want to keep the file size smaller or something odd?
yeah, so upload options currently are as follows:
- one jar for all supported platforms (hangar auto scans jar and fills in necessary info)
- external link (author can specify what platforms and their versions should be marked as compatible)
- multiple jars (one for each platform) for each version, author must create multiple versions, one for each jar note: these can have the same name (once my pr is merged) and the site user can filter by platform in the version list, so its not that hard to find
Yeah, for something like Geyser we have an update for each platform every update. (Though currently we don't have specified releases).
On Spigot, we currently just link to https://ci.nukkitx.com/job/GeyserMC/job/Geyser/job/master/
atm hangar also accepts zip uploads. It might be worth looking into scanning those and "filtering" them by platform. That way, on hangar, when you click download, you can then click the platform you'd like to download it for
prob require somewhat largish refactoring but doable
(also I just realized you cant filter by platform looking at the version list for a project so gonna add an issue for that)
Is there a dev/demo instance of hangar online somewhere?
If it's down, just annoy me here and I'll fix it eventually
annoy annoy annoy
It deploys automatically from master, so stuff sometimes break if broken stuff gets commited ^^
damn, ded already has is RTP on there

*his
So push breaking changes a lot got it.
chew it was down last time!
:(
I should have checked again.
I'm a monster.
PINS THE CHECK
can i nap please
Yes.
I sure hope hanger has an option to disable the linkout warnings if you are logged in lol
everybody gangsta until the link warning
We also wanna whitelist github and shit
(I also don't like how the site can track which links were clicked with that :S but I guess there are easier ways (e.g. with javascript) to do that ¯_(ツ)_/¯)
If you paranoid, you can just copy the url out of the link, lol
Also
assuming I am not too lazy to implement tracking
oh? too lazy? on god?
Also GA would be cool I guess, altho I expect everyone in this community to use adblock anyways
What did it block?
Oh wait, i think we have GA?
Is there's a main designer for hangar?
Tag manager, interesting
it's just a "fork" of sponge's ore
Wouldn't you need to track the urls to count downloads or something?
Does it look so well designed you think we have one?
The project is a mess design wise 😂
You basically entering PR or shut up territory here ^^
I'm preparing for a PR.
oof
I put my PRs where my mouth is!
But yes, i would love to have an actual web designer on board
I am still hesitant to even call myself a web developer
Yet alone a designer
Riddle me this, why can i click ":download" and it works on the essentialsx page but there's nothing on the versions tab
Does it download a jar?
yes
Guess it's not approved yet or smth
Open an issue basically
Send paperweight is a step forward, hangar can get some love again i guess
Yeah, not really. Most of the css is taken directly from ore. I did a tad of work making a few things look sorta better on mobile but it’s still bad.
Can even find the login button on mobile.
grr. this request is return a 500 error. except its also returning the stuff its supposed to.
never seen that before, where the json is returned as its supposed to, but the browser is seeing a 500
well idk what's up w/that. The dropdowns to select a user when trying to add them to an org are broken because of it.
all the api requests to search for users with that name return 500
Bad response headers?
I gave up. I didn't even know how to debug it. The spring controller executed the request w/o errors and returned the correct response. it was just showing 500 in my browser.
well actually, I don't know exactly what the response it returned was, but it got through the request w/o errors
and the response payload in the browser was the correct bit of JSON
So are we doing the thing where projects can have different badges?
Like:
- Open Source
- Verified
- 10k Downloads
Sounds cool
And then those badges can grant XP, and that XP goes toward levels, and those levels let you unlock more friends on your friends list?
Is that a reference to something? I don’t get it.
Steam
Steam has restrictions on the number of friends you can have?
How did I not know that?
Apparently
Why are we giving every project an open source badge
To encourage open source I think
Hmm actually that's pretty good
why would you need a badge on every resource on the page?!?
They're like capes
phoenix idk what you mean.
Can I have a ClosedSource and Obfuscated badges? ||/s||
Also I don't see the point of "verification" unless you have requirements that could themselves be badges
should go with a copyleft badge instead to point out resources that actually help spread open source
Machine_Maker: I mean that hanger shouldn't accept non-open source in the first place (and afaik that was the plan?)
How about badges based on how strong your password is, to help hackers?
No, afaik it’d still accept close source, but we’d highly encourage open source
eww
K, well I was trying to have a serious discussion about what sorts of badges there would be...
I sure hope "not encouraging it" means "not listing it, not showing it in on-page search or in google searches"
Idk what form “not encouraging” it will take.
proprietary resources hsould have a large red "this resource follows anti consumer practices"
Yes, could be a search filter off by default. But nothing solid there yet
also I wish there was an "unwanted features" function like F-Droid has it lol
how is not open source anti consumer?
(btw. they do quite well forcing open source)
when most of the consumers don't know anything about java
because you don't have 100% over the software that you run
why should they need to?
it's about rights
well said, well said
if a software is not open source then you do not have the right to pay someone to fix issues with it
or to fork it
you are at the mercy of the original developer
or to audit it for extreme issues
it's basically extortion
or code quality, or any other sort of problem
meh oh well, i think it's a bit extreme to call it anti consumer though
runs
Phoenix, feel free to open an issue with your input on what should be allowed searchable, etc. it’s good to have these discussions in a place that doesn’t get lost (like what happens on discord)
what else do you call "platform login, forced payed support"?
"This project violates licenses" 😄
*lock-in
I wouldn't go that far to play judge if you don't have the legal authority to do so ;)
i'm not meaning paid plugins if that's what you thought i meant
no
I didn't either
I meant projects that are note distributed under an open source (and to an extend copyleft) license
*not
I said nothing about the cost of aquiring such software
it's free as in liberty, not beer after all
ah ok, I guess I just don't see how a free plugin that isn't open source is really anti consumer, i mean it's free, maybe I'll see why in the future but currently I don't. do think that it's ok if you want to discourage non open source resources on the platform though, things like making them appear on the second page even if they have more downloads than an open source alternative
Closed source projects should have 3 warnings. 1 because not verified. 2 because it's a lot harder to verify closed source. And 3 because it's illegal to download
no, it's "illegal" to distribute ;) as in Hanger hosts would be liable for it (if no safe haven laws apply)
It's anti-consumer in a very fundamental sense, in that it restricts your ability to find good alternatives. This is the same sense in which a monopoly is anti-consumer, for the consumer has no other place to turn.
I agree it’s anti-consumer but I don’t understand that reason for it @mossy topaz. How does it not being open source restrict your ability to find alternatives?
data portability for example
Every now and then someone asks me to patch and fix a closed-source/obfuscated plugin.
it's usually harder to get your data out of proprietary tools (but GDPR simplifies that one)
The original developer placed a restriction the source code which makes it so much more difficult to patch or fork the plugin.
Ok oh. Yeah
Moreover, you can't compare the quality of the source code to another plugin.
Got it.
this really doesn't make sense... a 500 response with the correct info sent as well?
as I look at it tho... something is off. it says there should be 3 results
and there is only 1
Probably it failed while getting 2nd
Yes, so its somewhere in the parsing of the list of users. Cause I replace it with an empty list, and then it returned 200
but there are no logs...
oh wait!
nvm, I think I just found it
I didn't realize there was a log level below DEBUG
had to turn on TRACE logging
what do people think about converting the rather large project settings page into a set of 1-line settings with a hoverable question mark to show the big block of text?
In general, I'm just not a fan of massive pages for not really that many settings. And most of the time (after your first time) you know what the various fields are anyways just by a one or two word label
any reason why the create project button in the top right would do nothing?
looks like none of the dropdown menus work, actually
He's right, what happened
i want 2 upload quantum >:(
based chew
based? based on what? working links?
based on ur mom
based on u having 0 projects on hangar 
wtf
Brought to you by mini™
today is sunday that means tomorrow is monday and you know what monday brings
in addition to neverending sadness, DEPEBDNS
the neverending sadness got the better of her
it's just dependabot but the letters are rearranged
any dyslexic people here to confirm that for us
Any independent fact checkers
wait, the drop downs dont work?
I was just messing w/them and they worked fine
oh huh, the tooltips are being weird...
everything is kinda being weird, including not being able to upload projects
hmm. I understand why the drop downs arent working. but idk what change I made that would prevent project creation.
they were just small changes
Never got the mail 🥺
We don't have email sending set up yet, give me a minute and I can DM you the link
Thank you, that would be great!
Just messing with the resources, and the converter seems broken on mobile 🤔
Clicked it a few times, nothing happened :P
I'm not sure if the converter worked for me on desktop, but it's been a while
i actually did just try it and it worked
that being said posting the resource never worked for me
I was pinged?
?
yeah ping is deleted
'twas not me my good sir
I'm not in IRC so idk
I love when problems solves themselves
What's the IRC for here again?
hangar is broky tho while ur here mini
don't recall if there was one
actually let me try again
would be on esper though
whats brokey?
am going thru my notifications rn
well, I can't even click new because the dropdown is bork, heh
GUD JOB U DIID IT
lets see
where
spigot
oh, his kangarko statement?
yee
Yeah, the tooltip broke the drop down. Can just remove them I guess.
Idk what’s up with uploading resources not working
I got sidetracked and wrote a benchmark for minimessage, after that I can look at hanagr again 😄
smh not enough support for minimessage on hangar
was an easy fix
but only because I had that issue before I guess
basically we had two data-toggles
thats a nono
project creation works locally
and on staging too
kek
@cinder silo what project name did you use?
Quantum
yeah idk then
can you try now?
so I can look at log
(after staging restarted)
you are right with the http redirect btw
Yeah I'll give it a shot one sec
And nice, glad to know it's not just me lol
Uh not sure if I'm insane... Can't find the log in button (desktop menu checkbox is ticked)
mobile layout is a mess
rotate your screen, then it should be wide enough
needs to be 990px
no sorry that was me i was installing a new driver
Mobile layout looks OK for me
close enough
Caused by: java.lang.IllegalArgumentException: duplicate element: random
at java.base/java.util.ImmutableCollections$SetN.<init>(ImmutableCollections.java:781) ~[na:na]
at java.base/java.util.Set.of(Set.java:704) ~[na:na]
at io.papermc.hangar.db.model.ProjectsTable.<init>(ProjectsTable.java:55) ~[classes!/:0.0.1-SNAPSHOT]
interesting
you mean keywords?
spaces it seems
yeah, maybe add something client side that says "tags are separated by spaces" or something, and some error when there's duplicate keywords
issue pls
kk
else we forget
one sec installing nautilus
ill look at the http link again now
sounds good
i'm not actually getting that anymore, curiously
actually lemme see if i can trigger it
I can
i can't, but good that you can
its still there on staging, but your browser will only complain if its a form
ok wait so am i allowed to upload zips?
yeah
I dont understand this one
I see ton of links
I see Mini focusing on hangar today?
yas
Do you have a good place to donate you some beer money? There's nothing on your site :/
I mean, I have github sponsors https://github.com/sponsors/MiniDigger
and I have https://paypal.me/MiniDigger
Go to paypal.me/MiniDigger and type in the amount. Since it’s PayPal, it's easy and secure. Don’t have a PayPal account? No worries.
but like, I am not the only one working on this, @random badger has done way more recently
I know - but he didn't merge my PR for 2 months cause he was working on hangar, so I don't want to encourage that more.
jk
I saw you working on it and reminded myself I couldn't find a link yesterday.
fun fact: I can't compile hangar on java11 using maven, gotta use java 15
also, the fucking flexmark wiki has a typo, that just costed me like 30 minutes
oh, and thanks prof
just got redirected too many times when signing in from hangar.minidigger.me/login on mobile

@cinder silo afaik, hangar auth is broken on chrome.
I can’t seem to be able to login on it on my PC when I use chrome
staging borked
What url
oh yeah, I get cloudfare 502
Ouch
Works for me
502? Wtf
But my server is reachable
oh does it work now Mini? For a while I couldn't get past login on chrome
well I get for hangar-auth.minidigger.me now
but that's not chrome specific
and this is why mini isn't a sysadmin
mini, does eslint not spit prettier errors at you? you seem to have your tabs set to 2 spaces.
Maybe I ignore em 😂
typical mini
This is staging, with auto deploy, of course stuff breaks
how can you ignore them? lol if there is even one tiny one I gotta fix it. I need that clean yarn serve 😆
ah, I have both open
Always when I wanna call you out for being wrong, you are right
xD
In my defence, it's my mum's fault
for being german?
For making mulled wine and handing it me 😂
hey @pallid yoke is there a reason we wouldn't just include the admonition js/css scripts ourselves?
rather than making routes for them in ApplicationController?
Well, then we have to update them manually?
hmm yeah I guess, but then you wouldn't have to do that replace in javascript which just seems odd. Like it shouldn't break ever but idk
But if you got nicer ideas, go ahead, i am not really happy with it either, played around a ton
lol stagings back up now
🤷♂️ maybe it just needed some more commits
lol
A commit redeploys it
also hangar-auth works now
It's also redeployed with hangar
@random badger does the tooltip on the copy button actually work? I had issues with it (cause the copy thing also sets a tooltip and then you get weird console errors, if you pressed and hover again), so i just removed it because I didn't feel like looking into it ^^
yeah it was working fine 4 me
I made sure to check 🙂
when I clicked it was it was copied, and the tooltip showed up on hover
the copy tooltip isn't on the copy button
Ah strange, maybe you did something slightly different to me then
I am getting window.admonition is not a function in the console tho
On what page? Maybe that script isn't included everywhere where it's needed
Yeah most likely missed that, i think i only did pages
Just add the js and css like on project page view then
yeah, that works
It needs to be included everywhere where the editor component is used or where markdown is displayed
I have to call it manually since it needs to be called after the markdown html is loaded
at some point, I want to get the nonce working, but I can't figure out how to get it to generate a new one each request... I can only do a static configuration of the header in the SecurityConfig. Do you have any experience w/that?
Nah, never did that before
Shouldn't google return stuff for this? Seems like a common use case
I would think, but it doesn't
I've searched for "spring web security nonce configuration" like a ton of times and I can't find anything.
yeah, I forgot the name just now but I def searched for that too
I mean, that's manual, but doesn't sound too bad
lol was just looking at that.
Now I'm thinking I ran into a different problem cause that stackoverflow thread was in my history
so I looked at that at some point
but I forget 😅
I don't even know what csp really does
Like what kinda attacks it prevents
Maybe I should google that
Oh it's xss
Marking all places where js is supposed to be
And the browser will ignore everything else
yeah that's the way I understood it
oh yeah, I def already got to filter https://github.com/PaperMC/Hangar/blob/master/src/main/java/io/papermc/hangar/controller/filters/ContentSecurityPolicyFilter.java
Oh, speaking about that, I saw you set freemarker output format to plain text, can you quickly test if html is still escaped?
I only set it to plain text where html shouldn't be escaped.
and that is only outputs of markdownService.render
Yeah that escaped html, right?
Your filter looks nice, just the storing of the nonce is missing i guess
Since we need to access it in html, so shove it into model in hangar controller I guess
Yeah, I think the issue I was running into was that I couldn't figure out how to get pre-fetches to work with it?
I can take a look tomorrow I guess
Is there an issue for csp?
I just look at issues since forget what I wanted to do else ^^
I will most likely spend most of this week on hangar
Don't have work anymore, want to wait till demon does stuff for paperweight until I look at that again, etc
erm... I think render doesn't escape html.
I totally thought it did. that's an issue
Look at the markdown service, it got a ton of options, i think there is smth about html right at the top
Else just Google, flex mark is amazing and got options for everything apperently
Or open an issue and I'll look at it tomorrow ^^
well it escapes some. like a tags
but if I put <script> tags I get a console error about Uncaught SyntaxError: "" literal not terminated before end of script
yeah, ill open some issues
possible to make the blue icons n shit white or some other non blue color?
blue feels very out of place imo
somewhat happy with this first try now
and yes, design needs a huge overhaul, its all sponge style, but we dont have a webdesigner who could design this
ah i c
it needs to be changed everywhere to be consistent, basically the whole UI needs an overhaul
wanna rewrite it?
tailwind is also reaaaallly ehhm, idk
its totally different and often not really helpful
is there a specific style you are aiming for?
css frameworks != style
ik but perhaps the default css is good as it
you implement your style ontop of a css framework
nah default style is never what you want
because then everything would look the same
hangar currently uses bootstrap as framework and thats working quite nicely
cool, 9.0.0-beta.15 breaks shit
epic!
(of vue-i18n)
mmmh, CSP + allowing ppl to include images is fun
we either need to host an image proxy, or just allow all
vue-i18n is strange
it does compile stuff and use eval?!
const msg = new Function(return ${code})();
like wtf
Is there a reason not to use * for img-src?
We can
btw, I think you need to add "data:" to img-src
It's just that you generally want to restrict as much as possible
Which is why even spigot has an image proxy
You don't leak any visitor info then
right, makes sense
In theory, i could embed an image into my resource description and use it to track visits, potentially even users
And google are the only ones getting that data, not for reosurce authors 😂
So I won't be able to check if more than 10 people will ever view my resource? 😢
Hey, not true! There would be at least 1, because I'd view it to make sure it looks good.
public void incrementViews() {
if (user != “Prof”) views++;
}
I'll just rename to "bloodstone" or smth.
I'm not doing another PR to VT anyway, will keep all my changes to myself.
Hangar actually tracks view server side so it's fine
man, that 1 pr... I told you I didn’t know it existed!!! I wasn’t getting notifications for anything on that repo.
Is it something smarter than just the number of times the endpoint was queried (i.e. What if I refresh etc)?
Yes it’s smarter than that.
I even pinged you in the issue!
I still didn’t get notified. Idk what was up. I clear all my notifs
So I would’ve seen it. Maybe I had watch Nothing turned on or something
Do you guys know roughly how much more work there is for hangar? I plan to finish up my current work for my server early next month and wanted to take a break, maybe see if I can make sense of Java and Hangar.
Are you a frontend guy?
No - I'm as far away from frontend as possible lol
Most of the work is on frontend I guess, but we do have a few new features that require backend stuff i guess
I can do very simple frontend stuff.
Yeah, I think the majority of stuff left to do is frontend stuff. Like mini said, design needs a complete overhaul pretty much.
On that note, I was thinking about seeing if bootstrapmd was a drop in replacement for bootstrap that just changed it to a material design look. Would be an easy way to overhaul the look I think.
What hangar really needs is a proper web designer
Yeah
I mean, generally the look is fine, but it doesn't really fit in with the website, our new additions are kinda meh and the mobile layout is basically broken
But: i wouldn't have that much of an issue to go live with it as it
Mobile I can fix a bit up, but it's generally "fine"
I sadly don't know any web designers - was gonna pay someone to design me a simple site.
tbh I don't think the design is that bad. Its not great, but its better than Spigots, lol
I mean, Bulma is nice, but I assume yall want to stay with Bootstrap (which tbf has a way bigger ecosystem)
There's Bulma and Tailwind - but they are just frameworks. Someone would need to create the overall design first anyway, right?
As I said though - I should be last person asked for frontend stuff. So might be totally wrong.
Tailwind is less a framework and more a "here's individual CSS attributes as classes"
It's neat but takes a lot of effort
We don’t have to stay with bootstrap, it’s just stuff is already written w/it. So it’d be a big rewrite.
Bootstrap is a good base to modify, but you'd need someone who knows their way around it to improve it
And if we wanted to be more inline with the website, we’d need some material design I think.
Bulma is still somewhat limited unless you want to modify its source, only mentioned it bc I like its defaults
Yeah
The framework doesn't matter
We need a design
You can implement a design in any framework
Yes, that's what I meant.
Maybe you guys could get donations for Hangar project and hire someone? Or more loudly say that hangar needs a designer - I only saw it mentioned here tbh. Most people will never open this channel.
Maybe once we are feature complete and start like a public testing phase we can make a call for designers
if you don't like the design you gotta change it before you release
people don't like website redesigns
i personally think it looks good
Ehh, I think the scruffiness at the start would put people off
Probably worth trying to get someone on board to design sooner than that
main reason it looks scruffy is imo inconsistency
like, different width of the sidebar on different pages etc
i am super happy to write frontend code if someone else comes up with a design
im quite familiar with vue but unfortunately i have no eye for design
same, lol
part of my job at work includes implementing designs others make, that I can do
Maybe we could ask on Syscraft or some other servers? It's well within Syscraft rules, at least.
That too. But want to give designer some time, because they might not be able to do it immediately and it'll surely take some time.
I dropped MDBootstrap in to see how much it broke, turns out not as much as I thought
(literally pasted the css at the head of the html, didn't actually try and set it up properly)
mmm much better
ok other than everything being broken i like the changes
i think it looks a bit more modern
minimalist design. very modern. and I noticed for the first time that the paper logo is a stack of notes, wow
Funnily enough I too only noticed that when Hangar's CSS was broken months ago
hey, fyi, https://hangar.minidigger.me/bluely/Quantum returns the experiencing difficulties page
looks like it's just mine though
Looks like an NPE cause recommendedVersionId is null somewhere. I probably introduced that fixing visibility stuff for recommended versions.
Yep, I did. On mobile tho so I can’t fix it. Line 125 of ProjectService. @pallid yoke if you can figure out a way to use the getRecommendedVersion from VersionService there, it’s be better. But I didn’t want to deal with circular dependencies.
mmmh there is still stuff weird with versions
I get random 404s
like, create version -> 404
then it appears again
set promoted -> 404
and some other version appears instead
its weird
big minecraft tryna keep quantum down 😔
Maybe there is a place that’s still using the old plain version string in the url?
I thought I changed all of those
havent had a chance to look, my brain is mush today
@cinder silo ok, I think I fixed the issue there. lemme know if you get any more errors like that
(I just pushed so give it a few mins to deploy)
sounds good thanks mm
yo is anything disabled or down rn? I am not getting a confirmation email when creating an account
email doesn't work atm, ill send you the link two seconds
2 minutes later
2
no I sent it at xx:19. for all you know that could've been two seconds later
19 was... 2
lmao
(minutes ago)
asked at xx:18:19 👀
blocking chew in 3...2...1... ||jk||
what did i do
nothin
omg chew's block evading!?!?
I didn't even know I was here
is hangar frontend in vue or freemarker or is it some weird unholy combo of both?
I believe it's still both, though I think there's more Vue stuff than previously(?)
where does vue get initialized in the freemarker templates? 👀
@deft drift there are scripts at the top of various freemarker templates
those js scripts load the components
look for something like... ```html
<script type="text/javascript" src="<@hangar.url "js/whatever-script.js"/>">
Just wondering, are project views accurate?
Oic, so 103 people have clicked my resource I uploaded when being mad shitfaced, coolio.
Yeah, the logic behind page count, download is... a little complicated. When I implemented it I still didn’t fully understand it but it was very simple to port over from ore. One db table adds a new row every time someone loads the page. Like every time. But then an automated task runs through those rows every couple hours and manipulates them somehow to adjust the count in a second db table.
Interesting, I've taken a look yesterday evening and it was at 73 and this morning something around 100.
🤷♂️there could totally be a bug in the logic somewhere.
103 rn, not sure how much traffic goes thru, but 103 views took me 3 days where Prism is listed since late October with 77 views. Either my placebo plugin that has no description and a fancy drawn image is more interesting or there is a flaw in the calculation lol
It first adds 1 to the view count every time you view it and then runs a query every 30 minutes or so to calculate the total views in ore
I forget if I set the time to 30 mins, but I was pretty sure I did exactly what y'all did on ore.
but maybe not, ill look at it later
Its a config option in ore
yeah, it is in hangar too, I just forget what it defaults to
Bump vue-cli-plugin-webpack-bundle-analyzer from 2.0.0 to 4.0.0
who needs 3.0 anyways
Ikr?
windows 7, windows 8, windows 8.1, windows 10 
Telling ya, they're all skipping numbers these days
Last time I tried to skip numbers I failed kindergarten again
don't worry bout me ill be using my iphone 9
hangar needs a Battle Pass where you can unlock cosmetics
can you properly embed yt vids or other media in markdown?
I forget the list of flexmark extensions installed, but that might already be supported
would be good to know to convert BB's media tag 😛
"transforms simple links to youtube videos" does this mean just plainly having the link in text or as a text with hyperlink?
Test it? ^^
idk, but it sounds like just plaintext
testing is for noobs pf
We probably should write at least one of our own extensions for mentioning users/projects
is that addon already installed? otherwise maybe it doesn't work because of the custom linkout urls?
Isn't linkout only where we manually add it in the templates tho?
Or is there something I missed in the markdown stuff too?
ah the youtube link addon isn't installed
but eh time to sleep now, I bet I'll have troubles starting it locally again anyways 😂
if I am to make a valuable contribution to hangar, what frameworks do I need to familiarize myself with?
I heard you were using Spring, right?
Spring for the backend, freemarker and vue for the frontend
Jdbi for db
||(idk how much is left in freemarker)||
Bootstrap for style
That is basically the setup
Freemarker is still there, it's there to stay
is bootstrap its own framework, or is it the same as spring-boot?
I guess that question doesn't make sense; bootstrap concerns style
so I've just discovered Hangar, and I've got a few questions
Does it have dependency resolution for plugins?
And is there any sort of CLI for interfacing with it?
There was some form of dependency thing
For cli, no; I'd imagine there is some dreams for the Gradle plugin sponge has for deployment to be ported or something, no idea if there was any plans on that
For a CLI, I was thinking more for server owners rather than devs. I was just talking about this over on the spigot discord. A CLI where a server owner could run hangar install DamageIndicators in their server dir and pull the plugin and dependencies. Would obviously provide updating functionality as well. Sort of like NPM/Yarn or Composer for server owners.
I just started working on the CLI. I was initially going to design it around the spigotmc.org resources, but I think designing it around hangar will be much better (and less hacky/web scrapey).
I'm guessing there's gonna be some sort of public API?
https://steamuserimages-a.akamaihd.net/ugc/1644343169221358624/3834D487A3DE4ABF54B2DDF179CF404F897840DE/ looks pretty good, but it wont let me drive anywhere else in the city atm so f
ultra on a gtx 1080, so no raytracing or dlss stuff :/ but runs good :D
My favorite hangar plugin!
nice! I'm going to get to work integrating right away. It mentions that anything starting with _ is subject to change; is everything else pretty much guaranteed to be in the first proper release?
That part I don't know. I've only touched project querying -> https://github.com/Chewbotcca/Discord/blob/main/src/main/java/pw/chew/chewbotcca/commands/minecraft/HangarCommand.java
No worries, I'm already noticing some similarities with Spiget's API, which I'm using to provide spigotmc registry functionality, so porting that code shouldn't be too difficult.
well i have an official spigot resource api that would help you there, but it doesnt do downloads
so far md_5 has refused to let me add that
but it would let you get metadata
you'd have to do CF fuckery for the DL tho
eugh. I'm already having problems with Spigot's external download links. I'm guessing that (for the much better) Hangar won't allow that?
Lovely. Because right now, I'm having to write handlers for every file format under the sun that Spiget gives me when I download a resource.
i still need to do quite a lot of updates on the official api. i wonder if he'd let me add a download link at the very least
still would have to do CF fuckery to actually download it
but...at least there'd be a link
One more quick question (sorry to pester 😄). I'm just digging into the API a bit more, author, slug is a composite unique key? Can there be duplicate slugs by different authors?
wdym
slug is the plugin name/identifier, correct?
so Tinkererr\EWG (hehe) and simple\EWG could both exist
well even if it's not the case, the fact there's uniqueness at all is such a relief
last I knew, slug was unique in general
hmm, I can't see any GET endpoints on the API docs that accept just a slug, they all need an author
yea the way the api is designed almost implies that the slug is unique among an author, not globally unique
and if the impl doesnt do it like that, thats a bug :D
even if slugs aren't globally unique, install --from=hangar Tinkererr/Core is much nicer than install --from=spigot 12394 😆
slug varchar(255) not null, CONSTRAINT projects_namespace_unique UNIQUE (name, slug),
hm
So, yea, looks like simp is correct
I coulda sworn that there was a discussion around not allowing a name to be used by multiple people, maybe name is generally a nono but the slugs fine? see what the people who know what they're talking about say tomorrow i guess
okay, thanks for your help 🙂
btw, before I implement Hangar support on my CLI, are you guys okay with me interfacing with your API? Obviously, as hangar is still in the dev phase, there's no ToS (that I can see). I'd guess it's fine, judging by your choice of license, but there's no harm in double-checking.
im pretty sure it's fine
API is there to use
if they didnt want you to use it they'd make it private
do you know if there's any plans for an acceptable use policy?
or is it more, if someone starts going crazy, you'll intervene
well im not staff
but im pretty sure it's just "please use a sane user agent so we know who you are" and yes if your user agent starts hammering the server they'll probably be like, plz chill
No idea if there is intent on a AUP, unofficially stuff like that's basically "don't be a cunt"
is the api cached at all? if not do clientside caching in your own app to try and reduce how often you hit it. little things like that would be appreciated
and I don't plan on doing any sort of scraping/bulk extraction operations, which I guess is the sort of stuff that you'd be coming down on
API is less traffic to us than API + site together, so, there's generally no reason why the API needs to be much more restrictive than what people can do browsing the site
is there gonna be any sort of forums integration or nah
yes
to what extent? just account transfers, or discussion pages for resources and whatnot
account and discussion page afaik
very cool. I'm very excited for Hangar btw, i think it'll be a vast improvement over SpigotMC. I already love Ore, can't wait to see what you guys do with it
um, so I've just (rather hilariously) got an HTTP 418 status code when trying to call GET /api/v1/projects/{author}/{slug}/versions/{name}/download
Next goal for hanger: make it run on a teasmade
in all seriousness, what, why, how?
I got no idea, I blame mini
well, at least I know that it's not my end's fault 😛
more questions from me 🙂 are you enforcing anything like semver?
this is getting scary lol
Atm we're not really 'enforcing' anything, nothing really has been set in stone
lol
sorry if I've come off as a bit "guns blazing" then
luckily for me, I'm solo contributing to my project right now, so I get to play BDFL
yeah, there actually is support for external links. And they do not have to link to a jar ( @narrow verge )
I forget what currently happens if you use the api to download a project that only has an external link
I think the best bet would be to return a separate response with that external url, but idk what's best
separate response to me sounds better, that way clients can decide whether or not they want to request the external archive, instead of blindly following a 301
are there any plans to implement some basic CI functionality, or is that down to devs?
That's down to devs, ci is expensive and a cluster fuck
Yeah, just use github actions
We can def provide a GitHub action to deploy to hangar tho I guess
are there hangar badges for readmes?
ore has some, but i assume it would take time for shields.io to add them
so a built in badge api would make sense?
lol i gotta learn yarn and image api?
Or wait maybe i can find a easy workaround
i mean can i parse json with shields.io?
No clue
This would be done in java anyways
As a spring controller
That returns a svg
https://img.shields.io/badge/dynamic/json?url=<URL>&label=<LABEL>&query=<$.DATA.SUBDATA>&color=<COLOR>&prefix=<PREFIX>&suffix=<SUFFIX>
I assume it would make sense when i made an PR to shields.io adding hangar api support. With a default url to papers hangar instance and an editable hangar url.
Because i think there may be some people who also host hangar.
No clue what their requirements for adding stuff like this are
They already have ore and spigot badges so it shouldn't be a too hard step.
It should be trivial to write our own generator
Yeah sure, but im kinda out there. I can't even draw with ms paint 
Maybe I will look into that stuff later on.
For now imma just open a github issue. Probably backlog then
I think it would be a good idea to make use of the API and make badges. Spigotmc and ore already have badges on shields.io called spiget and ore. I think this would be a nice feature to add for han...
That's the cool thing about svgs tho
No drawing required
Can just copy paste the shields.io badge, edit the text and be done
Lol
lol
I rly gotta start getting further in java than coding simple mc plugins
Dev todo:
- Learn kotlin
- Learn spring
- Yarn
😂
Lmao ok
I just wanted to check out how good kotlin is over java
I guess you guys hate it?
The structure is kinda weird...
wrong channel 
Imma just make it step 3 then
Oh... lol imma stop
don’t have to stop, just move to paper dev or general 😛
Isn't paper dev as bad to talk about this than this channel? Hangar is written in java too
Nah im just not gonna complain
#paper-dev is "paper and completely off-topic development help"
Ah
whats a hangar
Topic
A hangar is where you either hang your clothes, or store a plane.
no for clothes that's a hanger
a hangar is a song with a loud, energetic beat that is good for dancing to.
I’m sorry, I meant to say a “/ˈhaNGər/“ is for storing planes or hanging clothes.
(I assume the phonetic spelling is the same)
works perfectly
ok im running the database, the backend + mail + redis seem to be running too the frontent is installed and served.
hmmm
and it spams my console with keepalive stuff

my database
wtf is this lmao
hm i seem to be doi n g s o m e t h i n g w r o n g
my keyboard
uh
ok imma restart all my containers
- Start database inside docker
- Backend + Hangar Auth dropped in
- Frontend (yarn run serve)
- Try to connect to port 8081
long loading followed of white page
mhm
but the proper html is there
console
Auth is dead though
yeah i tried to go without it, but it said at docker building that auth was missing
so i assumed it was required
wow
that seems why
i assume i need to use linux then?
ok time to boot into linux
here i am again
yup seems to be loading something now
oh there we go
cool

Yeah seems like that
But i think the auth stuff is mostly still from sponge?
Like that terms of service and the google login stuff
Do you have maybe some "good first issue" issues?
Yeah we didn't touch sponge auth really
Just some minor design stuff
I still wanna rewrite that one, md started doing it
I think some issues are labeled with good first issue on GitHub
Ok thanks
Hi I saw in the review post of 2020 that you are in need of webdesings well I am not one anymore I am taking front end courses and I would like to help if I have the capacity for what is necessary, but also I am Brazilian and I do not speak English , I can only communicate with a translator 😭 , I really like your work and would like to help
Quick question, are you still looking for web designers? 🙂
Yes
Basically somebody who helps us create a proper CI for hangar, maybe the main website too and basically give hangar a fresh and consistent coat of paint
The current contributors are all developers, most of us don't even have much web experience, yet alone being able to design stuff
That sounds good to me. I have not learned this yet I am familiar with the use of various languages. I'll take a look at it right now. 🙂
Could you do that with a eignes team, since I have under me loud to what we support each other. 🙂
Well yeah, while web developers would be helpful too (every contribution is appreciated!), We really need somebody who thinks like a designer
I see web development, but I see jquery, but I see vue
I'm conflicted >:(
I mean, if you have any issues related to styling (imo it looks scuffed currently) then I'd be happy to help
Yes please
jQuery is kinda legacy, the frontend is more or less a fork of ore
Some parts have been rewritten in Vue, but we also need to server render some stuff for Google and that uses freemarker currently
just saw https://github.com/PaperMC/Hangar/issues/186 is somone still working on this?
But we also could use help with webpack config stuff, all the tree shaking and module/chunk splitting etc, that's a black box for me and whenever I touch it shit breaks, lol
I don't think so, no
you can fuck with tree shaking 
if I do anything then it will be my first contribution to someone elses repo so apologies if I fuck up the PR, any tips?
I added webpack bundle analysier, opened it, cried, and closed it again
Well, discussing what you gonna change is a good step, everything else we can figure out then
If you got any questions how anything works, just ask, multiple ppl here can answer
I also wanna work on stuff today, not too sure what yet. Maybe first organizing all open tasks and stuff to get a feel what needs to be done, lol
no nuxt make me sad
I mean, in wouldn't mind redoing everything UI wise, lol
It's just, that's kinda work, and hangar is overall pretty close to being done i think
It's just that SEO is a prio so server side rendering at least some of the content is important too
makes sense, nuxt provides ssr support but everything is in java already 
Yeah, that's the thing
I wouldn't know how I would get java data into nuxt for ssr and shit
Unless you would call a rest api i guess
But then that has overhead and everything is a nightmare
I know that there's things like Intertia.js for laravel that can inject props, it just prevents rendering json into the views manually
I'll try find if there's something like that for spring
Sounds good
just curious i dont plan to use this but whats the reason in making it open source
is it supposed to be used so people make their own smaller sites?
so anyone can collaborate to improve it
for the exact same reasons you make other things open-source as well
Ore is also open source, so why not give the world back something?
^ there's 0 reason to keep closed-sourced, especially in this community
That's the wrong attitude. I personally open source by default, unless there is a hard reason to not do it
This is an open community, paper and hangar would be nothing without it's contributors
what would be the reason to make it closed source
Tbh I had the same question, but you can actually compare it to Geyser now I think of it.
Why do we make make things open-source, just to make it easier for people to make their own version of the project and sell it as their own?
But like KennyTV and MiniDigger are saying; this community is build upon open-source projects. Just think of it: Spigot, Paper, Sponge, Bungeecord, Velocity, ViaVersion, Geyser etc. are all open-source. We learn and help others and we get help / learn things from others. It's actually pretty cool when you think of it that a lot of people in this community make their code (projects where they could've spend weeks / months on) publicly available.
and for hangar in particular, we "lose" nothing. even if others setup instances and run them for paper plugins, paper would still run the offical instance, so no real traffic lost, and more instances = more users = more feature requests, suggestions, fixes, which can be contributed since the source is right there
I'm gonna go through and remove jQuery and switch to typescript and also break everything
WASM
if that doesnt ruin seo, be my guest ^^
actually I'll do it in kotlin JS
and rewrite the backend in kotlin
so the whole project will be 1 language
then we can use the kotlin html builder and get rid of freemarker too
kotlin everything
kotlin for life
kotlin is love
but really though that would be cool, even if unrealistic, don't @ me
then you can play around with kotlin/native and wasm too lol
That's why I was planning to do with my website - backend and frontend written in Rust 🙂
I'd hop in if it's kotlin!
Though Rust can't compile to JS, needs WASM.
I'd love to try Kotlin JS and help, but AFAIK hangar is almost done already.
no time like now to throw out everything and start from scratch again amirite
we should invent a new language for hangar
hanglang
hanguage?
langar
wen
i want mathjax integration !

