#dev-general
1 messages ยท Page 574 of 1
so, here, we have X, Y, and Z values again, but this time we're encoding them in to a single long, with the 26 left most bits containing the X value, then the 26 next bits containing the Z value, then the last 12 bits containing the Y value
so, let's get some values
that & 0x3FFFFFF is gonna do that clamping that we did before, but this time, we want the value to be a maximum of 26 bits, not a maximum of 4
and the & 0xFFF is going to do the same for the Y, but clamping to a maximum of 12 bits rather than 26 or 4
let's get ourselves an example, gimme a min
Original: 8111039, 217, 10505978
Original (bin): 11110111100001110111111, 11011001, 101000000100111011111010
Encoded: 520089561, bin: 11110111111111110111111011001
actually, that's wrong, I think it's converting to int here
o
Original: 982658, 733, 9799917
Original (bin): 11101111111010000010, 1011011101, 100101011000100011101101
Encoded: 270111014422237917, bin: 1110111111101000001000100101011000100011101101001011011101
```there we go
now, let's put our spaces in
11101111111010000010 00100101011000100011101101 001011011101
hmm
that still doesn't look right
actually, yes it does
it's just truncated again
lemme pad it so it's easier
pad?
add zeros on the left lol
00000011101111111010000010 00100101011000100011101101 001011011101
now, you see that broken down, can you pick out the original values in there?
if you can't, try dropping all of the zeros to the left on every value
11101111111010000010 100101011000100011101101 1011011101
what about now?
yes
now, how tf did we do that? well, let's break it down
first, we know our values, we want our X value all the way over to the left
so let's do that
11101111111010000010 << 38 = 1110111111101000001000000000000000000000000000000000000000
why 38? because 64 - 26 = 38
whats 26?
26 is the amount of bits we want for X
oh
so we want X to only be the left most 26 bits
then, we can shift Z over by 12, because we want it to be the middle 26 bits, and then the Y is going in the right most 12 bits
let's do that
100101011000100011101101 << 12 = 100101011000100011101101000000000000
still with me?
yes
right, now let's do our OR trick to get that Z value in the encoded value
1110111111101000001000000000000000000000000000000000000000
| 0000000000000000000000100101011000100011101101000000000000
------------------------------------------------------------
1110111111101000001000100101011000100011101101000000000000
๐
you see how that Z value is now in there?
yes
and also, what you see is that we have 2 extra zeros in there as padding, because we want the 26 X, 26 Z, 12 Y for consistency
now, we can do that same trick to get our Y in there
if you don't have those 2 zeros there, meaning you shifted wrong, then the encoding will be wrong
and we can see how it's wrong when we decode the value
o
let's shift by 2 extra to the left on the Z to get rid of those 2 zeros
1110111111101000001000000000000000000000000000000000000000
| 0000000000000000000010010101100010001110110100000000000000
------------------------------------------------------------
1110111111101000001010010101100010001110110100000000000000
now, let's decode that
let's shift right by 38 to extract that X that we encoded earlier
Today
1110111111101000001010010101100010001110110100000000000000 >> 38 = 11101111111010000010
once glare refreshes the buyer list, you'll have access to #voteparty where you can ask your question
thanks they are a helper french for ask with me ?
actually, the X is fine, let's try to get the Z out dkim
No sorry, we only do english in here
that's the middle value, right?
yeah
to get the Z value out, we need to shift left by 26 to drop the X, then shift right by 38 to drop the Y and all of the extra zeros we added from dropping the X
because 26 + 12 also = 38
1110111111101000001010010101100010001110110100000000000000 << 26 = 0110001000111011010000000000000000000000000000000000000000
then let's right shift by 38: 0110001000111011010000000000000000000000000000000000000000 >> 38 = 01100010001110110100
actually, I'm losing track lol
I've done that wrong, lemme try again
oh
I forgot that the value wasn't originally 64 bits, lemme fix this
1110111111101000001010010101100010001110110100000000000000000000 << 26 = 1011000100011101101000000000000000000000000000000000000000000000
then, let's shift that over by 38 now: 1011000100011101101000000000000000000000000000000000000000000000 >> 38 = 10110001000111011010000000
that also doesn't look right though... hmm...
I think that's better maybe
yeah, you can see that now
it's off by quite a few bits
you get the idea
yes
and if it was smaller
how would you remove the 0?
since wouldn't it just move to the left
the point is that you should always be shifting by the same amounts
and it may pad, it may not
you need to keep consistency in the way you encode the value so that you keep consistency in the way it is decoded
so we always want to shift our Z over to the right by 12, because then when we shift it out, we will always get what we want
you following still?
mhm
and then, finally, back to our encoding, we want to put our Y in there
1110111111101000001010010101100010001110110100000000000000
| 0000000000000000000000000000000000000000000000001011011101
------------------------------------------------------------
1110111111101000001010010101100010001110110100001011011101
Dkim is a rubber duck
and there we go

now, you want me to walk you through how to decode that? or do you get the idea from how we did the last?
I mean, this is a bit different, since we need to drop part of the value from both sides
i think i get it, so for x you'd shift right to get rid of the right stuff, then I think it'd be the correct value?
you'd shift right by 38 to get the X value out, yes
then for z you'd shift right a bit (i forgot the exact amount) to get rid of some of the right stuff, then shift left (and I think you can do it left to right, does it matter?)
and for x you can just use the & i think
so we would do 1110111111101000001010010101100010001110110100001011011101 >> 38 = 11101111111010000010
then, for our Z, I'm going to pad the left of that value with 6 zeros to make it exactly 64 bits, so I have less chance of fucking this up again lol
0000001110111111101000001010010101100010001110110100001011011101 << 26 = 1001010110001000111011010000101101110100000000000000000000000000
then, we need to get the Z back over to the right, so we shift right by 38, since we know we shifted left by 12 to get the Z in there, and we just shifted left by another 26, and 26 + 12 = 38
1001010110001000111011010000101101110100000000000000000000000000 >> 38 = 10010101100010001110110100
yep ๐ค
I think I missed something
oh yeah, ik what
I'm dumb, I need to push the values
AAAAAA
push?
this is why we leave the bitwise to the computers ๐
wait no, I didn't fuck up the left shift
anyway, you get the idea
a computer would do this fine
BardyOS ๐
lol
you can actually design your own encoding as well
you just need to know how big the value you want to encode to is and how far you can compact the values without losing too much detail
so, in this case, we know we want to encode to a 64 bit value, and we know that we can get away with only using 26 bits for the X and Z and 12 bits for the Y
now you should be able to work a bit better with bitwise
mhm :))
and hopefully I taught some of you other people in here something as well that you didn't know ๐
No
@prisma wave
Weeb
lol thats a cool song
TIL gson supports // end-of-line comments, /* */ block comments, and # EOL comments too
sweet
I was expecting a comment about the song
but I guess gson supporting end of line comments is equally important
There is no time to wait! Ask your question @tardy geyser!
LMAO ty
what
accidentally set the 24 hour delete thing .-.
piggy why are you talking to yourself
yes
@old wyvern Soooo! I got caching working ๐ฎ
First run over a minute resolving dependencies, second run cached few millis, change dependencies detects as cache breaking and reruns it again!
I am not sure what I was meant to be looking at
Doesnt moshi support it also?
idk
Task runtime, cached vs uncached, plus changing configuration dependency is detected as needing to rerun the task instead of using the cache which would be wrong
Can anyone help with an issue I am having? I posted it in the #882530561141375026
sir this is dev general
I know, just desperate to get this sorted thats all. Sorry
People just don't know what is what I suppose. Just had someone ping me in ACF Discord asking for VoteParty help, like, seriously dude?
ACF Discord 
๐
its a dev channel so I thought I was ask for some dev help. Seems reasonable to me tbh
well you are going to have to open-source your said plugin
based
if you have the source, might as well hand that xD
otherwise we literally can not help you with the current info supplied
๐ค
๐คจ
Pinky promise
why tf are libraries so big man
ayyyyy!!!!
5.5MB just from kotlin, guice, adventure and ACF
Fat
so annoying
You know what can solve that?
and that's with minimizing
๐
Slim-
๐
unironically would consider it
smelly premium plugin guidelines though
i would need to provide download links for all of the jars
which is annoying
can u make slimjar emit a list of links
that i can turn into a website or something
thatโd be cool
isn't slim jar just install the libraries on runtime
yes
why would you need them to download it individually?
What? xD
because spigot is dumb
Yugi, i wonder if we can make resolution faster
Trying to understand how it works right now, but i think running it parallel would speed it up a lot
Oh the library links?
yeah
Premium resource policy
what
Yea, it generates a file with all the links
runtime downloading is allowed, as long as there's also a way of downloading the libraries without starting a server or something
it's so dumb
inside the jar there should be a slimjar-resolutions.json in the latest version
That contains all the links
๐ ok
Very advanced ๐
๐
i will probably try proguard or something first just cuz hosting a site with the links is effort
I don't see a way to donwload from here
slimejar is really thriving, pog (:
i dont think guilds is using runtime stuff anymore
Its thriving as its the only effective way to bypass damn issues
or maybe it is
Why does it not let me play?!! ๐
So youโre taking that path...
oh ok it is
it's open source
It is
I don't think they've ever enforced that. I've never seen a plugin provide it.
oh lol
Technically I do provide it, cause it's open source.
dumb spigot
They replied with that once to someone glare
yeah
smh
Glare is yours premium also?
Not like server admins would ever complain anyways, they don't even know what's happening, they'll just see an error and post it on your reviews
๐ฅฒ
I get stacktrace reviews removed all the time.
Matt
?
you can
please show me those tricks,
but then u have to do annoying compileJava
meh
Itโs just one
imagine just excluding ArrayList function but including everything else
you can also trick the compiler into not generating any Intrinsics calls but that's a lot trickier
@ocean quartz does warzone require us to search for party before starting?
Oh wait nvm
Nah, you can go solo on trios, you can set it to fill which will give you a party or not
Found it
Or just be patient and wait the 10 seconds it takes to compile the jar smh
yea, I was looking for a "Play" button xD
Didnt realize the diff gamemode names were there
Well Kotlin will be just Java when compiled, as long as you're not accessing the STD before downloading, you're fine
easier said than done
why did they call it std?
Standard
Why not
its on purpose
Dude in front of me is playing Cool Math Games.
Why would it be blocked?
because its cool maths duh
This isn't middle school
they don't want you getting too smart
nah, I just thought they had a list of websites to block
some universities are trying to monitor student connections at home
and checking what websites they access and attention on uni allowed websites
At home? At that point thats stalking mate
using software and blocking websites which aren't allowed during class times
We have a few restrictions at uni, but only when on their WiFi
In my highschool my programming teacher was the one that took care of the school's wifi security and stuff
We were in constant battle between us finding ways to access blocked website and the teacher blocking the websites we used to unblock them lmao
Lmao
๐คข not worth it
since my main class is like the hub of my plugin
xD
|| even though I dont think its supposed to ๐คท, rip SRP ||
uh matt
what da dog doin
Yeah?
uninstall
Kotlin's new measureTimedValue is so useful holy
val (value, time) = measureTimedValue {
// Do something that returns a value
}
println("Took $time to get $value")
Actually not sure, it's probably in the gameplay menu? I play on ps4
WHY CANT I PATTERN MATCH RESULT
ah rip
I cant find anything in the graphics tab
And wow
First game thats runs fine with raytracing on
But tbh I not really sure if its doing anything
๐ฎ
I wonder if we can speed this up https://paste.helpch.at/quwiwajila.css 
Gradle currently doesnt expose those urls so Im not really sure
The issue is us resolving it ourselves
Yeah, hmm let me see what i can do
idk if u found it yet, but in general
now, uninstall the game
๐
which java version supports string interpolation?
None
๐
Yugi!
Old method: https://paste.helpch.at/bohoyiniki.css
Coroutines: https://paste.helpch.at/nofoqazije.css
I feel like it could still be improved somehow
Each resolution time is incrementing but overall time was around 20s faster
Does each coroutine have its own resolver?
ah, right, mixed it up with kotlin lol
Dont think so, might want to make sure that the internal map is a concurrent hash map tho
Seems to be
Ah alrighty
Not sure why each individually take longer tho
Some of them seem to say it took 26s on the second one
Is that inclusive of their transitive dependencies?
Uh, idk, basically i took the same thing you had but replaced parallelStream with map async then map await
is this not something more suited for parallel streams?
Parallelstream was 20s slower
๐
shadow is actually killing me
it's minimising classes that are CLEARLY in use
for no reason
xD
Minimize always has issues, specially when using guice
yeah :/
there's a pretty clear graph though
oh
ufck
fuck
i had a java file in the kotlin sourceset
๐
Senpai
reverse Android move right here
๐ฅด
Cannot use connection to Gradle distribution 'https://services.gradle.org/distributions/gradle-7.0-bin.zip' as it has been stopped.
๐ฉ
any quick way to update gradle to 7.0?
IntelliJ won't auto-update
Do you have it installed?
What kind of job could a BungeeCord plugin have, other than facilitate communication between the different Bukkit plugins on the server nodes and maybe data consolidation in one place?
Since the player doesn't interact with the plugin directly, there isn't really much to delegate to it, right?
Compared to Spigot plugins which handle Events, Commands etc etc
it's not really a plugin though, is it
couldn't it be called more of a 'server type' rather than a 'plugin'
wdym?
same as Spigot/Craftbukkit
a plugin isn't a server software
though it doesn't really do anything with the minecraft code itself
Sure it is. Take a look at net.md_5.bungee.api.plugin.Plugin
The term plugin isn't exclusive to Minecraft. It's a general term for software that can be 'plugged in' to existing software and add functionality to it.
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
yes
I suppose, yeah.
BungeeCord and a BungeeCord Plugin are two different things, not sure what you want to show us with this link.
That's like saying Spigot Plugins aren't really a thing because there are Spigot servers.
what lang does it use?
Right, so back to my question though: What's the purpose of BungeeCord Plugins that are specific to Bungee and not Spigot?
Skript, obv
More versalite language out there
PHP ๐ฅถ
I suppose they interact better with the network? Though they are only one node related, so I'm not sure
either
- plugin communication/sync, ex: luckperms
- single bungeecord plugin and config instead of one on each server, and uses packets (unless the bungee api has built in stuff for it, which it probably does), ex: venturechat
- idk
its the programmers fault!
dkim moment
Thanks!
Well, bungee plugins will most likely work with part or the entire network and only need to be installed in the bungee directory, spigot plugins need to be installed in every spigot directory if you wanted to run a specific spigot plugin on all servers
oh also one more reason (although it sorta merges with the second and first):
Keeps everything in one spot
- configs
- if you use jda then only 1 bot instance per bungee
- 1 jar
- etc
hm makes perfect sense, yeah
The most common ones probably are chat, moderation and permission plugins, but there's just about anything too, mailing systems, friends etc
does bungee include the spigot-api? can bukkit specific methods and classes be used if I don't package the api in the jar?
No
no
they are two different apis
Protocolize
I know that but spigot-api includes the ChatColor api for example...
so I thought maybe there was more shared stufff
Not really
The reason Spigot API uses Bungee Chat API is because md5 is lazy fuck
I mean it makes sense, he only needs to write it once
Understandable
Go on...
๐
Gradle detected a problem with the following location: 'T:\Projects\main-contributions\slimjar\testing\build\resources\main'. Reason: Task ':testing:shadowJar' uses this output of task ':testing:slimJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.1.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.
๐
gradle this, gradle that, what happened to good old "add to build path" in eclipse!
๐ฅฒ
the trickiest of them all
hes from dev den. im not even active there idk why he thought dming me would get him the answers he needs about javascript lmao
teach him the if statement
when {} ๐
else(false) {
// runs code
}```
if {/*() -> Boolean*/} (/*method reference*/)
else (false) { /*() -> Unit*/ }```
actually lmao
while (condition) {
// if is true here
break
}
Because if expressions have to have an else branch there's when for side effects with conditions
when (input == "hello") (putStrLn "hello there")
what a good language
indeed
It does make sense
Kinda
when only works with monads
if is more general but needs an else
isn't when like a kotlin thing?
@old wyvern Is the preresolved needed?
can I stream map from List<String> a method like PlaceholderAPI#setPlaceholders?
yea
lore = lore.stream().map(str -> PlaceholderAPI.setPlaceholders(p, str))
.collect(Collectors.toList());
correct?
try it
Looks good
looks good to me
looks good
Lmao
lol
Lmao
wdym?
oh that
its to make sure its incremental when possible
So if any old resolutions are available, it will use that
Hmm, it's currently causing some issues, it works for adding to it, but not removing from it
oh
Should I remove that or add an option to remove from as well?
Removing that might cause it to reresolve dependencies
Hmm okok, let me see if i can add check to remove from as well
Actually does it really matter? 
I mean it's just resolution, what slimjar checks is the main one from slimjar.json right?
It uses this so it doesnt have to resolve at runtime
Removing the precompiled map will just cause a longer compile time
No difference at runtime
But like, let's say it doesn't have a dependency in slimjar.json but does in the slimjar-resolutions.json would it ignore it?
Yea, it would just ignore it
Ah so removing actually doesn't matter much
yea, just that redundant data would remain
Awesome!
[Clean compile]
1.3.0: 1m 2s
1.3.1: 23s
[Add 1 dependency]
1.3.0: - # Same as clean
1.3.1: 3s
[Remove 1 dependency]
1.3.0: - # Same as clean
1.3.1: 3s
[No dependency change]
1.3.0: - # Same as clean
1.3.1: UP-TO-DATE 5ms
๐
Dev
๐ฅ
Matt I need of your weeb expertise
ok
have you watched mekakucity actors?
I have not ;o
idk what that is lmao
Seems to be like a slice of life comedy
I watched it a really long time ago and I don't remember anything lmao but a few songs
and I wanted to know if you watched it because [REDACTED]
emilyy weeb yay
ew no fuck off
Yeah sorry never heard of it ;x
I tend to lean more towards dark anime
bro aot s4
wtf happened
eren
No one knows, the ending was so confusing ๐ฉ
I havent reached the ending, I was watching s3
but someone spoiled that eren becomes the villain in s4
yeah Yugi
its controversial
however apparently the author is gonna make an alt ending
Yeah
Oh boy, you'll see later how it ends ๐
๐ฃ
Some people love it, the entire twist
Tho personally I despise it
also watched in dubbed so idk if my opinion counts but myes
I saw a clip on yt where he says he forgives reiner because they are similar and then proceeds to kill him
Or atleast I think reiner died
It doesnt show him eating reiner
so not sure
I think titan shifters cant* die from normal injury or something (?)
idk
they probably can
like uh
rayna or what he's called
almost died from those rocket spears
but he was able to transfer his consciousness

๐ฎ ๐ฅ
Still getting this error though, gonna see if i can fix
Extension with name 'slimjar' does not exist. Currently registered extension names
omg I just read the changelog for Kotlin 1.5.30
this is so fucking useful when working with something like Guice, where you need to create an instance of an annotation to specify parameters to look for with that annotation
holy shit that's a big pog
or at least, it is for me lol
wtf
Lmao
that is a fucking huge pog
https://kotlinlang.org/docs/whatsnew1530.html#improvements-to-type-inference-for-recursive-generic-types this looks really nice too
that second one means you can tell the compiler about nullability annotations so it can shut the fuck up and stop whining at you for platform types when there's clear nullability info
Also yesterday i saw this, an annotation annotating itself
couldn't find a better gif, so get the one with the trashcans
lol
Hm another question that might be dumb. I don't think this is possible but I've been wrong before.
I noticed that net.md_5.bungee.api.plugin.Plugin and org.bukkit.plugin.java.JavaPlugin share some methods. Is there a way to declare an interface and have a wrapper class for either of those Plugins, such that the wrapper class exposes those methods with the same signature?
The goal is to make a class that takes either the bungee Plugin or the JavaPlugin, as if they had a shared Super class, so that I can call the getDataFolder(), getLogger() etc methods without casting to the appropriate plugin
you can actually yes, just make the plugins extending JavaPlugin/(bungee)Plugin also implement that other class, even if you don't implement the methods yourself, the abstract classes will
it's p cool
not sure I understand, do you mean I can make a plugin like so: class MyPlugin: JavaPlugin, Plugin {...} and the getDataFolder() method will work both in Spigot and in Bungee?
But that would generally be a bad idea though. I would have to package both APIs into the plugin instead of just having them compiled and provided by the server they run on at runtime
hmm
what?
interface CommonPlugin { // in a common module or smth
File getDataFolder();
}
// bukkit, will work just fine
class BukkitPlugin extends JavaPlugin implements CommonPlugin {
// bungee, will work just fine
class BungeePlugin extends Plugin implements CommonPlugin {
although I'd be extremely careful though
any binary incompatible changes and the class will fail to load
How can I implement multiple bukkit runnables with a good time complexity?
Wait maybe wrong channel
thanks
Ooooooh... that actually makes sense, thanks!
@obtuse gale add me to discuss about your request
what on earth
yeah well I have no idea how components work lmao
then what does getLore return?
List<Component>
basically this
List<Component> lore = CI_LORE.stream().map(this::format)
.map(Component::text)
.collect(Collectors.toList());
take a look into the Component#replaceText method and the TextReplacementConfig (Builder) interface;
wow look you asked the same thing in paper
wowzas
why not ask in #720374890472931328 while youre at it
why not just shut up lmao
Component doesn't have .replaceText
not in 1.16.5 at least
it sure does
it's not static
Class#method usually denotes an instance method, Class.method a static one
yay
any highlights?
I wouldn't really rely on that soft warning
it's a bit too invasive IMO, I have it disabled
yeah
so, Record is basically a Class with less hassle
eh
just because something can be a record, doesn't mean it should be
a record is meant to be an "immutable data carrier"
how could you
IntelliJ says, IntelliJ knows
For instance, something like a GameProfile seems ideal for a record, UUID, String, and that's it
but that warning is too aggressive
well, then, a simple class is better off a record, whereas a more complicated one is better off as a class
@ocean quartz is there a way of "undoing" a GuiItem
I tend to use records a lot when it comes to config entries, e.g.
public record ConfigCommandEntry(String command, long delay, RunAs runAs, boolean firstJoinOnly)
public record FilterEntry(Pattern pattern, String replacement)
things I can (de)serialize with ease and it just makes sense for its purpose
by that i mean removing the nbt tag so that they can be combined with normal types
i guess i can just do it myself
but ew
I guess having a strip method wouldn't hurt
you could have something like GuiItem#getNormalItem
Yeah, i can add that
๐
so a record is itself a constructor or it just, kinda, auto-generates a constructor with provided params?
since a record can also contain other constructors
Records are basically classes, with fields, constructor, getters, setters, to string, and equals
and hashCode too, very important
Oh yeah and that
and pattern matching soon
I suppose by default hashcode will differ if any values between objects/records are different
Ima just go to sleep, my brain is fried
yeah lol
goodbye
how do u mean
final, immutable, equals and hashCode etc depend on the value
idk the formal definition though
== is a no go etc
e
Ye theyโre value based
JapaneseDate 
ching chong
Wtf is Minguo
you don't know?
Republic of China calendar
๐ฌ
this sounds so oddly out of this world lmao
yeah
This calendar system is primarily used in the Republic of China, often known as Taiwan
Sort of correct ye
ok cool
๐ฅถ
Using == is unsafe right on them
the factory methods thing wouldn't fit in a record or a string
is this someone important
although that can be made for record
kyori dev?
Lmao
no
sad
why
they joined devden
i want to know if i should get out the red carpet or not
It's an impostor!
We have two emils now
@serene cave @mellow valley
corporate wants you to spot the difference between these 2 images
๐ฅฒ
lol
Also while yall are here, how does noon uk time sound for end of voting and beginning of the contest tomorrow?
sure
sure
Tbh using that because it's same as here, lisbon time ๐ฅฒ
GAAAAAA
@boreal needle I found a new name for you Cryystal__
As much as I love Crystal as a name, hell I'd name my own daughter Crystal, it sounds like a hooker's name
why do you think blitz selected it for lucyy?
'cause she a hoe
if you don't like that, you can use Q3J5eXN0YWxfXw==. It is the base64 version.
based
64d
oh and also someone recommended: H3NT4I_QU33N or โฟSniper_Little_Bunnyโฟ. I like the base64 one more but you can chose
๐ฅด
Lol
I believe so
It really does
im tryna make a placeholder but how do you get the players name that it is showing to
what is devden
its the heaven. but on earth.
ikr!!!
or the hell. depending who you ask
I'm glad I'm not the only one that thinks that
based and good
how do i join it
#development for support btw
you pay a fee
you'll get trolled in this channel lol
of 3 chicken legs
bump
google it
when you're that cool that your discord server shows up in google search?
https://www.facebook.com/TheDevDen/ first result
I'm pretty sure I'm not in the dev den anymore. I would've sent an invite.
@prisma wave mind dm advertising? in my dms of course.
oh
๐ฅด
lol
That's the one!
dead server
What is block metadata in 1.8? Btw I'm implementing it from scratch just for fun ๐
?
I got a notification
lmao
๐
Alex. Imagine calling him by his real name. who does that.
Imagine
because my phone said "Alex ..." lmao
lmao
The best of helpchat link
my screenshot got into Best of Helpchat ๐
here. @eternal compass
probably cube didnt agree ๐ฅถ
I found it
.
Ok
I think he took simon down as well. but simon always wins.
Literally fascism
simon deez nuts
simon is there
top 10 worst dictators in history
;p
Only bc blitz repinned
had to put him back. he was taken down as well
oh i see
blitz will get that reply forever
to anything
I have decided
I actually love that video.
whenever I'm bored or having a bad day I just watch it on repeat and everything gets better
yugi, I probably thanked you 20 times already but thank you once again
decided deez nuts?
decided deez nuts.
deez nuts deez nuts?
deez nuts deez nuts deez nuts.
this is for you my friend https://www.youtube.com/watch?v=zYUvgxwuJbA
Dietz Nuts are protein-packed, savory sausage bites. We like to think of them as the worldโs first meat nuts. Watch Craig and Chris Robinson enjoy Dietz Nuts!
For more, visit https://dietzandwatson.com/.
how dietz nuts taste?
https://i.imgur.com/xtu0Wg1.png I keep forgetting to bump the version ๐ฉ
Pepega
no
ยฏ_(ใ)_/ยฏ
also; can someone tell me if https://github.com/Fredthedoggy/FrogPanel makes any sense to someone who has enough technical skills to install pterodactyl, but not much else?
Canonical constructor access level cannot be more restrictive than the record access level ('public')
thanks java I hate this
As someone that pretty much fits that description, it makes sense to me
Thanks lol
Good Morning people. At this point i don't know what to do because IntelIJ just randomly forgot my classes exist even though they are in place.
psst, you have a few misspellings and weird capitalizations in the warning section under Manual installation
Like when i call a constructor, it shows that such thing does not exist (even though it clearly does)
Invalidate Caches and Restart!
who dat
Invalidate Restart and Cache
It's under the File Tab
๐
Lol fr
I was confused by that restriction too first, but records are meant to be transparent data carriers, so it also makes sense at some point
also I'm pretty sure that will help with pattern matching
nah a different type of pattern matching
I remember when I said something like that and then sxtanna called me an idiot
good old days
Anyway yeah
Language pattern matching is a way of testing the structure of your data
What languages are you familiar with?
ok I don't care
Kotlin has some rudimentary pattern matching
Python is actually pretty good since 3.10
But functional languages do it best
x, y = get_some_list()
I think that's how it works
x is the first element, y is the 2nd element
welp it will take a while, it's proposed as (first) preview in Java 18
I can't wait that long!
yeah wonโt u be able to do something like
record Blah(int x){}
then
if (something instanceof Blah(x)) {
}
Not surprised lol
Will fix
Hello ! I wanted to Install Forge 1.16.5 For Minecraft Mods and this Occured, I tryed for Days and searched for Videos & Tutorials. Please Help me ! When I try Download it it's says this Error Message ( I can show The Message on Private Messages )
gonna try starting work on my own personal site, just deciding what to write it in
I was thinking maybe Nuxt/Vue, and Ktor for anything backend
yeah, though the "real" use case is records mixed with sealed interfaces, so you can write something like
sealed interface Expr {
record UnaryMinus(int value) { }
record Addition(int left, int right) { }
// ...
}
Expr expression = ...;
int result = switch(expression) {
case UnaryMinus(int value) -> -value;
case Addition(int left, int right) -> left + right;
// ...
well I forgot the implements for the records but you know what I mean
Yeah, Javaโs getting a really glow up here
We have to celebrate
damn, JetBrains smart

those sealed interfaces definitely came from Kotlin, I swear lol
sealed interfaces are a pretty old concept
yeah true
and it's planned for a few years now
yeah
Java has had them planned before kotlin
The jep has been around for ages
For what it's worth
just Oracle probably took like 6 years to actually do something lol
well maybe
Ok it's 2 years old
java 16
I guess you could argue that maybe kotlin had the idea first, but you can't do them without support on the jvm
the JEP is 2 years old, means they likely had a working prototype at that point already
the new cycle started with java 9, means around 4 years ago
Good this guy in spigotmc discord keeps just ranting about static being the perfect use case
if my math is correct
Static is always the perfect use case ๐
Now die
static good, static state bad
Yes
Hye babe
Exactly
hello there
Hru?
Not bad, how is ur day
Imagine British go to sea again
Bri'ish empoire
Do you wont some tea mate?
lol
enough with these lame British stereotypes
Bloody hell?
man. idk why ya'll hate UK. They are the country to create the most independence days for other countries.
Wankaaa
yeah because we fucking colonised everyone and then they decided to fuck us and go alone lol
Yeah! We're really generous
I mean.. our english text book was from British
"from British" 
Actually the British way is "shedule", "skedule" is american
I mean, we use either
fuck.. they have many nick name
I will kill anyone that says shedule
Yeah but talking about originally
yeah. they really fucked you. they fucked you so hard.
Bloody mary... for god sake
stfu
they penetrated you deep
Don't mad my friend
xD
so true
I love England

silence overwatch player
Including ourselves!!
I hate when calling UK like... British... Britain, United Kingdom, & etc name
I only recently installed it back after the whole lawsuit about the fact they abuse women at actiblizzard
THE SUN NEVER SETS
How about Scotland?
based?
You guys ever heard of scottish?
especially including ourselves
Guys

