#dev-general
1 messages · Page 56 of 1
and figure out the endpoint
If you dont do the checks yourself, this is bound to happen.
it turns it from a matter of like 30 minutes to a few hours
to figure out
why is it so important this data is accurate?
I feel like the more you try to make it harder, the more someone would want to crack it 
Assuming your shit is actually worth the time, no offence!
so we can accurately kick out inactive partners (or low-performing ones)
which none of them like, so they have high motivation to spoof
and also so we can maybe somehow detect when an event ends
hmm i see
close enough
same channel
God
that was just an example, if we want to get any data in the future from the server, they could spoof it
in the example; to seem like their server is active when it rly isnt
and if we removed partners with inactive servers, theyd bypass it
what motivation would they have to do that
what do they get out of saying it's active when it's not
they stay as a partner
i see
im gonna be honest the most reliable way would probably just be manual checking
or a combination of the two
theres nothing stopping me as a server owner from installing a player spoofer
and pretending there are 100 players online
a human might be able to notice that they're not real but no plugin ever could
presumably there arent many partners, right?
it's a fairly exclusive thing?
we have 41 partners rn, its not super exclusive
why do you have so many...
alright
still though, i feel like it's fairly obvious when something is/isn't active, right?
and then they also have to ping @everyone in their server with our ad
just look at their discord or whatever
so what do they get out of it, just advertising?
right
yeah i mean, i guess the most sensible thing would be
have the plugin send automated reports
but also do manual checks every so often
so if they do manage to spoof it somehow they cant get away with it for long
you could ask them to send you proof of player counts or something
and then you just review those
any big server will have some analytics software like Plan installed, right
yeah we already have a renewal thing every month that removes partners that havent hosted at least 1 event in past month
but that was just an example, we may use data for other stuff, i think another idea was to display event stats at the end of an event for the host to see, or maybe make it like a leaderboard sort of thing with "most concurrent players" 🤷♂️
okay
well, stats for the host doesn't really matter
theres zero incentive for the host to lie to themselves
would jsut be annoying for us if we wanna look thru some stats
the leaderboard maybe could be an issue? but i think it'd become pretty obvious if someone was lying
can i go off topic very quickly and ask for brister mitten code review
yeah but it's also not very consequential right
i gotta do a gui framework but ive been fighting with myself on how i want it to work
https://github.com/Oribuin/Fishing
we also were thinking of like a spotify wrapped sorta thing
had to do it manually for 2024: 
youre making a gui framework?
unfortunately
yes i know im not gonna use that lmfao
yeah it's a cool idea, like I said i think any big discrepancies would be pretty obvious though
any reason why?
i feel like for the plugin scope where its supposed to be api centered, it makes more sense to have the plugin handle it
uh
id hope so, altho some ppl r very good at lying
ultimately its not a huge concern, but just something i wanted to prevent if possible
since clearly not easily preventable, i will just have to deal with it 🤷♂️
perhaps not neccessary
yeah theres not a lot you can do really sadly, go with the automated approach but try and fact-check it where possible
it seems slightly unnecessary
but maybe im misunderstanding
i think i just want many aspects to be in the plugin's control
i mean you can still do that
triumph is fairly "thin"
it doesnt really enforce anything
ive written wrappers around it before
probably could but :(
i actually just cant think of how i want it to actually be written
a fully fledged gui framework is a lot of time and annoying
what is the ultimate goal here
remake pyrofishing but not shit LMFAO
i think the way guis are written are just so ugly so i was trying to find a way to approach it that isnt.. ugly
but yeah it might be unnecessary
i quit working on any plugin the immediete second a gui is involved
so real
my hatred for them cannot be described
one day i will make elm-architecture gui framework which will still be ugly but in a more bearable way
you're probably right
that plugin was so fun to work on until it needed guis and i barely touched it since
many such cases
yes sorry right
@prisma wave i released the plugin and this is the first thing someone says about it:
it seems you figured out how to obfuscate the jar
its not even obfuscated tho 😭
💀
Use Kotlin on the plugin, most decompilers will cry 
sounds like basic web auth 101 lol, any client is all the same, a web frontend has the same level of trust as a random minecraft server - ZERO
just issue tokens or whatever per client so you can track requests and get rid of people if they don't follow the rules or whatever, then nobody unauthorized can use your private API and whatever
obsfuscating your jar isn't going to help at all, when it comes to http there are like a million ways to track requests and like proxy them to modify them and shit, it's super simple
Does anybody know if there is a library for web icons that contains vegetables and other cooking ingredients?
https://www.reshot.com/ this looks promising
I suggest looking at https://iconify.design
Should be easy to find a good icon set through that
Thanks
first time doing smt like this with js, I still hate javascript
ngl I so much rather do it in java but yk.. not possible
well it is a website xD
I know it's possible as an app
web dev in haskell
Can do it in Kotlin :)
my dream, as weird as it sounds, would be to have smt like javafx or whatever other framework that works in java/kotlin for web frontend stuff
xd
web?
that exists? tf?
Yes
Kotlin is not just a jvm language
Ios, android, jvm, js, wasm
Prolly not
welp, then we back to step 0 xD
Too much going on, there's an attempt to get react working but it fails a lot
unless kotlin somehow also has a frontend framework xD
surely it does if it bothers to support compiling to js
Compose, but only with wasm
Kinda, frameworks like svelte or react do a lot more than just be js, it requires a lot of work to get it working with Kotlin
But hey if you really need js at least use ts instead
I love svelte, but I hate js so, xD
svelte goes hard
yes, when you are not doing js intensive things
(like this)
Then use ts instead
well
I am
xd
I still hate it
tbf I never got too much into js (or ts) since I never required extreme knowledge on it
until now
SO TRUE
hehe
you can actually kind of do this
well not literally with haskell
but PureScript (and Elm too kinda) is so similar it's close enough
Elm ftw
rust ftw

i thought this server was safe from the rust mob
wow
At least it's not brain****
People with full time jobs, how the fuck do you find time and will, to learn anything programming related, after spending 8h in front of the computer on a chair?
I barely find motivation to go to gym after work, opening my personal laptop would require some magic
Always nice to work on something new, specially something different from your job
That's why I keep starting new things, finishing in other hand ... 
Like, I need to learn some web stuff (html, css, ts, layouts, whatever) and angular for work (don't start with "learn react, learn x" etc.), things that will help me at work but also for some personal projects, but I can't find motivation. After work I don't really feel like spending some more hours in front of the computer, and during weekend I usually do the things I can't do during the week
Ah yeah that case is more complicated, for me motivators are challenges, for example when I started on backend stuff I had 0 experience with spring and very little motivation to learn it, but then I was given a pretty big challenge optimizations and that made me motivated to research and learn more
I would love to work on personal projects that involve websites, but for the love of god, I can't learn html, and that demotivates me.
Like, I have a small layout on my mind but I can't figure out all the properties and stuff and I quit 
Tbh not much to learn for html, there is only like 6 tags you'll actually use for 99% of things :')
The js and css side is where it's a bit more compicated
Yeah by html I also mean css
Can you use tailwind at work?
We use bootstrap; it is a quite old, inherited project
For my own projects id probably use tailwind or smth else
I see, that's a little more annoying, but css isn't too bad, I find it's easier when you search for videos of people building certain things with css and then see how some properties they change affect the overall structure on the page
Oh yeah, and when I do it everything goes everywhere 🤣
this is so true
I'll have motivation to start smth, then by next week I cba again
mostly this
and sometimes by learning something new also helps in your current field as well, which in return might even make your job easier
and, well, I try to be more versatile in case I decide to switch to a different job which has an entirely different stack
what has been motivating me recently is seeing that people are actually interested in what i am making outside of work
like my ad campaign which i have been spending about $10 a day is getting 1+ people a day just signing up for emails (thats all i let them do right now), which feels really good
working on a project without constant external validation is the true killer
I do enjoy having no deadlines and not having to fix missing whitespaces during code review
That's why I can only force myself to work on shit for like the Minecraft server I work on, I know that the effort will actually be worth it yk, not just for nothing
well, if you're learning something new, isn't it not for nothing?
well i suppose, but like, if i had an external reason to do it i would be 1000x more likely to do it yk
makes sense
Would still apreciate some feedback on my changes and if there are things I could improve.
https://codeberg.org/Andre601/AdvancedServerList/pulls/400
yeah you don't lol
you rarely have the time or motivation to do something
when you see something really fancy you do work on it but never end up finishing it
Thats not good @frigid badge smh
@frigid badge
yup
Mood
IntelliJ is acting rather weird for me....
2 times in a row did some dependencies break, namely the import not being recognized or some methods...
And both times did I had to clear cache to fix this... Not sure what is going on there.
Updated to latest? Check your plugins for the respective languages
Happens sometimes when you have incompatible plugin version and ide version
Happens a lot with kotlin
lua is interesting
This is just higher order functions isn’t it?
Like it’s cool but it’s not anything particularly fancy
You can do this in Java even
yea, sort of
that's the application here
record Thing(Consumer<Integer> execute){}
var thing = new Thing(i -> sout(“index: “ + i));
Looks pretty similar to me
i'm not saying it's a special feature bro 😭
well no
this isn't the same
tables aren't the same as record classes at all
a lot of configuration stuff uses lua so i've been playing around with it just a tad bit
redis lua transactions my beloved
Perhaps not in general but it looks like they’re semantically similar in this case?
ngl I thought you were my bad haha
not even close 😭
thing is just an object
it has no constructor
Yeah I know
Like JavaScript or whatever right
But it’s a rough equivalent in that it’ll produce the same functionality
yea, Lua's only non primitive data structure is a table
well if you have literally no other code
basically just repeatLambda takes in a table which should have a named field execute which should be defined as a function and should take in an integrr
I didn't put the annotations here
but like you can't rlly think of thing as a class
it's literally just an array/object
u good, I promise you I am indeed aware of interfaces and higher order functions 😂
Yeah perhaps like typescript would’ve been a better comparison
Yeah it makes sense I understand what’s happening I think the java comparison just caused a lot of confusion
I know they’re not the same
classic Java
helped a friend do some like LeetCode-style exercies in Java, oh god it's rough man
I used Kotlin and had that shit in like 5 lines and he had to do a million other things, it was crazy
val first = string.getOrNull(index) ?: ""
vs
String first = "";
try {
first = String.valueOf(string.charAt(index));
} catch (IndexOutOfBoundsException _) {}
plus just all the Kotlin sequence functions are awesome, like windowed, joinToString, etc.
Was it forbidden to use if or what 😭
idk that's just what he wrote lol
i guess you could do bounds checking manually yeah
holy shit
_
i always just see it named "ignored"
oh yeah it might've been ignored
underscore is just a lot nicer and used for stuff in like every other lang lol
underscore only works since Java 22
ahh
it's part of https://openjdk.org/jeps/456
And funny enough IntelliJ will not complain about empty catch block if you name it that.
According to JEP 456 you linked was it actually in Java 21
Tho probs as experimental?
yeah it was a preview feature in Java 21
There is one thing I wonder right now, which is if someone ever made a GitHub Action that would analyze linked logs (i.e. via hastebin or mclo.gs) to then return some info....
Wouldn't be surprised if it would have great use within MC projects on GitHub.
Also intrigued to know what type of data would you want pulled out @desert horizon
Because it would be for github issues?
And data would be server type + version, lists of plugins used and like notable errors/problems (exceptions and alike)
Ahh you mean you submit an issue, and it creates a comment showing relevant extracted information from it?
I was pretty confused at first too since you didn't mention github issues, when I think of github actions first thing I think is like commit actions instead
Should be pretty easy to do an action for that though
I don't have knowledge on this sadly
just make a normal script and then integrate it into an action
the github part is the easy bit
Random question, but any ideas on how you'd do something like modrinth's ad sharing system?
ad sharing in what way? Like their 75-25 split of ad revenue?
Pretty sure you could ask them or go through their website code.
Sounds pretty straightforward, you get the revenue generated by a resource's page and just deposit x% on author's account every month.
thing is, modrinth does it in real time
funnily enough, can't find much in their backend
ah "payouts"
oh god time to see if I understand it
seems like they fetch so called "aditude points" for a specific page from the ad network api and then use that
but I assume not all ad networks work like that
not saying i like kotlin, but i made a k2 compiler plugin (note the fill parameter can accept a regular boolean)
is this like React in Kotlin?
seems pretty nice actually
does it use like the Kotlin-JS compiler? or like WASM or something lol
That is actually nice, I'd maybe use it if I didn't use Svelte
kinda
well more like solidjs technically ig
kotlin js
ty
its also rly nice having easy ide support since intellij pretty much just supports compiler plugins now
shit, i'd love something like that, surprised it doesn't already exist
Compose Multiplatform just ain't it lol
Yeah it def. Is a very nice thing
Pretty sure you could do the same thing in Scala without compiler plugin
Compose is pretty good, I'd take it over any JS framework if I could
But unfortunately not available for JS, only WASM and WASM has 2 issues, bundle size is bigger and garbage collector isn't enabled by default on any browser yet 😔
theres a few kinda similar things but i found their apis all had issues
wasm gc is on in chrome by default no?
yeah WASM is just not great right now
Wasn't last time I checked, you needed to toggle on a flag
and compose multiplatform supports js although it draws to the canvas
Oh damn seems like it is on chrome now by default yeah
yeah i want my real DOM elements yk
this looks pretty sweet though actually
although i worry if it needs Node to SSR?
surely I could just Kotlin SSR that bitch or something
You can do Kotlin SSR already with htmx and ktor :)
well yeah but HTMX ain't Kotlin yk
Well not htmx directly but the way you use it is
yeah theres few ones like that that i looked at but i didnt like how ackward it was to define components
I'll personally donate 2k to whoever does a svelte like framework but for kotlin
2k :')))
ah, so not even guaranteed payment lmao
im not rly a web dev but what do ppl like so much abt svelte
Although 2k donation is more than most OS projects get in a single donation
Easier to answer what I don't like, aka it being in js
But jokes aside, nowadays with runes, it is seen as a "React but better"
(Like better by far imo)
Svelte's ecosystem is also growing quite fast honestly
And you have alternatives to most big libs
Shadcn for ex. Has a community led port to svelte
There is a reason it is being adopted by several big companies including even apple
The whole apple music and podcasts (and a few other things) are all using svelte
that didnt rly answer what ppl like abt it 😭
using kotlin for web dev is like using a fork while eating soup
How so?
personal opinion
but to name a couple reasons (also subjective):
- probably a very small community/eco-system (not industry standard)
- there are way better options that are intended/made for web dev (ex. nodejs, django/flask, ruby on rails, laravel, etc.)
- much less libraries and what not
- harder for beginners
- jvm overhead
if you need a hello world app - sure, use kotlin, but there are a lot more mature alternatives, JS/TS is still probably the best
I'd also assume it would be pretty hard to find a team of people that would use kotlin for web-dev, unless you're working alone
You won’t have JVM overhead when it‘s transpiled to js
(but you‘ll have js vm overhead, lol)
probably a very small community/eco-system (not industry standard)
True, doesn't mean it makes it like a fork for eating soup, more like a very specific spoon that hadly anyone uses
there are way better options that are intended/made for web dev (ex. nodejs, django/flask, ruby on rails, laravel, etc.)
What makes them better if you haven't used the one you're talking about?
much less libraries and what not
Any JS library works
harder for beginners
Sure?
jvm overhead
It's not JVM
As for your last points, no one is arguing that JS/TS isn't better for this, it's an alternative just like Scala JS would be
And ofc you won't find a team, but hey do you think people would find a team for a react project when it first started? Things have to start somewhere
What makes them better if you haven't used the one you're talking about?
Better in terms of more industry adoption,
stronger ecosystems: more libraries, tools, and frameworks built specifically for web dev and most likely better development experience such as easier debugging, faster iterations, and better tooling.
If it's for a personal project, sure, but I don't see where I am going to use it in real world.
Even agreeing with all that you said your comparison is still dumb
The way I see it is - if you're going to run into a problem - good luck finding a solution.
Because it's perfectly functional as any js application would be?
maybe
How is it a maybe? It literally outputs a js file for you to use lol
i assume you mean frontend, because backend it's pretty nice and Spring/Ktor is very good, very comparable to Django/Flask / RoR / Laravel
but yeah Kotlin templating isn't the best lol, though the compilation to JS stuff can actually be quite all right
and besides you can use like a million templating languages for the true Django/RoR/Laravel experience
Yeah the templating is kinda ass, same with Java using stuff like Thymeleaf or FreeMarker
Though Ktor does have a quite nice HTML DSL
I don't hate it, but I don't love it either
https://github.com/TriumphTeam/website/blob/main/backend/src/main/kotlin/website/pages/docs/components/Dropdown.kt#L15
i've been really liking jte, it's actually pretty clean
and it works with Kotlin too, though not with K2 or 2.0+ yet which caused me some troubles lol
Classic K2, works great when it does, causes all sorts of weird problems otherwise 
jte looks pretty nice yeah
typed, feels a lot like Laravel Blade templates
my only sadness is that they don't support custom xml components, that's like my favorite part of Blade
you can just do like <x-button>Click Here</x-button> and it all works really nicely
you have to do templates like @template.layout(content = ) and a bunch of shit
- Reactive and state management is easy af
- Compiled aka no virtual dom
- lightweight and ultra fast
- SvelteKit straight integration that provides ssr, file based routes and a bunch of other things
- Builtin animations and transitions
- Easy typescript support
- works really well with vite, tailwind, supabase and alike
- Easy to learn
- Has one of the best Dev Experiences out there
That's just naming the obvious reasons
isnt that like most modern frameworks
There are several other reasons that are more niche and depend on your sue case
Def. Not
Dev experience in some frameworks that I wont name suck
And while some of those points maybe apply to other frameworks, svelte does it better than most of those
relax the creators of them wont attack u here
i mean the only real reference i have for "modern" frameworks are solid js and some rust ones
🙄
Yeah this guy gets it
im not convinced anyone actually uses elm
there just exists a bunch of fpers praising its design
doesn’t matter who uses it
As long as you use it
stop caring about what other people think
yeah I mean Svelte is nice but the compilation aspect is really the big thing it has going for it
doesnt elm by design pretty much require large diffing of the entire virtual dom?
Vue has basically all of those things, plus a much larger userbase and history and libraries and shit, they just need to work on the compiler 😭
cuz my understanding is that elm (well not specifically elm, i think also some other functional ui libraries) are just a single pure function that turns ur data into a view
yeah maybe it's like one step higher though and can diff the function/memoize stuff before it actually has to construct a DOM or anything
No I think it works around it in various clever ways
you think? have u not used it? 🙏
prefired
I have used it but I don’t know the implementation detail
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
has elm been like revived lol
last i checked it hadn't been updated in like 2 years and that was in like 2023 or smoething
yeah phew, core was last committed to 4 years ago
So true
How does it compare to react compiler?
I personally think svelte still does it better, but vue is def. The nearest to it.
If I am not mistaken it does not optimize the final output of js which svelte does
The new compiler does
Among other smaller things I think
i think it's much better since it optimizes away the framework completely, it's just nice JS with no vdom or anything
yeah I mean it's mostly the compiler and templating views now, so once Vue compiler is here it's gonna be game over 🙂
I am not too versed on either but iirc the new compiler does optimize a lot of stuff, like auto memoizing things
Not sure about the vdom though
But cool to see that svelte does that
yeah it does auto memoizing which is really cool, the vdom and just lifecycle of React in general are hard to get rid of
Thought the new compiler still relied on virtual dom
yeah it does
Well that alone already is the difference
Ehhhh unsure
i mean it's pretty much just that, if you look at the script stuff for vue and svelte nowadays it's basically identical
React still has all their weird idiosynchranocies with state and shit
Both ways actually
Svelte initially copied some things from vue
Then the table turned around
Nowadays all big frameworks are copying svelte4 stuff
Not saying sv5 since that has runes which kinda is how react does it and alike
Just better
Ofc
what exactly are they copying from svelte 4? lol
webshit devs cannot comprehend of a project being completed and not needing infinite updates
Honestly a lot of people can't, I get comments all the time "is this lib still active? last commit was 3 months ago" like dude ..
Many such cases
i mean with as fast as the web platform changes, yeah tbh
i feel like they could do so much
and it's nice to know there's just someone there working on it yk, even if they're not like doing huge updates and stuff
the ecosystem of libraries is still being updated
idk you're not entirely wrong because there are still some open compiler bugs and stuff
but i also dont think it's a huge deal
i tried the new react compiler, so good
Simpler reactive declarations syntax, compilers, component scoped styles from what I can remember too
And other niches
Svelte in general did set a new standard in terms of DX for the market
Which influenced other frameworks
Do you guys have any idea why IJ (or maybe gradle or maven) at times cannot resolve dependencies and imports?
To this day do I not get why this happens at times and why it requires a Cache invalidation.....
Because caching is hard
Yeah, but I feel like there should be an easier way than having to invalidate all caches + IDE restart at times
Because it eats RAM like nothing and takes forever...
I mean I don’t have such problems typically, likely probably twice a year or something like that
The only project that is always scuffed is intellij-community, that just completely breaks every now and then
i can't remember when i last had to do a full cache invalidation
the repair ide feature kinda just works in the first three or four steps
I had to do it today, but it was the first time in a few months
I had to do it after opening a Gradle project after like 2 months or so....
Invalidation worked until I wanted to build, where it failed because repo URL was outdated... Changed it, refreshed and build.... and now the issue is back...
I end up doing it a couple times a day :/
Vue had “simple reactive declarations” before Svelte and had component scoped styles too
Literally the only thing Svelte did was be a compiler lol
This is about the implementation
Which in svelte it is regarded as simply better implemented
It being a compiler did not make it the most loved framework year after year lol
DX did
one day
im gonna jump DocFlavor.String
omg
anyway
i hate intellijs new copilot shit i want to write just private not PrivateKey

A dev actually fully completing a project is simply a myth
The tradition is to start 50 projects and leave them all incomplete 🔪
yeah that’s why it’s so unbelievable that elm did it
IntelliJ is imploding on me ._.
(Well, it looked worse before I took the screenshot)
I'm just really confused why this started to happen now...
Maybe I should switch back to the 2023 version....
what's the problem
Right now is it not resolving/recognizing the Dependency from the core module for some reason
invalidating caches doesn't help it
did you try clicking on the reload maven thing
Multiple times
Funny enough they made a patch to fix "Sync all Maven projects..." not working
And now it got even worse....
sounds like a you problem
Started a maven project reload... Hopefully this helps
Nope.... nothing changed
Opening it on IJ 2023 is perfectly fine.... So this must be yet again a case of the stupids for 2024 version.
yes totally that version is known for the introduction of the "hardcore mode" so devs don't get bored
I mean, what else could be the reason if 2023 works fine, but 2024 is causing so many issues. No other IJ version had so many issues for me like 2024:
- first versions where performance eating hogs, causing hugs delays, slowdowns and lag, freezing at times even.
- I encountered more dependency issues with 2024 versions in the past month than I had with the 2023 version during my entire use of it.
Like there must be something fundamentally broken in the IDE to break down like that, which can't just be how my project is structured or how I use it... Maybe it's just not compatible with my PC specs or smth or just hates me...
I had this same issue on gradle
It was awful
sourceSets {
main {
java {
srcDirs 'src/main'
}
}
}
ended up doing that
I use maven tho
try
<project>
<build>
<sourceDirectory>src/main</sourceDirectory>
</build>
</project>
in your core module pom
I’m on mobile atm so could be completely wrong
I'm wondering, why the core module?
Is that to tell the IDE "hey my sources are here"?
in a nutshell yeah
According to the docs of maven and this option is the default already src/main/java
So not sure if this actually would change much
yep. Same for gradle.
And look what IntelliJ does
doesn’t resolve the bloody classes
the issue you’re experiencing happened to me randomly
out of the blue
Does it have to be src/main and not src/main/java?
try both
for gradle it was src/main that did the trick
could be src/main/java for maven
Has to be src/main/java for me or IJ displays the folders weirdly
Also, doesn't help
I'll just stick with IJ 2023 for as long as I can...
Runs faster anyway
should just switch to gradle 
Still having the issue? Try running mvn clean install -U I saw someone with a similar issue and that fixed it, no idea if it'll work for you but hey worth a try
try vscode
good
Does anyone know Mojang's thought process behind the Ominus Potion not being like every other potion?
Can't decide if I should implement a YAML property to easily configure the strength or tell the customer to use the NBT tags property which already exists.
For context, this is for ShopGUIPlus (a shop plugin) and a user was asking about adding ominous potions of all 1 to 5 levels
What’s the downside to adding the yaml property?
yaml
odd reason for picking a custom data component over just potion effects
might be because you can't mix and match?
I'd prioritize the end-user experience over "nbt because it's easy"
Not too sure what I would call the property and also it would likely be an item specific property which isn't nice.
what about
i would make pretend that the ominous potion is a normal potion
This is the current potion structure: https://docs.brcdev.net/#/item-meta?id=potions
Welcome to brc plugins documentation. Here you can find all the necessary information to make the most of our plugins.
ominous_bottle_strength
have the syntax to set the ominous potion strength be the same as other potions
yeah i would also do that
thats an unhelpful target to aspire to imo
ik ik 
average chrome case (i use google apps for everything)
Oh the pain... got it working but stuck on spigot-api 1.20.4 and can't update due to a BannerMeta#setBaseColor usage which was removed in spigot-api 1.20.5.
(this exists to support banners on 1.12 and below)
...and doing backwards reflection on BannerMeta#setBaseColor to use spigot-api 1.21.4 produces this error:
java.lang.IncompatibleClassChangeError: Found class org.bukkit.inventory.InventoryView, but interface was expected
I think those icons look nice.
Tho, also a little inconsistent because the paper plane is from fontawesome while the other ones are from Simple Icons, which has a consistent 24x24 pixel size for their SVG icons...
Also, the spigot icon is for BungeeCord... Can't find or think of one that I could use that fits better :/
you could just squish the bungeecord logo into a 24x24 pixel svg 😭
just published to maven central and published the initial version of the docs for anyone interested https://komponent.sparky983.me
The Komponent documentation
@pastel imp hello resident Svelte officionado, i saw this article and wondered what your defense thoughts on it were? https://hodlbod.npub.pro/post/1739830562159/
It's python right?
*leaves the room before the rage*
Rich Hickey mentioned!
Nha I am a svelte lover bur yeah will read it
how do i stop procrastinating
tomorrow
yes
do things in your "unproductive time" that are still productive; a book is probably one of the best ways to do this
there is always more to learn and so if you find something interesting, just do that
im sat there looking at my ide, wanting to write out a better more dynamic way for my code to run compared to the many times ive tried to implement the same idea and im just like ughh i dont want to then close the ide and go back to watching youtube
and this'll repeat multiple times till i eventually actually do implement it
the hardest part is getting started
at least for me, i think about doing something and don't want to do it so i put it off
but if i can get my foot in the door and like actually open up stuff and start going, i just get really into it and work
for instance, just spent like 6 hours trying to get a Minecraft map imported into Maya and shaded correctly (still can't get Arnold to render transparency correctly lol)
but hey, it was a good experience! and now i "left a brick in the door" for future times i want to do 3d modeling/animation stuff
idk i always think time spent learning and trying stuff is time well spent, even if you don't really have much to show for it at the end
like yesterday i actually figured out how to do json stuff, sure half of it was copy pasted but i kinda understood how to use gson so i can do json stuff in the future in java
hell yeah dude!
now you gotta take the next step and migrate to Kotlin so you can use kotlinx.serialization 🙂
Once you get how Gson works more or less, it gets easy.
now to just reimplement custom items with some more dynamic added properties rather then making a field for each
also think imma represent the item as a json or yml file included in the jar, read and generate objects from that rather then hardcode the objects
tho thinking about it im not sure how id represent what to do on right click, left click, etc
might be overcomplicating it for something thatll never see public usw
use
another "event, condition, action" in YAML ):
does anyone use checker framework
I remember hearing about it somewhere so I tried implementing it in an already-existing project and got a whole bunch of errors 🥲 (with null checker and some initialization checker thingy that wouldn't disable)
spent a while trying to fix them but then eventually resorted to jetbrains annotations lol
but I didn't know checker framework can do all of what it does... seems pretty cool, but trying to adapt an existing project isn't worth it for me
yes ive used it before
works fine for me
it doesnt always work properly for libraries using jetbrains annotations tho
@static zealot @onyx loom I have updated ChatChat to 1.21.4 if either of you would like to check it out:
https://github.com/HelpChat/ChatChat/pull/235
Thank god I had to go somewhere. We were both going to do it :)))
I'll look at it tomorrow
lol
I was updating it for personal use to 1.21.3, thought might aswell push an update for 1.21.4 to original
anyone knows how to correctly set-up a multi-module project? I had it working a while back now it's all messed up again
Don’t you need a build.gradle in each module…?
Or do you already have that and I’m just not seeing it
Yeah if you are using gradle to setup the modules you need a build.gradle for each
https://docs.gradle.org/current/userguide/intro_multi_project_builds.html
Also not using kts gradle cringe
*laughs in maven*
Looks good, cube might disagree with dropping support for java 11-20
bstats is down so I have no clue how many people are on those versions
Speaking of multi module stuff.... Someone actually made a PR for a velocity version of BungeeTabListPlus.
So people can finally use it on Velocity (Once it gets merged obviously)
I like it, the only thing that sometimes is annoying is that u eventually run into sum lazy initialization or some other design quirk which may require you to cast nullable type to non nullable type for example, ofc the initialization checker can figure it out at times, but sometimes its a bit goofy
doesn't it have like MonotonicNonNull or something?
i just don't like cq because it litters my autocompletion 
yea which works well sometimes and sometimes u still may have to cast
ofc if u have free hands you could always try to redesign entire areas where checker makes it awkward
yeah they do have their own build.gradle
apparently if you expect it to not be null in a method you are meant to use like @RequiresNonNull("lazyField")
never used cq, idk it's just, too much
ye fairs, RNN works fine at times, but again that requires knowledge about the field, if u have an interface that specifies itself to require a certain initialization method to be invoked in order for any data accessors guarantee non nullness, then it can become tricky iirc, if ur lucky and working w pure stuff u can maybe use the purity annot, but yea
ah my bad
8 java 17 and 1 java 11
oh so bstats isn't offline. my pihole was just blocking it
You tested this right? At least it starts on 1.21.4?
Alright. Merging it. Can you solve the conflicts for your other PR btw?
want to get that one merged as well
Tried to fix it via online editor, double check if everything seems correct, my IDE is broken fsr lol
ah well build failed, I'll check it out tomorrow if I cant today
missing a } from there.
was about to do it myself lol
ok I'm not resolving conflicts in the online editor again
(:
@forest pecan where is the PR
it wasn't positively received 😔
too many dislikes
Object instance
anyway yes
just make a common super interface
and accept a value of that type
at the very least
the logic can stay the same even if it's a bit gross
<T extends Object | MatchListener | SpawnLogic | Mechanic> when
i mean a switch could also be nice
why not just separate it into 3 functions and then just take advantage of method overloading
that relies on you knowing the type at compile time
ah I see
i don't think a switch would work here
wouldn't it with the pattern matching thing?
like you could do java switch (instance) { case MatchListener listen -> this.listener = listen; case SpawnLogic logic -> this.spawnLogic = logic; case Mechanic mechanic -> this.mechanics.add(mechanic); }
technically has different semantics
if the class implemented 2 interfaces, for example
oh yeah i just figured they were mutually exclusive and you would only want one branch
and they just didn't write all the else's cause they were lazy lol
yeah i assumed so too but you never know
very simple path simplification with radial distance + dougles-peucker, recursive implementation though and gonna have to tune the tolerance but it's quite nice since it preserves sharp edges, which is exactly what i want
going to use this to automatically optimize Comet effects
(yellow = simplified, purple = original)
mmm going to need to make it so it tries to put lengths in multiples of some speed so that speed stays constant with varying interpolation duration
- also take timestamps for points into account...
or actually just pretending timestamp is 4th dimension probably works
Very cool
because i think else is ugly 😭
i will jump so many hoops to avoid doing elseif, its a sick behaviour of mine
whats fun is that i did all this when instead of doing register() i could just do this.<something> = this
original path not shown during traversal since it blocks seeing the actual movement, this is with teleportationDuration = timeDelta + 1
pretty happy with it though, ofc very curvy shapes it will not look as good but that's just the way it is
most movement i'm using this for is parabolic or sharp so it's good for that
though probably still need some tweaks, it also includes time in its calculation for which points to keep (so that movement at different speeds is preserved) but currently just uses it in seconds, which might not be the optimal way
what's the use case of this
sending updates less frequently for particles
important for Comet
there's one system that optimizes position and one system that optimizes display entity stuff since those can have separate interpolation
uhm my brain is not working decently rn (hella late) but anyone knows how I'd add the ssh key of github to Webstorm (IJ)? bit confused
I am trying to clone a repo that has strict access in an org
you shouldnt need to edit webstorm at all
just use the ssh uri for the git repo when you clone / edit the origin url
and make sure the key is on ur account obviously
how'd I do that, I am not personally cloning it, it has a npx "script"
npx sveltelaunch create, custom thing, but internally it clones the git, but getting this:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Which I assume is because it lacks an ssh key
well, IT IS
what?
.
it is private
Host key verification failed.
this is actually the issue here
if you run ssh <username>@github.com you'll see the same thing i imagine
delete your known_hosts file and then try it again
The authenticity of host 'github.com (IP)' can't be established.
ED25519 key fingerprint is SHA256:+FINGERPRINT
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
xmrafonso@github.com: Permission denied (publickey).
ok i guess you just dont have the key on github then lol
have you added the public key to your github account
I had, but I just remembered the one on github is not the right one anymore
how'd I get access to the publickey I currently have?
should still work in git bash / wsl actually idk
interesting, ssh-add -l shows I have no file
i have no idea what that command does but im not sure you need it
I don't seem to be able to find the public key
what does ls ~/.ssh print
there is only a known_hosts file
okay, I add the public key in GH right?
yes
I just did and still the same
the value from here?
the key
You need to cat ~/.ssh/id_ed25519.pub and paste the result in this chat /s
it's a public key so thats fine
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNPRzSLlLpDQwA9QpurZnREyON6z9wHiNJ9tZexFmgh alex@Alexs-MacBook-Pro.local
heres mine
hack me
:)
Exposed
just so this doesnt get buried
all the text wall?
sure
bro actually has a lot of keys lmao
I am rich
id_rsa, id_ecdsa, id_ed25519, id_xmss, id_dsa
funny how those never showed
i have a feeling you didn't ls your folder correctly, or the permissions are somehow messed up
WAIT
but yeah i would setup a config to force it to use the right key, then you'll know it'll be trying the right thing at least
no this is actually my bad
😮
but yeah probably this too, on an unrelated note
Host github.com
HostName github.com
IdentityFile ~/.ssh/github
that's my entry in my ~/.ssh/config for github
you have a specific key for github?
I dont even have a config
yea
yeah ignore that
just do this
pog
cause i also have a specific key for a self-hosted gitea server, and various other hosts lol
stuck at this
ah i see
why not just use 1 key for everything
why not just use 1 password for every website
though tbh i do actually use one key for basically everything else lol
feels like theyre different things?
a password can be broken, a public key gives an attacker zero information
i think i just needed to upload the key to some other servers for ci stuff so i didn't want to expose my private key yk
ah fair
omg i still have the devden dedi ssh setup 😌
wholesome
I have a solution
shame the server doesnt exist anymore
seems like it worked?
well, ignoring this
'touch' is not recognized as an internal or external command,
operable program or batch file.
at genericNodeError (node:internal/errors:984:15)
at wrappedFn (node:internal/errors:538:14)
at ChildProcess.exithandler (node:child_process:422:12)
at ChildProcess.emit (node:events:519:28)
at maybeClose (node:internal/child_process:1105:16)
at ChildProcess._handle.onexit (node:internal/child_process:305:5) {
code: 1,
killed: false,
signal: null,
cmd: 'touch C:\\Central\\WebStorm\\Supabase - Learning\\SvLaunchTest\\test/.env.local',
stdout: '',
stderr: "'touch' is not recognized as an internal or external command,\r\n" +
'operable program or batch file.\r\n'
}
bro's not a toucher
I don’t think this is designed to be ran on windows lmao
Probably time to break out the WSL
could just make the files yourself lmao
better late than never
lmao yeah
The command would still die I think
oh true if it just runs unconditionally
welp time to figure out how to add WSL to webstorm
for this
to work
why not just run this npx command in a WSL terminal
no need to mess around with webstorm
well I am already using webstorm sooo
suit yourself
in theory
it's not that hard to make a wsl terminal tho it should be added automatically
it's possible you'll have to make a new ssh key for wsl haha so just follow the previous steps again
this works right?
dies again
should do
windows moment unfortunately
wait but do I even have access to files outside the WSL env?
cause rn I can't cd into my home path
"not work"?
not found
Yes
ls: /usr/bin/sh: No such file or directory
what the hell have you done
.
wack
installed ubuntu
reinstalling it
honestly, will try to fix it tmr
its late
better do it tmr before I throw my pc out the window
🙂
okay so installed it with wsl install, and it looks good
seems to work
(ignore msg)
but like
when I open a new terminal and type wsl
it looks different
and works different
looks hella diff
that’s probably plain wsl and not the ubuntu one
what looks hella diff? thats just a different bashrc/profile
Well that seems to be an issue since the Ubuntu one had everything working on it
The "plain" one can't find bash or anything else
i mean what even is a "plain wsl" lol, you need some kind of linux kernel
well idk it's what it was called by lemmo
I just know this works
and the other doesnt
i mean did you just not have a distro installed lol
and that was like the default bash shim
I have no idea
I did wsl install in powershell, it worked (first image)
then when I tried to enter wsl again
it went into the "bad" one
nah man clearly you just gotta ask chat gpt to do it
fr
nextjs + ts? its almost like.. nexts
Tbh very unfortunate to have js in the name, they have moved to ts a long time ago :')
allay is paying only 5-10?? new low
back to this, any ideas? I already put the public key in github...
type "yes"
If you don't see a prompt where you can type "yes," then try to run ssh -T git@github.com and see what you get
or unless there's more context to this
git@github.com: Permission denied (publickey).
now I am confused
gotta configure it 🙃
- Setup commit signing: https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key#telling-git-about-your-ssh-key
- Add your ssh keys to GitHub: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
and also: mark unsigned commits as "Unverified": https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits (optional)
then once you do that, you'll get a nice "Verified" badge on all your commits :))
already added it to github...
did you follow both links (or technically only the 2nd is needed for ssh, but I recommend configuring commit signing as well)
something is misconfigured somewhere
this is very commonly known in the field as a "skill issue"
know it very well
samesies!
I did
(forgot to answer)
it's hella weird
hmm any chances wsl isn't using the key from my .ssh?
and you put them as both auth and signing keys?
try ssh -v -T git@github.com
the -v flag enables verbosity
so you can see whether this is true
IT WAS THIS
it was not using the ssh keys from the "mounted"
tbh I'd just copy over the keys
ah so it was looking in ~/.ssh
but your ssh key was in the "normal" drive
🥴
exactly
and I was in the "normal" drive
(aka mounted)
and thought it was using that one
but it wasnt
well the WSL is kind of "its own OS", so it makes sense that ssh is not using the key from Windows
same idea if you would ssh into X from Y and try to ssh from X into Z using key from Y
I did actually mention this 🤭
🥲
cries
I was just looking at the DeluxeMenus source to figure out how it registers/handles commands... and this gives me a migraine
Why the toLowerCase and trim on a string you could already have lowercase?
dafaq
Anyways, was looking for how it registers menu commands, because I believe I found a spigot bug/limitation?
Like, I've set an item in ItemsAdder to execute a command and according to LoneDev is IA simply performing Player#performCommand() in such a situation.
However, Commands registered by DeluxeMenus return a command syntax error (The one you get for incomplete commands)... So maybe it's actually more a Paper/Brigadier issue?
Yeah no I remember that issue a while back
Maybe it's due to DM doing reflection to access the CommandMap?
Paper exposes it for use, so maybe this messes with things (i.e. doesn't register it in the actual map but a copy?)
No expert on this obviously
I fixed it by essentially "chatting" the command for the player
With Player#chat and then prefixing the command with a /
Which pretty much does the same but somewhy works with DM
Probs because it goes through a whole different thing
Like the entire chat/message processing
probably ya
Where performCommand skips some necessary steps
I now wonder if that also happens on Spigot or only on paper
Anders Hejlsberg, lead architect of TypeScript and Technical Fellow at Microsoft, introduces a new port of TypeScript that will deliver the next generation of high-performance developer tooling.
Learn More Here ➡️ https://devblogs.microsoft.com/typescript/typescript-native-port/
Build and Run the Go code from this repo ➡️ https://github.com/mic...
it's slightly hilarious that microsoft refuses to use C# for anything
Dang there’s barely any people in here
Anyone here able to explain to me what an Invariant is in the context if a graph / data structures and algorithms Uni course?
For the life me, I cannot work out why my lecturer spent 40 mins speaking pure academic non-sense about it as all I can understand from Google is it's a variable with a constraint.
it can be easier to explain for a specific case than just super generally, e.g. a loop invariant is a property that is true before and after every iteration of the loop, for objects an invariant basically describes what a valid state of the object is, ...
To me, it just seems Invariant is a fancy linguistical term for 'x should always satisfy y condition(s)'.
Is my understanding correct there?
yeah kind of
Now to work out why the hell my lecturer spent 40 mins explaining this... as it's just pure academic speak he did.
well, probably gonna repeat what @ SirYwell said, but iirc "invariant" is just a rule or a property that always stays true during an algorithm.
for ex. with a selection sort:
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
System.out.println("After iteration " + (i + 1) + ": " + Arrays.toString(arr));
}
}
public static void main(String[] args) {
int[] numbers = {64, 25, 12, 22, 11};
System.out.println("Original: " + Arrays.toString(numbers));
selectionSort(numbers);
System.out.println("Sorted: " + Arrays.toString(numbers));
}
Original: [64, 25, 12, 22, 11]
After iteration 1: [11, 25, 12, 22, 64]
After iteration 2: [11, 12, 25, 22, 64]
After iteration 3: [11, 12, 22, 25, 64]
After iteration 4: [11, 12, 22, 25, 64]
Sorted: [11, 12, 22, 25, 64]
The invariant here is that the first i + 1 elements are always sorted at every step.
or a different example:
int n = 5;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
System.out.println("After adding " + i + ", sum = " + sum);
}
System.out.println("Final sum: " + sum);
The invariant here is: sum always contains the sum of numbers from 1 to i.
Usually conditions come in the form of pre and post conditions that hold true or false, that is some property holds either before program P or after program P. Invariants as ywell said are properties that are always true basically, but its a bit abstract since there are different kinds of invariants, like loop invariants, type invariants or in terms of concurrent execution we talk about invariants as being always true until we acquire some lock and during acquisition time that invariant can be false, though more generally we don't have to involve conditions, but instead for example certain relations that are guaranteed to hold.
I love hoare logic
damn that looks so interesting
It’s pretty fun to tinker with
@desert horizon that a plugin?



