#dev-general
1 messages ยท Page 230 of 1
code
Challenges
Puzzles
all of it
sounds challenging
code everything
and puzzling
You're a comedian James

Obviously
@hot hull Enjoy
bruh day 5 part 1 ez
dude it's easy xD
day 4 was by far the hardest one for now
well at least how I did it lmao
Day 4 felt easy to me lol, this one was hardest lol
well it wasn't quite difficult, but very repetitive ugh
day 4 part one first try tho
@lunar cypress https://paste.helpch.at/aladizosal.nginx

some of the seats at the very front and back of the plane don't exist on this aircraft
tsk
classic
mate tf is part 2?
Your seat wasn't at the very front or back, though; the seats with IDs +1 and -1 from yours will be in your list.
you type the >
then hit space
then enter the message
> like this
Fefo, I can't for the love of me figure out part two, like either I'm just stupid and fucked checking offset indexes, or my input legit doesn't have a missing seat
the seats with IDs +1 and -1 from yours will be in your list
what does this even mean
I'm perplexed
there is a solution, I can tell you as much
I genuinely cannot comprehend what part 2 means
you're supposed to give the seat id that is missing from the list
it's between two other seat ids
Looping through the ids, checking if the list of ids contains - 2 of that id, and doesn't contain the id - 1, and doing the same for +
If that makes sense
My seat id would be -/+1
show the actual thing
Not on pc, but it's this
for (final int id : ids) {
if (ids.contains(id - 2) && !ids.contains(id -1) {
sout(id - 1);
break;
}
if (ids.contains(id + 2) && !ids.contains(id + 1)) {
sout(id + 1);
break;
}
}
You need to find the seat id of the missing one in your list
The id + 1 of yours, and - 1 of yours, exists in the list which is how you find your
Added parser extensions to my lib and it allows you to create custom parsing nodes like this one, super cool
That's not the right answer; your answer is too high. Curiously, it's the right answer for someone else; you might be logged in to the wrong account or just unlucky.
:sad-blitz-noises:
lol
Lol
it doesn't change imput from part 1 to part 2 right?
Johnny ded?
input*
No
k then I messed up
fuck
this is going to take a while to debug
jesus fucking christ
I think I'll just quit now
xD
hell nah. 100 lines to go thru all those checks
that is
fucking
vague
I think I get it?
xD
That's the entire reason of the name
nah
Matt just picked random letters
and it happened to mean something
in german
what are the odds am I right?
Matt so you gonna add event triggers?
Kinda hard Frosty
Hmm
How would it trigger events?
The big problem is that the main lib is completely platform independent, it has no concept of bukkit
Talking about it calling an event when a user is tagged, just add a MentionEvent or some shit
Ah
It better have an api
Blitz
The ping stuff is not on the lib, the lib only has a new feature that allows you to create any parsing you want
Imma smack your 4head
k
This rly hurts my brain.
it seems to work
but of course it doesn't
111 ain't right
oh nvm
byr : 2011
just spoted this by accident
but why kt if (value!= null && value in 1920..2002) valid = true
also this eyr : 1933
what in the world
ok I think I give up
hgt : 155in
but I have a check
that if it ends in in then it checks if value in 59.76
omfg
FUCK ME
Found the problem
and turns out it was just 109 instead of 111
lmao
Ugh I'll have to stop you right there
read rules before you do something wrong :)))
maybe he's talking about a discord server Fefo ...
and he was lmao
and?
@fallen sparrow no discord invites I'm afraid. Only in DM
I mean the "guidelines" for #783231032282972162 don't say nothing about any specific kind of server
Your seat wasn't at the very front or back, though; the seats with IDs +1 and -1 from yours will be in your list
there are literally hundreds of possible options, this doesn't make any sense
I mean I don't expect to understand it if you don't
but If I get there before you understand it I'll try and explain
I just don't understand the problem
if I'll understand it lmao
no?
I genuinely don't understand the problem
It just means find the missing ID in the middle
Yo that airline is stupid
omfg
why don't you just number your seats?
fuck you
xD
just put me to solve problems that have been solved by others long time ago
oh my fucking god
wait is this the question?
As a sanity check, look through your list of boarding passes. What is the highest seat ID on a boarding pass?
it's literally binary
the actual BFB w/e are just a replacement for 1's and 0's
but for part 1
is it literally just getting the highest row, multiplying by 8 and then add 8?
oh nvm
I need to go thru all first
lmao
thought so
final List<String> lines = Files.readAllLines(Path.of("..", "input.txt"), StandardCharsets.UTF_8);
final Set<Integer> ids = new HashSet<>(lines.size());
for (final String line : lines) {
// one line magic :))
}
System.out.println("highest id = " + ids.stream().max(Integer::compare).orElse(-1));
lmao xD
wait its just one one line
like I thought its a loop thru all lines
then loop thru each char
unless you made it a loop and then a line
of code
it's literally just a single instruction xDD
xDD
d5p2 done 
man my brain hurts already
๐
no fefo I give up ๐ฆ
so did I
.
why did you made me think I can do it in one line?
he
now my brain has melted trying to do it
I mean I'm trying in multiple lines but still
same shit
I'll be back in like half an hour. Maybe my brain will be better
ez one liner
omg @obtuse gale I โค๏ธ u! No Homo
why lol
you figured out the stream bit is the easiest way to get the max for part 1? xD
what?
noi
no*
I mean I'm doing a max that starts at 0 and changes every time it finds a new value
no need to make it go thru the loop again
does 1.8 scoreboard has 16 maximum letters length?
yes
But how does hypixel do it
Damn. I wish I had a big brain xD
nah
seems like you can do it longer
FeatherBoard did it
you can do it 26-28 and 68-70
depending on what anti flicker you use
18euro 0.0
ok p2 is rly weird indeed
mhm ye
Welp. No choice

please don't ๐ฆ
actually
not you too ๐ฆ
there's a catch: some of the seats at the very front and back of the plane don't exist on this aircraft, so they'll be missing from your list as well.
what's the catch? xD
I don't get it
it isnt really a catch
its context
lmfao
wait if Elara's solution is in a mixture of languages
language rainbow?
that makes no sense
lmfao
2 very similar languages
i used a switch statements for that one
for d3p2?
I just don't know
I keep assuming that its the part that goes 2 down 1 right
but I think it should work now
oh
this are the positions it goes to
but apparently either those are not right
or I messed up the other ones as well
I made a boolean 2d array
and then just used a bit of modulo magic
int trees = 0;
for (int r = 0, c = 0; r < grid.length; r += y, c += x) {
trees += grid[r][c % grid[r].length] ? 1 : 0;
}
r is self explanatory, it moves down the array
wait I just realised. It skips a space for some reason
c is a bit harder. You need to get the modulo of the the added value with the length of the horizontal array
oh
lol

wait or was it actually 31 and not 32
Does anyone know where the local file history went on IntelliJ 2020.3? It used to be on VCS, which now is Git, but it's not there
I was going to ask if that Chat plugin uses Json. If only I can see ๐ฆ
its in the video lmao I am just so blind sometimes
Yeah xD
@ocean quartz Need any contributions done to it? 
Oh wow
I'll remember this Blitz
I will never say a bad thing about you
wait how will you remember?
you already forgot what I said yesterday...
and you said you'll remember that too
=remindme
Usage: =remindme <time> "<message>"
eg. =remindme in 5 hours "to feed the Llama"
=remindme in 1 year "Blitz says I suck"
Blitz says I suck
Uh what did you say yesterday
lmao
Sometimes I've got the memory of a goldfish
And sometimes I can legit remember detailed shit
Ok good
it was probably not yesterday as well
but yeah
my memory is very very very very !good
btw
did you know I'm like 35k xp away from taking your spot?
@obtuse gale should I give it another try? ๐ฆ
It's rigged Blitz
I've gained jack shit xp the past few months
I have a repo with all the code
oh well you too ...
I just wanted you to test it on my input
and see how many trees are for the 2 steps down 1 setp right
step*
Pulse already offered his repo
same as Em
Uh sure, lemme get on pc
but I ain't trying to cheat just want someone to help me debug
Send the input
yep 1 sec
oh day 6
started
just want to know the trees for the last type of input not the others
What number have you gotten so far
1 sec
I didn't save them actually lmao.
I should've
let me see what I get now
I get 34 rn
but I think I also got 45 or 44 before
One of the other two is correct
welp then I messed up the other method I guess
because I tried with 44 and 45 as well
fuck
wait a fucking second
what
the fuck
I was multiplying the stuff directly in iij and I got an answer
I multiplied it with my calculator and I got a completely different one
kek
and I'm very confused to why is that
welp I have to wait 5 minutes to test this
the result is 9.7B something right? xD
bruh I'm so lost with part 2 of day 5
its pretty easy actually
I mean fefo kinda gave me a hint
do you want it? Its not actually that big of a deal unless its that big of a deal
lmao
for me it still took 1hour to understand the problem
but I'm ... well ... me
Here are my inputs, I know it's above 520, but I legit can't figure out why this fails https://paste.helpch.at/semerokiji.nginx
int seatID = 0;
for (final int id : ids) {
if (ids.contains(id - 2) && !ids.contains(id - 1)) {
seatID = id - 1;
System.out.println("Your Seat ID is '" + seatID + "'.");
}
if (ids.contains(id + 2) && !ids.contains(id + 1)) {
seatID = id + 1;
System.out.println("Your Seat ID is '" + seatID + "'.");
}
}
how do i /give multiple enchants
give fortheboysusa diamondhelmet 1 name:&8[&4&lEnvoy&8]_&c&lHelmet protection_environmental:6|unbreaking:5 isn't working
do u know tho
From what I understand my seat would be the missing one between the + 1 and - 1 id
But there's no missing one?
Frosty the F, B, L and R are actually binary.
well
just have a mutableList of all the ids
and sort them
and just loop thru them
and check the one before
with the current one
if current != last+1
almost wrote the next sentence in romanian for some weird reason..
then there's a missing id
I just used list#sortedDecreasing() or something
then just looped thru it
but
you're in java
so no idea what methods you can use and what you can't xD
wdym?
well
The result was 9709761600
but for some reason
IIJ was giving me this 1119827008
like I have 90*278*88*98*45 but IIJ is giving me the wrong answer
There's probably a better way, but idc it works
Then before adding them to the list I properly multiply
Are you using ints?
yes
long
omg wait
lmao
wasn't it suppose to give me an error?
Nope
Bit overflow doesnt result in an error
my brain has been melting for the past 2 days ๐ฆ
lol
final List<Integer> ids = new ArrayList<>();
for (final InformationHolder holder : holders) {
final int id = holder.row * 8 + holder.column;
if (id <= 520) continue;
ids.add(id);
}
time to go to day 6 I guess
@hot hull you are ignoring the 6th bit
The higher range is not inclusive in either subList or substring
The 6th index character would be left out the way you did it
increase first subList end index to 7
uh what, so in part 1 the highest id was 901, now the highest id is 1797 after I've changed
No
Can I see your ID outputs?
sec lemme format them
You are defenitely doing something wrong
Where do you get info as a list there?
You max seat ID should be 901
I'm so lost rn
Wrong channel. @obtuse gale
Why do I get 1797 as highest ID now tho
Possibly some error from earlier moving forward
Also
?
why the mutiplication by 2?
There we go
but there's no missing number in between?
Shouldn't this give me the solution then lol?
for (int i = 520; i < ids.size() - 1; i++) {
if (!ids.contains(i)) {
System.out.println(i);
}
}
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at me.blitzgamer_88.testing.MainKt.main(Main.kt:34)
at me.blitzgamer_88.testing.MainKt.main(Main.kt)
``` What's this about?
please don't kill me for those names lmao
ye
was just there rn lmao
I see now
I'm looping thru a mutableList and removing elements at the same time.
yeah dont do that
@old wyvern Can I see your solution? Because I'm so fucking lost rn
welp I got all 6 days
both parts for each
also its weird
I was looping thru the lines
and it just didn't read the last lines
like for the last group bascially
sPoIlErS
good thing I've noticed and I just manually added them lmao
well I mean ...
I didn't spoil the answer or anything
and if group tells you what the problem is
then you're smarter than I thought xD
That already gives me the solution
no it doesn't
Blitz, show me your solution for day 5 part 2 pl0x
why in the
and it was in kotlin
Doesn't matter if it's kotlin
I pro at kotlin
I mean I literally had the list of ids
and I sorted it using sortedDecreasing or something
then just looped thru them and checked if the id at the current index is id at current index - 1
if not then I've found the id after mine
I'm still not getting any result Yugi,
for (final int i : ids) {
if (!ids.contains(i) && ids.contains(i - 1) && ids.contains(i + 1)) {
System.out.println(i);
}
}
oh nvm
val sortedIds = ids.sortedDescending()
for (i in 1 until ids.size) {
if (sortedIds[i]+1 != sortedIds[i-1]) println("${sortedIds[i]} x ${sortedIds[i-1]}")
}```
didn't delete it
huh
and I just took the one between them
show me your new data output
ok guess I'll have to go thru last years questions when I'm to bored
You do have a missiong number
xD
Yea but why does my loop not print it
idk if that check is the best I guess/
does List#contains not work at all or what
just use mine maybe
ids is a list of these values right?
yes
ye you do have a missing value
and my check works
for yours as well
if you were questioning yugi at all you know... bcz I want to feel smart
smh
yes he is
Yes
minOrNull()!! loving it
Goddamn it
yes
dw frosty. I wasted way more time by just not realising my Int was overflowing ... ๐ฆ
I spent around 6 hours on day 5..
ye I spent 2 days
on day 3 part 2 ...
part 1 I completed in like 10 mins at most
oh day 6 is out right?
It comes out 6 am my time
7 am my time I think
I mean I haven't slept all night
10:28 am
wait the leaderboard counts other years as well right?
or what's that 62 ? and why am I number 5
its out ?
it is
been out for like 4 hours
oh
Yea I was just saying when it comes out :p
3 and a half hours exactly rn
oh
so its literally at 7 am for me. when the daily resets
where is 03:30 am rn?
US?
yep
it resets at 00:00 New York time
the daily I mean
day 6 is easy lol
yep it is
I completed it in like 5 minutes
because I had to google what that error was
xD
@old wyvern What u slacking
I aint tho
Oh
Morrisons enterprise software
lol
AbstractPriceReductionStickerFactoryBean
what is that tho
What's what
whats being reduced
Chicken Kievs
for 88 cents or whatever the fuck ur money is called ?!?!?
//Superset of yaml, can be used for object definitions
2
so objects are eqivalent to their yaml definitions?
as in the type Person also represents a yaml structure by default?
#showcase so its just like kotlin... but a bit more shit?
or am i missing the point lol
It's like Skript but good
Simple syntax, interpreted, no need for any complex Gradle setup
Potentially
It's more like JS and Python
But yeah specific to spigot
Command literals, potentially GUI literals
Second syndrome?
I think hes talking about this being after elara
no, what I mean by that is like this notion of "we're going to remake this thing/idea, but we're gonna get rid of all the mistakes"
and then it never gets anywhere
Oh I suppose
As I said, it was just an idea, it might not come to any fruition. But I like the idea of being able to make little scripts with an actual language
And since nashorn is being removed, there's a "gap in the market"
I didn't mean to say that in order to get you to ditch the idea or sth, just to be clear
yea I know
starting out with the aesthetics for something so complex simply never has worked out for me
@prisma wave send you wall please
what wall
wtf who deleted my showcase
It wasn't even a joke
Firstly, it's a compiler hack. The Java compiler isn't intended to be used like that and so it can cause compiliation errors, or worse:
I was working with a project using Lombok recently and method references for a lombok generated method were causing some pretty difficult to debug runtime errors.
Secondly, it requires an IDE plugin. You have to properly configure your build tools and IDE to avoid hundreds of errors, and installing an IDE plugin + setting up annotation processing takes time, especially if you're inexperienced.
Generated code also doesn't show up in Javadocs, so unless users have source code available it's going to look like nothing is accessible
If Lombok's code generation does something unintended, it can be difficult to debug, and usually requires you to remove the annotations and do a certain impl manually anyway. However, once you get used to this it's very discouraging to do, so it's easy to rewrite an entire class just to make it work with Lombok
There's also an extra degree of complexity with Lombok. Java is supposed to be explicit, and transparent. If you don't notice an annotation at the top of a class, it's easy to wonder where a method is coming from, or why a field is never initialized.
It also can be harder to work with. Again recently, IntelliJ couldn't find usages of a constructor, because as far as it was concerned, there was no constructor - Lombok generated it - meaning I had to find every usage of the class and search for a constructor which wasted a lot of time.
A final, slightly petty point: Lombok'ed bytecode doesn't match the source code (obviously), but it means a pretty annoying IJ warning (look at BungeeCord source for example)
Lombok may seem good in the short term, but it comes with a heavy price. Favour IDE generated boilerplate, or consider using a language like Groovy or Kotlin if you really dislike boilerplate.
nah lombok is mad
This man
You man
Joe mama
Actually I'd use it for the NotNull and Nullable stuff
It can autogenerate assertations iirc
So can intellij
No?
I mean you can for instance put
void x(@NotNull X x) {
}
//Will become
void x(@NotNull X x) {
Objects.requireNonNull(x, "x is null");
}
iirc
can intellij do this?
I believe so
bruh
It does codegen for Jetbrains @NotNull
you sure?
so I can just put the jetbrains one and then when building it will be like that?
yes, but it's bad either way
lombok hacks the compiler and intellij couples you to its build system
I can think of certain instances where a compiler hack wouldn't be preferred. But I think it doesn't matter that much for just @NotNull in parameters
they both suck
nah
Yes
Firstly, it's a compiler hack. The Java compiler isn't intended to be used like that and so it can cause compiliation errors, or worse:
I was working with a project using Lombok recently and method references for a lombok generated method were causing some pretty difficult to debug runtime errors.
Secondly, it requires an IDE plugin. You have to properly configure your build tools and IDE to avoid hundreds of errors, and installing an IDE plugin + setting up annotation processing takes time, especially if you're inexperienced.
Generated code also doesn't show up in Javadocs, so unless users have source code available it's going to look like nothing is accessible
If Lombok's code generation does something unintended, it can be difficult to debug, and usually requires you to remove the annotations and do a certain impl manually anyway. However, once you get used to this it's very discouraging to do, so it's easy to rewrite an entire class just to make it work with Lombok
There's also an extra degree of complexity with Lombok. Java is supposed to be explicit, and transparent. If you don't notice an annotation at the top of a class, it's easy to wonder where a method is coming from, or why a field is never initialized.
It also can be harder to work with. Again recently, IntelliJ couldn't find usages of a constructor, because as far as it was concerned, there was no constructor - Lombok generated it - meaning I had to find every usage of the class and search for a constructor which wasted a lot of time.
A final, slightly petty point: Lombok'ed bytecode doesn't match the source code (obviously), but it means a pretty annoying IJ warning (look at BungeeCord source for example)
Lombok may seem good in the short term, but it comes with a heavy price. Favour IDE generated boilerplate, or consider using a language like Groovy or Kotlin if you really dislike boilerplate.
why the repost
Because he asked for a reason that Lombok sucks
elera mitten thats specifically why lombok suck
Also, it's totally unnecessary for parameters. If you have @NotNull, it implies shit will break if it is null, so all Lombok does is move the exception to the first line
also to add to that, if you want those language features you're better off using a different JVM lang
It might be better to make it throw an exception early sometimes em
Well I prefer to
literally makes no difference
Firstly, it's a compiler hack. The Java compiler isn't intended to be used like that and so it can cause compiliation errors, or worse:
I was working with a project using Lombok recently and method references for a lombok generated method were causing some pretty difficult to debug runtime errors.Secondly, it requires an IDE plugin. You have to properly configure your build tools and IDE to avoid hundreds of errors, and installing an IDE plugin + setting up annotation processing takes time, especially if you're inexperienced.
Generated code also doesn't show up in Javadocs, so unless users have source code available it's going to look like nothing is accessible
If Lombok's code generation does something unintended, it can be difficult to debug, and usually requires you to remove the annotations and do a certain impl manually anyway. However, once you get used to this it's very discouraging to do, so it's easy to rewrite an entire class just to make it work with Lombok
There's also an extra degree of complexity with Lombok. Java is supposed to be explicit, and transparent. If you don't notice an annotation at the top of a class, it's easy to wonder where a method is coming from, or why a field is never initialized.
It also can be harder to work with. Again recently, IntelliJ couldn't find usages of a constructor, because as far as it was concerned, there was no constructor - Lombok generated it - meaning I had to find every usage of the class and search for a constructor which wasted a lot of time.
A final, slightly petty point: Lombok'ed bytecode doesn't match the source code (obviously), but it means a pretty annoying IJ warning (look at BungeeCord source for example)
Lombok may seem good in the short term, but it comes with a heavy price. Favour IDE generated boilerplate, or consider using a language like Groovy or Kotlin if you really dislike boilerplate.
Ikr
Since I do most stuff in java 8 since its lts the npes aren't helpful so doing early checks is easing it up
but ye im generally against lombok
it's still a compiler hack
the end is one thing, the means is another
presumably
Lombok is work of LUCIFER... Both start with letter L!!! want more proof??... Lombok has 2 syllables, Luci*er has 3... 2 + 3 = 5. 5 in binary is 1001... Times by 2 is 2002... Year 2002 was release of Star Wars Attack of the Clones... Which is the worst star Wars movie
Obviously
obviously wrong
whAT
mandolorian is good
mangolorian
๐ณ

no
What's the best way to detect if two or more zombies are within like 5 blocks of each other?
@ me
getEntitiesNearby @lavish notch
So I just made my own item builder and... here's my result 
nice
what are you trying to do
Stack 'em
well... I want it that if they're moved close to each other - they stack
Well I don't know if there's an event for this purpose but you can keep detecting them on their spawn
Couldn't match type โIntโ with โt0 [Int]โ โ
weak
this reminds me of java generics
lmao
Provided <I,O>
Required <I,O>
expected Option<T> got T ๐ฆ
t.unwrap()
fucking ? capture of ? extends T
t.is_ok() {
let mut the_t = t.unwrap();
}
Yes
Hello cheater
Hi just a quick question. For deluxeTags do you guys support HEX codes?
yes, simply do a multiplicative inverse of the code with (filter #(invert % 2) (square x)) and you should have an answer
wrong channel ask in #general-plugins
@prisma wave No Elara, weak.
Working on it
Just fork fork bomb and you should have a nice rainbow
Unless forks don't count
Which I'm pretty sure they do
nice
I deadass wanna learn rust
then do it
But fuck idk what to make
hmm, not necessarily
I mean isn't it designed for systems programming?
yes
didn't express myself correctly, it's still a high level language is what I mean
do you have any prior experience in that field
Not much, no
you could make your own version of redis
Hm
Like with an actual server
That would be kinda interesting, but I don't think I have enough understanding of how redis works for that
Link?
Be aware that Rust is a hard language to learn
Tbh I also wanna start working more, but I really don't have any programming work rn lol
I mean nothing's hard to learn if you try
Maybe a good project would be a web server framework
First start off with some small projects, then eventually web server
potentially
I find Project Euler is good for learning the absolute basics of a new language
Maybe I should focus on getting some more programming work and learn rust on the side
yeah I would say Rust and Haskell are probably the 2 hardest languages to learn
modern languages
Haskell, never really looked at that lol
Another safety obsessed lang
RUST is the best language.
they both take a lot of work to become productive
although I can only speak for rust here, not even much
I personally do not like rust at all
can you help me change the crafttweaker script from 1.16 to 1.12.2?
perhaps that is because of my wacky introduction to the language
I honour the novelty of the concepts etc
But I don't really like its static-ness (idk the word for that lol)
I mean. I've only made super basic stuff. Not really touched upon lifetimes very much
I mean the main thing for me when learning a new language is if I'm gonna use it
I know several languages I'm not using
Rust is probably gonna be the same case lol
I mean cool I guess that you've made a compiler that can guarantee the safety of my program but if it takes me until tomorrow to even figure out which types, lifetimes, patterns and borrows I need to use until I can even compile anything it's not fun for me
#dev-general message do I need to enhance anything from here? 
I mean I have an item builder class I think somewhere on my github
Yes. Perhaps make option() -> meta() and setTitle and setLore to title(), lore()
meta()
.title("The title")
.lore("The lore")
FactoryResolver.resolve(IItemMetaFactory.class)
Why niall
just why
Sure if you're feeling it https://github.com/TriumphDev/chat/tree/development
Also, @prisma wave up for small class review?
Absolutely
Let me know if this feels too clustered or not SRP enough
https://github.com/TriumphDev/chat/blob/development/main/src/main/kotlin/me/mattstudios/triumphchat/chat/ChatMessage.kt
Srp lol
AUDIENCE.audience(it)
I feel like this would be better as an extension function
the mix of imperative and declarative is a little bit odd, but it's probably not a problem
Whatโs declarative now again?
functional style
Ah
Whatโs the difference between functional and declarative then?
Yeah, kinda want to make it more declarative
That arrow code could be cleaned up Matt
the difference is subtle, but as far as I know: functional programming is always declarative, but declarative isn't necessarily functional
That one is kinda rough to clear though Frosty
yes
Atleast 1 if can be cleaned
functional is a style of declarative programming
The instance check
where your program is represented as a flow of data through a composition of functions
hot
Not really, because inverting the instance check doesn't smart cast, which is what I need on that specific case
val pingEvent = PlayerPingEvent() - there's either some nasty side effects going on here or this isn't necessary
if (something is Something) {
// this is something
}
// this isn't
Isn't the same as
if (something !is Something) {
// this is something
}
// this might not be Something still
and I think handlePing should be in another class if we're going pure SRP
or another file rather*
scary
Yeah thought about that too, but unsure if i should
there's no downside
the coupling with AsyncPlayerChatEvent is also a little strange, imo it would be better to just take a player, message and receipients and then have a factory function for AsyncPlayerChatEvent
Yeah i'll have to change that one in the future
Need to change the handle ping as well, currently it's sending the ping when the message is created, instead of when the message is sent, in reality it shouldn't make any difference, but the event is cancellable so it would later on
Fellas I am forfeiting my num. 1 position on the leaderboard as I will not be around my pc for a few days
F
Is there any good 1.8 rendering apps/files. So players would not get lag if then explore the worlds
I highly doubt that would ever be an issue on 1.8
Ew legacy
Why shouldn't it be hated?
I don't have nitro anymore so someone please post the emojis from paper saying outdated



:l
Also why are you on 1.15 instead of 1.16?
Stoph xD
1.12, 1.8 are understandable ish, but 1.15 .-.
Was a genuine question though not trying to bully, we only bully 1.8
saddasdas
tedtdatou
:<
Yamete
oh do i
Anyone have any good wiki recommendations? (You have to pay for wikis on private github repositories)
gitbook
thx
Anyone know an alternative to jitpack but for private github repositories?
not mavenLocal
hmmm
What is the point of wiki for a private repo? .-.
because I share code with others
oof
just use paste.helpch.at bam
then just have a readme in the repo?
wdym
o
Or go open source 
I do not
The wiki is mostly just to remember things (like commands, perms, api, etc)
just document in the code?
Gitbook is great, if you go open source you get premium Gitbook for free 
Well you need an actually active open source repo
Free gitbook, free intellij ultimate, and many more
Open source 
so how you guys doing?
๐ฎ
Doing fine, wbu Blitz?
ok
okay, so
back to my original question:
I'm doing ok
nevermind
yes
beautiful
that's like a 8 spaces TAB?
beautiful
could have been 12 tho
just in case
SQLClass.getPlayerDataSingleContent beautiful


