#hangar-contrib
1 messages · Page 3 of 1
Did you click on the downloads?
For some of them specific platforms work and others don’t
thats really strange
hehe I can see you trying to fetch them in my logs but nothing else
(looking at the first one rn)
stuff should be in a transaction, mmh
interestingly we have a health report that covers this
its just disabled 😄
issue is that its really slow to do, maybe I can make it async somehow
like I could trigger a new report, get an id, run the queries in background and have the frontend poll for the id
altho that gets funny since we have many instances
sounds like a for tomorrow problem
oh, well, no, not tomorrow 😂
what exactly are stale projects?
stuff that hasnt been updated in a while
how is that determined?
idk, doesnt matter
its sorted
default config is 28 it seems
all this was inherited from ore btw
28 months? damn
days
oh
well that's kinda an useless amount lol
not every project needs to be updated every month lol
I'd only consider a project stale at 6-9 months
you know
these times are the times when I am happy I am just doing frontend stuff
xD
Idk why my number is so much higher than Julian's but I guess he can't see deleted versions and that's a big part maybe?
By missing file does that mean a file was not provided or (I assume it's this) the file is corrupted or got somehow deleted?
Idk
That would also make sense if the files go missing some time after the version is published. I didn’t try downloading every version again
oh, mhh
I didnt touch the scans, just actually made them work for once, lol
but ye, should have cross checked, was already on my couch yesterday
Targeted ads are insane nowadays
Wtf 😂
Send me that, I need those tips
Its just ai assistant shit
glad my advertisement profile is as clean as it can be
i even roll my advertisement id from time to time
i clear everything i can clear from those data hungry fckers and never traverse the internet without adblocker
if a site blocks adblockers (and succeeds unlike youtube) i am not using that site
Show me your ways
Sir that is not an ads and i am subscribed to that youtube channel
I did a thing
idk why but I had that thought at like 3 am randomly this night and wrote it down, lol
any guesses for prod?
Oh that's a nice idea
Sooo, it displays the file sizes of projects?
I am confused, what's the use case? or am I missing smt out?
big number cool
that's total file size of the entire project, right? Largest individual versions would also be interesting
at that point you gotta add a bunch of graphs to make it even cooler
its sum of jars, ye
ok first one is via, thats not surprising, but the rest is fun
you will receive my next b2 bill @outer kettle
oh I dont even display file count, but thats 701 for via, 332 for betterhud and 436 for better model.
via is highest file size count, but sayanvanish is close escond with 668
in total its 16127 files and 28.6gb
largest jars are solarsystem by onelitefeather at 10mb each, but others follow closely
i was curious why that is and compiled it myself
there are soooo many redundant and even unused artifacts shaded into the plugin
i got the file size down to 8mb by simply not shading the examples
enabling shadow minimize got it down to 200kb but not sure if it still works like that
also the biggest part are just kotlin things at 11mb uncompressed
heh
PaperMC could solve a lot of problems (and create a lot of new ones) by bundling a specific kotlin version with Paper!
i would have expected my plugin with the most versions (91) very far up there but i just checked and there are only ~42MB of artifacts
(i take minimizing jar sizes very serious)
the very first 4 versions actually arent well optimized and have a total size of 6.3MB (i didnt exclude gson, jackson and auth0 jwt (no idea why that was even in there))
all versions after that are ~400kb each
good boi
Ok, 10mb isn’t that large
Ah
wish I could do this, sadly it doesn't help with kotlin, my plugin gets like 7mb from kotlin alone xD
For plugins that’s probably fine (looking at the 300MB pixelmon jars)
stop using kotlin then?
why would I want to suffer?
i once misconfigured a dependency and ended up with an 80mb jar 🙂
only noticed after trying to send the jar to a friend via discord and it didnt let me
I did think of using paper loaders for runtime dependency downloading but kotlin doesn't like being downloaded like that xD
(or is it kotlin-reflect? idk anymore)
either way, I never really saw the appeal to "very small sized plugins"
I prefer including everything needed in a plugin than having users download dependencies themselves. Hence why I shade PE
the internet would be a better place if everyone started to overoptimize on everything
especially bundle sizes
I basically always use the plugin loader for runtime dependency resolution
with kotlin?
My jar sizes are always in the kilobytes
You can do that yeah ofc
Write your loader in Java, make it load the kotlin stdlib, and it works 
specially with both kotlin and PE which didn't like being ran like that
ik, that's what I used to do xD
write your plugin in java
dont have to load kotlin
everything faster, smaller, better
not having to ship resources is nice, ye 😄
or just bundle kotlin into paper
what could go wrong?
isn't mysql or smt already bundled for some reason?
why not bundle something people would actually use...
jdbc is
sqlite
i am still in favor of bundling jdbc drivers into velocity
I have yet to see a person that uses the bundled sqlite or whatever
they all add their own
But sqlite is bundled because of historical reasons
Bundling kotlin now would not be beneficial seeing as nothing in paper or minecraft uses kotlin
Just write a plugin which includes the stdlib and make your plugins depend on it 
i have a good plugin name for that
kotling language
fabricpaper
if a plugin would require me to put that on my server i would rewrite it in java 🙂
i actually go out of my way and avoid mods that require kotlin as it brings up startup times by an insane amount
does anything on paper use jdbc?
or sqlite?
that would mean people need to download an extra plugin for my plugin to work
No, but iirc it was a bukkit/spigot decision to bundle sqlite, in order to simplify plugins doing database stuff
making it be "Plug, download dependency, plug and play"
So not a Paper decision, they just kept it in to not break compat
why this forced kotlin hate? XD

on android it has its place now
but apart from that it is just annoying
I don't really understand the kotlin push though, Paper and Minecraft both are written with Java, why would we go ahead and officially support a language which is not used here?
isn't paperweight in kotlin btw xD?
That's like people asking for paperweight support on Maven, Paper tooling doesn't use it, so why would it be provided
paperweight is tooling, nothing to do with the actual server
I guess I see your point, but on the other hand, why should people be limited by java just because paper is in java?
This isn't really on-topic for the channel anymore, could you move the conversation to #general
#hangar-projects message
This looks like it breaks the rules
Made for offline servers
also looks like a security nightmare!
That sums up offline mode pretty good
and that's why we have floodgate (and not... this)
many things do
Feel free to send them to me and I'll handle them, like I did with this one.
whenever I see one, I'll let ya know
in your DMs or modmail?
Whichever makes you happier. If you're going to be dumping a pile I'm fine for my inbox to take the hit.
Or you know, use the report function hangar has, lol
overrated feature
should be removed

Sorry, I was in the theater
expected more from you ngl
Just ping @ mods
as this was rather painful to research I suggest the following to potentially be put here: https://docs.papermc.io/misc/hangar-publishing/ (or somewhere else users can find it)...I don't know if these docs can be contributed to anywhere so feel free to guide me if thats the case
It is possible to automatically update the "Resource Page" (with the gradle plugin)
I quickly found out that the gradle part was to put this: pages.resourcePage(README) in
hangarPublish {
publications.register("plugin") {
//here
}
}```
while defining `README` like this: `val README: String = project.file("README.md").readText(Charsets.UTF_8)`
but the detail that I couldn't find anywhere is that in the workflow you need to put in the `syncAllPagesToHangar` like this:
``` - name: Publish
env:
HANGAR_API_TOKEN: ${{ secrets.HANGAR_API_TOKEN }}
run: ./gradlew build publishPluginPublicationToHangar syncAllPagesToHangar --stacktrace```
Oh sorry about that; you can contribute to docs via https://github.com/PaperMC/docs
okay I'll do that thx
[this](#hangar-projects message) seems rather sketchy
i cant even open the jars
maybe a hangar mod wants to take a look at that
That's very interesting indeed
It does seem like they tried to make some sort of plugin though
Seems to just be a broken jar though, I cannot exactly see anything malicious apart from that. I would still rid of it from Hangar, since it doesn't exactly seem to work
Oh it's a text file
I was overcomplicating it
That's... weird
funny
probably broken publishing
Random as hell but is there a reason why Nuxt isn't being used as the backend? Was it due to hangar being originally a port of ORE? Familiarity with Java/Spring? Or was Nuxt simply not viable performance wise?
Kenny would murder me
And I am not convinced typescript nicely scales to big apps organization wise
Every paper backend is using spring
At least the ones I know
Hangar, fill, javaduck
Proofreader
yeah that's fair tbh.
I am looking into possibly using ktor for a uni project of mine, not the biggest fan of spring personally, was just wondering about tech stack
we love typescript, 85 type errors after dep updates 😄
I guess I should have read more of the vue router 5 migration page
It's most likely a bug in nuxt
as expected, two weeks later just updating the deps fixed it
for some dum reason they still having fixed local builds on windows taking fucking ages
fuck this i18n shit, I am ripping it out
how can such a simple thing as translating a few texts always cause so many issues
anger
Average "Discord didn't delete the messages"-moment
Staging returns a blank page because i18n broke, again
It's at least the 4th time updating that shit breaks stuff and wastes hours of my time, I am done, I am creating my own
Most developer thing ever
"I don't like it, I will create my own"
Xd
Hey, have fun, tbf shouldn't be THAT hard
No clue when I have time tho, this week is move week and I'll be without proper Internet for a bit ^^
Vue i18n is overly complicated for our use anyways, all the hooks into routing and storing language selection themselves and stuff
Sorting might be broken
Notice the sort by dropdown on the second image and the download count on the first
-# sorry if it’s already known I don’t really have time to double check
I had the same thing
I finally have a chance to take a look
so think its not broken, it might be a "hey this is more relevant" kinda thing in meili?
lemme see if I can login in prod meili dashboard
hey @flat cape iirc you use meili too for stuff, did you utilize user defined sorting? did you tune the sort rules?
"rankingRules": [
"words",
"sort",
"typo",
"proximity",
"attribute",
"exactness",
"stats.downloads:desc"
]
turns into
urg this is hard
no idea anymore we very recently moved to typesense
oh thats smart
it is certainly easier than elastic but i think deployment / operation is questionable
better than meili at load though
gave us a way better algo than meili
mmmh
I think ill try that double index thing first, moving search engine sounds like work
I find it funny that nobody complained till now that sorting is basically broken
tbh your hack also doesnt work, since it so heavily depriorizes your query. or maybe our searchable attributes need different order.
like if I put sort really high, any project that has "claim" on their project page gets put high because they have downloads, even tho project title or project description should count higher
meh this is a non trivial problem
I think Ill just try typesense on a copy of the prod data tomorrow to see if I like the results more, lol
realistically you only need plugins that are on the first page 
this gonna sound stupid, but hear me out, use postgres search 
that was a mess too
really?
I'd assume at hangar' scale that the postgres search would work fine
From what I have seen it is faster than I intially thought
meili is waaaayyy better at full text search, is typo resistance, has good metrics for relevancy etc
yeah fairs
tbh the only other ones I have heard of are typesense, apache solr, manticore search and zincsearch (which I have heard is ultra fast)
I wasnt involved in the pitches
I wish I was
but I was busy with something else at the time
Also, FYI, for some reason when switching language in prod, it flickers and goes back to the old language. AKA doesn't change language.
i think mini disabled i18n
Well problem is I am stuck in Portuguese lol
Not that I dont understand it but just weird
I didn't
I'll take a look in a bit
download numbers still broken 
ye will look at that, its on my list
fun I dont remember how this works at all
mmmh, its not broken in itself
I clicked download, saw the track request, saw the entry in the individual page, saw it being processed into the day table and then saw the count updated in the frontend
so I think for some reason not enough track requests are being send
ok seems like the track requests get a 403 response, fun
ah its not logged in users I think, urg
its fixed ^^
Great 😄