#dev-general
1 messages · Page 556 of 1
Anyways compile time di frameworks are superior
No reflection overhead like a certain something
I wonder how hard it'd be to write a compile time di framework
Basically lombok
No
Yes
Dagger does it in the proper way
Guice doesn't actually do reflection I don't think
Unless it can't do classgen for some reason
Indeed
Ya good point
Kyori honestly has a great collection of stuff for Gradle.
Yeah fr
@prisma wave How does scoping work in guice?
in exactly the same way i think
afaik the api's are pretty much identical
except some dagger specific stuff
I cant find anything like what I saw in dagger tho
Like for example imagine I have a some client app,
Auth -> (SomeService1, SomeService2, SomeService3)
I want it to reconstruct some dependencies of the services when I start a new scope from auth
oh so like singleton and not-singleton
you'd just use an annotation i think
or bind it with .in
Well, it wouldbt be a singleton right?
The dependencies arent persisting throughout the lifecycler
They change when you go back to the authentication stage
huh idk then
welp
@quiet depot ?^
BM, Yugi I need help
I got a discord and they don’t recognize Haskell
So I thought you guys could do some fine work there
Ya invited
Table of contents parser for a wiki page working 😌
Input:
# Parent header
* Random content from page that'll be ignored
* More random things to get ignored
## Child header
### Grand child header
# Solo parent
# Another parent
## Another child
Output:
Parent header
Child header
Grand child header
Solo parent
Another parent
Another child

oh hey, anyone here noticed any of the Material changes? unless this is just standard Material and IJ's disabled Matom OneDark lol
but the directory colours have changed, and also, the colouring for Git statuses on files has changed too
changes to existing files now seem to appear as a light blue, and additions seem to appear as a more yellowy green
idk oceanic dark is broken for me and it is very annoying
Yeah seems like a few things changed
So, I've been trying to work on a propagation algorithm for chunk tickets for the past few days, but I'm a bit stuck. Basically, the idea is, I place a ticket in that centre chunk at level 22 (marked in the image), and then each row around it propagates out with the level of the neighbour + 1. I know how it works, I've just never done stuff like this before, and I'm not actually sure where to start researching. Would any of you be able to point me in the right direction on where I could learn something like this? (Image: https://static.wikia.nocookie.net/minecraft_gamepedia/images/f/f5/Spawn_chunks_range.png/revision/latest/scale-to-width-down/726?cb=20200317084615)
it's kinda like light propagation, except that diagonals are the same level as the centre neighbour, and the ticket levels increase, rather than decreasing, which is what happens with light levels
actually, I just saw the term "flood fill" used in a gist describing this system, maybe that might help
yeah that's basically just a special case of flood fill
would you know where I could find any info on that sort of algorithm?
I've looked around but couldn't really find anything of interest
https://img.bristermitten.me/Overwatch_JUAi5iiJAe.png @obtuse gale this you?
helpchat unhinged
lol
i don't understand but I'll go with "lmao"
lmao
yuo're welcome
pretty sure there's pseudo code on wikipedia. for the basic one, you just check each neighbor point/block/field, and from each of them you do the same again.
For the chunk ticket stuff, you need to keep track of the distance to the center block (something like max(dx,dz) should work)
alright, cheers
The algorithm is pretty easy
You use some sort of recursive list
Like a Queue or Stack depending on what you need like LIFO or FIFO etc. Then you add it to that list when recursing from one chunk, and getting neighboring ones
You can also use a method for this too. For example, you can call a method recursively with the neighboring chunks.
Here’s an example of it when doing one of my FooBar problems. Notice how I keep an array of what the differences in X and Y coordinates are (for example -1,1 etc). Then inside my structure I loop through each of the differences, apply them, check if they are in bounds/valid (or whatever limitation in your case is) and then add them to the structure
You can create a class to store the current light level, and make one for each block. Then you set the distance it is from the light source using the algorithm described above and it should do it
it's private
Bruh what
coward
Now that I‘m thinking about it, flood fill isn’t even needed because you know exactly what level should be where
I fixed it
You could actually probably use a normal for loop and construct it top to down with the pattern it goes like 33, 33,… 33 to 33, 32… 32, 33 etc.
But that won’t provide a good lighting effect like if you send them to the client it’s obvious they start from the top to down rather than middle to out
So it might look weird
Wouldnt a floored distance algo be enough?
Or not hmm
Make the x or y coordinate equal to the central point and take the distance for each cell, substract from weight of center
Yeah. Start from (-D, -D) then loop to (D, D) while excluding when D=0
Then add those values to the middle cell
That’s for each of the layers
alright, thanks for your help guys
I just have two questions
- what about, say, if I needed a certain area of chunks, say 11 x 11, to all have the same level, and then propagate around that
- for moving players changing which chunks are at which levels, would it be better to completely recalculate every time a player moves? or could I do something with propagating the levels down/up in the directions where they need to?
I know these are very implementation-specific, but it's always the actual implementation that I struggle with
how would people recommend setting up a rest API that you need to give a list to?
something like link/to/api/opt1/opt2/opt3 etc, or adding to json to the url, or a header, or what?>
I'd make it post, but I'm returning a file
and that seems wrong, right?
basically it returns a file generated from a list of items
and I don't know the size
of the list
it could be zero
it could be 50
link/to/api?opt1=0&opt2=1&opt3=5
so programatically keep going until opt69 or whatever is missing?
actually, not sure
seems janky lol
you got any examples by any chance of an implementation of one of those? since I ain't got a fucking clue where to even start
can you elaborate on the purpose of the endpoint
generate a zip file of a bunch of random stuff
(defined by the arguments)
what are the arguments exactly
well, they do, but I add them other ways, so I can't hard code them all
or tell you them all
no that part is obvious I'm just trying to understand what you want to do exactly
my apologies if I've missed something here, but what's D in this context?
Because that is an important factor in design
I need to on my (Typescript) API recieved a list of items
and I need to be able to send it from a website
Not what I'm talking about, whatever
But currently, from what I can gather it seems like it'd be your best option to encode the list as a string in a single query param
okay, that was one idea I had, but I wasn't sure if it was practical
so add some sort of break character
and encode them?
eg. string[].join("%").atob() or whatever its called
(I can guarentee they don't have %s in them)
Well I guess you can do base64 but there is no need for that really
how long do you expect this list to be anyway
up to 50
ah true
and each element is how long
up to like 12 chars
all right
D is the distance from the center
Correction: it means dick
pretty sure it will end at one point with you dying.
he'd run out of nutrients
yeah. I Think that will be his last problem
you're basically eating all the poison you just got rid of
well no, its not poison, its just not digestable
It is poison technically lol
poison comes out in urine
You get food poisoning
food poisoning isn't actual poison mostly
Not true actually. In fact you can drink your urine and it’s much safer than shit
Urine is like 97% water
Yeah ig but I think that’s what he meant lol
but the other like 3% is the stuff your body is getting rid of in your liver, that is toxic waste
well. not poison. but still. it does contain some weird bacteria that is meant to be in your intestines not on your mouth
so its not going to be good for you anyways
yogurt is bacteria
I never said that :p
Well at least it’s not shit
Which is like 99999% bacteria
Lmfao
eh
thats how they restart your intenstines bacteria! making you (basically) eat other peoples
not actually eat
but they inject it
its wierd
I love eating other people
me aswell
Apparently cannablism like slowly destroys your brain though lol
oh btw, is there anyone here who knows of a library that you can use to create a table like https://static.wikia.nocookie.net/minecraft_gamepedia/images/f/f5/Spawn_chunks_range.png/revision/latest/scale-to-width-down/726?cb=20200317084615 programatically?
thats what I was gonna say lol
what if I have my table ordered from the centre outwards though?
loop through, them order them in a hashmap (order : value), then sort by value, then loop
then re assign by order
freddy u suck
ah you were typing that
couldn't have seen that coming
anyway @jovial warren try this, its simple :p
and no need for a library
not even a bookshelf
for (int D = 1; D < 35; D++)
for (int x = -D; x <= D; x++)
for (int y = -D; y <= D; y++)
if (x == 0 || y == 0) return;
Point newPoint = new Point( middle.x + x, middle.y + y)
Idk what that logic is Fred
Lmfao
Doesn’t make sense
to order them
why don't you just use the Cho Con method tho???
its so easy
what's that for? drawing the table?
Cho Con These Balls ha
man... Cho Con method is the best.
shut up nerd
is that Point meant to be the java.awt Point?
D actually will never be 0 so that conditional is unnecessary
It’s just a place holder class
For storing X Y point
alright
You can change it to whatever cell you need
@eternal compass I heard you're friends with Rydon. I heard you also love to Rydon this dick
you really gotta work on your jokes... you gave away the punchline while telling it!
I forgot some <= signs
Seems good now? Haven’t tested cause I typed that out on phone
well the thing is, I knew you will not fall for it. so I didn't give you a choice at all
xD
k. Bye now. Going to watch Major Grom
thats not falling for it... I red the answer before the joke lmao
Fred what’s hamood backwards
https://i.imgur.com/X1QBPWT.png why is this shit so big
yes I know. that's why I've red the answer before the joke
then what do I do with all these points?
that's what she said
how do I print them into a table?
when she was taking a shit
Based on D, set the light level
I miss spelled it
aokayt
ahhh
D is the distance from the center
anyway.s going to watch Major Grom now.
I'm going back to parsing markdown in javascript ;-;
okay
What’s hamood backwards
;-;
Lol
its a movie on netflix if you care.
cool
man... tomorrow I'll be switching from KDE Plasma but I will really miss the Kontrol app. or whatever the name is
I don't quite get it, all I wanna do is turn it in to a table like this: ```
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
the Kde Connect one
Doomah 🥜 fit ⏬ ▶️ 👄
Yes that is the point. Think about the algorithm the loop creates
When the x and y value is changed you get the Points that are D distance away from the center. For example at first if it’s 1 then it loops through the points that are exactly 1 distance away counting corners
This means that the light level would be the light level - 1
you can still get it
you can run KDE apps on any distro / DE
Then the light level for the block in general is the light level - D
(And d is in the loop shown above in the code)
🧠
JS 😬
There are some libs for it i think
I'm using Remark React-Markdown, but I don't get any <br>s for Returns (\n), which is annoying af
The way i do it is, i get the md from GitHub on the backend, parse it to html in the backend then save it to the database, then just return the html on api call
I parse it via react markdown which works fine, except for returns
and I'm confused
I even have the remark breaks addon
<ReactMarkdown remarkPlugins={[remarkBreaks]}>{popupText}</ReactMarkdown>
Ayy now most features are ready, md to sidebar, md to html content, and md to table of content 😌
now the designing 🥲

Is world generation safe to do async
?
I am making new worlds for my mazes and Its hanging the server for 2-3 seconds when i create a world
👏
i don't want to hang
https://i.imgur.com/hv6j3O3.png bit of stack overflow and I finally have it lol
nice, nice
lemme show you the algorithm I originally came up with a couple of weeks ago maybe that actually worked the whole time pretty much
const val VIEW = 5
const val ETL = 31
fun main() {
val offsetX = Random.nextInt(40)
val offsetZ = Random.nextInt(40)
println("X: $offsetX, Z: $offsetZ")
val center = ChunkPosition(offsetX, offsetZ)
val centerLevel = ETL - VIEW
val area = (VIEW * 2 + 7) * (VIEW * 2 + 7)
for (i in 0 until area) {
val pos = chunkInSpiral(i, offsetX, offsetZ)
val deltaX = pos.x - center.x
val deltaZ = pos.z - center.z
val level = level(absDelta(deltaX, deltaZ), centerLevel)
println("Level at ${pos.x}, ${pos.z} = $level")
}
}
private fun absDelta(deltaX: Int, deltaZ: Int): Int {
if (deltaX == 0 && deltaZ == 0) return 0
return max(abs(deltaX), abs(deltaZ))
}
private fun level(absDelta: Int, center: Int): Int = if (absDelta >= 0) center + absDelta else center - absDelta
with a few modifications to fix me not using chunkInSpiral correctly lol
Ic
VIEW is the view distance btw
VIEW * 2 + 1 is the diameter of the player's regular visible chunks, but that +7 there is because there's 3 chunks in either direction iirc that have the different levels
though what I actually need is for it to propagate all the way out to the maximum level of 44
so I've just modified it to use a while (true) and break when we get a level above 44
https://paste.helpch.at/beramuwomu.pl this is the modified version
what still confuses me though is why vanilla's is a bit more complicated than that
SO?
oh, nope
https://paste.helpch.at/qavadiraju.java here's vanilla's btw
you might be able to see what's going on better than I can lol
https://paste.helpch.at/ayopubuyet.java this has a few more things that will probably be useful also
I'm actually just curious about what kind of algorithm that is tbh
I mean, bare in mind though, that DynamicGraphMinFixedPoint is shared between ChunkTracker, SectionTracker (for POI stuff), and the lighting engine
Question, does CharSequence#matches(Regex) (kt) work like Matcher#find (java)?
yes
matches checks if the sequence matches the given regex
though I think it would probably be closer to Matcher#matches than Matcher#find
that's why im asking cuz I don't need to know if it is exact that pattern
Returns
trueif this char sequence matches the given regular expression.
Something like that 🥲
you are right
so I guess there's no extension for find()
what are you trying to do?
you can replace a while (matcher.find()) with regex.findAll()
nah not that, was just looking for a shorter version of Pattern#compile#matcher#find
What do you guys in place of Collection when returning something with items in it
I use HashSet and add the item inside via ImmutableSet some times, but im just wondering what people do
Used to have
fucking what
Will have again in the future
oh cool
Java has tuples right?
uh I don't think so
ah there's a Javatuples library lmao
slap that bad boy in your maven and you're good to go it claims!
i mean neither do i
good
that's just what their website says
Triplet<String, Integer, Double> triplet = Triplet.with("hello", 23, 1.2);
sounds like smth vavr would have
functional java
Kali you brilliant man
🤤
i think pair is just a separate thing
you can't make arbitrary tuples
// (Java, 8)
Tuple2<String, Integer> java8 = Tuple.of("Java", 8);
// "Java"
String s = java8._1;
// 8
Integer i = java8._2; ```
oh ew
i hate underscore naming
Wym?
i feel like for Tuple2 they shouldve done .first and .second, like kotlin pair
you can't make an arbitrary size tuple
they only have like pair and triplet
you can't make a (String, Int, String, Int, String, Int, String)
so it's not real tuples
at least, that's what I gathered from some blog post in 2012
Not exactly, it used to have, for example fun test(): #(String, Int) but they were removed
Pair isn't the same I mean you can make a pair in Java
class Pair<A, B> {}
yeah now all in java is to have an infix function to easily create pairs 🥲
lets just add tuples already
#860006856864169985 message
jeez, 9k for a translation
time to learn Turkish now 🥲 /s
Argh why am i keep getting my project files deleted
this time i uploaded everything to github before i changed anything, so im safe
but if i didn't upload that to github... the last time i uploaded to github was a while ago 💀
webpack typescript no type checking ;-;
addon: string = input;
typeof (<string | number>addon;
l need to cast it to <string | number> so that my IDE doesn't freak out at a un needed check lol
why does intellij read your commit names and if it has a swear it complains "inappropriate word!", then recommends "piss off". I wrote "shit"
lmfao
Im sorry, what?!
time to learn turkish
lets speed run turkish
Google translate👌
Classic dynamically typed mess kek
See you in 2 days
Do you know how the installer from lunar or badlion client work?
I think they patch the vanilla jar or something like that but I don't know how to do it myself...
😌 😌
https://drama.essentialsx.net/eyJzZW50ZW5jZSI6MTYyLCJzaXRlcyI6WzJdLCJ0aGluZ3MiOls3XSwiZm9ya3MiOlsyXX0= this site still gold 😌
Unpopular opinion
Five hours of coding will save you 5 minutes of reading documentation

🥲
@distant sun Smh my head, I wonder who made the typo
me
I KNOW I DID SMH
what typo?
I put it on there so I don't forget
I don't see the typo 🥲
It's not there, it's in the file
https://github.com/TriumphTeam/triumph-gui/pull/19/commits/d1aba402fd07f506455d4975c55f1456e71bf593#diff-b6c094caa76aa6dc903f2654823b0d4daab81d2b81469e9041147692ac6b1069R150 this seems like the only typo I can find in this thing lol
nice Javadocs you got there mate 🙂
oh, that, lol
Smh Gaby
not sure how I picked up on that one and missed the more obvious one though lol
Just found out about this window, quite cool
Did you see the 300k budget one a while back?
300k? for what?
you could buy a fucking house with that
well, in my area, you'd be fucking lucky to find a house that cheap, but in most places, yeah, you could buy a house with that
also, https://i.imgur.com/Nj2iA4M.png my algorithm now also handles overlaps properly \o/
sorry, I just thought that was cool
why buy a house when u can just build one in minecraft?
man, this guy is like 200 IQ right here
the only thing I'm worried about with my algorithm is the fact that I have to completely start a fresh every time and recalculate everything
its just a budget lmao
and the thing that (I think) is the most expensive here is the spiral function that gets the neighbour positions
i have 1 trillion budget yet i wont spend a cent on you lmao
thats what the dudes were implying
Okay no need to "flex" mr I forgot where you live
that wasn't actually me attempting to flex, just seemed to turn out that way
I was just making a comment lol
Bardy, I'm messing with you, 300k for a house ain't a lot
Do you not want to spend at least a dolar on me?
depends in what currency I suppose
Well euro, but that's even more for you
£300,000 is a lot of money
i will if you buy me a house or sth'
Or wait, is pound more than euro, or not
not yet I don't think
Yes lunar loads optifine and there patches into the vanilla client
#860006856864169985 message unlimited 👀
Do you know how that works?
Or are there any tutorials or smth like that
these guys are living ahead of time
imagine unlimited budget
;-;
I read that as "you could buy a fucking horse with that" 😂
:kekw:
https://i.imgur.com/q8XlHJf.png now that is what you call a nice visualisation
well, for AWT anyway lol
Ew
maybe it's time to re-design my algorithm...
pay close attention to the far right side as the player moves, notice that no levels are getting yeeted
Which bg color is better?
#1 def
Also- is this OS? I was a bit confused on how you implemented that cache thing
Since mine exploded
Or similar
Thanks
You finally releasing this GitBook alternative?
Gitbook alternative 😌
Kinda it's personal, idk if I can make it public
I would if I spent more time creating an editing system, right now the only way to edit the data is through github
Ahh
I might make smth like that at some point actually, sounds semi-easy.
Just parse Markdown files and boom :p
And markdown parsing is surprisingly easy
RemarkJS has a react plugin
System I have is pretty simple
Any folder will become a project
Aha
For a project to be validated it needs a SUMMARY.md file
That'll turn into the side bar
Then every other file will be a page, which you have to link to in the summary
Do you plan to host a public demo?
Yeah
Well it's the docs for triumph, no?
Also what's the backend for?
My backend is integrated with my front end, which is... intresting. It'd basically 2 ts projects in one
Yeah
And the backend handles everything, github cloning, project creating, summary md parsing, page md to html parsing, etc
Instead of handing that on the client, the backend saves it all and then just simple api call and you can get everything, which makes it super fast
Oh and no react create app
Ah
I basically have a custom web server though, its... intresting
And it caches like 50+ jar files for quick download :p
All the data is stored like this
Fancy
Mine is just a simple rest api + static (react) site
And a file generator
For the response
What'd you make?
Me?
I'm replacing bentoboxworld's download site that's built in python atm, and is really finicky. Stealing the style though, as I'm not a designer
Current: https://download.bentobox.world
I'd hate to do it like that, it's already awful enough to work in the front end with TS, can't imagine handling everything else like that 😬
Well, yeah
Ahh are you rewriting a new one for him?
Jenkins is annoying af to deal with, since there are no wrappers that are in ts
What are you doing with Jenkins?
Yeah. The main goal is configurableness, as the previous one is mostly static
ffs why can't I make a simple fucking floor fill algorithm
https://static.wikia.nocookie.net/minecraft_gamepedia/images/f/f5/Spawn_chunks_range.png/revision/latest/scale-to-width-down/726?cb=20200317084615 writing an algorithm that can do this shouldn't be this annoyingly difficult
Can you not just use an npm module for Jenkins with ts?
I'd need to write it a .d.ts file
And I'm lazy
Ahh
So I'm building my own
Maybe I'll publish it
jenkins-ts
(Not for pushing builds, just the public api)
I have no idea if it exists, but would be cool, is if you could take a JSON string and throw it into something and it would spit out a possible Java object that could serialize and deserialize that string with gson or whatever.
Doesn't gson have that?
Deserialize to class
Oh wait
I missread
Well typescript has that :p
Someone made one
I use it for my configs
Yeah it has deserialize but that would be cool if it could generate a class from a given string
cursed
PepeLa
Should I make this? I could just make json object creator, and support Java, ts, and whatever else
That would be pretty useful IMO if it doesn't exist.
👍
https://www.jsonschema2pojo.org/ seems to be something similar, but it uses a lot of annotations and such, so maybe a more manual one?
Generate Plain Old Java Objects from JSON or JSON-Schema.
Oh this actually did it somewhat decently.
I'm working on a subtitles feature for Holovid so I was just so annoyed trying to work with the YouTube captions API that I said screw json and I went with XML instead.
https://www.youtube.com/api/timedtext?lang=en&v=zhWDdy_5v2w&fmt=json3
Cause look at this.
Yeah
yeah use that jsonschema thing
And that's for a 30 second video iirc
find a 2 hour video to generate the json
https://www.youtube.com/api/timedtext?lang=en&v=zhWDdy_5v2w&fmt=srv1
I went with this instead.
Took like 20 lines of code to convert it into Java objects that I wanted to work with.
Damn
regex?
Are you in Syscraft Fred?
yessir
Audio
Whats Syscraft?
And we also will be shipping a font in the pack with audio that makes it look a lot nicer. Still talking about how we plan to do that.
Why do noteblocks when we literally have audio working?
So? We handle it for them for the time being.
It's generated on-demand.
Sent to all players in range for the screen.
how does it work with another resource pack?
I suppose noteblocks could be an option if they don't want to have a resource pack
(eg. a server default one)
right
Yeah that's what we haven't came up with yet. Most likely wouldn't work.
you know MC now allows text with a specific font to be defined?
that could be useful
Looks nice
We're working on a pipeline limitation right now on the client end and seeing how we can optimize the packets. It currently saturated it too much at 144p.
But yeah when we sync the subtitles I think it'll be pretty cool.
That way you don't even need audio.
right
and subtitles are the only one that would work on twitch, right?
since it doesn't have predefined audio
I haven't even looked into that tbh
We're doing a couple things right now.
- drop ProtocolLib
- fix client sync audio issues at higher resolution
- general cleanup and subtitles
Because it was contributing to the saturation of the pipeline. It was flushing every line of every frame in the pipeline. In a dev branch we went directly into NMS and now we only flush every frame. So iirc if we have it at 72p it's 72 lines and each of those lines flushed every frame and now it's 1 flush per frame instead of 72.
It's not set in stone yet, a lot of profiling needs to be done.
ah, thats very smart
I have no idea how I'd even think about doing that lmfao
Holovid back from the dead 👏
We're also exploring the possibility of doing something like animated frames and have it statically on itemframes with maps so it can be in a static location vs rotating with the player.
oks
Nice to see Holovid being worked on, it's looking amazing Glare!
😃
Does somebody want to talk and code a bit?
Sure, I'll code
Does Holovid have a repo? I have a very good use for this- display stock tickers.
That's just for the backend audio
are you gonna make it public, so all servers can use one hosted one?
For now. It already is hooked up to a public one
Nice
how hard is to make a plugin that allows a player to set a home/spawn
not that hard, but depending on yoru skill level
alright
super easy
where would I start
depending on your knowledge
Hello world
Sup
Sup
watch some tutorials on youtube and start to learn how to work with configs, then it should be pretty easy
i'm lost for words https://github.com/lucko/LuckPerms/issues/3125#issuecomment-890450340
lmao
$700 a year
$2 a day
still cheaper than a vps, but why would you even buy it for 3 years? its almost like hes tryna make the next big server or something
he couldve just built a budget server rack for that money and keep it on his lan lol
I mean why wouldn't you, he probably got it a lot cheaper for that timeframe than buying for like a few months
I find it so painful when people buy stuff like that before their server is closed to finished 
if you're still in the luckperms setup phase
stop paying wack amount of money to run the server that probably won't be released for another month
Ori, go update my shit
For just database you could easily just get a small vps from ovh, which would be like $60 a year, idk what vps you're talking about that'd be more than $700 a year
i already have to do that you fool
<3
i hate auction worth 
because you made it
frosty... smart...?
becacuse you made it and because you wont do plugins, I have to do it 
and I got all the shit on my ah release because I got all the shit for it breaking when you're the one who messed up 
Nah nah, my shit works fine
hello! Please update DeluxeMenus, it's such an awesome plugin! I've been waiting to use it on 1.17 :>
?
I linked you to the 1.17 dev build
May I know how do I get it?
There is a download button right there
Oh thank you!
👍
It didn't work tho.
can you move to #general-plugins please and send a full startup log?
Okay.
if (itemConfig.headOwner() != null && meta instanceof SkullMeta headMeta) {
//noinspection deprecation cringe
headMeta.setOwningPlayer(Bukkit.getOfflinePlayer(itemConfig.headOwner()));
meta = headMeta;
}
item.setItemMeta(meta);
meta = headMeta is this line necessary?
surely not right?
Maybe he’s setting it concurrently in another thread 
so it's probably not needed
i dont think
like headMeta is still gonna point to the same value
use editMeta instead then u definitely wont need it!
oh shit that's a thing
😌
well its a Consumer, so take that as u will. but probably a micro optimisation either way
I remember spigot cloning the meta 4 times or something when invoking equals on ItemStack
🌚
@fleet bay Just reading the docs and trying it out is pretty easy, if you know Java then Kotlin is gonna be a breeze
how is kotlin different?
Go to the website and look at it
kotlin syntax looks like c++ or cs which gives me chills
Oke oke Thanks!
its definitely not c++ what
I am looking forward to it now
What lmao
its syntax look like it at first glance
??
Null safety, less verbose, makes it easier to catch errors, has a really big and useful std lib, I can go on for a while
idk
No it does not
maybe im looking at the wrong language
Do you know what Cpp looks like lmao
fun main() {
println("Hello world")
}
ahh yes...freak nullpointexception
i mean those semi colons
Is that kotlin?
Yes
Yeah
Yes Jona
Looks nice
What semicolons lmao
idk
But indeed smillair to java ofc
Look at what Matt just sent
It's fun though
But if you use Java all the time is it hard to switch to kotlin?
reminds me of nasty "function" in java script
Not at all
Nah
I use both
Then i can try it atleast 😂
I code my test cases in Kotlin
kotlin is very similar to java
And main lib in Java
easy to switch over
like fun is the thing where you dont have to specify return type
You can use them interop
The best way to start kotlin is so convert a single file of your code at a time from Java to kotlin
It just comes with practice.
They can live together in the same protect
c++ or cs > all discussion ended
Bro stfu
Yeah
lol
maybe you should stop targeting me and say i am mad
:)
just because i rejected your opinion
Dude yeah "functions" are the worst
public class Person {
private final String name;
private final int age;
public Person(final String name, final int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
In kt
data class Person(val name: String, age: Int)
not counting records
man
yes true fun is nasty
@ocean quartz record smh
But but but
Lol
What the heck
beanz
Holy shit
Shhh
Getters and Setters are automatic
Its so much cleaner
You can override them if you need to
like what?you are having constructor beside class definition?
and dont even have to initialize instance variables?
imagine using lombok inside kotlin
Damn
I mean technically isn’t that possible
Lol
no
but no
That is such a common pattern in Java they made it automatic in kotlin
Confusing the JVM 101.
yeah but loses more flexibility tho
How
No it doesn't
How?
You can still override and define the ones you need
You can still do the Java thing the hard way
u can still have an explicit constructor with the init keyword in kotlin
^^^ you can still have multiple constructors
ohh alr
This is just a nice shortcut
thats nice ngl
i refuse to use kotlin cause i like NPE
but what about KNPE 🥺
I refuse to use Kotlin because I target Java users
yeah all these languages... wherever they got it from, it surely weren't decades of CS and millenia of maths
And Kotlin compatability too
KNPE?
I am yet to ever use a secondary constructor
data class Person(val name: String, age: Int = 1)
Person("bob") // bob, 1
Person("bob", 25) // bob, 25
dont worry :)
😂
Kotlin's type system makes it hard to get a null pointer exception, but it is still possible if you're dumb
Lol
!! 🤡
i think its for scripting languages?
not even c++ or c have those
never loved nullpointerexception
i think they should remove it in java
there are a lot cases where you dont need an exception for null
yeah true, "functions" don't exist in c or c++
Its like you guys are saying that in Java you can make so many more mistakes then in kotlin?
Or isnt that true
Wtf are you talking about
That's what Kotlin does basically lmao
im talking about the function keyword doesnt exist in the earliest languages
Yes Kotlin is generally a safer language than even Java
Nullability is a language design though, you can't just remove it
Bro what the fuck
Then it is maybe the right time for me to start with it
such as fortran, yeah
delete null;
Kek
Yeah sure! It's easy to setup and you can migrate your files one by one
im not meaning you should remove null
null is a good thing
and in c++ they even have null keyword representing 0
but you dont need an exception for that
there are many cases in programming where you dont need an alert that interrupts the program for null
There are just a couple things only I dislike about Kotlin though
where did kotlin dream up the deranged concept of functions man
Only a couple
the hardest part about moving from java -> kotlin is the syntax 
Like the bitwise operators and some exceptions
Seriously dude
Didnt knew people where so happy about kotlin, Thanks for the tip guys
They're working on that!
this server circlejerks kotlin a lot
For a couple years already
Not really actually
🥲
not enough clojure circlejerking imo
According to StackOverflow's survey Kotlin is on the top 5 most loved languages

🙂
Now that BM has changed sides
i would still stick for java tho until kotlin has more features
and why do i feel like you guys are developers from kotlin lmao
Most loved
Whats the first language you guys ever coded with?
more features
what kind of "features" are u looking for?
Kotlin has more features already 
Paid actors clearly
yeah...
I'm glad Rust is on top
JS
go is good for servers man
C 😬
Java
It's certainly a huge step up from JS
Boomer
seriously everyone is a kotlin shill here lmao 🤣 they should use ABCL like real programmers
lol ABCL
java tbh
then when i switched to c++ i feel like i have much more flexibility
And a lot less safety lmao
lets just stick to assembly
i dislike clojure syntax
Different languages for different tasks
ABCL is more lisp-y
you're gonna love ABCL
with flexibility you sacrifice safety lmao
with all the void pointers and dangling pointers you already expect that
but flexibility > safety
Somethings wrong
22 bytes
Not with something like Rust
WHAT?
You should look into it
Lol
If you love Cpp so much
rust is like better version of cpp right
and faster
i prefer kotlin for SQL Based stuff 
Much much much safer
I want to frame some of these messages
its got much more memory safety
And without all the bloat of C and being really old
rust? I thought that was a game 
ohh alr thats good
i literally thought rust was some libraries like react legit like 2 years ago
Yeah no
memory safety for the win!
yep
Rust will be Mozilla's biggest contribution to the world hands down
Emily has entered the chat
firefox sucks tho
Guess what else has memory safety
firefox is slow and annoying
Not me
Very soon!
Same
Meh
idk it just keeps crashing on my pc
it serves its purpose
and chrome is much faster when it comes to gaming
get a good pc then
Maybe you need a new pc
Who games on a browser wtf
lmao
I just use Chrome but Firefox is whatevs
Lmao
yeah club penguin goes 10% faster on chrome sure
i play diep io or arras io or some shits
real gamers still use internet explorer 
"chrome is much faster when it comes to gaming" what does that even mean
use opera gx then 😉
Pretty sure there's a community run free version now
i run arras io in chrome no problem
but when i run arras io in firefox it just lagsso much
Rust 🤢
club penguin is revamped
rust good
Just like toontown and potco
i saw it went online
look at that clean ui
like several months ago
My eyes
was half concerned that screenshot was gonna dox me
i still use it to this day
there is something attracting me in IE
imagine using windows
at least you dont get that annoying warning when you browse to some cracked sites
What the fuck
i use linux, and occassionally macOS
IE is great
Cracked sites????
windows serves no purpose
use bloody tor then
idk like sites that arent that legit
and it actually allows you to download more file types
Dude this guy has got to be trolling
while chrome just completely blocks out those
You mean sites without a certificate?
no im not lmao i still use it
and im trying to dig around its source code to make it faster
yeah
Those are extremely unsafe
mans saying chrome is too secuer
sites without certificate and also malicious file types which are legit
Yo anyone wanna help me pick out a name
Okay whatever lmao
oh no @ocean quartz
Lol
I mean who doesn't have ssl
well
i manually disable ssl
fair

🤨
huh
to let others see my browsing history
i dont care if i log onto some websites without ssl
like if someone is gonna intercept the packets then let it be
for some sites

linux scares and confuses me so I gave up with ssl
lol
i got it to work on one domain and gave up after that
HTCPCP is what my homies use now
Caddy gets Lets Encrypt certs for you 
😍
ElaraGinx configures itself from your brain waves!
😳
Hawt
We need to get back into Elara at some point
I really thought I was reading Java for a few minutes
The cardinal sin of Kotlin
😔


