#dev-general

1 messages ยท Page 286 of 1

onyx loom
#

sounds good

hallow crane
#

kotlin vue3.0

steel heart
#

Gg wp

#

Angular superior (:

hallow crane
#

eww

surreal quarry
#

next-kotlin/js

hallow crane
#

next-kutlin/js

steel heart
#

nutlin

hallow crane
#

nunlun

surreal quarry
#

next-nutella

ocean quartz
#

React is nice

hallow crane
#

nununnn

#

nnnnnnn

#

n

steel heart
#

so is angular

hallow crane
#

vue is pretty

steel heart
#

๐ŸŽ…

surreal quarry
#

the only issue with react is that its rendered client-side which means it can load slower

ocean quartz
#

Don't think that's that big of an issue

steel heart
#

Therefore angular

surreal quarry
#

yea its not too bad

steel heart
#

Yep

#

In conclusion angular

ocean quartz
#

Isn't angular also client sided?

steel heart
#

Idk lol

#

I just take the chance to promote the superior alternative

hallow crane
#

Geniuses assemble

#
Required by:
    project :
surreal quarry
#

send your build.gradle

onyx loom
#

isnt there meant to be a -jvm in there somewhere

#

oh -jdk

#

'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21'

hallow crane
#

=paste

compact perchBOT
#
HelpChat Paste

Please use a paste service to share configs, errors, code and long logs.
โ€ข HelpChat Paste

surreal quarry
#

no

#

lol

hallow crane
onyx loom
#

wait wat

#

i just loaded up intellij to see what i had lol

surreal quarry
#

yako add the kotlin plugin

hallow crane
#

I havent even made it pdm yet

#

oh

#

lol

surreal quarry
#

id "org.jetbrains.kotlin.jvm" version "1.4.21"

hallow crane
#

that version

#

specific

surreal quarry
#

thats the latest

#

i believe

hallow crane
#

ah ya boi has it working now thank. 1.14.10

static zealot
#

if I have a mutable list and I use .remove() it won't error if it can't find the element right?

surreal quarry
#

no

steel heart
#

Mutable

static zealot
#

k good

steel heart
#

Wow

surreal quarry
#

check what the return type is

#

i forget but it will probably reutrn the element removed or the index or something so if thats null it was not found

steel heart
surreal quarry
#

but it definitely won't error

hallow crane
static zealot
#

:

#

instead of extends

#

and JavaPlugin()

hallow crane
#

I love how I am not learning it before doing it

onyx loom
hallow crane
#

why is there a constructor parameter thing

surreal quarry
#

: JavaPlugin()

hallow crane
#

around a class type

onyx loom
#

class(params: Blah) : Extension(), Implements {}

hallow crane
#

who wrote kotlin tell me gimme an address

#

WHY do classes have parameters

surreal quarry
hallow crane
#

oh

#

instead of separate

surreal quarry
#

sike kali i lied

onyx loom
#

bruh

surreal quarry
#

i thoguht you were saying the implementations were a block inside braces lmao

onyx loom
#

oh right i see the confusion

surreal quarry
#

yea yako

class MyClass(val s: String, val i: Int)
MyClass("blah", 10)```
onyx loom
#

๐Ÿ˜

hallow crane
#

oo

surreal quarry
#

also

#

data class

#

is great

hallow crane
#

no new?

surreal quarry
#

nope

onyx loom
#

nbope

hallow crane
#

bitch

onyx loom
#

less boilerplate ๐Ÿ™‚

surreal quarry
#

just ClassName() implies the new

hallow crane
#

oh makes sense

#

what is val

#

is that like dynamic

surreal quarry
#

immutable variable

hallow crane
#

typ

#

oh

surreal quarry
#

types are inferred

hallow crane
#

var?

onyx loom
#

mutable

hallow crane
#

is mutable

surreal quarry
#

mutable

hallow crane
#

KOOL

#

what about fields

onyx loom
#

properties fingerguns

surreal quarry
#
val s: String = "blah" // declare the type
val s = "blah" // inferred type is String```
hallow crane
#

oh nice

prisma wave
#

horrible var

hallow crane
#

if I have a class with params, is that automatically in the field

prisma wave
#

ban it

surreal quarry
hallow crane
#

private?

#

public

prisma wave
surreal quarry
#

default public

prisma wave
#

everything is public by default

hallow crane
#

how do I make it private

prisma wave
#

everything is also final by default

hallow crane
#

for abstraction reasons

prisma wave
#

private

surreal quarry
#

add private

prisma wave
#

lol

hallow crane
#

oh cool

surreal quarry
#

internal is module-private

onyx loom
#

looks like we are google ๐ŸŒ

surreal quarry
#

its a worthy cause

hallow crane
#

if my class has a param that is parameter only how do I do stuff with it if there's no contrcutor

onyx loom
#

yes

#

simple answers anyway that will be quicker

hallow crane
#

It's easier to ask geniuses here because google doesnt understand human grammar

prisma wave
hallow crane
#

oh ok

surreal quarry
hallow crane
#

ahh

prisma wave
#
class TestClass(a: String) {
  val properA = a.toUpperCase()
}
``` for example
hallow crane
#

like python

prisma wave
#

kinda

#

but not really

hallow crane
#

oh lol

prisma wave
#

it's more like {} in java

hallow crane
#

o

surreal quarry
#
public class Person {
    private String name;
    public Person(String name) {
        this.name = name;
        sout(name);
    }
}```
```kotlin
class Person(val name: String) {
    init { println(name) }
}```
prisma wave
#

val name*

onyx loom
#

sexy

hallow crane
#

that java doesn't work

#

String name

onyx loom
#

lol

prisma wave
#

true lol

#

Close enough

surreal quarry
#

fuck

hallow crane
#

Lol

surreal quarry
#

lmao

hallow crane
#

sout = intellij hack

onyx loom
#

too much kotlin overpowering james mind

surreal quarry
#

k its fixed

surreal quarry
hallow crane
#

same

prisma wave
#

println

hallow crane
#

kotlin .class?

#

ClassName.class

#

?

surreal quarry
#

Kotlin::class.java

prisma wave
#

::class

surreal quarry
#

mine for Class, his for KClass

prisma wave
#

sometimes .java if you need a Class

#

^

hallow crane
#

how do get class name

surreal quarry
#

::class.java.name or something

hallow crane
#

oh sicko

surreal quarry
#

whatever it would be with a normal java Class

hallow crane
#

yeah

prisma wave
#

btw kotlin has null safety in the type system ๐Ÿ™‚

surreal quarry
#

^^

hallow crane
#

v cool

surreal quarry
#
String // never null
String? // nullable```
onyx loom
#

extension functions ๐Ÿ™‚

hallow crane
#

plugin.yml main?

ocean quartz
#

val test: String = null!! ๐Ÿ™‚

surreal quarry
#
val name = getName() ?: return // getName is nullable, but we return if null```
hallow crane
#

am learning stuff today

surreal quarry
#

yes

onyx loom
#

congrats

ocean quartz
surreal quarry
#

your.package.name.MainClass

#

same

#

lol

hallow crane
#

gud

prisma wave
#

It also has inline functions, reified generics, inline classes, data classes, sealed classes, safer generics, no primitives, extension functions / properties, top level members, objects, first class functions, higher order functions, and everything is final by default ๐Ÿ™‚

surreal quarry
#

very good list

hallow crane
#

ok we get it its "superior"

surreal quarry
#

yes

prisma wave
#

Well

surreal quarry
#

indeed

prisma wave
#

I am aware this is a massive circlejerk

#

But

#

Yes

hallow crane
#

LOL

onyx loom
#

๐ŸŒ

#

how do u think we all got onto the xp leaderboard

ocean quartz
#

Is it really circlejerk if we're just stating its features?

onyx loom
#

kotlin circlejerk

prisma wave
#

Kotlin is definitely one of the highest quality languages imo

hallow crane
#

LOL my 12 lines is 1.8MB

onyx loom
#

good ol andrey

prisma wave
#

The quality of life is insane

prisma wave
onyx loom
#

๐Ÿคฃ

prisma wave
#

Not a fan of that bloke

onyx loom
#

RICH hickey ๐Ÿคฃ

prisma wave
#

Nasty piece of work

ocean quartz
prisma wave
#

Holding kotlin back from greatness

hallow crane
#

ODANG

[19:28:39 INFO]: In onEnable!
[19:28:39 INFO]: bigshizz has gotta take a com.yakovliam.kotlinplugin.KotlinPlugin$MondoDuke
[19:28:39 INFO]: Do thing in bigshizz
prisma wave
#

By removing you-know-what

#

โ˜น๏ธ

ocean quartz
#

What did he remove?

hallow crane
#

pdm

prisma wave
#

Tuples ๐Ÿ˜ญ

hallow crane
#

oh

ocean quartz
#

Oh

prisma wave
#

And they didn't accept sxtanna's suggestion of companion val/fun

hallow crane
#

ok @prisma wave genius bar tell me how to use PDM in my main class which isnt java

prisma wave
#

Exactly the same

hallow crane
#

if you would my friend

steel heart
prisma wave
#

Check the example on pdm repo

#

There's a kotlin specific one

#

Which I added a lot of documentation to the other day

hallow crane
#

oh sexy intellij converted it!!!

        val dependencyManager = PluginDependencyManager.of(this)
        val onLoad = dependencyManager.loadAllDependencies()
        onLoad.thenRun { println("Everything is loaded!") }
prisma wave
#

That won't work ๐Ÿ™ƒ

hallow crane
#

wh

#

wha

#

hwy

#

WHy

prisma wave
#

Try it

hallow crane
#

no

#

it wont work

prisma wave
#

yes but

hallow crane
#

oh WAIT

#

im using kotlin

prisma wave
#

U must learn why yourself

hallow crane
#

but i need kotlin

#

to execute the kotlin

prisma wave
#

Through pain and struggle

hallow crane
#

to get kotlin

#

am i right

#

or wrong

#

my class is kotlin

#

but I need kotlin

prisma wave
#

Uh pretty much

hallow crane
#

to get kotlin

#

so I need a java class?

#

frick

ocean quartz
#

Not enough people liking it ๐Ÿ˜ข
https://discuss.kotlinlang.org/t/companion-functions/5378

prisma wave
#

No

#

Not necessarily

#

Kotlin compiler slaps a lot of null checks in certain places, which break if the Intrinsics class isn't present

#

If you chain it all into 1 line it doesn't generate anything though

#

Check the example

hallow crane
#

oh wait

#

so doesnt it have to be chained

#

like in java chains

#

oh thats wshat u said

#

so basically chain = java concept that kotlin ported so bukkit recognizes it

#

what I dont understand is why you need to build kotlin w/ it because bytecode = bytecode in jar

#

so why do it be liek that

prisma wave
#

what

#

The first bit made sense

hallow crane
#

Idk

#

Im looking at the bytecode

#

why do we need to shade kotlin in the firstplace

#

its the same

prisma wave
#

Because it generates code that references the stdlib

#

And also

hallow crane
#

oh wait theres a metadata annotation

prisma wave
#

For the stdlib

#

Look at the decompiled code without chaining

#

The Intrinsics class is in the stdlib, which isn't on the classpath until after PDM finishes

#

Hence the error

hallow crane
#

ok wait gimme sec

#

oh big brain

#

Intrinsics.checkNotNullExpressionValue(PluginDependencyManager.of((Plugin)this), "PluginDependencyManager.of(this)");

prisma wave
#

mhm

hallow crane
#

....@NotNull?

prisma wave
#

Kotlin is pretty aggressive with the null checks

#

I tried

hallow crane
#

ah

prisma wave
#

It still checks it

hallow crane
#

I see

#

kotlin bitch

prisma wave
#

They presumably thought that more descriptive errors were worth the potential overhead

hallow crane
#

mhm

#

it is

prisma wave
#

Yea

#

Although maybe they'll remove that in Java 15

#

Since NPE's are prettier

hallow crane
#

its out

prisma wave
#

Ik

#

But kotlin doesn't target it yet

hallow crane
#

oh thats why i couldnt do it

#

in j15

prisma wave
#

Well I think you can target it, but it will be pretty much the same bytecode as 8

#

Afaik

hallow crane
#

I tried to use a java15 thing switch thingy

prisma wave
#

None of the new stuff

hallow crane
#

no worko

ocean quartz
#

Pretty sure latest Kotlin targets java 15

prisma wave
#

o

hallow crane
#

interestante

prisma wave
ocean quartz
hallow crane
#

oh

#

my b

#

my dude

prisma wave
#

lol

#

No switch in kotlin

hallow crane
#

new lang

#

new rules

#

new lifestyle

#

new streets

#

new gang

prisma wave
#

I wonder if it does anything different or just supports it

hallow crane
#

ok thats enough kotlin for today

#

back to java

prisma wave
#

Lol

#

๐Ÿฅฒ

ocean quartz
#

Uses Java 15 concatenation iirc

prisma wave
#

Ah makes sense

hallow crane
#

i never said I was done i am gonna make a api implementation in kotlin tmrw

prisma wave
#

Good

hallow crane
#

but i gotta finish this projec

#

which is java

prisma wave
#

I want it 100% idiomatic or ur in trouble

#

Big trouble

hallow crane
#

is that the greek symbol for lamda

surreal quarry
#

yes

tender cargo
#

ok

ocean quartz
#
runLambda { ฮป -> 
  
}
steel heart
#

Set of lambda expressions

#

ฮ›

sour moth
#

hi

#

idk if im being an idiot or what, but every time i do /launch, it simply returns "/launch"

quiet depot
#

@sour moth that's because you're returning false

#

returning false will cause the usage message from the plugin.yml to be sent

sour moth
#

i knew i was being an idiot

#

:p

#

ty

quiet depot
#

fyi the command.getName() check is useless

#

since you're only assigning that command executor to "launch"

sour moth
#

what would i put instead?

quiet depot
#

nothing

#

look at line 12

#

you're assigning that command executor to /launch

#

and then you're checking in the command executor if the command is launch

#

but how would it ever be anything but launch?

#

since that command executor is only assigned to launch

#

it's a redundant check

sour moth
#

ok

#

if i didnt do this.getCommand("launch").setExecutor(new Command());, what would i put instead?

quiet depot
#

no that's the thing you keep

#

you'd remove the check at line 41

sour moth
#

ok

#

if I had multiple cmds in one class, would i have to do both tho

quiet depot
#

yes

sour moth
#

alr

#

ty

ocean quartz
surreal quarry
#

damn

#

the plus is kinda ugly tho

#

if you have to include that every time

#

I guess its a builder tho

ocean quartz
#

A little bit
Since it's a lambda it becomes this so you really have to use it

surreal quarry
#

yea

ocean quartz
#

Well, i'd take an ugly plus over xml syntax

surreal quarry
#

seems like they could make the result of the lambda a string though

#

but yea its definitely better

ocean quartz
#

This is pretty cool, but is very underused so not many documentation to look at

#

Starting to find big downsides

#

Importing React frameworks require a Kotlin specific wrapper it seems

surreal quarry
#

yea i wouldn't assume any of the react things would work with kotlin. they would all be JS

ocean quartz
#

It's a bummer, might go back to normal React for actual working on things
This is still fun to play with though

#

Oh well, TS isn't terrible

surreal quarry
#

smart blitz

static zealot
#

and its gone

surreal quarry
#

404 not found

#

just like your messages

static zealot
#

just pulled a cj on ya'll

ocean quartz
#

You pulled a dkim

surreal quarry
#

lol

static zealot
#

nah cj does this a lot xD when he tries to help but doesn't read the whole convo and realises later he just deletes everything xD

#

I usually just let it there

surreal quarry
#

dkim does the same

static zealot
forest pecan
#

invite

#

i wanna hop in

surreal quarry
#

do you have a lounge chair

static zealot
#

no

ocean quartz
#

Oh damn, Blitz is not on my discord

static zealot
#

yeah Matt

#

I'm only on like 4 people's discord from this server

surreal quarry
#

imagine not being in "Matt's Discordโ„ข๏ธ"

static zealot
#

and 1 of them I just joined (BM's)

#

also that Blitz's Couch I made literally for my website so its there lmao. I have like 5 channels 1 bot 0 people

ocean quartz
#

Very creativeโ„ข๏ธ

forest pecan
#

wtf dkim has more xp

#

than me

#

illegal

ocean quartz
#

Well

#

He

#

Does

#

Talk

#

Like

#

This

forest pecan
#

true and I also

static zealot
#

1 word messages

forest pecan
#

do

#

this

static zealot
#

are not counted

forest pecan
#

?learn-java

compact perchBOT
#
FAQ Answer:

Start with this -
https://docs.oracle.com/javase/tutorial/java/concepts/index.html
Breeze through this skipping stuff that doesn't seem relevant like bitwise operators-
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html
and then hit this
https://docs.oracle.com/javase/tutorial/java/javaOO/index.html

They're the first three from this larger thing - https://docs.oracle.com/javase/tutorial/java/index.html
Which you should definitely go through overall. But those three should be enough for slightly better understanding of wtf is happening here without feeling like a huge time sink
That one is a small part of this larger site - https://docs.oracle.com/javase/tutorial/index.html
wherein "Essential Java Classes" and "Collections" also have good useful stuff

forest pecan
#

lmao

#

he asks a lot of

#

help

static zealot
#

well at least from what funnycube says

#

yeah

#

was going to say

#

he asks for help a lot

#

lmao

#

=xp

ocean quartz
#

=xp

surreal quarry
#

bruh what

compact perchBOT
static zealot
#

flex

ocean quartz
surreal quarry
#

still #20

#

pog

static zealot
#

did you guys know I'm almost top2?

#

=xp lb

compact perchBOT
ocean quartz
#

Oooh i passed cj

static zealot
#

nice Matt

forest pecan
ocean quartz
static zealot
#

Matt random question but do you ever review manual requests?

ocean quartz
#

Just read a bit more up

static zealot
#

yeah he codes in just 1.8

#

nothing else

#

but he doesn't like it xD

forest pecan
#

wait no shit?

#

lmao

ocean quartz
static zealot
#

spigot link requests

surreal quarry
#

yo how do i get a pretty background on the HC leaderboard

forest pecan
#

yo matt can you get me into harvard ๐Ÿฅฒ

static zealot
#

ugh you can get custom xp backgrounds I think

#

=xp @compact perch

compact perchBOT
surreal quarry
#

lol

forest pecan
#

wtf

#

lol

ocean quartz
#

Oh, yeah when ever i get them, most of the times i click on it and it's gone lmao

static zealot
#

xD

forest pecan
#

how

#

weird flex

static zealot
#

its Barry

forest pecan
#

but

#

okay

static zealot
#

also idk

#

how to get custom ones I forgot

#

found it =level img <direct imgur link> - Set your card background image

#

@forest pecan ^

forest pecan
#

oh sick

ocean quartz
#

Do any of you ever get "mouse should pain"?

static zealot
compact perchBOT
#

@static zealot,

โ›ฐ Set Your Card Image!

Want to set your background image on your level card?
Please make sure you use a direct image link via Imgur.
โ€ข Template Image

static zealot
#

oh I seee

#

I didn't even know what the difference between i.imgur and imgur is

#

it makes a lot of sense tho

#

=xp

compact perchBOT
static zealot
#

oh nice I've just realised it kept the gradient background

surreal quarry
#

yea lol

forest pecan
#

can you rename a package and make the check string thingies only check within the module scope in intellij

#

refactoring your main group package is a fuckmess

ocean quartz
#

Hell yeah, then github is like: "deleted 5k lines added 5k lines!"

forest pecan
#

lmao

static zealot
#

Matt you remember the command to set gradient for xp card?

surreal quarry
#

booster gradient

#

?

static zealot
#

oh found it

#

lmao

#

=booster gradient

compact perchBOT
#
Set Your Level Card Gradient

Pick from the below gradients and use =booster gradient <id>

static zealot
#

you can set the top color as well

surreal quarry
#

none of the booster cmds are in help

static zealot
#

that's why I have an yellow-orange gradient

surreal quarry
#

wdym top color

static zealot
#

=xp

compact perchBOT
static zealot
#

the one on the top

#

the bottom one is image

surreal quarry
#

oh yea

static zealot
#

top is color usually

surreal quarry
#

top is the booster gradient

static zealot
#

but as booster you can set 1 out of 10 gradients

surreal quarry
#

mine is like #1 i think

static zealot
#

yeah

#

its 1 yeah

#

I even found your command lmao

surreal quarry
#

lol

static zealot
#

lmao

surreal quarry
#

nice xD

static zealot
#

I'm bored lmao.

surreal quarry
#

=joke

compact perchBOT
#
Hey son,

Chances are if you' ve seen one shopping center, you've seen a mall.

static zealot
#

I did indeed

forest pecan
#

=jokr

#

=joke

compact perchBOT
#
Hey son,

I've been trying to come up with a dad joke about momentum . . . but I just can't seem to get it going.

static zealot
#

=dadjoke

compact perchBOT
#
Hey son,

Where was the Declaration of Independence signed?

At the bottom!

surreal quarry
forest pecan
#

=dadjoke

compact perchBOT
#
Hey son,

Did you hear about the cow who jumped over the barbed wire fence? It was udder destruction.

static zealot
#

hmm

#

maybe i

forest pecan
#

=dadjoke

compact perchBOT
#
Hey son,

What do you give a sick lemon? Lemonaid.

forest pecan
#

omgomg

#

im rofl so hard omgomg

surreal quarry
forest pecan
#

wait wtf

#

why is my pom.xml being ignored

#

lmao

surreal quarry
#

like

#

gitignored

#

or

ocean quartz
#

Cuz maven

forest pecan
#

lmao

ocean quartz
#

Delete it

surreal quarry
#

gradle init smh

regal gale
#

I can't belive this exists lol

#

d;spigot PotionMeta#setColor

ruby craterBOT
#
void setColor(@Nullable Color color)```
Description:

Sets the potion color. A custom potion color will alter the display of the potion in an inventory slot.

Parameters:

color - the color to set

static zealot
#

ugh

#

why can't you believe that?

surreal quarry
#

what

#

i had no clue that existed

#

thatโ€™s kinda cool

#

time to make a rainbow

forest pecan
#

gay pride

#

lmao

abstract hearth
#

love the youtube vs twitch quota limit:
Youtube: Oh yea, you can have 100 search queries per day, that should be enough!
Twitch: 800 per minute, take it or leave it.

regal gale
#

^ my own VersionUtil

hot hull
#

Firstly

#

Improper naming

jovial warren
#

@prisma wave you'll never guess what I started using

jovial warren
hot hull
#

Had to say it pog

jovial warren
hot hull
#

My internet doesn't work so I've legit got nothing to do

jovial warren
#

PDM good shading bad

#

especially because it means I can have many Kotlin plugins share the same Kotlin

static zealot
#

what the hell. I have 2 bungee plugins both of them using Files.copy(input , file.toPath(), StandardCopyOption.COPY_ATTRIBUTES), one of them loads, one of them errors at exactly that line.

regal gale
jovial warren
#

don't think that's improper naming

#

if it was Util, I'd agree

#

I guess NMSVersionUtil may be better suited?

#

but VersionUtil is fine

hot hull
#

version should be upper case

#

Since it's a constant

jovial warren
#

I didn't see that

#

yes, yes it should

hot hull
jovial warren
#

is it a constant though?

hot hull
#

It is yes

jovial warren
#

I guess it's a runtime constant once loaded

#

definitely not a compile-time constant lol

hot hull
#

If something is a final static it's considered a constant

jovial warren
#

yeah

hot hull
#

Bruh miss me with the what kind of constant, noone cares

jovial warren
#

because static = no instances and final = no changes

regal gale
#

Anything else then thonking

hot hull
#

Not sure what's with the SV in the enum names, but that's just nit picking

jovial warren
#

I generally don't even write that much

#

lemme see how I do it in adapters

regal gale
#

It's short for "ServerVersion"

jovial warren
#

(based off of KiteBoard's adapters)

regal gale
#

Just for fancy-looking name lol

jovial warren
#

yeah that's not gonna match though

#

also, it's lowercase v not uppercase V

#

e.g. v1_8_R1

regal gale
#

Did you even see this? thonking

#

version.name().equalsIgnoreCase("S" + ver)

jovial warren
#

ah

#

me blind

#

or shall I say, how Niall does it lol

#

that was taken straight from KiteBoard

regal gale
#

Matt's Lib's version util class also uses substring too

jovial warren
#

and yes, I know, the way adapters works is kinda whack

regal gale
#

Not sure about the "v" replacement though

jovial warren
#

look at the modules

#

actually no, I'm being stupid

#

that shouldn't be replaced there

#

this is completely untested I guess

regal gale
#

How are you releasing it to github already without testing lol

jovial warren
#

because I started throwing unfinished things on GitHub before I lose them or delete them again out of rage

#

I often just delete everything because I get annoyed that it's not what I want

#

adapters will be rewritten anyway

#

there will be a new way of getting adapters

#

it'll be fully modulised

#

e.g. pdm 'dev.bombardy:adapters-login:1.0.0, which will give you access to LoginAdapter and all the implementations

#

and LoginAdapter can do a few things

#

then there's a SpawnAdapter, PlayAdapter, etc.

#

it's meant to be a standalone NMS adapter library, to make your life easier when working with NMS

#

oh btw, just gonna ask out of curiosity, would anyone actually use this?

regal gale
#

Might be, yeah

jovial warren
#

adapters - never write a single line of NMS code again

old wyvern
#

Compatre works

#

I wonder if that works without a Agent but just a classloader modifying the bytecode while loading ๐Ÿ˜ฎ

jovial warren
#
LoginAdapter loginAdapter = AdapterProvider.getLoginAdapter(); // gets the appropriate login adapter for the running NMS version
loginAdapter.disconnect(player, TextComponent.fromLegacyText("Goodbye!")); // sends PacketLoginOutDisconnect
#

then, for example, SpawnAdapter:```java
SpawnAdapter spawnAdapter = AdapterProvider.getSpawnAdapter();
spawnAdapter.spawnEntity(player, entity)

#

(the player instance is because we need a player to send the packet to, which we get through PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection)

prisma wave
#

That's what he wants

#

Don't do it

jovial warren
#

lol

prisma wave
jovial warren
#

yako may or may not have had a hand in this, since he works for my dev team now lol

prisma wave
#

outstanding

#

The pdm virus is spreading

#

Metaphorically ofc

old wyvern
#

When did pdm get released again?

#

time

#

date

jovial warren
#

I wouldn't be using PDM if I didn't write a lot of Kotlin stuff

old wyvern
#

2020 start by any chance?

prisma wave
jovial warren
#

but PDM allows me to share both Kotlin and Jedis between plugins

old wyvern
#

PDM the source of the rona?

jovial warren
hot hull
#

So it was your fault BM

old wyvern
#

๐Ÿ˜ฎ

jovial warren
#

PDM came after the rona

hot hull
#

For fucks sake

old wyvern
#

Arrest this man

old wyvern
jovial warren
#

has PDM really been a thing since March last year?

hot hull
#

Yes

old wyvern
#

Yea I think so

jovial warren
#

no it hasn't

hot hull
#

Still doesn't work, but that's a minor detail

jovial warren
#

first commit was on the 20th June you geese

hot hull
#

"you geese"

old wyvern
#

What did the first commit include?

hot hull
#

Depression

jovial warren
#

pretty much fuck all, that's what

old wyvern
#

Looks like it was being worked on before that date

jovial warren
#

I won't be using PDM in any plugins I publish yet, but I'll use it in private

#

don't really see a point in using PDM unless you know you will have other plugins to share your libraries with

#

also, I still don't relocate any of my dependencies lol

#

also, can you imagine writing a config file in JSON format so that you don't have to do whacky YAML conversion

prisma wave
prisma wave
jovial warren
#

yeah, might wanna do it for punishments, since I got quite a few

#

kotlinx.serialization, retrofit, retrofit kotlinx.serialization converter, okhttp, koin-core, exposed-core, exposed-dao, exposed-jdbc, exposed-java-time, mariadb-java-client, bungeecord-chat, kotlinx-coroutines-core and commons-text

#

oh, and org.reflections

#

4 of those are just for querying the Mojang API for UUIDs, koin is DI, exposed is SQL ORM, coroutines we know what that is, and commons-text is because of StringSubstitutor#replace

prisma wave
#

reflections ๐Ÿ˜

jovial warren
#

it was either that or glassfish I think

#

glassfish is a bit faster I think but also a bit bigger

old wyvern
jovial warren
#

jesus

old wyvern
#

๐Ÿฅฒ

#

elara.kt?

#

Wha?

prisma wave
#

elara.hs

#

Literally no effort at all

old wyvern
#

we already have that xD

prisma wave
#

You just... Put it lol

old wyvern
#

I think you might be referring to a VM?

#

kotlin doesnt have one of its own

#

Thats just a file extension

#

lol

prisma wave
#

French day today

#

Gรฉnial

#

๐Ÿ˜”

#

lol

jovial warren
#

imagine being one of the best mathematicians in the class and not getting invited to a national maths challenge that others in your class that aren't as smart have been invited to KEKW

hot hull
#

@obtuse gale An idiot

old wyvern
#

A Human

#

Hmm

prisma wave
#

Hmmmmmmmmm

hot hull
#

Bardy, you'd might want to consider if it's your attitude that was the reason you weren't invited reversed_fingerguns

jovial warren
#

you know the maths challenge? idk whether you ever did it

#

that challenge that certain years do

#

IMC, that's it

#

the intermediate maths challenge

prisma wave
#

there are quite a few

#

hm

jovial warren
prisma wave
#

O I think I've heard of that

old wyvern
#

Efefury is a member of the species with the zoological name homo sapiens. These members of the animal kingdom are omnivorous.

#

๐Ÿ˜Œ

prisma wave
#

Talk about elara

old wyvern
#

^

#

wha?

prisma wave
#

sure

jovial warren
#

also, on a completely random note, whoever decided that renaming the okhttp package to okhttp3 and then not changing it for v4 is a nut

prisma wave
#

Are you writing in English?

jovial warren
#

pdm 'com.squareup.okhttp3:okhttp:4.9.0'

#

because that makes sense amirite

prisma wave
#

just say "I speak a bit of French" or something

#

lol

#

Ur English is good

#

somewhen ๐Ÿ˜Š

jovial warren
#

and explicitly depending on OkHttp 4 is good for Kotlin users because OkHttp 4 was the Kotlin rewrite with all the extension functions

#

because yes, OkHttp is now written in Kotlin if you didn't know

prisma wave
#

lol

#

It made sense up until the last message lol

#

"for what where who are you?"

#

I don't think it makes sense in any language lmao

#

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

#

might try learning german

#

Sounds fun

lunar cypress
#

PepeLa er weiรŸ es nicht

prisma wave
#

ok lol

lunar cypress
#

"somewhen" lmao

jovial warren
#

maybe you should learn English

lunar cypress
#

love that

prisma wave
#

Lol

#

That word is valid for us

lunar cypress
#

really?

prisma wave
#

Yea

#

I'm not sure if it's slang or a dialect but the word exists here

lunar cypress
#

can you speak turkish?

prisma wave
#

Not in most English though

lunar cypress
#

nice

#

wow TIL

#

never heard that

prisma wave
#

I mean it makes sense

#

For consistency

lunar cypress
#

widepeepoSad

prisma wave
#

Imagine if language learning was like spigot "I'm not gonna learn any words of the language, I'm gonna move to the country and become a famous poet"

#

Ok lol

#

Duolingo ?

#

I mean I managed Slovenian ok

#

I remember 4 words ๐Ÿ˜Ž

jovial warren
#

not sure if making a request to the Mojang API to get a player's UUID from their username every time someone votes is a good idea or not

prisma wave
#

true

#

Probably more

jovial warren
#

actually, I'll only make a request to the API when they're not already in the votes table, which will only be when they haven't voted before

#

which isn't as bad

lunar cypress
prisma wave
#

Why not use getOfflinePlayer @jovial warren

jovial warren
#

because I'm doing this on Bungee

prisma wave
#

O

jovial warren
#

and also, getting an offline player by name is bad

prisma wave
#

Just cache it then

jovial warren
prisma wave
#

Ok

jovial warren
#

I have a database table of votes, and I need to listen for a vote, check if they're in the database, and if not, retrieve their UUID from the Mojang API and save them to a database

lunar cypress
#

do your homework efe

prisma wave
#

can it also mean "you"?

#

Huh

lunar cypress
#

formal you

jovial warren
#

I'll do it all async so I don't block Bungee, but still a bit expensive

prisma wave
#

Right

old wyvern
#

Doesnt all european languages come from latin?

prisma wave
#

French and Italian definitely come from latin

#

So does Spanish (and Portuguese afaik)

old wyvern
lunar cypress
#

french, italian and spanish are romance languages, english and german are usually classified as germanic languages I believe

prisma wave
#

yeah

old wyvern
#

They seem to speak multiple languages there

#

Maybe ask andre

#

ah

lunar cypress
#

Schweizerdeutsch is not German

#

It's actually an own language

old wyvern
#

Is that word supposed to be read

#

Or was it just made so people dont consider reading it๐Ÿฅฒ

#

๐Ÿ˜ฌ

#

The what

lunar cypress
#

I may be wrong, but I've heard this from many Swiss people now

#

It's still a sort of dialect but it's distinct enough to count as a real language

old wyvern
#

๐Ÿ˜ฎ

lunar cypress
#

submitted my second last homework for basics of computer science as well now ๐Ÿ˜Ž

#

Man I've really done more homework in 1/4 year of studying than in my last 5 years of high school combined

jovial warren
#

anyone know how you're supposed to set item data for pre-1.13? both MaterialData and ItemStack with the data param seem to be deprecated

hot hull
#

ItemMeta?

jovial warren
#

you can do that with meta?

#

d;spigot ItemMeta

ruby craterBOT
#
public interface ItemMeta
extends Cloneable, PersistentDataHolder, ConfigurationSerializable```
ItemMeta has 33 methods, 3 extensions, 3 super interfaces, and  17 sub interfaces.
Description:

This type represents the storage mechanism for auxiliary item data.

An implementation will handle the creation and application for ItemMeta. This class should not be implemented by a plugin in a live environment.

#
public interface Entity
extends Nameable, CommandSender, PersistentDataHolder, Metadatable```
Entity has 60 methods, 4 extensions, 6 super interfaces, and  148 sub interfaces.
Description:

Represents a base entity in the world

#
public interface Bisected
extends BlockData```
Bisected has 2 methods, 1 extensions, 2 super interfaces, and  3 sub interfaces.
Description:

'half' denotes which half of a two block tall material this block is.
In game it may be referred to as either (top, bottom) or (upper, lower).

lunar cypress
#

have you read the deprecation note bardy

ruby craterBOT
#
public class MaterialData
extends Object
implements Cloneable```
MaterialData has 37 sub classes, 1 all implementations, 9 methods, 1 implementations, and  1 extensions.
Description:

Handles specific metadata for certain items or blocks

Deprecation Message:

all usage of MaterialData is deprecated and subject to removal. Use BlockData.

jovial warren
#

everything's an interface because it's implemented in CraftBukkit

#

and yes, I did

#

for MaterialData it's magic value, for ItemStack it's also magic value

ruby craterBOT
#
public interface VersionTree
extends BlockTagTree```
VersionTree has 1 methods, 1 extensions, and  2 super interfaces.
Description:

A tree node for an @version block tag.

@version version-text

jovial warren
#

don't believe CraftBukkit's JavaDocs are public

#

nope

prisma wave
#

Great

oak coyote
#

First remove the unnecessary names

#

Just rename

#

But honestly

#

If itโ€™s obfuscated itโ€™s for a reason

jovial warren
#

you can get tools that'll do that for you

#

but they don't work that well

oak coyote
#

Why are you trying to crack something?

#

Naughty naughty

jovial warren
#

java-deobfuscator works fine for ProGuard I think (worked for KiteBoard), and there's another one that works for ZKM, stringer, etc.

#

it detected FeatherBoard was using ZKM ez

#

why would you obfuscate your libraries?

#

lol

#

imagine obfuscating at all though amirite

#

open-source good proprietary bad

#

and for reverse engineering C, try Ghidra

oak coyote
#

People who try to deobfuscate just damage the work of others typically

#

They obfuscate on purpose to try and protect their work as they feel it is valuable

jovial warren
#

yeah, I don't agree with code stealing, that's not fair, but I agree with open-source

regal gale
#

A lot of people have already done it with Minecraft lol

jovial warren
#

the thing with obfuscation though is it's security through obscurity

oak coyote
#

When you choose to make something open-source itโ€™s your own choice and is good but some occasions require the opposite approach

quiet depot
#

the problem I have with obfuscation is the fact that people think their code is valuable

oak coyote
#

Is it not?

quiet depot
#

god no

#

most people's code is absolutely worthless

oak coyote
#

Do you feel you are worthless and insignificant

#

Cause you might want to have a talk about that

quiet depot
#

no? but we're talking about code here, not people

jovial warren
#

programming should encourage code sharing

#

your code can be, and often is, written much better and much cleaner by others

oak coyote
#

I agree some people donโ€™t produce amazing code but there is some decent stuff out there

quiet depot
#

and for the record all my code is open source jerry, apart from commissions (due to the source not being mine, the rights belong to the buyer)

jovial warren
#

so there isn't really that much to protect

prisma wave
#

No premium plugin is worth "stealing"

jovial warren
#

yeah

#

but for example, I could just go and remake FeatherBoard from scratch, and with a bit of help from a few others and Stack Overflow, probably make something better

#

or LiteBans for example

#

or even Minecraft

#

and that's not me being arrogant, that's me being realistic

old wyvern
#

Bardcraft

jovial warren
#

lol

prisma wave
#

Mhm

oak coyote
#

Iโ€™m not against open-source

#

Just itโ€™s a choice

old wyvern
jovial warren
#

I like to encourage open-source everywhere

prisma wave
jovial warren
#

at least having your stuff open-source means you get to laugh at idiots who complain about DRM's

oak coyote
#

Why would you obfuscate the API?

jovial warren
#

and even better when it's freemium, and ends up on DarkSpigot or DirectLeaks

quiet depot
#

blackspigot*

old wyvern
#

xD

oak coyote
#

DirectLeaks is a fun one

jovial warren
#

I can't say it without it getting yeeted Pig, you know that lol

quiet depot
#

oh

oak coyote
#

I got some of my stuff on that

quiet depot
#

i thought directleaks got shut down

oak coyote
#

It wasnโ€™t even obfuscated

jovial warren
prisma wave
jovial warren
#

I'm kinda committed to providing free and open-source alternatives to premium software

oak coyote
#

Yes

jovial warren
#

just what I do

oak coyote
#

You hook into APIโ€™s do you not?

hot hull
#

@oak coyote OS or you get the stick!

quiet depot
#

jerry people don't always include apis, but sometimes you still need to hook in

jovial warren
#

because I don't believe in people having to pay for everything

old wyvern
#

oh

#

Thats actually blacklisted here

#

xD

oak coyote
#

Iโ€™m sorry frosty

prisma wave
#

Many premiums don't even have actual APIs

jovial warren
prisma wave
#

or if they do it's just some shitty interface with 2 methods

oak coyote
#

well then thatโ€™s the larger issue

prisma wave
#

Sure

jovial warren
prisma wave
#

Which wouldn't be an issue if the code wasn't obfuscatied

oak coyote
#

Those with decent APIโ€™s which are documented can be very good even after being obfuscated

jovial warren
quiet depot
#

hey fun fact guys clip gave us access to his plugins

jovial warren
#

clip should make more open-source plugins lol

hot hull
#

And then you wake up Piggy

prisma wave
#

o cool

prisma wave
jovial warren
#

I don't see the point in making something free but proprietary

quiet depot
#

updates soonโ„ข๏ธ

oak coyote
#

Not many but that is something for us to change as a community

hot hull
#

Piggy, will the staff team be getting access to perhaps help with them, or is that a no

jovial warren
#

I once heard the argument from ProSavage about why he made FactionsX proprietary, that he doesn't want people stealing his code, but that's security through obscurity

quiet depot
#

no sorry frosty, just between the admins

#

that may change in the future

#

but for now it's just admins

hot hull
#

Feels bad, but I mean it took how many years to get to this point atleast?

prisma wave
jovial warren
#

Punishments was literally created out of my hatred for Ruan and his shitty API lol

quiet depot
oak coyote
#

But time is money some make some money from what they do

jovial warren
#

if I can't convince Niall to open-source KiteBoard, OpenBoard will become a thing as an alternative

quiet depot
#

niall said he might os it

#

he's kinda 50/50 on it

jovial warren
#

he accepted my friend request yesterday, so maybe I can persuade him a bit more lol

quiet depot
#

@heady birch glare open sourced guilds and it went fine

#

kiteboard won't suffer

#

hey voteparty too actually

jovial warren
#

and it'll attract more people I think, as it'll be an open-source alternative to FeatherBoard

prisma wave
#

Glare best premium author

#

Open source + kotlin + pdm :))

jovial warren
#

I do like to laugh at how VoteParty and other plugins still get put on DarkSpigot

hot hull
#

BM

jovial warren
#

and I'm like

hot hull
#

Glare said he regrets using kotlin kek

prisma wave
quiet depot
#

lol

old wyvern
#

๐Ÿฅฒ

prisma wave
#

Why lol

quiet depot
#

bloat

hot hull
#

I'll find the convo when my internet is back

quiet depot
#

i assume

regal gale
#

Outside the problem here, are you guys using VS 2019 or VSCode right now?

jovial warren
#

not surprised, he was "helped" by Sxtanna

old wyvern
#

Both

quiet depot
#

neither thien

#

sublime masterrace !!1!1

old wyvern
#

xD

regal gale
#

Lol

winter iron
#

notepad

#

the generic version

old wyvern
#

I have all of those installed

jovial warren
#

I use Atom for GitHub Desktop and Notepad for everything else lol

regal gale
#

I am on the editor for Godot here

prisma wave
#

Emacs Lisp

jovial warren
#

or vim

quiet depot
#

wym atom for github desktop

old wyvern
#

Still havent used ruby and have had rubymine installed for a few months now

oak coyote
#

@hot hull is using witchcraft currently to talk to us as he doesnโ€™t have internet ๐Ÿ˜‚

jovial warren
#

vim > nano

quiet depot
#

nano is easy tho

hot hull
#

Jerry, mobile data

regal gale
#

Also, I regretted using Atom ๐Ÿ‘€

oak coyote
#

I call that witchcraft

prisma wave
#

atom kinda sucks

quiet depot
#

atom is too slow

prisma wave
#

Apart from being pretty

#

yeah

jovial warren
#

yeah I hardly ever use it

static zealot
#

VS C ftw

jovial warren
#

I generally just use good ol' built-in Notepad

regal gale
#

People still recommend them in yt

old wyvern
quiet depot
#

does vsc compare to sublime speed wise yet

jovial warren
#

I obviously don't write code with Notepad, but I use Notepad to store things I want to look at

old wyvern
#

Its slower pig

quiet depot
#

cuz ik it beats it in functionality

old wyvern
#

Not by much tho

quiet depot
#

but speed is still lacking last time i checked

static zealot
#

I'm actually pretty ok with the speed it has. I used to use it before and it was like super laggy because of a plugin I had but that got fixed as well

jovial warren
#

same lol

static zealot
#

cool hover ^

hot hull
#

Ew Blitz, that's too much imo

static zealot
#

xD

prisma wave
#

VSC can never beat sublime