#dev-general

1 messages ยท Page 574 of 1

half harness
#

๐Ÿ‘€

jovial warren
#

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

half harness
#

o

jovial warren
#
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

half harness
#

pad?

jovial warren
#

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?

half harness
#

yes

#

since it's x z y?

#

๐Ÿค”

jovial warren
#

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

half harness
#

whats 26?

jovial warren
#

26 is the amount of bits we want for X

half harness
#

oh

jovial warren
#

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?

half harness
#

yes

jovial warren
#

right, now let's do our OR trick to get that Z value in the encoded value

#
  1110111111101000001000000000000000000000000000000000000000
| 0000000000000000000000100101011000100011101101000000000000
------------------------------------------------------------
  1110111111101000001000100101011000100011101101000000000000
half harness
#

๐Ÿ‘€

jovial warren
#

you see how that Z value is now in there?

half harness
#

yes

jovial warren
#

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

half harness
#

is the padding required?

#

or does it not show a difference in the code

jovial warren
#

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

half harness
#

o

jovial warren
#

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

dusty cypress
#

Today

jovial warren
#

1110111111101000001010010101100010001110110100000000000000 >> 38 = 11101111111010000010

quiet depot
#

once glare refreshes the buyer list, you'll have access to #voteparty where you can ask your question

dusty cypress
jovial warren
#

actually, the X is fine, let's try to get the Z out dkim

quiet depot
#

No sorry, we only do english in here

half harness
jovial warren
#

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

half harness
#

then once you shift the zeroes get removed?

#

sihft right*

jovial warren
#

then let's right shift by 38: 0110001000111011010000000000000000000000000000000000000000 >> 38 = 01100010001110110100

#

actually, I'm losing track lol

#

I've done that wrong, lemme try again

half harness
#

oh

jovial warren
#

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

half harness
#

yes

#

and if it was smaller

#

how would you remove the 0?

#

since wouldn't it just move to the left

jovial warren
#

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?

half harness
#

mhm

jovial warren
#

and then, finally, back to our encoding, we want to put our Y in there

#
  1110111111101000001010010101100010001110110100000000000000
| 0000000000000000000000000000000000000000000000001011011101
------------------------------------------------------------
  1110111111101000001010010101100010001110110100001011011101
ocean quartz
#

Dkim is a rubber duck

jovial warren
#

and there we go

half harness
jovial warren
#

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

half harness
#

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?

jovial warren
#

you'd shift right by 38 to get the X value out, yes

half harness
#

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

jovial warren
#

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

half harness
#

yep ๐Ÿ˜ค

jovial warren
#

I think I missed something

#

oh yeah, ik what

#

I'm dumb, I need to push the values

#

AAAAAA

half harness
#

push?

jovial warren
#

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

half harness
#

BardyOS ๐Ÿ˜Œ

jovial warren
#

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

half harness
#

mhm :))

jovial warren
#

and hopefully I taught some of you other people in here something as well that you didn't know ๐Ÿ™‚

half harness
#

who's lurking in here ๐Ÿง

steel heart
#

No

unkempt tangle
prisma wave
#

thank you so much

#

that was really life changing

steel heart
#

Weeb

humble silo
obtuse gale
#

TIL gson supports // end-of-line comments, /* */ block comments, and # EOL comments too

#

sweet

worthy sun
#

I was expecting a comment about the song

#

but I guess gson supporting end of line comments is equally important

compact perchBOT
#

There is no time to wait! Ask your question @tardy geyser!

quiet depot
#

need help getting banned?

#

I can arrange that

#

done

#

no problemo

worthy sun
#

LMAO ty

obtuse gale
#

what

quiet depot
#

accidentally set the 24 hour delete thing .-.

obtuse gale
#

piggy why are you talking to yourself

quiet depot
#

yes

ocean quartz
#

@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!

worthy sun
#

I am not sure what I was meant to be looking at

obtuse gale
#

idk

ocean quartz
tired igloo
quiet depot
#

sir this is dev general

tired igloo
#

I know, just desperate to get this sorted thats all. Sorry

frail glade
#

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?

worthy sun
#

ACF Discord kek

prisma wave
#

๐Ÿ‘€

tired igloo
#

its a dev channel so I thought I was ask for some dev help. Seems reasonable to me tbh

worthy sun
#

well you are going to have to open-source your said plugin

prisma wave
#

based

worthy sun
#

if you have the source, might as well hand that xD

#

otherwise we literally can not help you with the current info supplied

steel heart
#

Ye

#

Like we wonโ€™t steal it really

worthy sun
#

๐Ÿคž

steel heart
#

๐Ÿคจ

worthy sun
#

Pinky promise

prisma wave
#

why tf are libraries so big man

prisma wave
#

5.5MB just from kotlin, guice, adventure and ACF

steel heart
#

Fat

prisma wave
#

so annoying

ocean quartz
prisma wave
#

and that's with minimizing

old wyvern
#

๐Ÿ˜Œ

steel heart
#

Slim-

ocean quartz
#

๐Ÿ˜Œ

prisma wave
old wyvern
#

less gooo

#

xD

prisma wave
#

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

steel heart
#

thatโ€™d be cool

worthy sun
#

isn't slim jar just install the libraries on runtime

prisma wave
#

yes

worthy sun
#

why would you need them to download it individually?

old wyvern
old wyvern
prisma wave
#

because spigot is dumb

ocean quartz
#

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

old wyvern
#

Oh the library links?

prisma wave
#

yeah

steel heart
worthy sun
#

what

old wyvern
#

Yea, it generates a file with all the links

prisma wave
#

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

worthy sun
#

๐Ÿ˜• What's the policy?

#

I think glare broke rule one?

old wyvern
#

inside the jar there should be a slimjar-resolutions.json in the latest version

#

That contains all the links

prisma wave
#

๐Ÿ‘€ ok

ocean quartz
#

Very advanced ๐Ÿ˜Œ

old wyvern
#

๐Ÿ˜Œ

prisma wave
#

i will probably try proguard or something first just cuz hosting a site with the links is effort

worthy sun
#

I don't see a way to donwload from here

steel heart
#

slimejar is really thriving, pog (:

prisma wave
worthy sun
#

Its thriving as its the only effective way to bypass damn issues

old wyvern
prisma wave
#

or maybe it is

old wyvern
#

Why does it not let me play?!! ๐Ÿ˜”

steel heart
prisma wave
#

oh ok it is

prisma wave
worthy sun
#

It is

prisma wave
#

but proguard is good at minifying

#

better than shadow

frail glade
#

I don't think they've ever enforced that. I've never seen a plugin provide it.

prisma wave
#

oh lol

frail glade
#

Technically I do provide it, cause it's open source.

prisma wave
#

dumb spigot

old wyvern
#

They replied with that once to someone glare

prisma wave
#

yeah

old wyvern
#

I forgot who that was

#

someone from here

prisma wave
#

smh

steel heart
#

Glare is yours premium also?

ocean quartz
#

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

prisma wave
#

๐Ÿฅฒ

frail glade
#

I get stacktrace reviews removed all the time.

prisma wave
#

some people

#

0 brain cells

old wyvern
#

Matt

worthy sun
#

you can';t slimjar kotlin

#

if you are using kotlin before you can slimjar

prisma wave
#

?

old wyvern
prisma wave
#

oh

#

yeah

#

you can, with a few tricks

worthy sun
#

please show me those tricks,

prisma wave
#

easiest way is just making ur main class in java

#

download kotlin

#

then delegate

worthy sun
#

but then u have to do annoying compileJava

prisma wave
#

meh

steel heart
#

Itโ€™s just one

worthy sun
#

imagine just excluding ArrayList function but including everything else

prisma wave
#

you can also trick the compiler into not generating any Intrinsics calls but that's a lot trickier

old wyvern
#

@ocean quartz does warzone require us to search for party before starting?

#

Oh wait nvm

ocean quartz
#

Nah, you can go solo on trios, you can set it to fill which will give you a party or not

old wyvern
#

Found it

frail glade
#

Or just be patient and wait the 10 seconds it takes to compile the jar smh

old wyvern
#

yea, I was looking for a "Play" button xD

#

Didnt realize the diff gamemode names were there

ocean quartz
prisma wave
#

easier said than done

worthy sun
#

why did they call it std?

ocean quartz
#

Standard

steel heart
#

Why not

worthy sun
#

its on purpose

old wyvern
#

Because STD

#

๐ŸŒž

frail glade
#

Dude in front of me is playing Cool Math Games.

worthy sun
#

its not blocked?

#

I rate Run 4

frail glade
#

Why would it be blocked?

worthy sun
#

because its cool maths duh

frail glade
#

This isn't middle school

worthy sun
#

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

old wyvern
#

At home? At that point thats stalking mate

worthy sun
#

using software and blocking websites which aren't allowed during class times

old wyvern
#

We have a few restrictions at uni, but only when on their WiFi

ocean quartz
#

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

steel heart
#

Lmao

half harness
#

since my main class is like the hub of my plugin

#

xD

#

|| even though I dont think its supposed to ๐Ÿคท, rip SRP ||

old wyvern
#

uh matt

obtuse gale
#

what da dog doin

ocean quartz
old wyvern
#

how do I increase the fov?

#

This feels so clustrophobic

onyx loom
#

uninstall

ocean quartz
#

Kotlin's new measureTimedValue is so useful holy

val (value, time) = measureTimedValue {
  // Do something that returns a value
}
println("Took $time to get $value")
ocean quartz
prisma wave
#

WHY CANT I PATTERN MATCH RESULT

old wyvern
#

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

ocean quartz
old wyvern
#

Gradle currently doesnt expose those urls so Im not really sure

#

The issue is us resolving it ourselves

ocean quartz
#

Yeah, hmm let me see what i can do

onyx loom
#

now, uninstall the game

old wyvern
#

ahhhh

#

thanks dude

#

Much better

onyx loom
#

๐Ÿ‘

wind patio
#

which java version supports string interpolation?

ocean quartz
#

None

old wyvern
#

๐Ÿ˜Œ

ocean quartz
#

Yugi!

#

I feel like it could still be improved somehow

old wyvern
#

The coroutines one seems to be slower somehow ๐Ÿ‘€

#

oh wait no

#

They are parallel

ocean quartz
#

Each resolution time is incrementing but overall time was around 20s faster

old wyvern
#

Does each coroutine have its own resolver?

ocean quartz
#

Same resolver

#

Does it need its own? ;o

wind patio
old wyvern
#

Dont think so, might want to make sure that the internal map is a concurrent hash map tho

ocean quartz
#

Seems to be

old wyvern
#

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?

ocean quartz
#

Uh, idk, basically i took the same thing you had but replaced parallelStream with map async then map await

prisma wave
#

is this not something more suited for parallel streams?

ocean quartz
#

Parallelstream was 20s slower

prisma wave
#

๐Ÿ’€

#

shadow is actually killing me

#

it's minimising classes that are CLEARLY in use

#

for no reason

half harness
#

lol

#

slimjar ๐Ÿ˜Œ

prisma wave
#

WTF

#

i remove minimize() and it's still not present

#

???

half harness
#

xD

ocean quartz
#

Minimize always has issues, specially when using guice

prisma wave
#

yeah :/

#

there's a pretty clear graph though

#

oh

#

ufck

#

fuck

#

i had a java file in the kotlin sourceset

#

๐Ÿ’€

unkempt tangle
#

Senpai

old wyvern
prisma wave
#

๐Ÿฅด

wind patio
#
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

obtuse gale
#

Do you have it installed?

wind patio
#

ugh, I think I fixed the problem

#

IntelliJ was just being janky

empty flint
#

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

wind patio
#

it's not really a plugin though, is it

half harness
#

it is

wind patio
#

couldn't it be called more of a 'server type' rather than a 'plugin'

half harness
#

wdym?

wind patio
#

same as Spigot/Craftbukkit

half harness
#

a plugin isn't a server software

wind patio
#

though it doesn't really do anything with the minecraft code itself

empty flint
half harness
#

plugin = adds onto software

#

the term plugin isn't spigot/minecraft specific

empty flint
wind patio
empty flint
#

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.

wind patio
#

ah, I didn't see you specified the question about the plugin itself

#

my fault

prisma wave
#

I'm becoming a wordpress plugin developer now

#

Pays better

half harness
empty flint
#

Right, so back to my question though: What's the purpose of BungeeCord Plugins that are specific to Bungee and not Spigot?

wind patio
#

Skript, obv
More versalite language out there

prisma wave
wind patio
prisma wave
#

do not

#

Don't even attempt to defend PHP

half harness
steel heart
prisma wave
#

dkim moment

empty flint
#

Thanks!

wind patio
#

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

half harness
# empty flint Thanks!

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
empty flint
#

hm makes perfect sense, yeah

obtuse gale
#

The most common ones probably are chat, moderation and permission plugins, but there's just about anything too, mailing systems, friends etc

empty flint
#

does bungee include the spigot-api? can bukkit specific methods and classes be used if I don't package the api in the jar?

obtuse gale
#

No

half harness
#

no

wind patio
#

they are two different apis

half harness
#

you can use packets tho fingerguns

#

altho idk if theres a lib for that

obtuse gale
#

Protocolize

empty flint
#

so I thought maybe there was more shared stufff

obtuse gale
#

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

empty flint
#

Go on...

obtuse gale
#

No

#

Lmao

prisma wave
#

๐Ÿ’€

ocean quartz
#

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.
๐Ÿ’€

prisma wave
#

gradle this, gradle that, what happened to good old "add to build path" in eclipse!

surreal quarry
#

๐Ÿฅฒ

onyx loom
#

the trickiest of them all

surreal quarry
#

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

sly sonnet
#

teach him the if statement

onyx loom
#

when {} ๐Ÿ˜„

surreal quarry
#
else(false) {
  // runs code
}```
#
if {/*() -> Boolean*/} (/*method reference*/)
else (false) { /*() -> Unit*/ }```
prisma wave
#

funny you should mention that

#

That's actually a thing in haskell kind of

surreal quarry
#

actually lmao

prisma wave
#

mhm

#

Well kind of

ocean quartz
prisma wave
#

Because if expressions have to have an else branch there's when for side effects with conditions

#

when (input == "hello") (putStrLn "hello there")

surreal quarry
#

what a good language

prisma wave
#

indeed

#

It does make sense

#

Kinda

#

when only works with monads

#

if is more general but needs an else

sly sonnet
#

isn't when like a kotlin thing?

ocean quartz
#

@old wyvern Is the preresolved needed?

sly sonnet
wind patio
#

can I stream map from List<String> a method like PlaceholderAPI#setPlaceholders?

onyx loom
#

yea

wind patio
#
                lore = lore.stream().map(str -> PlaceholderAPI.setPlaceholders(p, str))
                        .collect(Collectors.toList());

correct?

sly sonnet
#

try it

obtuse gale
#

Looks good

onyx loom
#

looks good to me

sly sonnet
#

looks good

obtuse gale
#

Lmao

wind patio
#

lol

sly sonnet
#

Lmao

old wyvern
#

oh that

#

its to make sure its incremental when possible

#

So if any old resolutions are available, it will use that

ocean quartz
#

Hmm, it's currently causing some issues, it works for adding to it, but not removing from it

old wyvern
#

oh

ocean quartz
#

Should I remove that or add an option to remove from as well?

old wyvern
#

Removing that might cause it to reresolve dependencies

ocean quartz
#

Hmm okok, let me see if i can add check to remove from as well

#

Actually does it really matter? thonking
I mean it's just resolution, what slimjar checks is the main one from slimjar.json right?

old wyvern
#

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

ocean quartz
#

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?

old wyvern
#

Yea, it would just ignore it

ocean quartz
#

Ah so removing actually doesn't matter much

old wyvern
#

yea, just that redundant data would remain

ocean quartz
#

Okok

#

It's compiling much faster now

old wyvern
#

Awesome!

ocean quartz
#
[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

๐Ÿ˜Œ

half harness
#

๐Ÿ˜Œ

#

is it released yet? or still in dev

ocean quartz
#

Dev

obtuse gale
#

Matt I need of your weeb expertise

ocean quartz
#

๐Ÿ‘€

#

Professional weeb developer here

obtuse gale
#

yes hi

#

I uh

#

what's the name of

#

fuck

prisma wave
#

ok

obtuse gale
#

have you watched mekakucity actors?

ocean quartz
#

I have not ;o

obtuse gale
#

oh damn

#

well this is embarrassing

ocean quartz
#

Why? xD
Is it good?

#

Looks very similar to Durarara

obtuse gale
#

idk what that is lmao

ocean quartz
#

Seems to be like a slice of life comedy

obtuse gale
# ocean quartz Why? xD Is it good?

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]

steel heart
#

emilyy weeb yay

obtuse gale
#

ew no fuck off

steel heart
#

๐Ÿ˜”

#

Matt we need to turn emily into a weeb

ocean quartz
#

Yeah sorry never heard of it ;x
I tend to lean more towards dark anime

old wyvern
#

Emily moved to china?

#

๐ŸŒž

old wyvern
#

wtf happened

#

eren

obtuse gale
#

\๐ŸŒž

ocean quartz
#

No one knows, the ending was so confusing ๐Ÿ˜ฉ

old wyvern
#

I havent reached the ending, I was watching s3

#

but someone spoiled that eren becomes the villain in s4

steel heart
#

yeah Yugi

#

its controversial

#

however apparently the author is gonna make an alt ending

old wyvern
#

That seems so weird tho

#

He wanted to kill the titans

#

Why would he join them?

steel heart
#

Yeah

ocean quartz
#

Oh boy, you'll see later how it ends ๐Ÿ‘€

old wyvern
#

๐Ÿ˜ฃ

steel heart
#

Some people love it, the entire twist

#

Tho personally I despise it

#

also watched in dubbed so idk if my opinion counts but myes

old wyvern
#

I saw a clip on yt where he says he forgives reiner because they are similar and then proceeds to kill him

steel heart
#

ye

#

lol

old wyvern
#

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 (?)

steel heart
#

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

ocean quartz
steel heart
old wyvern
#

๐Ÿ˜ฎ ๐Ÿ”ฅ

ocean quartz
#

Still getting this error though, gonna see if i can fix

Extension with name 'slimjar' does not exist. Currently registered extension names

steel heart
#

yugi room 1

#

๐Ÿ˜„

#

talk with famous slime guy

#

oh nvm

jovial warren
#

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

ocean quartz
#

Lmao

jovial warren
#

that is a fucking huge pog

#

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

ocean quartz
#

Also yesterday i saw this, an annotation annotating itself

#

couldn't find a better gif, so get the one with the trashcans

obtuse gale
#

lol

empty flint
#

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

obtuse gale
#

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

empty flint
#

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

obtuse gale
#

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

weak shell
#

How can I implement multiple bukkit runnables with a good time complexity?

#

Wait maybe wrong channel

obtuse gale
#

indeed

#

this is the channel you get trolled for asking for help

weak shell
#

say less

#

do i go to support?

obtuse gale
weak shell
#

thanks

empty flint
gray elk
#

@obtuse gale add me to discuss about your request

wind patio
#

am I doing this right or I'm just clueless with paper api

obtuse gale
#

what on earth

wind patio
#

yeah well I have no idea how components work lmao

obtuse gale
#

I mean

#

getLore returns a list of strings

#

not of components

wind patio
#

it's not an ItemStack

#

that's a custom method

#

for, uh, well, custom items

obtuse gale
#

then what does getLore return?

wind patio
#

List<Component>

#

basically this

#

                List<Component> lore = CI_LORE.stream().map(this::format)
                        .map(Component::text)
                        .collect(Collectors.toList());
obtuse gale
#

take a look into the Component#replaceText method and the TextReplacementConfig (Builder) interface;

brazen narwhal
#

wow look you asked the same thing in paper

obtuse gale
#

wowzas

wind patio
#

ono is that illegal

#

discord police

#

๐Ÿ˜ฉ

brazen narwhal
wind patio
#

why not just shut up lmao

obtuse gale
wind patio
#

not in 1.16.5 at least

obtuse gale
#

it sure does

wind patio
#

ยฏ_(ใƒ„)_/ยฏ

obtuse gale
#

it's not static

wind patio
#

ah

#

yeah, alright, I see.

obtuse gale
#

Class#method usually denotes an instance method, Class.method a static one

wind patio
#

I see.

#

also, Records, yay or nay

prisma wave
#

yay

wind patio
#

any highlights?

prisma wave
#

uh

#

they... exist?

wind patio
#

pog

#

let's go

obtuse gale
#

I wouldn't really rely on that soft warning

#

it's a bit too invasive IMO, I have it disabled

prisma wave
#

yeah

wind patio
#

so, Record is basically a Class with less hassle

obtuse gale
#

eh

prisma wave
#

just because something can be a record, doesn't mean it should be

obtuse gale
#

a record is meant to be an "immutable data carrier"

wind patio
#

IntelliJ says, IntelliJ knows

obtuse gale
#

For instance, something like a GameProfile seems ideal for a record, UUID, String, and that's it

#

but that warning is too aggressive

wind patio
#

well, then, a simple class is better off a record, whereas a more complicated one is better off as a class

prisma wave
#

@ocean quartz is there a way of "undoing" a GuiItem

obtuse gale
#

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

prisma wave
#

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

ocean quartz
#

I guess having a strip method wouldn't hurt

prisma wave
#

you could have something like GuiItem#getNormalItem

ocean quartz
#

Yeah, i can add that

prisma wave
#

๐Ÿ‘Œ

wind patio
#

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

ocean quartz
#

Records are basically classes, with fields, constructor, getters, setters, to string, and equals

obtuse gale
#

and hashCode too, very important

ocean quartz
#

Oh yeah and that

prisma wave
#

and pattern matching soon

wind patio
#

I suppose by default hashcode will differ if any values between objects/records are different
Ima just go to sleep, my brain is fried

prisma wave
#

well yeah

#

thats the point lol

obtuse gale
#

yeah lol

wind patio
#

waking up in 6 hours for a lecture, woohoo

#

goodbye and have a nice evening

prisma wave
#

goodbye

obtuse gale
#

@prisma wave

#

records are value based classes right?

#

or rather, meant to

#

lol

prisma wave
#

how do u mean

obtuse gale
#

like

#

kinda like Optional for instance

prisma wave
#

oh

#

i guess so

obtuse gale
#

final, immutable, equals and hashCode etc depend on the value

prisma wave
#

idk the formal definition though

obtuse gale
#

== is a no go etc

prisma wave
#

yeah

#

makes sense at least

obtuse gale
steel heart
#

Ye theyโ€™re value based

ocean quartz
#

JapaneseDate thonking

obtuse gale
#

ching chong

prisma wave
#

ThaiBuddistDate

#

underrated class

ocean quartz
#

Wtf is Minguo

obtuse gale
#

you don't know?

ocean quartz
#

Republic of China calendar
๐Ÿ˜ฌ

obtuse gale
#

this sounds so oddly out of this world lmao

prisma wave
#

republic of china = taiwan

#

i think

#

am i allowed to say that

#

idk

obtuse gale
#

yeah

#

This calendar system is primarily used in the Republic of China, often known as Taiwan

steel heart
#

Sort of correct ye

prisma wave
#

ok cool

prisma wave
#

๐Ÿฅถ

obtuse gale
#

is a String value based? thonking

#

it's not annotated as such lol

steel heart
#

Pretty sure it is

#

Or like to some extent?

steel heart
#

Using == is unsafe right on them

obtuse gale
#

the factory methods thing wouldn't fit in a record or a string

prisma wave
#

is this someone important

obtuse gale
#

although that can be made for record

prisma wave
#

kyori dev?

obtuse gale
#

my clone

steel heart
#

Lmao

obtuse gale
prisma wave
#

sad

obtuse gale
#

an active member of the community tho

#

why

prisma wave
#

ok

#

cool

obtuse gale
#

why

prisma wave
#

they joined devden

obtuse gale
#

ah yes

#

she's my friend

prisma wave
#

i want to know if i should get out the red carpet or not

ocean quartz
#

It's an impostor!

steel heart
#

We have two emils now

forest pecan
#

@serene cave @mellow valley

prisma wave
#

corporate wants you to spot the difference between these 2 images

steel heart
obtuse gale
#

lol

ocean quartz
#

Also while yall are here, how does noon uk time sound for end of voting and beginning of the contest tomorrow?

prisma wave
#

sure

obtuse gale
#

sure

prisma wave
#

i am glad it's using uk time

#

good to finally get some respect

ocean quartz
#

Tbh using that because it's same as here, lisbon time ๐Ÿฅฒ

prisma wave
#

GAAAAAA

static zealot
#

@boreal needle I found a new name for you Cryystal__

obtuse gale
#

As much as I love Crystal as a name, hell I'd name my own daughter Crystal, it sounds like a hooker's name

eternal compass
obtuse gale
#

'cause she a hoe

static zealot
obtuse gale
#

based

eternal compass
#

64d

static zealot
#

oh and also someone recommended: H3NT4I_QU33N or โœฟSniper_Little_Bunnyโœฟ. I like the base64 one more but you can chose

forest pecan
#

@prisma wave

#

is that good enough for the photo album

prisma wave
#

๐Ÿฅด

forest pecan
#

Lol

prisma wave
#

I believe so

obtuse gale
#

im tryna make a placeholder but how do you get the players name that it is showing to

brazen narwhal
#

what is devden

static zealot
obtuse gale
static zealot
#

or the hell. depending who you ask

obtuse gale
#

I'm glad I'm not the only one that thinks that

prisma wave
brazen narwhal
#

how do i join it

obtuse gale
static zealot
#

you pay a fee

obtuse gale
#

you'll get trolled in this channel lol

static zealot
#

of 3 chicken legs

prisma wave
static zealot
#

when you're that cool that your discord server shows up in google search?

pseudo marsh
#

sorry for the inconvenience

brazen narwhal
static zealot
#

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.

eternal compass
#

blitz

#

you buffoon

static zealot
#

oh

prisma wave
#

๐Ÿฅด

obtuse gale
#

lol

prisma wave
static zealot
#

ohhh. I left the brister mitten discord

#

not dev den

prisma wave
#

dead server

static zealot
#

is it?

#

no one buying private mines?

prisma osprey
#

What is block metadata in 1.8? Btw I'm implementing it from scratch just for fun ๐Ÿ™‚

obtuse gale
#

oh my

#

Alex

prisma wave
#

?

obtuse gale
#

I got a notification

prisma wave
#

Oh yes

#

๐Ÿ˜Œ

obtuse gale
#

lmao

eternal compass
#

๐Ÿ‘€

static zealot
#

Alex. Imagine calling him by his real name. who does that.

prisma wave
#

Imagine

eternal compass
#

Alex, can I get the link again?

#

I joined it, but idk the link

obtuse gale
#

because my phone said "Alex ..." lmao

prisma wave
#

Well it USED TO BE pinned

#

but fascist staff removed it

eternal compass
#

lmao

static zealot
#

what used to be pinned?

#

I can repin

prisma wave
#

The best of helpchat link

static zealot
#

oh

#

glare said is fine tho.

#

why did they take it down?

eternal compass
#

my screenshot got into Best of Helpchat ๐Ÿ˜Œ

static zealot
#

here. @eternal compass

onyx loom
#

probably cube didnt agree ๐Ÿฅถ

eternal compass
#

I found it

prisma wave
#

.

brazen narwhal
#

<t:1630624800:f>

#

wacky

prisma wave
#

Ok

static zealot
prisma wave
#

Literally fascism

eternal compass
onyx loom
#

simon is there

prisma wave
#

top 10 worst dictators in history

eternal compass
#

;p

prisma wave
static zealot
onyx loom
#

oh i see

eternal compass
#

to anything

#

I have decided

static zealot
#

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

static zealot
eternal compass
#

decided deez nuts.

static zealot
#

deez nuts deez nuts?

eternal compass
static zealot
#

how dietz nuts taste?

eternal compass
#

taste deez nuts

#

wait...

static zealot
#

dietz nuts*

#

grab a handful of dietz nuts

half harness
obtuse gale
#

Pepega

eternal compass
#

isn't that a better discord thing?

#

the twitch emotes mod

#

๐Ÿ‘€

half harness
#

no

eternal compass
#

oh

#

hm

half harness
#

ยฏ_(ใƒ„)_/ยฏ

eternal compass
obtuse gale
#

Canonical constructor access level cannot be more restrictive than the record access level ('public')
thanks java I hate this

rotund egret
sly sonnet
#

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.

cinder flare
sly sonnet
#

Like when i call a constructor, it shows that such thing does not exist (even though it clearly does)

cinder flare
sly sonnet
#

who dat

rotund egret
sly sonnet
#

ah ok

#

thanks guys!

rotund egret
#

It's under the File Tab

cinder flare
#

setting up Rider, funny little warning for IdeaVim

distant sun
wind patio
steel heart
potent nest
#

also I'm pretty sure that will help with pattern matching

prisma wave
#

Yeah they're adding pattern matching for records soon

#

Which is poggers

wind patio
#

huh

#

so records can't use regex or what

prisma wave
#

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

potent nest
#

I can't wait that long!

steel heart
#

yeah wonโ€™t u be able to do something like
record Blah(int x){}

then
if (something instanceof Blah(x)) {

}

eternal compass
#

Will fix

wintry crag
#

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 )

jovial warren
#

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

potent nest
steel heart
#

Oo

#

I love

#

It

potent nest
#

well I forgot the implements for the records but you know what I mean

steel heart
#

Yeah, Javaโ€™s getting a really glow up here

jovial warren
#

wait... Java's getting sealed interfaces now?

#

woohoo!

steel heart
#

We have to celebrate

jovial warren
#

damn, JetBrains smart

steel heart
jovial warren
#

those sealed interfaces definitely came from Kotlin, I swear lol

potent nest
#

sealed interfaces are a pretty old concept

jovial warren
#

yeah true

potent nest
#

and it's planned for a few years now

jovial warren
#

yeah

prisma wave
#

The jep has been around for ages

#

For what it's worth

jovial warren
#

just Oracle probably took like 6 years to actually do something lol

prisma wave
#

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

potent nest
#

the JEP is 2 years old, means they likely had a working prototype at that point already

prisma wave
#

indeed

#

but wasn't java still on its much slower versioning cycle back then?

potent nest
#

the new cycle started with java 9, means around 4 years ago

steel heart
#

Good this guy in spigotmc discord keeps just ranting about static being the perfect use case

potent nest
#

if my math is correct

ocean quartz
#

Static is always the perfect use case ๐Ÿ˜€

steel heart
#

Now die

prisma wave
#

static good, static state bad

steel heart
#

Yes

obtuse gale
steel heart
#

Exactly

prisma wave
obtuse gale
#

Hru?

prisma wave
#

ok

#

Wbu

obtuse gale
prisma wave
#

it is good

#

I am in town and I have just had a burger

#

it was nice

obtuse gale
#

Wait... Ntherland?

prisma wave
#

No sir

#

England

static zealot
#

the great united kingdom

#

of the british empire

obtuse gale
ocean quartz
#

Bri'ish empoire

obtuse gale
#

Do you wont some tea mate?

jovial warren
#

lol

steel heart
#

Skedule

#

Skool

jovial warren
#

enough with these lame British stereotypes

obtuse gale
#

Bloody hell?

static zealot
#

man. idk why ya'll hate UK. They are the country to create the most independence days for other countries.

steel heart
#

Wankaaa

obtuse gale
#

I love bri'ish

#

My country learn english from UK book

jovial warren
obtuse gale
#

I mean.. our english text book was from British

jovial warren
#

"from British" thonking

ocean quartz
obtuse gale
#

I mean Great Britain

#

Wait

#

I mean United Kingdom

jovial warren
obtuse gale
#

fuck.. they have many nick name

prisma wave
ocean quartz
static zealot
obtuse gale
#

Bloody mary... for god sake

jovial warren
#

stfu

static zealot
#

they penetrated you deep

obtuse gale
#

Don't mad my friend

static zealot
#

xD

prisma wave
#

so true

obtuse gale
#

I love England

remote goblet
obtuse gale
#

I mean British

#

Wait.. Scotland

remote goblet
#

I hate all countries, we should just kill everyone

prisma wave
remote goblet
#

Man

#

you play more overwatch than i did

ocean quartz
prisma wave
#

I know

#

Problem?

obtuse gale
#

I hate when calling UK like... British... Britain, United Kingdom, & etc name

remote goblet
#

I only recently installed it back after the whole lawsuit about the fact they abuse women at actiblizzard

prisma wave
#

THE SUN NEVER SETS

obtuse gale
#

How about Scotland?

remote goblet
#

which im still iffy on

#

So bite me

obtuse gale
#

You guys ever heard of scottish?

remote goblet
#

?

#

yes

remote goblet
obtuse gale
#

Guys