#dev-general

1 messages Β· Page 462 of 1

prisma wave
#
fun <T> new(t: T) = t

val map = new(Map())

new helper lib for kotlin 🌚

lunar cypress
#

two vectors can be equal but won't have the same hashCode

jovial warren
#

ah good point

prisma wave
#

🀨

jovial warren
#

dkim's your master?

#

wat

#

now I want dkim to respond

#

I wanna find out more about this

jovial warren
#

maybe storing them in a map

#

since don't hash maps use hash code for storage and equality?

#

or some form of hash anyway

lunar cypress
#

They use both

#

but first hash code

#

so you can store 2 equal vectors and get different results

jovial warren
#
    public int hashCode() {
        int hash = 7;

        hash = 79 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32));
        hash = 79 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32));
        hash = 79 * hash + (int) (Double.doubleToLongBits(this.z) ^ (Double.doubleToLongBits(this.z) >>> 32));
        return hash;
    }
```Bukkit's `Vector` hash code btw
lunar cypress
#

idk maybe you can prove that this works

jovial warren
#

maybe, yeah

#

that could be because those doubles are always representing whole numbers in that case though, and so the fuzzy equals isn't really necessary

#

changing all the coords to 10.2 though still yields the same results

#

using Random.nextDouble() for all the coordinates still yields the same result

#

ran 1000 times with RepeatedTest? still both equal

#

I'm counting that one as a win

jovial warren
#

is there a way you can get Gradle to run your tests multiple times btw?

old wyvern
#
data Human = Human {name :: String, age :: Int} deriving Show

main = print $ new Human "asefef" 45

new :: a -> a
new c = c

πŸ™‚

old wyvern
#

😌

lunar cypress
#

and doubles have too big of a range to be covered by 1000 randoms

jovial warren
#

how many randoms you want then?

lunar cypress
#

none

#

it's impossible to get anything from that

jovial warren
#

so what's the best way to prove this then?

lunar cypress
#

good question

#

if it's not true, it'll certainly be simpler to disprove

jovial warren
#

aren't most mathematical problems proved algebraically?

#

through contradiction

lunar cypress
#

eh

#

contradiction is one possible way, but to prove this one it wouldn't really help

quiet depot
#

most proofs go like: with the lord as my witness I hereby declare this as the solution to this problem

lunar cypress
#

for all we know it may be impossible to prove

#

But I'm gonna try it later

jovial warren
#

alright

lunar cypress
#

and yeah if it's false it may be insignificant

#

but I'm interested in general

jovial warren
#

yeah you've got me interested now lol

quiet depot
#

if that's what you mean

jovial warren
#

ik Maven can, I just have no clue how to do it with Gradle

quiet depot
#

u using junit?

jovial warren
#

yeah

#

I'd rather not have to use @RepeatedTest everywhere btw

#

I just want to tell JUnit to run all tests multiple times

quiet depot
lunar cypress
#

can you send your hashCode, equals and epsilon definitions again?

jovial warren
#
override fun equals(other: Any?): Boolean {
    if (this === other) return true
    if (javaClass != other?.javaClass) return false
    other as Vector
    return abs(x - other.x) < EPSILON &&
            abs(y - other.y) < EPSILON &&
            abs(z - other.z) < EPSILON
}
lunar cypress
#

I need to practice IEE 754 anyway lol

jovial warren
#
public int hashCode() {
    long var10000 = Double.doubleToLongBits(this.getX());
    int var1 = (int)(var10000 ^ var10000 >>> 32) * 31;
    long var10001 = Double.doubleToLongBits(this.getY());
    var1 = (var1 + (int)(var10001 ^ var10001 >>> 32)) * 31;
    var10001 = Double.doubleToLongBits(this.getZ());
    return var1 + (int)(var10001 ^ var10001 >>> 32);
}
```(generated)
#

EPSILON is 0.000001

lunar cypress
#

I'm going to try this for one double first

#

yeah, no, doesn't work

#

dunno what the threshhold is but if you go low enough it breaks

prisma wave
#

is there a way of only filtering a single file with processResources

#

from(sourceSets.main.get().resources.srcDirs) { i have this but that filters everything

jovial warren
#

include?

lunar cypress
half harness
#

πŸ‘€

jovial warren
#

also, whilst you're at it, you might as well also give Bukkit's hashCode a try

lunar cypress
#

it's because of (int) (bits ^ bits >>> 32)

#

There's the problem

#

If a bit before the 32th in the mantissa is different, this yields different results

jovial warren
#

ah

onyx loom
#

ive been scammed by spigot

static zealot
#

Kqliber time I guess

onyx loom
#

Kalibear

static zealot
#

😒

hot hull
lunar cypress
#

xXDylanXx

hot hull
onyx loom
#

yes!

hot hull
#

Excuse me what

static zealot
#

yes frosty. leave message is sent after you left

#

and join message after you joined

hot hull
#

Not that

static zealot
#

oh nvm then

hot hull
#

I'm on the server and it says I left lol

static zealot
#

oh Ic xD

hot hull
#

Ah there it goes

onyx loom
#

are u using krypton?

static zealot
#

crash

#

probably

hot hull
#

nein Kali

#

ploogins no work on krypton yet

static zealot
#

do they not?

hot hull
#

I mean these ones don't, nor ever will

#

I'll make one this week if I have time

static zealot
#

man KiteBoard has so many options I'm to lazy to configure this shit 😒

hot hull
#

Oh Yea I still have kiteboard on spigot

jovial warren
hot hull
#

read the next line

jovial warren
#

ah

#

I was gonna say

#

what won't ever work on Krypton?

half harness
#

oh btw @jovial warren

jovial warren
#

yes?

hot hull
half harness
#

will you include methods like World#rayTrace?

#

πŸ₯Ί

jovial warren
#

maybe

half harness
#

like

#

do/will you look at the spigot api

#

to see what methods there are?

jovial warren
#

the contributor's guide gives a detailed explanation on how the API is designed

half harness
#

πŸ‘€

jovial warren
#

first time I've actually referenced that lol

quiet depot
#

will player have a hundred getters

#

d;spigot player

ruby craterBOT
#
public interface Player
extends HumanEntity, PluginMessageRecipient, Conversable, OfflinePlayer```
Player has 18 super interfaces, 89 methods, and  4 extensions.
Description:

Represents a player, connected or not

jovial warren
#

yeah no

half harness
#

89

jovial warren
#

I'll try to split things up between classes

#

but they'll all be data classes so you can easily destructure them

quiet depot
#

that's why i went with sponge's keys for papi 3

#

so we don't have 89 methods

jovial warren
#

e.g. you can get a player's abilities with abilities, and you can destructure that into the 6 abilities that a player has

half harness
#

apparently krypton has no wiki

jovial warren
half harness
#

oh

jovial warren
#

I think

quiet depot
#

the heck is an ability

jovial warren
#

lemme show you the class

quiet depot
#

no

#

pls

#

unless u mean the abilities class

jovial warren
#
data class Abilities @JvmOverloads constructor(
    var isInvulnerable: Boolean = false,
    @get:JvmName("canFly") var canFly: Boolean = false,
    var isFlying: Boolean = false,
    @get:JvmName("canBuild") var canBuild: Boolean = true,
    @get:JvmName("canInstantlyBuild") var canInstantlyBuild: Boolean = false,
    var walkSpeed: Float = DEFAULT_WALKING_SPEED,
    var flyingSpeed: Float = DEFAULT_FLYING_SPEED
)
quiet depot
#

ah okie

jovial warren
quiet depot
#

are those called abilities in minecraft?

jovial warren
quiet depot
#

i thought u meant the playe rclsas at first

onyx loom
#

what in the hell is @get:JvmName

jovial warren
#

or at least, they're sent by the player abilities packet

static zealot
quiet depot
#

my brain is fried

jovial warren
onyx loom
#

disgusting

#

delete it

old wyvern
#

isCanFly

onyx loom
#

lmao

jovial warren
#

yeah no one wants to be calling isCanFly() lol

#

or isCanBuild()

old wyvern
#

You know what language doesnt have this issue?

hot hull
#

If you say Haskell

static zealot
#

english

jovial warren
#

I don't even care at this point Yugi

hot hull
#

I will smack the shit out of you

old wyvern
#

Rust

static zealot
#

romaian

#

and a few others

old wyvern
#

❀️

half harness
#

few

jovial warren
#

does Rust even use getters and setters?

old wyvern
#

It doesnt generate any afaik

#

So no such issues

#

πŸ™‚

#

Hence kotlin bad

#

Thanks

#

Oh, and also

#

Haskell good

jovial warren
onyx loom
quaint isle
#

Posting in here because it's not directly plugin development related:

Which is considered best practice / which do you prefer?

    public boolean isInitialized() {
        if(PDCUtils.get(player, PDCKey.LEVEL) != null) {
            return true;
        }
        return false;
    }
    public boolean isInitialized() {
        if(PDCUtils.get(player, PDCKey.LEVEL) != null) {
            return true;
        } else {
            return false;
        }
    }

I kinda feel like the last one is easier to understand, but it also looks a little more cluttered?

hot hull
#

Not really easier to understand

cinder flare
#

in that case it doesn't really matter

hot hull
#

Could just ya know

public boolean isInitialized() {
  return PDCUtils.get(player, PDCKey.LEVEL) != null;
}
static zealot
#

I personally prefer the first one but I am known for not following the best practices xD

cinder flare
#

but in general reducing arrow code and returning early are very good practices in my book

static zealot
#

also what frosty

#

said

#

even better

quaint isle
#

Yup it doesn't really matter in this case but I meant to make a simple example. Of course there are more complex situations than this. Do y'all always get rid off the else if you return in the if statement?

old wyvern
#

Yes

#

Reduce branching where possible

cinder flare
#

well this code doesn't really matter. but if you have multiple conditions, exiting early is 10/10

#

rather than putting like a million lines in an else statement

jovial warren
quaint isle
#

That code looks interesting let me try to run it πŸ€”

jovial warren
#

improvement from yesterday's in that it now supports Windows too (I think)

static zealot
obtuse gale
#

yes

static zealot
#

how nice of you. will run right now

jovial warren
#

if you're curious, for del, /f forces deletion of read-only files, /s deletes specified files from the current directory and all subdirectories, /q does it quietly (no confirmation) and /a sets file attributes to match (r = read-only, h = hidden, i = not content indexed, s = system, a = files ready for archiving, l = reparse points)

static zealot
#

gonna do it in C:

jovial warren
#

I actually wanna try that on a Windows VM now

static zealot
#

just to make sure it does the most damage possible

jovial warren
#

I love how the first one will only delete the C drive, but the second will literally delete every mounted drive because of how Linux works lol

quaint isle
#

Maybe it makes sense to check for the system drive env variable in the windows version?

jovial warren
#

maybe

oak raft
#

Basically

#

It couldn't determine the dependecies of the task

#

:compileJava

jovial warren
#

bad cert wow

obtuse gale
oak raft
#

What's Krypton again?

old wyvern
#

ok... I missed out on class for like 5 mins.... why is there a for-each in xml now....

#

Does that like evaluate to the actual "Name" fields from another xml file?

hot hull
#

Lmao

jovial warren
oak raft
#

Oh yes

distant sun
old wyvern
#

xD

#

Probably not, we just went over php, dont think vue or react is in our syllabus

frail glade
#

Whelp. It's Monday. With any luck, you guys will get through the Gradle queue today.

jovial warren
#

Gradle queue?

ocean quartz
#

I got so scared, i opened the website on my phone and it said no plugins, not even pending, i panicked and refreshed the page and it logged me out, then logged back in and it was there but still pending
Heart attacks as soon as you wake up is a good way to start your day

frail glade
#

I play that game every morning with my alarm. I snooze it about 5 times and then when I wake up in panic mode, it's a roll of the dice on the following:

  1. What day is it?
  2. Did I have class this morning?
  3. Did I miss class this morning?
old wyvern
#

πŸ₯²

oak raft
#

4) Will I OS VoteParty?

static zealot
#

its OS

oak raft
#

Lies

static zealot
#

I gave you the link before

oak raft
#

what

static zealot
#

you asked the same question

#

lmao

onyx loom
oak raft
#

oh wow

old wyvern
#

why tf does gradle take so much time to approve something

#

Why not be like npm

frail glade
#

Unless my project is personal or for a client, they typically are OSS.

ocean quartz
quiet depot
#

os good

distant sun
#

Aham

old wyvern
#

I almost managed to stay awake from yesterday

#

Tried to sleep for 30 mins, woke up 4 hours later

#

rip maths class

jovial warren
#

thinking of making chunks update when players move in Krypton, but can't decide whether I should do a Minestom and just calculate the entire new area of chunks, or come up with an algorithm to calculate the row of chunks I need to load and the row I need to unload

#

idk if the latter is even realistically possible in a way that would make it more efficient than just calculating the new area of chunks

gusty glen
jovial warren
#

wat

#

maybe

gusty glen
#

aaaa

jovial warren
#

depends on how I decide to implement async chunks

gusty glen
#

bombarby, please, for all things that are sacred

prisma wave
boreal needle
#

please dont suspend the fun :(

gusty glen
#

use persistent immutable kotlin collection for player online list

jovial warren
jovial warren
gusty glen
gusty glen
jovial warren
#

I guess a persistent collection might work

#

depends though, if it has to recopy all the elements when it's changed then I ain't using it

prisma wave
#

πŸ₯° 😘 ❀️ 😊

gusty glen
#

so I can call getOnlinePlayers inside coroutines and not get CME

jovial warren
#

it'll be thread-safe, just not sure if it'll be persistent and immutable yet or not

gusty glen
jovial warren
#

as I said, if persistent collection = re-copies list on change then it ain't happening

gusty glen
#

naaaa

#

u wrong

gusty glen
#

it aint equal to guava immutable at all

jovial warren
#

BM you think I know how persistent collections work?

gusty glen
prisma wave
#

I would assume you know the concept given how much I've talked about them

prisma wave
#

And the fact that it says what they are

gusty glen
#

think of it like immutable, but altering it doesn't recopy all the the list

jovial warren
#

I swear Johnny benchmarked these and it turned out they suck

gusty glen
#

?

#

??

prisma wave
#

????

jovial warren
#

though those results do show that Kotlin's collections aren't actually that bad

prisma wave
#

Bruh

gusty glen
#

bruh

prisma wave
#

They're pretty much the same as java for most operations

jovial warren
#

alright fine, I'll convert everything over to this

gusty glen
#

note that java results are from java util (not concurrent) collections

jovial warren
#

should probably expose this to the API

prisma wave
#

bear in mind they are largely pointless unless your code is structured around Im*mutability lmao

#

it's not gonna be as easy as changing a few types

gusty glen
#

Just the online player list is more than enough to me

gusty glen
prisma wave
#

I mean

jovial warren
#

is it worth changing everything to immutable lists? or should I just change things that should be thread-safe

prisma wave
#

Just rewrite in a purely functional language 🀣 🀣

jovial warren
#

like there's no point in making the list of command aliases immutable lol

prisma wave
#

Or arrow kt at least

jovial warren
#

no

gusty glen
jovial warren
#

not actually the biggest fan of FP from my experience with it

prisma wave
#

what experience

#

You have no experience with it

jovial warren
#

Rust technically counts

#

and I've seen your Haskell code

prisma wave
#

No it doesn't

#

Rust is largely imperative, it just has some patterns that are inspired from FP

#

Just like Java has streams and optionals

jovial warren
#

fair

#

I mean, I like declarative programming, just not functional programming

#

the lack of state blows my mind

cinder flare
#

you don't like functional?

#

what a clown

steel heart
#

I like imperative programming

jovial warren
#

ew

#

one of those primitive Java users

steel heart
#

mutability, no thread safety πŸ˜„

jovial warren
#

yeah we know you're a mad man

steel heart
#

I mean uno reverse

ocean quartz
#

BM, you're not allowed to use Rust if you don't have your tetanus shot

jovial warren
#

also, @gusty glen, thinking about online players, atm there's not even an online players list, since every player in the players list is assumed to be online

gusty glen
#

I like programming in languages that give clear error messages, no NPE trash, is not slow and have a bunch of things to alter Monads (optional, list, etc) without arrow code

jovial warren
#

and there's no such thing as offline players yet

prisma wave
#

It's always the guy that's never tried FP that's got something to say...

jovial warren
#

or at least, no way to retrieve them

obtuse gale
#

no NPE trash
Sir have you tried Java 14?

#

the error messages are pretty clear

gusty glen
obtuse gale
#

kotlin hides it.. it doesn't fix it

prisma wave
#

let's not kid ourselves, nicer exceptions don't address the actual issue

#

They're just nice to have

obtuse gale
prisma wave
#

no no

#

That's not what I mean

ocean quartz
steel heart
#

using exceptions in codeflow

prisma wave
#

They don't fix the problem of everything being nullable

jovial warren
#

it enforces it at compile-time and uses a null check at runtime

prisma wave
#

Maybe Monad 😩 😩

ocean quartz
cinder flare
gusty glen
jovial warren
gusty glen
gusty glen
jovial warren
#

or use Collections.synchronizedList

prisma wave
#

Synchronization 🀣 πŸ™„ πŸ₯΄ πŸ€“ 🀨

gusty glen
jovial warren
gusty glen
steel heart
#

Collections.newSetFromMap(new MapMaker().concurreny(4).makeMap()); if u want System#identityHashCode instead of regular hash computation ik irrelevant ok bye

jovial warren
#

also, I can just use ConcurrentHashMap.newKeySet() to get a KeySetView that's basically a concurrent hash set

jovial warren
#

you what

gusty glen
#

try to cast it to Set

steel heart
ocean quartz
#

These lazy people working at Gradle 😩

jovial warren
#

it implements Collection

#

actually what are you chatting? KeySetView implements Set lol

#

also, thinking about it, maybe depending on Guava isn't all that bad of an idea

#

would mean I could use some cool stuff like MultiMap and ConcurrentHashSet

steel heart
#

does kotlin have a native MultiMap

#

or like standard

jovial warren
#

no lol

steel heart
#

not pog

gusty glen
jovial warren
#

wat

#

English please

gusty glen
#

let me show you this

steel heart
#

ConcurrentHashSetMultimap.create() :}

obtuse gale
#

you know what has a native multimap?

#

C++ 😌

prisma wave
#

You know what could define a multimap in about 3 lines?

steel heart
#

bruh yet again C++ is > java

prisma wave
#

Haskell 😌

steel heart
#

πŸ₯²

jovial warren
#

I could probably define a multimap in about 20 or so lines by using delegated inheritance

ocean quartz
steel heart
#

lol true

old wyvern
#

oh btw matt

#

apparently the approval is only for custom package names

prisma wave
#

yeah

old wyvern
#

so if we use gradles package name theres no approval time

#

right?

gusty glen
#

@jovial warren Guava's Sets.newConcurrentHashSet() is just

steel heart
#

ConcurrentHashSet.newKeySet or whatever it's called is probably better

gusty glen
#

I told you

steel heart
#

since its native

old wyvern
#

Implementation details

ocean quartz
#

Oh is it just for package names?

jovial warren
old wyvern
steel heart
#

yeah bbg

old wyvern
ocean quartz
#

How would it be done for gradle's package? Like org.gradle.slimjar?

old wyvern
#

No idea

#

Im not fully sure of what they are reffering to by "custom" here

jovial warren
#

well, I think it's AsyncThreadedChunkLoadingFactoryManager time

steel heart
#

lmfao

ocean quartz
#

Hmm, hopefully they'll accept it today

old wyvern
#

Did you check mail matt

obtuse gale
ocean quartz
#

Yeah

old wyvern
#

They might have requested changes

jovial warren
#

I'm thinking that maybe I should handle chunk loading with a separate threaded chunk loader

ocean quartz
#

No email yet

old wyvern
#

welp

gusty glen
ocean quartz
#

Probably had no one there in the weekend

old wyvern
#

true

jovial warren
#

we're not using Deferred, we're using suspend functions

#

coroutines are not completable futures lol

prisma wave
#

Deferred isnt the same as a future

jovial warren
#

kinda similar though

gusty glen
#

but how will you get the set of entities from the main thread from a suspend function?

old wyvern
#

They dont have a then ect..

#

You have to still await in a coroutine scope

steel heart
gusty glen
#

I just suggested Deferred so I can wait inside the coroutine to suspend it

obtuse gale
old wyvern
#

suspend functions would do the same secretx

jovial warren
#

it'll just block and return immediately

old wyvern
#

Deffered is only useful if you dont want something to be actually sequential

jovial warren
#

that project name's a bit sus

gusty glen
half harness
steel heart
#

cuz CHM#newKeySet was invented in java 8 apparently

jovial warren
half harness
#

is there the error on the right?

jovial warren
#

also, if you're trying to not be suspicious, you're doing a great job /s

half harness
#

or is ur intellij broken again

#

no the right thing

#

theres 2 boxes

#

uh

prisma wave
#

yugi

#

does stack update work for you?

#

or any commands for that matter

half harness
#

uhhh

onyx loom
old wyvern
#

I havent had to use stack update yet bm

old wyvern
prisma wave
#

yeah

half harness
#

i think u have to use outdated java

old wyvern
#

Something wrong with stack?

prisma wave
#

they all fail with various http errors

old wyvern
#

Checking, one sec

half harness
#

ok

prisma wave
half harness
#

ok

prisma wave
#

cabal works fine

half harness
#

either works

prisma wave
#

it's a stack bug ig

half harness
#

bbig boomer

onyx loom
#

7.0

#

fabric

prisma wave
half harness
#

kaliber no

frail glade
#

Ahh, it looks like it takes longer for the portal to accept you if you have a custom group id.

#

Makes sense just like Maven Central.

half harness
#

😦

onyx loom
#

good

half harness
#

hi waffle king

#

D: why waffle king no say hi to me

ocean quartz
#

There is like 0 reasons to mod for 1.8

onyx loom
#

nice.

half harness
ocean quartz
#

Not a valid reason

half harness
#

please lets not go into this 1.8 debate

ocean quartz
jovial warren
#

Long2ObjectLinkedOpenHashMapFastCopy okay wtf Paper

half harness
old wyvern
#

@prisma wave Works fine for me

ocean quartz
# half harness yes

Do you know we're talking about mods right? There are literally mods that revert PVP to 1.8 lol

old wyvern
onyx loom
#

bUt My FpS

half harness
#

... the only ones that i found sucks

prisma wave
steel heart
#

1.8 pvp is nice

prisma wave
#

let me try on my vps

half harness
steel heart
#

hence 1.8 is nice

prisma wave
#

might be an issue with my pc

#

what stack version are you on?

half harness
#

forge = 40 fps
lunar = 100 fps

old wyvern
#

2.5.1

half harness
prisma wave
#

ah same here

old wyvern
#

weird

steel heart
#

ye

ocean quartz
prisma wave
#

i wonder if this is a firewall issue, could be related to gradle not being able to find plugins

old wyvern
#

possibly

half harness
#

D:

#

conclure did we duel before

prisma wave
#

yea works fine on the vps

#

weird...

steel heart
#

ye

half harness
#

who won

steel heart
#

ye

#

i did i think

#

why efe

#

they're nice

half harness
#

oh

#

D:

#

D:

half harness
steel heart
#

soon

#

soon

half harness
steel heart
#

nrn

#

he block'd u?

half harness
#

conclure πŸ₯Ί

steel heart
#

lol

#

nrn tho

half harness
#

ok

half harness
#

can u pvp in 3 hours

#

ish

#

3-4 hours

steel heart
#

no

half harness
#

ok

#

rip

#

ok

steel heart
#

I will ping u when

half harness
#

ok

#

πŸ₯°

#

what is that πŸ€”

#

uh

#

oh

#

efelib

steel heart
#

efe lol java

half harness
#

dkim19375core

#

java bad

steel heart
#

thought u were a kotlin karen

half harness
#

efe

#

java bad

#

why r u using java

steel heart
#

not tru

onyx loom
#

lol conclure

steel heart
#

java is fine

onyx loom
#

i made a plugin in java the other day

steel heart
#

lol

half harness
#

Ew

steel heart
#

how did it feel

onyx loom
#

some of it was pain

boreal needle
#

java is showing its age a bit but its really not as bad as everyone makes it out to be

steel heart
half harness
#

i dont like java so much that i converted my lib to kotlin 😎

#

kotlin only

steel heart
#

geez

half harness
#

betterdiscord πŸ‘€

onyx loom
#

like i was tryna use some of kotlin stdlib functions, but they didnt exist in the jdk πŸ˜”

steel heart
#

lmao

onyx loom
#

and having to handle exceptions too yikes

ocean quartz
#

Just wait till they release Kotlin++ and Kotlin#

boreal needle
#

imagine having friends πŸ₯²

ocean quartz
#

And Kotlinskell

obtuse gale
obtuse gale
boreal needle
#

lmao now everyones adding me

steel heart
#

alr ur friend pog

obtuse gale
#

same 😎

half harness
#

πŸ˜”

#

πŸ˜„

ocean quartz
#

We're all friends now

half harness
#

pog

boreal needle
#

yay :D

hot hull
#

No

half harness
ocean quartz
obtuse gale
#

can we finally kill ourselves in tandem then?

half harness
#

ur not on my friends list D:

hot hull
#

Yes Emily

gusty glen
#

@ocean quartz do you know if there's any speed difference between using java interfaces (Predicate, Consumer, etc) vs kotlin lambdas ((SomeObject) -> Boolean, (SomeObject) -> Unit)?

steel heart
#

secret it shouldnt be

ocean quartz
half harness
#

ooo nice

#

what

steel heart
#

crucially negligible if there even is a difference secret

boreal needle
#

hypixel is full of simps

obtuse gale
ocean quartz
#

Yeah

boreal needle
#

i have a friend thats quite heavily involved in hypixel guild stuff

#

half of his server is simpy

ocean quartz
half harness
#

but i thought ur male thonking

boreal needle
#

try being trans

#

simpΒ²

steel heart
#

lol

half harness
#

lol

boreal needle
#

ngl i think its the pfp

half harness
#

you ahve a heart in your username

boreal needle
#

and the status

#

still

steel heart
#

joe mama

half harness
#

what is ur pfp

boreal needle
#

gradient

half harness
#

also conclure u keep changing ur pfp to diff dogs

boreal needle
#

boring

steel heart
#

yeh dkim

half harness
#

hi gaby

steel heart
#

innovative πŸ˜„

half harness
#

what is RO

onyx loom
#

πŸ™„

half harness
#

aw gaby is silent now

#

😦

distant sun
#

Hey

obtuse gale
#

Romania...

#

It even shows the flag on mobile lol

distant sun
#

πŸ‡·πŸ‡΄

half harness
obtuse gale
#

mobile

half harness
#

gaby

ocean quartz
#

@gusty glen It turns into a Function after compile

distant sun
#

πŸ™‚

old wyvern
#

R0 means Romanian I think?

gusty glen
distant sun
#

Function0 @ocean quartz?

#

How lol

distant sun
old wyvern
#

Holy shit, ive been going about handling network timeouts wrong the whole time

#

smack auto reconnects

distant sun
#

I doubt

old wyvern
#

Shit was crashing for so long

#

Why tf is none of this documented

#

When they wrote "TODO" I thought they didnt implement stream management

obtuse gale
ocean quartz
old wyvern
#

Literally everything in there says "TODO"

ocean quartz
ocean quartz
distant sun
#

Wondering what I could do to learn android dev πŸ€”

#

or game dev

onyx loom
#

recreate cod mobile

#

pubg mobile

distant sun
#

Not a fan

ocean quartz
old wyvern
distant sun
#

:))

forest pecan
#

best function header:
private static final

old wyvern
#

Imagine having access modifiers

jovial warren
#

just thinking about chunk loading, would it be worth doing all the loading on a thread pool executor to keep Netty's handlers and the main thread clean?

old wyvern
#

Couldnt be haskell

ocean quartz
#

Haskell be like, public static everything

old wyvern
jovial warren
#

also gotta fix KryptonWorldManager breaking SRP

old wyvern
#

exports / imports

forest pecan
#

πŸ₯²

oblique heath
#

would it really be worth it to have chunk loading on a thread pool rather than just a single thread

forest pecan
#

static -> functional programming

#

/s

ocean quartz
oblique heath
#

you'll probably be limited by IO either way

old wyvern
#
module ModuleName (exportedFunction0, exportedFunction1) where
old wyvern
jovial warren
#

also, it's not just about speed, I want to avoid the more costly things taking place on the main thread as well

oblique heath
#

that's true, so you should still have an extra thread for chunk loading

jovial warren
#

I was thinking of using a cached thread pool

ocean quartz
#

JS is odd like, const something = "Hello" <- private
export const something = "Hello" <- public

old wyvern
#

ah

#

actually thats not for all precompilers matt

static zealot
#

on phone tho you can see the flag instead

jovial warren
#

also, vanilla likes to create a new chunk cache per world, but I'm thinking that maybe I could just share a single one between all worlds

#

meaning all worlds can use the same executor

old wyvern
#

babel doesnt have it I think, I dont remember which one exactly

ocean quartz
old wyvern
#

the one I used for quick-clash didnt suppourt dircet export statements

#

It had a exports object to which we had to add the items to be exported

oblique heath
#

does having multiple vs 1 chunk cache make a difference either way?

old wyvern
ocean quartz
#

Ooh okay interesting
Maybe what I said, only applies to jsx/tsx?

prisma wave
#

oh yugi, i think i fixed it. it was my ISP's DNS by the look of it - changing to cloudflare dns fixed the issue

old wyvern
jovial warren
#

the code inside of the submit is just basically copied from the old code

old wyvern
#

You know you're fucked when the prof declares a group activity and you know barely like 1 person from the class

#

This might be a few marks down the drain for me

prisma wave
#

πŸ₯²

old wyvern
#

I dont even remember which group I was assigned to

#

I asked the prof who just asked me to ask the other students

#

πŸ’€

hot hull
#

Bruh I don't get how you don't know your classmates

distant sun
#

Fr, I know all my classmates

hot hull
#

Same

#

we drink together fingerguns

#

We're all alcoholics

old wyvern
distant sun
#

How big is your group @old wyvern ? Or you got one for each class

old wyvern
#

It just depends on your class

distant sun
#

Makes sense

old wyvern
#

Im not gonna know all 5k-6k people at my uni obviously

distant sun
#

🀣

old wyvern
#

My choice of slot was just really poor

old wyvern
hot hull
#

You'd atleast know the people you sit next to

old wyvern
#

πŸ₯²

hot hull
#

I will slap you

old wyvern
lunar cypress
#

we'll have to do a big software project next semester too

#

I'm curious how that'll go

old wyvern
#

Yea make sure to always choose a class with people you know πŸ’€

lunar cypress
#

You register as a team in this case

old wyvern
#

Ah this was not a separate thing in my case, it was part of a course, so the prof decided the team

lunar cypress
#

Yeah I understand

#

we barely have any interactive elements so far

old wyvern
#

Do you have a project per semester?

lunar cypress
#

no

old wyvern
#

Oh so its only for the next one?

lunar cypress
#

the one in third is special, it's a whole module

old wyvern
#

Ah

lunar cypress
#

some company exploits us to make their product for free fingerguns

old wyvern
#

lol

lunar cypress
#

right?

old wyvern
#

πŸ₯²

distant sun
#

Modern slavery

lunar cypress
#

And we'll have to document the process in like 100 pages of UML diagrams and shit

old wyvern
#

Lol

#

This gives me a stroke

lunar cypress
#

no different arrow types?

old wyvern
#

Theres no point

#

The whole thing is shit

#

πŸ˜‚

weary epoch
#

@prisma wave tutorial whenℒ️?

old wyvern
#

One of my team mates decided to ditch the old project and just take one of his public projects at the last moment

prisma wave
#

maybe

old wyvern
#

He asked me to make a uml diagram of it at like midnight before the exhibition

#

And when I opened the source its just shit loads of public variables and shit everywhere

weary epoch
#

I’m very sick rn my stomach area is growling nonstop for the last hours

#

Anyways I’m gonna go lie down bye

old wyvern
#

I dont think the professor really paid attention to the diagram tho

#

Hopefully wont grade it too bad

lunar cypress
#

I bet your program isn't as bad as the one I currently need to "maintain" as an exercise in software engineering

old wyvern
#

😬

lunar cypress
#

I am not kidding, this is one of the worst pieces of software I've had to touch

old wyvern
#

God πŸ₯²

lunar cypress
#

just everything about it is so incredibly bad

#

I know why I don't want to be a professional corporate java developer

old wyvern
#

xD

lunar cypress
#

just to give you an example of one method

#

I need to test this shit

old wyvern
#

Oh lord

steel heart
#

Lmaoooo

old wyvern
#

Thats like 3 pages worth

lunar cypress
#

I have a few favourites

#

There's one method where the author randomly calls a different method that has nothing to do with the task

#

And he calls it with args that always throw an exception

#

there are a good chunk of methods that don't use their parameters

#

and 5 different methods to do the same things

old wyvern
#

xD

lunar cypress
#

but they're all different somehow

#

and this is all just one class

old wyvern
#

lmao

lunar cypress
#

You can't even reach >30% code coverage in tests because literally nothing is testable

half harness
old wyvern
#

πŸ’€ πŸ’€

#

public fields and getters/setters

onyx loom
#

setNAME

old wyvern
#

Yea

#

πŸ˜‚

onyx loom
#

oh god what is this spacing too

lunar cypress
#

lmao

#

this spacing is used in my project too

old wyvern
#

xD

onyx loom
#

sir u need some explaining to do then

old wyvern
onyx loom
#

get some help

old wyvern
#

lol

onyx loom
#

o

lunar cypress
#

The people in charge of this exercise simply enjoy mentally abusing the students

onyx loom
#

lmao

old wyvern
#

πŸ₯²

jovial warren
#

is it just me or is java.nio.file.Path >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> java.io.File

#

I just converted Krypton over to using Path over File and it's great

#

and the new Kotlin extensions coming soon in 1.5 will make working with Paths even easier and better

old wyvern
#

Guess whats even better?

steel heart
#

I mean java even encourages Path over File

jovial warren
#

IO Monad don't tell me

onyx loom
#

u guessed it!

#

haskell!

ocean quartz
#

Maybe!

jovial warren
#

surprise.exe not found

old wyvern
old wyvern
jovial warren
#

in Kotlin 1.5, you'll be able to replace resolve with /

#

e.g. val subPath = Path.of("myPath") / "subPath"

old wyvern
#

e u

#

Imagine not having custom ops

lunar cypress
jovial warren
#

I mean, what else could they do?

lunar cypress
#

leave it

jovial warren
#

or maybe + would've been better, since you're adding to the existing path, not dividing it up

prisma wave
#

(/) p a = Path $ path p ++ a
wow, groundbreaking changes from the kotlin team

jovial warren
#

lol

prisma wave
#

(/) = resolve even easier πŸ™‚

jovial warren
prisma wave
#

make new operators instead

#

oh wait...

jovial warren
lunar cypress
#

Also it doesn't look good aesthetically

#

imo

jovial warren
#

yeah I see what you mean actually

prisma wave
#

>>= looks really good aesthetically 🀀

jovial warren
#

I'm really hoping that KT-1440 gets implemented some time soon

#

though I doubt it will get implemented

lunar cypress
#

9 years ago πŸ₯²

prisma wave
#

andrey hates the people

onyx loom
prisma wave
#

simon on the other hand

onyx loom
#

yup johnny

jovial warren
#

bastard

prisma wave
#

🀣 🀣 🀣

#

sucks to be a kotlin fan

jovial warren
#

stfu BM

#

don't even try and pretend you don't like Kotlin

onyx loom
#

No need to shout.

prisma wave
#

lmaooooooooooo

lunar cypress
#

I'm gonna report your behaviour to the authorities bm

prisma wave
#

go on

#

do it

#

they are POWERLESS

onyx loom
#

lmao

jovial warren
#

lol what

ocean quartz
lunar cypress
#

9 days ago

#

lol

onyx loom
#

how the times change 😎

prisma wave
obtuse gale
jovial warren
lunar cypress
#

🀨

obtuse gale
#

Lol what

jovial warren
#

"7=5+3 esta escribiendo..." lol

ember cove
#

sad

jovial warren
#

sure it does mate

prisma wave
#

HEY MATE

obtuse gale
#

We all are, yes

jovial warren
#

sure 5 + 3 = 7

#

sure

onyx loom
#

yes

prisma wave
#

?

#

it does...?

jovial warren
#

what kinda planet you living on?

onyx loom
#

Earth

gusty glen
#

reAdaBlE CoDeJAVA return (pos != this.limit && this.bytes[pos++] == TYPE_INT) ? ((this.bytes[pos++] & 0xFF)) | ((this.bytes[pos++] & 0xFF) << 8) | ((this.bytes[pos++] & 0xFF) << 16) | ((this.bytes[pos] & 0xFF) << 24) : DEFAULT_INT_VALUE;

ember cove
#

Tell Stephan I said hi

onyx loom
#

what kinda planet you living on?

half harness
#

5 + 3 = 15

obtuse gale
prisma wave
#

3 separate versions and none work

#

shit language

onyx loom
#

no docker bad

jovial warren
#

use 1.4.32 noob

prisma wave
#

i bet ghc would work out of the box

prisma wave
old wyvern
#

Kotlin bad, haskell good, rust good, f# good, go good

prisma wave
#

that didnt work either

jovial warren
#

1.5.0 isn't released yet

prisma wave
#

the plugin is

jovial warren
#

you what

lunar cypress
#

kotlinc doesn't run for me either for some reason

jovial warren
#

I swear the plugin is still RC

prisma wave
#

no it's not

onyx loom
#

wait what

obtuse gale
#

Johnny I need your brain

jovial warren
#

yes it is BM

#

oh wait what

half harness
old wyvern
jovial warren
#

okay I'm upgrading rn lol

prisma wave
prisma wave
half harness
onyx loom
old wyvern
onyx loom
#

o

oblique heath
prisma wave
old wyvern
#

I dont have any blue around here

#

I live in red

half harness
#

recursion messes up my brain

prisma wave
#

recursion ez

oblique heath
#

that's unfortunate

half harness
#

indeed

prisma wave
#

and you dont even need recursion a lot of the time, stdlib functions do it for you

oak raft
#

do you know what recursion is? πŸ€“

prisma wave
#

yeah MATE

lunar cypress
prisma wave
#

ok fr

half harness
#

remence dont get tricked into learning haskell

prisma wave
#

why is shit kotlin plguin not working

half harness
#

its good and bad at the same time

prisma wave
prisma wave
lunar cypress
prisma wave
#

oh boy

lunar cypress
#

it's a fun one

prisma wave
#

i just googled that

old wyvern
#

It was there for a clash

#

lol

lunar cypress
obtuse gale
#

πŸ₯²

#

Pls I have railgun

prisma wave
#

docker bad

#

pls

#

help

#

WHY

#

it works on my vps

onyx loom
#

dont use docker

prisma wave
#

why does it not work on my pc

#

NO

obtuse gale
#

oh duh that's what docker is for

#

just use docker

#

for the docker

#

ez

prisma wave
#

QIDJQIDJD

obtuse gale
#

B.A.A.S - Too many caps!
No need to shout.
Barry's Anti Abuse System | v1.4.4

onyx loom
#

No need to shout.

prisma wave
#

IT DOEsnot BUILD

#

SAME ERRO

#

on ANCIENT kotlin version

#

WHY

lunar cypress
#

descending into madness

prisma wave
#

I AM

#

3 DAYS

onyx loom
#

i think someones having a mental breakdown

prisma wave
#

WHY

obtuse gale
#

No need to shout.

prisma wave
#

REINSTALL

onyx loom
#

ur gonna get muted 🀣

prisma wave
#

GOOD

#

MUTE ME

lunar cypress
#

bm your support in training role is gonna magically disappear

prisma wave
#

DONT CARE

onyx loom
#

support in training for 1 day

prisma wave
#

AAAAAAA

#

CLONE ON VPS

onyx loom
#

have u saw a therapist recently

prisma wave
#

WORKS FINE

#

NO

#

I NEED a dockerist

obtuse gale
#

@lemmo

oblique heath
#

you should dockerize your docker container

prisma wave
#

lemmo IGNORESME

oblique heath
#

that'll guarantee it works πŸ‘Œ

obtuse gale
prisma wave
#

:::::::::::::::

oblique heath
#

then I agree with Fefo

prisma wave
#

OOOOO