#hangar-dev
1 messages Β· Page 2 of 1
since we would need to be a payment processor
hangar doesn't handle money
would rather use "pay for rank X and get to store more jars"
why wont we use an unlimited google drive storage /s
They patched it a few months ago iirc.
2020-08-22 15:18:15.766 WARN 10796 --- [ XNIO-8 task-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class org.springframework.http.ResponseEntity$DefaultBuilder] with preset Content-Type 'null']
yey
oh maybe I can just throw an exception instead
Hmm, what about allowing external storage solutions - but calculate and store hash in DB so that the jar can't be changed?
nice that totally works
It'd be proxied thorugh Hangar.
that actually sounds like a decent idea for alternative, external storage
So I can either donate to get more storage space hosted by hangar - or create own storage solution if I have special needs?
we already store hash
sorry not sorry
We'd need to be able to update URLs (in case we change backend storage or anything), but hash should be calculated per-version and never change.
But first it needs to work at all π
I have ~3800x going through all 3 monitors :D
1080+3440+1080+3840
9440 is the widest I could send you π
4 is my TV tho
I love how tiny the 1080p monitors look in that view
lemme work on download confirm stuff another time
I gotta fix the UX for this first
there are a tad too many clicks to download a jar for my taste, lol
actually, maybe lemme fix promoted versions on project page first
yes please, just a plain old "download latest recommended" button or something on the actual page without having to click on any version
right here for example would be dope (not squashed with the other things at the top) with an extra button design https://i.imgur.com/z10jmGW.png
if you don't, I'll see if I can manage to later π
ye that was the plan
also want to add a dwonload button right in that promoted versions list
or create own storage solution if I have special needs
that would be pretty neat since that's something I was hoping to do with EssentialsX/other projects - have some way of presenting "stable" and "dev" builds on the same website and let the user pick which one they want
eg we'd be able to push dev build info to Hangar that points back to Jenkins
only problem is potential for bad actors to switch out jars - even if Hangar keeps a hash, it can't easily check that the source URL hasn't been redirected unless Hangar proxies every single download and checks before letting users download
which would be slower, esp for bigger plugins
your other option would just to actually (automatically) upload the jenkins dev builds to hangar
also, I very much hope EssX gets the save spot to be the first published project and Maintenance the second 
i hope the default theme is a dark theme
how about automatic css dark/light os theme detection?
just turn your brightness down jeez
imo best practice for light/dark is to follow the OS preference and allow people to override it
my monitor's settings button is completely broken, doesn't work anymore π
sounds like a you problem lol
lifechanger: use a DDC control app on your PC
no more monitor buttons, at least for basic settings
monitorcontrol on macos is great
seems like a bit of overkill xD
no but really once you get used to being able to adjust the brightness instantly you can't really go back
you don't know what you're missing :3
maybe to alleviate the concerns about URL jar switching, you could have a whitelist for external hosts that includes GitHub Releases + trusted third parties ||like the EssX CDN||
that would be pretty neat since that's something I was hoping to do with EssentialsX/other projects - have some way of presenting "stable" and "dev" builds on the same website and let the user pick which one they want
@modest forge thats what channels are
I think a hash makes much more sense than "trusting" select hosts
and how would you compare hashes?
by hashing files and comparing them to the past hash
@pallid yoke yeah I should've been clearer, was referring to ability to host jars externally while using channels which isn't something you really can do with XF resources or ore iirc
so you're going to download all jars from external sites?
^
you don't have to download a jar to get its hash
You can't verify a hash on Hangar's side unless you keep redownloading and checking jars
which defeats the purpose of external downloading π
ore doesnt support external files right now in any capacity so all this isnt something we need to think about right now tbf
if you dont do it yourself it can be fucked with
you can compute hash on user download, no?
ik, just brainstorming future possibilities since it was being discussed earlier
@mossy topaz the user can compute a hash, Hangar can't unless it proxies the download, at which point you've lost half of the benefit of external hosting
it doesn't check iirc
it doesn't at all
unless a resource gets reported, where I assume a moderator manually checks
you can put youtube.com
yeah just uploading dev builds automatically to hangar (or even just giving a url for hangar to download and save) is best, and as mini said, you'd just keep x amount of builds per channel then with old ones being deleted to save space
thats a lotta traffic tho if this takes off
no, downloading everytime and comparing hashes would be a lot of traffic lol
well yeah, but you're still downloading dev builds
would be cross-origin too
yes, once, not literally every time someone downloads it π
yes, for every build
how would GH releases look in that case? would Hangar just pull a download off GH when the webhook is called?
just need sane api limitations
Β―_(γ)_/Β―
that'd be for up for decision once it happens I guess, but I'd imagine so. have some sort of setting for webhook listening + define a channel for that, et voilΓ
what about plugins that are distributed as multiple jars
sexey 
also what state is auth in right now? ik jake was redoing a lot of the basic impl I did originally
no clue havent touched any of that
https://i.imgur.com/d0oLrlL.gif should i make it more like the paper website where the nav is rolled out and then put into a dropdown when too small?
or just fix the dropdown to work on mobile
ore also just drops the login when it gets too small which is a big nono imo
the idea is that the dropdown thing gets ported to all paper websites
so it needs to be consistent and work for everything
The sql query from ProjectApiDao, does it need all those filters with and between the conditions?
yes
that query is interesting, to say the least
code should be this if you need a reference and want to take a stab https://github.com/SpongePowered/Ore/blob/staging/apiV2/app/db/impl/query/APIV2Queries.scala#L181
for users, I just used string templating to insert some sql https://i.imgur.com/auo8B4O.png
(userdao)

exactly π
db stuff is the most annoying stuff and the most complex stuff
for this and for any project I guess
The way promoted_versions in made in the init.sql is a bit different from how PromotedVersion and PromotedVersionTag are build.
sql has currently: tag_name, tag_color, tag_version and version_string
While PromotedVersion has: version, (PromotedVersionTag)tags: name, data, display_data, minecraft_version, color
Which one should change? Both?
wut? the tags table has id versionid name data color
random queries won't tell you the full structure π
I logged the json, it uses those values as keys
https://github.com/PaperMC/Hangar/blob/master/docker/db/init.sql#L915 the sql from the screenshot
weird
Hangar when?
well I dunno for when/what those jsonproperty annotations are exactly used
because the class properly represents the project_version_tags table
I think?
Json property shit is generated by swagger
And it's used for when spring turns it into json
Okay, does that mean that I should change the class so that it follows the sql?
where is the 1.16.2 jar ?
wrong server
channel*
oh it was because I had collapsed the category
π€¦ββοΈ
If you guys plan on having premium resources, PLEASE add multiple payment options xd I'm sick of paypal being the only one π€£ (sorry if this is the wrong channel)
nope, nobody wants to get into that mess
but either way there are very few payment processors that exist in as many countries as paypal sooo
God, I would love to see the rush of mc devs tryna get stripe approval
:))) whats wrong with stripe?
last I saw someone was saying hangar won't have a concept of premium or paid plugins, everything's free
They require a lot more in terms of ID than paypal, and in general are more "fun" to deal with
ya -- paid support is fine, but paper has not decided how much hangar will be involved in that
But, yea, no premium stuff, we have 0 interest in dealing with that BS
Yeah mini's said like 4+ times, no premium on hangar
Same as ORE and Sponge it looks like
Nice cat
Fitting, since it's a sponge ore rewrite
same as dev.bukkit.org
premium resources just adds a lot of extra moderation BS which we're not paid to do
There will be a way to support devs, etc
zml so i'm not misremembering, do ore guidelines require open sourcing?
Yes
I like that
hangar does
I only like dev.bukkit for their files system, it's nice how you can add links to dependencies from the same site, display compatible versions etc.
iirc ore doesn't specifically -- but ore prevents obfuscation
Bar their UI being bleh in some areas, DBO is pretty nice
yeah, it's the curseforge platform which is decent
I love the idea of ore being for devs by devs
they added a lot of stuff which pretty much nobody else offers, e.g. being able to upload plugins through a gradle plugin
One of the most frustrating things as a server owner AND dev, was finding ancient plugins that would be perfect, but are broken and can't easily be fixed due to closed source, or even current plugins, and not being able to modify them due to the same thing
Thats nice
Yeah, I hated having to decompile plugins to fix them.
If hangar will have a way to upload plugins through gradle, the external source possibility and a decent API which isn't behind CF protection - I don't think it'll need anything more.
I know these aren't trivial - but I like hangar being open source, since anyone can contribute as long as their feature idea is decent.
what if people just obfuscate the plugin and then release the obfuscated code as open source

Mmm, obfuscated plugins <3
premium resources just adds a lot of extra moderation BS which we're not paid to do
Pull an Apple and take 30% π
I think they said that original ORE prevents obfuscation?
I asked what are the plans for paying for the infra.
Apparently just getting a small cut from PayPal / whatever isn't trivial.
doesnt google also take a lot too
Pulling an apple means making paper only running hangar plugins and taking a 30% cut and taking 30% of all your patreon money for a totally unrelated side project
And then acting like ore didn't exist until after hangar's release
what is hanger?
see channel description and pinned
And the pin
oh so its just a repo for plugins? like spigots resources page
Yes, but better π
You can checkout pinned message to see how it currently looks like / how it works etc.
"just"
Search in one projects
Oops! No projects found...
π¦
What is the project
who's chew
Why is it 1 if there's none? Unapproved?
Probably Test
It also seems to take a few seconds to update project count - it says Search in all projects at the beggining.
But like - these things are not important rn, first hangar needs to work before fixing stupid shit like that.
Yeah that can easily be delegated to async
I plan to slap @Cacheable onto a ton of stuff later
not even sure how the counting works, lmao https://i.imgur.com/OWUZZFy.png
ehm
ok π
and thats why I dont take bug reports right now, lol
xD
Even thought about it being always 1 for some reason, since no matter the filters, it always said it's one π
the filters arent implemented either
didnt see that this was realdy working https://i.imgur.com/ePQGtpk.png
nice
most of the unimportant stuff is done already... just not the actually important π
everything I want to work on I would get a headache
like, project filters or promoted versions or tags
thats why I did sitemap yesterday π
at least I can fix important issues like this https://i.imgur.com/845j3s1.png
fuck, it was me https://i.imgur.com/wzL3Rtx.png π
btw when I checked yesterday, versions and projects loaded indefinitely again (nuked the docker image/db shortly before that as well), only if I was logged in tho, any idea why? π
unauthorized yea 
clear session and local storage
workedβ’οΈ
I don't know what causes that
oh wait, I know
you nuked the db and thus the api session I bet
"error.project.maxKeywords = Too many keywords! Max is {0}" does this work?
wait, didnt somebody PR smth?
lemme check that PR
thanks @solemn whale
Np 
hello db?
you ok?
[2020-08-23 11:53:48] 0 rows retrieved in 3 m 43 s 134 ms (execution: 6 s 702 ms, fetching: 3 m 36 s 432 ms)
A+
fast
hangar.exe has stopped responding
nah its the DB
hangar_db.exe has stopped responding
gotta run now, I want to fix promoted versions and tags and channels and shit later
gotta run now, I want to fix promoted versions and tags and channels and shit later
@pallid yoke I was playing around with PromotedVersions and I have been able to make it into a List instead of a JSONB object, but not sure how to get multiple promotedversions from the db to test if it also works with multiple versions
Oh nice
Be sure to PR so we don't duplicate work
I am not sure if you can even have multiple promoted versions tbf
for some reason it can't get the notes.js from http://localhost:8080/assets/javascripts/notes.js 
renamed it to showNotes together with the scripts var and now it works lol
Be sure to PR so we don't duplicate work
created a pr for it
Ah saw it, will check out once am back
not sure why, but it doesn't update the notes column, but in theory saving/listing notes works now :>
wtf is happening here
apparently the projects table in Hangar doesn't have a last updated field, whereas in Ore it does
@pallid yoke is this intentional?
I removed it and added it back or smth iirc
there where two and they seemed to do the same or smth
I don't see it at all in ProjectsTable or any equivalent in the other db classes
lemme see, just came back
also I've implemented project settings in ProjectService#getProjectApi
was looking to do the other todos in that method but I have no idea what needs doing for them
wait I just realised I'm on the hangarauth branch
nvm am dumb
mini: ignore everything I said, am just an idiot
triple idioted
see this is why we should still have a private hangar channel, that way I can be an idiot in private
home_projects is a view that does have a last_updated based on the latest version upload time, but that's not exposed in ProjectsTable (which is fair enough)
just have soliloquies in hangar-internal
but hey my project settings stuff is correct, is just in a different file now
not just pushing directly smh
tell me how to export it kenny, lol
you can just dump all settings with the Settings Repository setting to a separate MiniDigger/whatever repo,
and maybe remove everything except imports? don't actually know how that stuff fully works (else we can kinda 'merge' settings locally)
@random badger or anyone else: is anyone still working on creating a user in auth for org creation?
nope
I am
Iβm still in the process of moving back to my dorm
Thatβs why I havenβt been active, my computer isnβt even setup atm.
how far did you get?
also @pallid yoke should we create GH issues to track what people are working on?
Just push what you have, if it doesn't work or compile push to a branch and open a WIP pr I guess
A draft PR :3
@modest forge pretty far, ill pr what I have so far. I was just kinda stuck on getting /sync_sso to work because on linux, host.docker.internal doesn't seem to resolve to the machine's localhost
It's WIP pr in gitlab, reee
:3
good question
I don't think so lol
like in user settings, to change it
yeah, ive been either defaulting it to null or english
also machine, i responded to your paperdocs pr
but I don't think there'd be enough people to make good translations for other languages anyways
soooo π’
everyone should just learn english
ez
let's link to an online english course on the main page and call it a day
chew, I looked at all the settings in the various config classes, so if I didn't include one, its caused it was removed. iirc, aikar said light-queue-size doesn't do anything anymore
all docs should be in lojban
@narrow verge Wrong channel π
Can just do community translations and call it a day.
I mean, luckly most messages are already written to a file
would be really easy to implement
https://i.imgur.com/L7e5sje.png @stef π
you'd need to properly organize community translations, still, with at least 2 proofreaders for every language added, and for people to actually translate - and proofread - every message
Eventually the translations will be good via community translations. And if the translations are there, you can implement them and the smaller issues will get fixed over time.
the smaller issues will get fixed over time
- mojang, circa 2013
there's only little worse than having incomplete/badly made translations imo π
I love when I get server a page in 3 different languages - mine, english and original as fallback.
hangar is going to be awesome.. you guys rock
Incomplete of course not, but that's not much of an issue: simply don't add translations unless they're complete. As for poor translations, I don't think they'll be terrible if you just let people do the translations. I mean, the people doing them will very likely be well versed in the language they are translating. Of course some issues may slip through, but those should be minor and relatively easily to be resolved.
du bist kein loginned
that's the problem; they are anything but "easy to be resolved" if you don't have at least 3 people speaking a language well going over everything in a coordinated manner
and if you don't speak a language (as a project manager), how do you know how well versed someone is? you plain and simply don't
google translate goes brr
you're joking, but that's literally what some people do when giving in "community translations" lol
I doubt getting three people is difficult, especially not for languages that are widely spoken. You can simply let one person make a PR and then wait until others have looked at it and have given feedback on it. Maybe one person's translations aren't that great, but if three people (or really any arbitrary amount) agree with the translations, then you can be pretty certain that the translations are good. And if they don't agree with the translation, let them resolve it in that PR.
i think the best course in terms of translations would be to release it in english
and as it gets more traction get the community to do translations
if you get more audience the chance of poor translations surviving and not being corrected is lower
poor translations shouldn't exist in the first place...
disord uses crowdin dont they?
iirc there are quite a few platforms to automate community translation, so it's just a matter of releasing in english and waiting for people to post to it
yeah crowdin is nice; in a good case you'd, again, have at least 3 people for any given language you want to add that write messages and review+approve messages of the others until one language is complete
I'm not saying community translations are bad as a whole, but they are if you don't properly coordinate them
as long as you have people volunteering to translate, you're going to get high quality translations
wasn't minecraft crowd translated?
I've had some people get in some pretty heated fights over translations before.
It still is Stef
wasn't minecraft crowd translated?
yes, but VERY well coordinated (again, see the picture?)
if you manage to get 5 people for a language, you can cross-compare
they have multiple full time employees coordinating the community translation team
proper slack team and all, and crowdin of course
and select the one variant that is translated by most people
paper has a lot of traffic, so eventually people would translate it, even if that takes some time
The major languages would get done in a few weeks, i'm guessing less main-stream ones in 2-3 months
if you use a platform to automate it, you don't need to much personal interference
you let people register, submit their translations, and wait
the only time consuming task is actually putting the translations on the platform
no that's the easiest lmao
Let others review the translations and then let them resolve issues within the PR. Global project managers can give indications towards how they want the translations to be in case of disputes/questions. Once enough people have reviewed them and agreed with them, pull them in.
yes that's what I've been saying the whole time :>
let anyone submit, trusted/verified native speakers approve or whatever
well, "anyone"
Then we're on agreement :)
perfect
just that it wouldn't be prs or in-code, but crowdin or similar, so you can properly queue everything and have single discussions per entry
we used that before, and as far as I can see it's been working well for EssX for example as well
Yeah, can be done on whatever platform. Don't know which platform is good, most start charging money at some point (certain amount of strings, certain amount of requests, etc.), but shouldn't be much of an issue to find something decent.
i should take a look at hangar and spam you with PRs, mini
pls do ^^
@misty mountain 
uwu
:3
So would the same plugin made for a paper server run better than if it was made for a spigot server?
Not sure what you mean
A plugin made for paper servers likely wouldn't work on spigot at all if it uses paper APIs
Not what I mean.
paper has paper-exclusive API which lets plugins do things in a more performant and usually a more sane fashion
Plugins made for spigot servers work on paper, but if the exact same plugin was made for a paper server, would it work better?
so yes, depending on the plugin, it would probably run better if it was made for paper
#paper-help or #paper-dev please
hangar should have its own category separate from paper
probably with its own help/dev/github channels
but no one needs help with it yet, since there are no users
well right, but eventually there will be.
I assume it'll be there when hangar is done, released, and set in stone
not really sure a dozen more channels are needed
k, well 2 is 10 less than a dozen
feels like it though
I already have to scroll the channel list π¦
get a vertical monitor
my suggestion is, once this is done, rename to #hangar, maybe toss a hangar webhook to #paper-github, could be cool to have a feed of new/updated plugins
I think a separate cat is best
that would deserve its own channel for plugin updates
I donβt mind scrolling a little
yes we do need more cats 
Moar cats
owo
that would definitely deserve its own channel
yeah
everything in #paper-github is flooded under "MUH SERBUR CRASH" "pls fix" "aikar committed 5000 new lines of code" and variants thereof
https://github.com/PaperMC/Hangar/pull/91 someone wanna glance this over b4 I squash/merge?
Any plans for api or smth? Maybe not an api but just a way to download plugins via some id? Like imagine twitch/curse modpacks which are essentially created from list of ids.
Also please ping me if you respond
@worn talon https://hangar-new.minidigger.me/api#/
@sullen surge
https://discordapp.com/channels/289587909051416579/746367733699969104/747190728454701108
https://www.youtube.com/watch?v=kPWsC7zfnnY
A software-themed parody of Adele's "Rolling in the Deep"
Vocals: Heather Downing.
Lyrics, video, guitar and backing vocals: Dylan Beattie
Bass guitar: Don Syme
Keyboards: Vagif Abilov
Music: "Rolling in the Deep" by Adele. Written by Paul Epworth, Adele Adkins. Copyright Β© ...
is your name in braille
Yes.
Binary Braille
... output = list()
... for char in input:
... byte = ord(char)-0x2800
... if not strict and not 0 <= byte <= 255:
... continue
... output.append(byte)
... return bytes(output)
...
>>> decode('β‘β‘‘β‘³β β‘β‘΅β‘₯β‘²β‘΄β‘₯⑬⑴⑩β‘₯β‘²')
b'Das Guerteltier'```
def encode(input):
output = list()
for byte in input:
output.append(chr(byte+0x2800))
return ''.join(output)
def decode(input, *, strict=True):
output = list()
for char in input:
byte = ord(char)-0x2800
if not strict and not 0 <= byte <= 255:
continue
output.append(byte)
return bytes(output)
def test():
original_data = b'\x13\xedk\xee\xb9\xae\x16\xe6,\xac\xf83\x1c\xcd\xab3\xc2\x19\xf5XU\x10\xab\x97\x19q\x01w:W\x1f!\xb4\x96\x83Y\xba\xc4\xd1\xd7\xacq\xf4.C\x8f\x9a\xa3\xfe\x8e\xa9\xd9\x01\xf6\x817\xce\x07&\x83&\x07\xe9E'
braille = encode(original_data)
decoded_data = decode(braille)
return original_data == decoded_data```
@narrow verge thanks
Smth smth rules about user names
modz amirite
just gonna go off of whatever that command output was
I mean, I have the ability to change it too, but I was just trying to get the user to change it, lol
Also, hangar when
wen*
Going thru the PRs later
epic
Imagine doing /hangar get pluginname in paper and the plugin downloads directly to the server. Would be lit.
thonk
could be doable with paper, and enforce it'll have to reboot (i.e. no plugman fuckery lol)
could also have hangar api for checking updates
Sure, but one might skip ftp uploads. (And the chrome .jar check)
I would love to see that, apt get in disguise
oh yeah, would be nice to send off an array of plugin IDs, I would assume the plugins would need to hook into something though
could just define a new thing in the plugin.yml for hangar id
(And the chrome .jar check)
Just don't use chrome, check bypassed ezpz
spigot wouldn't care, on paper it'd know where to check for updates
hangar id wouldnt be generated until plugin is submitted though right?
it'd be genned when the project is created
unless we're allowed to make a project page before we submit a jar
that'd make sense tbh
ore auto deletes projects without an uploaded version after a while
Would love to see such thing along with hangar, would make updating that economy plugin that releases an update every 2 days with needed fixes... much easier xD
Or just in general
Update check and simple installation
it has very easy to use version checking and download api
Rule to deny plugins that do this or even worse crap to your console... 
I imagine Hangar policies will be devised when Hangar is closer to completion
Well, hangar won't allow premium plugins, so there wouldn't be too much of a benefit from that anyway unless they use it to advertise spigot premium plugins or other sites
Which I'm sure would be frowned upon anyway
Need to find a plugin that disables native join/leave messages but does not do that ad crap.
But thats off topic
If you have EssX you can just give silentjoin and silentleave
I dont
Official ETA of Hangar (subject to change as new developments occur): Anywhere from 10 to 1000
didnt say which year 

alright, new developments occurred, updated accordingly
my guess is 12
Hangar won't allow premium plugins?
no
course not
Any reason why?
Like, can we upload our own premium plugins at a price? Or is selling them in general not allowed
because premium plugins are the majority of what makes the spigot resource section so cancerous (and dealing with money annoying)
all premium plugins are 1 of two things:
- Pay to get decent plugin with no support
- Pay to get a plugin you could get for free, but you're really just paying for support
We're allowing #2 (via making downloading free, and support pay), and shunning anyone who does #1 and making them stay on spigot
Eh. Thought this could be an end-all but I guess people will have to stick to spigot for that lol
all the good plugins will respect and do #2 (they already are), #1 can stay on spigot, we don't want them :p
Hangar shouldn't just be a replacement of Spigot, but actually be better ;p
We don't get paid for this
the "some" work on private plugins for major networks
We have 0 interest in dealing with the headaches such shit induces
I never really said you did.
people who's job it is shouldn't be earning that money from Spigot premium resources lmao
Yeah I guess so.
That is rather a side income
Spigot's the ONLY community I know of that allows and encourages requiring monetary compensation for access to already existing mods.
I meant the platform not the spigot community directly
just put a paywall on support
mc market is cancer with extra cancer on top
sprinkle in a little bit more cancer
Fabric, Sponge, Forge, would fucking shit on you if you tried to bring up requiring money for access to your already made mod/plugin.
I saw a dev asking you to sub to a patreon to get access to plugins.
Also, remember bethesda's paid mod fiasco? Communities for other games actively fight such a thing.
songoda?
Yeah
:p
xD
isn't mcmarket just yet another "you throw all the cash to us, while our volunteers will deal with the actual work of dealing with your shit"
Songoda.. 
I have Songodas free Timber Plugin on my server, it is actually really neat

I've used their plugins, my experience using them as a server owner is anything but "really neat"
Anyway I don't think we need another "songoda bad" discussion, been done to death here tbh
my view of it is more from the whole "hosting peoples software while they earn a buck while you have a bunch of people running around for free dealing with all the BS it induces"
Yeah that's a rabbit hole nobody wants to get into
Isnt the game to outright shittalk other peoples coding in that community? That is the theme I noticed in my time coming back to Minecraft Server hosting.
Generally toxic
there's lots of toxicity but there's also a lot of nice people too :)
and aurora's the former ||jk pls no angry||
The site has devolved into a toxic mess of "you're a skid", and they only work on 1.8. Good thing it's dying more and more day by day.
I dont really get the appeal of people sticking to 1.8, I updated a map from pre-release up to 1.16 and boy have I seen things on that journey
They stick for the old combat, which is terrible anyway so idk 
Ah, minilang, how much I missed it
Minecraft PvP is terrible change my mind
That's how tired I am
1.9+ makes you feel like a fatfuck jumping around compared to 1.8
ur not wrong
mini pls fix color fuckery in MM my components are being touched in inappropriate ways when I replace decorations again 
don't you dare tell mini to do anything but hangar >:(
Also, pls keep this channel ontopic, it's for contributors to hangar trying to get work done and not about discussing dum 1.8 users or policies about hangar cause hint: there are no policies yet, just ideas
I'm releasing my plogen on hangar day 1 dw
can we have a hangar faq pinned that no one will read unless they're REALLY interested
Lol
You can write one ^^
You got it
FAQ:
Will there be Premium?
#hangar-dev message
Hangar when?
#hangar-dev message
"no"
10 to 1000 what tho 
yes
That depends on how far along we are
Yes.
Right now, years, later on, months, later on; days, later on, hours, later on, minutes, later on, seconds, later on, ms to load page
@barren shale hangar wen
most likely yes
@modest forge no u
I agree with hangar being just for free plugins however one way to solve problem of other people earning money while others moderate for free would be to take a commissions from sales. Anyways it wouldn't solve all of the problems ofc. Anyways free plugin repository is nice too. I hope we will get more quality plugins
Taking commisions just adds it's own headaches
If you want to take commissions, you need to be "in the middle" of transaction, don't you? Cause I didn't see PayPal allowing to pay to 2 places at once?
So you'd have to pay Hangar, it would take a cut and then pay the creator.
And what if someone files a refund through PayPal etc?
Fair point
One idea was to let authors pay hangar for perks
But again, let's first finish the software and then worry about policies
Yeah, first make it work, then make it pretty :)
I agreee
Hangar p2w
Yeah and read my following message
I clarified I meant the platform, not the spigot discord and forums specifically
The 1.8 thing was a joke
hangar will naturally order 1.8 plugins in the middle to last pages; not quite last, but not middle either to make it hard for you to run outdated shit π ||/s||
The 1.8 thing was a joke
@thorny bane was it tho?

policies
whats next, rules?!
the dreaded Community Feedbackβ’οΈ
hangar is INFRINGING my right to participate in the free market
expect a call from my lawyer, mr. digger
Sorry, I don't have a landline phone, but I'll gladly accept a fax
should take a 30% cut and not allow anyone to link to their own website or payment system of course
that is also its own set of issues
Way ahead of you @river locust #hangar-dev message
ffs π
https://github.com/PaperMC/Hangar/blob/master/src/main/java/io/papermc/hangar/controller/VersionsController.java#L115 This todo comment, should it only be allowed to respond with projects which have visibility public?
Kinda
If you aren't logged in, show only public
If you are logged in an owner of the resource (aka have some perm), show it, or if you are staff and have the view hidden perm, then show everything too
Pretty sure we do that logic for project list already
that goes to that giant sql statement with all those arguments which arent implemented yet
π
we have logic like that in the projects api queries
Nice
ya I think I saw a force push from you a bit earlier
alright I completeled my deed of contributing to hangar todayβ’οΈ ||one line is contribution, right?||
Am just way to ded today
me too lol, basically cleanup up half our attic today (which was just filled with 2 dozen or so boxes of old toys, books, and whatever)
other half going down tomorrow 
I just collapsed into my bath tub after work and stayed there for 3 hours
Now I obviously have a headache, but that's the only thing I could do without dying on my couch or smth, lol
I have a special request, mini- if and when you make an API for hangar, pls, call it hanget
Already is an api
Really owo
Yeah, same as spongeβs ore
Is it called hanget tho o.O
time to add it to the faq
No itβs called v2.
Darn
added to faq
That name would be more appropriate if it was external to the repository application. But since itβs built in, no need.
Right, I understood what you meant. This api is much more extensive. You can see itβs full documentation at the link in the pinned FAQ.
you won't need 3rd party api that only half-assily works by arbitrary entry points and weird caching here ;)
I'll add a redirect for you, lmao
for old times sake :3
See channel description
oh so it's like a topic
was a determination made on how to spell organization? its different through out the project, sometimes spelled with a z, sometimes with an s
the decision is to use both
depends on locale
hangar doesn't support different locale atm
and that's a little more difficult to handle when talking about url paths
redirects?
That seems unnecessarily complicated to get the spelling of a word right in the url
But idk, thatβs just my take on it
(I think github just does "orgs")
in paper, we generally prefer american so organization should be used ^^
Yeah pretty sure I tried to use Z everywhere
should perhaps make that part of the official contributing file of paper; could(/should?) do the same for hangar
organizsation
ore-ganization?
hangarniszation
@\MiniDigger LoL wait holdup, what did you mean in the dyescape chat?
βCanβt sell stuff, but can be paid for support?β
Wut
if someone is smart enough to get it working alone then his luck
if someone needs help then he pays for it
why that doesnβt really make sense to me
so hanger integrates the ability to pay for support, but not for software?
You can ask people to pay for access to a private support channel on Discord, for example
Hangar does not have download paywalls
Oh so unofficially ask for paid support
Premium plugins are the bane of this community - any sane community should shun the idea of paid mods, not glorify it
I would say I disagree to an extent, but that would be a grossly inappropriate conversation to have in a dev channel lol
yes
Gr88
So its gonna be for even more optimalized plugins that only work on paper?
Or copy of Spigot plugins on PaperMC site
it's for any spigot, paper, bungee, waterfall, velocity plugins you'd like
I see
But it will be the best place for paper plugins
Can't wait to upload my Yatopia plugins on it
Does that monstrosity even have API changes?
What kind of features is hangar gonna have? Is it gonna have a download API? Would be nice to have an auto updater for some plugins
Ping me if anyone feels like answering. But only once, cause I have school today ;-;
auto updating bad
@pallid yoke kinda, yes
I think it has api stuff from Purpur, some other forks and their own lol
What kind of features is hangar gonna have? Is it gonna have a download API? Would be nice to have an auto updater for some plugins
@floral sequoia yes there's a download api
It even works already π
Features is basically everything you would expect, proper org support with permissions, multiple pages, multiple release channels, promoted builds, tags to search stuff, etc
Cool, what other features does it have? Someone made a plugin repo called "polymart" and I have it a whole bunch of suggestions on it's reddit posts
Ah
Slow typing π
polymart is expected to be market of plugins not the repo
Any suggestions are appreciated, but for now we just port the features ore has
So what exactly is hangar ment to be? Just want to make sure I'm not misunderstanding
see pinned
Plugin repository without ability to sell plugins
Just a place to get your paper Plugins from as a user and a place to post your paper plugins to as a developer
So like bukkit/spigot/polymart but no premium
but better
Well yeah
It will follow the same principles the paper community follows
everything that papermc makes is just a better version of what spigot has
Just gonna say again, if you need suggestions, find the polymart reddit posts. The comments are flooded with me. Ofc you may have some of those ideas already
Be sure to link it ^^
On my phone ;-;
And gonna have school
A Google search will work, I just can't get it atm
"polymart reddit"
Look at the username of the comments
It's mostly just me lol
There's 2 such posts, just an fyi
Is Polymart and Hangar related?
nope
K
Eff it
These are a set of suggestions originally ment for Polymart. Feel free to see if any of these should be implemented in Hangar. [LMK if you do]
https://www.reddit.com/r/admincraft/comments/gbo61z/comment/fpd48lh
There it is. [the above is edited for clarity, and just in case it gets pinnned, which is unlikely]
Or one of them
Ty
Ore's API is basically already as good as it gets, see pinned π
importing stuff sounds interesting
Remember that the ideas were intended for polymart, so some of them may not apply
can we make those obnoxious plugin banners on start banned on hangar
the ones that are just "hi I'm enabled" but in a lot of lines
I think that is probably not a good idea...
glances at LuckPerms
luckperms' isn't THAT big is it? I don't recall exactly
Hey, have you heard about our Lord and savior paper yet?
- runs in PaperLib wall of text *
quick hide it before choco comes in
lol yep
ConsoleSpamFix is always a nice utility
so @pallid yoke can I change organisation to organization in the various url paths then? I saw you mention that you tried to use z
Oh it's wrong in urls?
yep, spelled w/an s
Mmh, I would say wait till we see about merging with sponge but I don't think I got hope for that, lol
So ye, go ahead
As I saw you mention earlier that thereβs a web-API for checking the information about plugins on Hangar, I think it would be great if some work could be made towards standardising the way plugins check for updates. Now on my server, I have two different folders for configuring different update APIs. One of them 404s whenever my server starts and the other I have no idea if itβs working properly. I feel that by adding to the existing Paper API (which can then query the Hangar API), there can be a simple, easy-to-use way of letting all plugins check for updates with a single method, to end the current chaos of having numerous inadequate updaters.
see π
think suggestion there is implement hangar api into paper to check for updates
which has been tossed around a bit
that might be something to talk about more when paper fully splits from spigot. Having some identifier in the plugin.yml might be a good idea
sure
something would have to be added to the plugin.yml (I assume) to identify it on hangar. the name probably won't be enough
author/id π
Problem is how would you go from making project, getting ID, tossing it into your plugin, and uploading it in a small timespan
it would be nice (not likely, but nice) if it could inject the id into plugin.yml or w/e
Oh, injecting hangar_id: 1234 to plugin.yml on download?
ids will probably just be random uuids (better put somewhere like the meta package then)
But it'd need to be done each time you want to download version that's hosted externally :/
oh yeah, will external downloads be allowed?
fully externalized downloads are a big no no anyways... but policiesβ’οΈ, not for now to discuss
but when it's actually done and working
We talked a bit about it, and it seemed like they'd be a thing. But always proxied through hangar to verify checksum etc.
problem with external downloads is: if their site goes down, poof goes the plugin
the way ore currently works, every plugin has an id that's essentially the namespace part of a ResourceLocation
when it's ready pop4959, essentials developer
I mean, paper checking updates for hangar plugins doesn't sound 100% terrible
Yeah
You should reserver ID's 69 and 420 for special plugins
And 1337. ;D
Can people post reviews on Hangar? And if yes, will stuff do something against troll reviews?
probably same as spigot in both cases
or well, ore doesnt have reviews
not sure then im just a issue handler :(
no, no review system atm
closest thing would probably be viewing the users who have starred/are watching the project
i wouldnt even bother with a review system just make sure theres a way to report resources
and maybe discussion
yeah, there is a project flagging system
the discussion system on ore integrates w/discourse, something we haven't touched yet on hangar
so for now, there isn't a discussion system yet either
You know I was just going to clean up a private plugin and upload it to spigot, but I think I'll hang on and wait for hangar's release
Does hangar use BBCode?
No, markdown
much better
Yes
I donβt recall if you can using html elements is allowed, Iβd have to test that. (For coloring of text)
tex 
tex is only good for print
so unless you're going to ship a printed manual with your plugin or something
so unless you're going to ship a printed manual with your plugin or something
bruh

some plugins lack documentation completely
and imagine this one dude creating a printable documentation in tex for their toy project
throwing shade to all plugins out there
also make sure to laminate
I'll get in contact with O'reilly and see how the feel about the creation of an EssentialsX beginner guide
and apply some material to laminated paper corners to make it safe for all ages
"The Essentials of EssentialsX"
:)
ah perfect
shit's sharp as fuck
heck, i got cut in elementary using laminated paper
by my classmate >_>
ye
My vote is that Hanger will support multiple authors per resource - ie Owner and managers
The are things that can be learnt from DBO in that regard
Hangar/SpongeOre has organizations, yes
reference for everything is basically https://ore.spongepowered.org/ :p
has/will have
oh right, it has multiple authors (outside of orgs) as well
yep you need to support a community approach
aka the Potato project
is it just me or does the @NOTABLE formatting in the right menu of discordreally look like NO TABLE v NOTABLE
I just assumed those members were all poor and could not afford tables;
Their table was taken, you are right.
we don't need no goddamn tables
Paper needs the tables to store all the patches on, since when you're patching paper, you need lots of paper
But we really have no tables, nor any other furniure, coz spigot can't stop leaking so everything is flooded.
Idk about you but I have plenty of furniture here
Just not tables
Tables are pointless anyway, why do we even have floors if we're not going to put anything on them
You put tables on your floor though.
For what? All you do is waste vertical space under the table
Space under the table is for my legs and drawers and stuff.
meh just have bigger taller drawers that aren't under tables
and you can stand/sit/kneel
https://github.com/SpongePowered/Ore/blob/staging/ore/conf/evolutions/default/136_more_search_query_fix.sql
Why do they have an up and a down variant? π€
To roll back
If the evolution fails
We don't have any of that right now, I just exported the finished DB model
That's something we may need to look again at way down the line tho
Ah okay, thanks π
Rip, created a new database. And now it seems to have issues with permissions. after some debugging I found an exception which told me that there was an BeanCreationException for ApiAuthInfo, when it tries to run AuthenticationService#authApiRequest. But only when im logged in with the fake account. Did I mess something up?
It doesnt work this time
hmm
Oh, found it... my old api_session key from my local storage was the problem...
ah yes, if you clear the api sessions table, you have to clear that too
won't be an issue, cause that table won't be getting wiped
I still want to add safeguards against that at some point
Would it be much work to make something that a bit more clearly? I see that there is an if check for it with an message No session specified but I cant seems to find it back anywhere. Not in the frontend nor in the logs with debug mode on.
alright, (almost) daily (almost) one-line fix done for today π
thank u kneny
whats that here?
see π π
@barren shale hangar wen
no u
Today I might able have the mental capacity to do stuff

yay!
Donβt we need to redo (or add) a separate compatible version system still? Ik you used the plugin.yml api-version to set the version of paper required, but that is only 1 version.
also you'd have to go through maven/gradle configs to it if not defined in the plugin.yml otherwise I guess, which is rather meh
could add a supported-versions list to plugin.yml that people can optionally use, and if not present then make uploaded specify
(idk why I crossed that out)
well if the plugin works on all future versions cause it barely uses any api, that's a meh approach as well (because it'd have to be reuploaded)
if needed we could just very easily add a setting with the values display on the sidebar or something, but otherwise the platform should encourage using latest anyways π€·ββοΈ
imo that is
unless it uses nms it can likel ysurvive future versions just fine
until Paper actually improves the goddamn ancient unmaintained APIs
unless it uses nms it can likel ysurvive future versions just fine
dont really think we should rely on that tho. I think the better idea would be to store a list of compatible paper versions with the plugin version, sorta like spigot does. maybe would require setting up migrations
There is a way to maintain a list of supported versions without requiring plugins using unchanged API to update - version ranges. (1.12, 1.15]
I think that having a separate thing for it ain't worth it tbh; just let the few plugins that don't have a reflective fallback specify so in their docs
It doesn't have to be a required feature: * could be the default version range if none is specified.
That version detection code is ported from Ore, back when I was playing with the Scala stuff
No clue how exactly we want to set that uo
It also can't reliably detect paper vs waterfall since both can use plugin.ymls and shit
But that's easy to change, just need to figure out what we want policy wise
And policy is smth for later :P
@pallid yoke hangar wen
"I know" deletes messages 
After dinner
Dinner isn't for another 8 hours for me tho
Urg, why you delaying hangar?!
Do not blame me, for I do not control the time
inb4 hangar is sponsored by delayscape
Just when I open IJ social life kicks in, lol
sounds almost like life doesnt want you to continue 
Hangar when
Whats hangar?
read the channel description, see pinned
what's hangar
@barren shale hangar wen
well I asked mini... idk if he did anything about it tho
Hangar when
It also can't reliably detect paper vs waterfall since both can use plugin.ymls and shit
@pallid yoke check paper's package?
Not sure what you mean...
That isn't in every paper plugin?
Plugin jar wonβt include the paper api source
theres no way to distinguishing waterfall from paper plugins
unless you decompile each file and look for Bukkit or w/e, not easily anyway
and i think youre thinking of PaperLib or something
which i believe just lets you have paper api in your spigot plugin
i mean you could reliably detect
but you'd have to analyze the main class
and find whether it's a bukkit JavaPlugin or a bungee Plugin
you can short-circuit when you find bungee.yml first
inb4 hangar is sponsored by delayscape
Sounds more fun then Idlescape
p l u g i n
Maybe check main class and go to main class and check if class extending JavaPlugin or WaterFall stuff.
hangar wen
Map<Long, List<String>> starredPluginsPerUser = new HashMap<>();
v1ApiDao.get().getStarredPlugins(userIds).forEach(entry -> {
starredPluginsPerUser.computeIfAbsent(entry.getKey(), userId ->new ArrayList<>()).add(entry.getValue());
});
return starredPluginsPerUser;
Would this be a better way to do this? Not sure which kind of better we're looking for here
I mean I was just looking for something less ugly... idk what's the most effecient
In regard to distinguishing plugins, many plugins bundle multiple implementations into one JAR. A plugin can support Velocity, BungeeCord, Spigot, and Sponge in one JAR.
yes, it's very nice to have 1 plugin jar for several platforms
So it's better to ask how to identify the platforms a plugin has rather than identify what platform the plugin is for.
That does also involve Java bytecode inspection, since plugin.yml in the BungeeCord/Spigot context is vague.
On the other hand, if the plugin has a bungee.yml we know it's for BungeeCord. Same deal with velocity-plugin.json.
My idea was just to autofill what you can 100% identify, like velocity with the file or paper with the api version, but otherwise let them tick, yeah
maybe Iβll already look at something like that after my exam tomorrow
@modest forge hangar wen
@narrow verge hangar wen
every day=one line fix!
mostly reading bootstrap docs then changing a single line
lol
which is impressive ||given my current lack of motivation to do much||
hey maybe I'll reformat a class today
@narrow verge what does Rory think of hangar
to the hangar devs - aren't MD files to track issues/things to be done a bit archaic?
there are github projects after all
pinapl files
there you go https://github.com/PaperMC/Hangar/projects/1 π
alright, put all the todos from the two md files into issues/the project :p
Calling my methods archaic, smh
Paper still has my shit to check file https://github.com/PaperMC/Paper/blob/master/SHIT_TO_CHECK.md π
I only wanted to use that for the 1.16 update but it kinda stuck around
π
what does Rory think of hangar
@vivid cypress she loves it
@barren shale what is MVP
microsoft versioning paradigm
microscopic vision protocol
md's vehicular pinapl
minimum viable product
motorbike vomit portal
multiverse portals
https://github.com/PaperMC/Hangar/issues/98 What needs to happen to those unchecked ones? Like apiKeys from users is already accessible from the site, but it isnt checked yet? π€
im blind β¬ββ¬ γ( γ-γγ)
There's a few that have been ported but weren't ticked
But what needs to happen for it to be checked? made an ftlh files of it from the scala.html files? or also implement them in spring?
I left them as-is because I wasn't sure whether that was strictly for templates, or also included whether the backend actually used them yet
Β―_(γ)_/Β―
@solemn whale well they need to be converted from the scala play framework format to ftlh
like the syntax is different, not too different
In that case projects/view also already have an ftlh file but isnt ticked yet
^
so you have to look inside the file at the syntax used.
sometimes there was only 1 or 2 things left in the old syntax cause no one knew how to port it
if you spot any you think should be ticked on the list, check whether they're referenced by a controller or imported by another template
yeah, if they are used, good chance its been ported. but sometimes I don't catch errors in the templates until I load the page under certain conditions (due to conditionals in the templates)
like with various permission combinations
Ah, okay. Thanks
Generally, check it if you saw it working
what
what what? (what are you whating at)
yeah, enhancement isn't really fitting for all the open ones, so I figured I'd rename it :p
the timing...
no good first issue label?
but it certainly looks nice on the screen lol
who're the hangar devs btw?
mini; and machine, md, and I have collaborator access
ah, so yall technically
i have triage π
hangar only having 9 labels is a whiplash from paper have 47
if you're bored I'd say a bunch of new labels with nice colors would be nice, like "needs testing", what part of hangar an issue/pr addresses (frontend, api, auth, internal, ..?), or a priority label :p
I can't manage labels unfortunately
I'd need write+
I figured members of the org could do anything collaborators could...
I'm just Triage
I figured if anything, triage could do it
members can have one of 5 roles








