#dev-general

1 messages · Page 575 of 1

remote goblet
#

lose all the developers, the world shuts down and goes back into medival times

obtuse gale
#

Does Scottish same as British?

remote goblet
#

no

prisma wave
#

Kind of

jovial warren
#

no

obtuse gale
#

Kind of?

prisma wave
#

they would say absolutely not

obtuse gale
#

Why they talk like same accent

remote goblet
#

Scottish = Scotland origin, British = England origin

jovial warren
prisma wave
#

They really don't

obtuse gale
#

Is Wessex a British or a county?

prisma wave
#

what

remote goblet
#

it's a town

#

in england

obtuse gale
#

I am confused

jovial warren
#

I mean, Scotland does come under the Britain umbrella though

remote goblet
#

good

obtuse gale
#

There is County & Country

jovial warren
#

but England and Scotland are definitely not the same lol

obtuse gale
#

What is county?

prisma wave
#

So officially Scotland is part of Britain but people usually associate British = English

remote goblet
#

Country = England, Scotland, Wales, France, Spain, ect, A county is a place in a country

obtuse gale
#

Ouh like a state?

prisma wave
#

Sus Sex

prisma wave
jovial warren
remote goblet
obtuse gale
#

Heh?

prisma wave
#

middle sex

remote goblet
#

when the sex is sus amongUs

obtuse gale
#

Is British can get mad easily?

static zealot
#

🥲

remote goblet
#

people from the united kingdom as a whole can get very angy

prisma wave
ocean quartz
obtuse gale
#

Like... I watch some vid... they just smack people when they angry

prisma wave
#

yep

static zealot
remote goblet
#

POG

static zealot
#

and its gone... fuck

obtuse gale
prisma wave
#

Sad

static zealot
#

I can undo it

ocean quartz
#

Microsoft finally integrating paint into the wallpaper

obtuse gale
#

Hmm I wonder what happened if I married with british people

static zealot
#

lmao. yes

pallid gale
#

smh blitz

obtuse gale
#

Will they always angry to their wife?

prisma wave
#

yes

static zealot
#

they were high quality stuff

obtuse gale
remote goblet
#

British people are just angry football (soccer) fans that get drunk all the time

pallid gale
#

low effort posting bad

prisma wave
#

absolutely

#

100% serious

#

I never joke

pallid gale
#

lucky I left one lol

ocean quartz
static zealot
#

1 of them was meant to showcase how its done...

#

the gif one

pallid gale
#

¯_(ツ)_/¯

obtuse gale
#

Hello

remote goblet
obtuse gale
prisma wave
#

🥴

remote goblet
#

which embarrassing actually

pallid gale
#

also how is this in dev general

obtuse gale
#

Yes

remote goblet
#

how isnt it?

jovial warren
#

lol

prisma wave
remote goblet
#

we're mostly all developers, sounds like a place for developers to talk about general subjects

jovial warren
obtuse gale
prisma wave
#

it does

#

So true

pallid gale
#

offtopic-2

static zealot
#

@pallid gale dev general is the off topic for developers.. smh

jovial warren
#

lol

prisma wave
#

does anyone here like developing

obtuse gale
#

Me

static zealot
#

nooooo

remote goblet
#

no

quiet depot
#

no i fucking hate it it needs to die in a hole

remote goblet
#

god no

ocean quartz
#

Not configuration help!

obtuse gale
#

I love to developing someone to make him better

prisma wave
#

ok me too

obtuse gale
#

I need help

compact perchBOT
#

There is no time to wait! Ask your question @obtuse gale!

obtuse gale
#

There an help

potent nest
#

I can't help you anymore

prisma wave
#

I need help

compact perchBOT
#

There is no time to wait! Ask your question @prisma wave!

prisma wave
#

what the

obtuse gale
#

Nice bot

#

No need to shout

#

Help

#

Need help

#

I need help

compact perchBOT
#

There is no time to wait! Ask your question @obtuse gale!

obtuse gale
#

Lmao

compact perchBOT
#
Your XP Multiplier:
prisma wave
#

I have a question

compact perchBOT
#

There is no time to wait! Ask your question @prisma wave!

obtuse gale
prisma wave
#

you're a nice bot

onyx loom
#

people from the UK are British
the UK includes the 4 countries of England, Wales, Scotland and Northern Ireland
while Great Britain only describes the countries that reside upon the main island, so England, Wales and Scotland (excludes Northern Ireland)

obtuse gale
#

@pallid gale Why I can't chat there?

pallid gale
#

no idea

#

reload discord?

obtuse gale
#

I can't @static zealot

#

Restart hmm

static zealot
#

did you leave the thread maybe?

obtuse gale
static zealot
#

do you see a join button when you click on the thread?

#

or do you even see the thread?

ocean quartz
#

@steel heart Wdym about illegal dependency?

old wyvern
#

Oi oi

#

plugin jam started

ocean quartz
#

Yes!

old wyvern
#

Less goo!!!!

pallid gale
#

Get jamming

static zealot
#

omg. sublime text 4's git integration is so fucking great.

ocean quartz
steel heart
#

ill just shade it and act like its my own classes UwU

static zealot
#

lmao

steel heart
#

blitz whos ur partner

static zealot
#

no one

#

idk how much work I'll get done xD

#

so don't want to bother anyone

#

by acting like I will take part of the event and do absolutely nothing

steel heart
#

oh fair

static zealot
#

tho its 2 weeks so maybe one of these days I'll just get bored and do a couple small things

steel heart
#

ye

remote goblet
#

6 hour slowmode on off topic 2 smh

static zealot
#

wait what?

#

for real?

#

funnycube lmao

remote goblet
#

emily

#

what is your cooldown on

static zealot
#

@obtuse gale ^^

obtuse gale
remote goblet
#

we can't actively force the thread to live forever? madWiggle

static zealot
#

xD

#

we can.

remote goblet
#

ah yes discord

#

smart

static zealot
static zealot
remote goblet
static zealot
#

xD

obtuse gale
#

hahahaha

static zealot
#

:))))))

#

cube made it 6 hours

#

at one point

#

and you talke

#

d

#

and then he changed it

#

and you're stuck with that

#

try restarting

#

maybe the cache will update

#

also. try leaving and rejoining the thread.

#

maybe discord is even dumber

#

and didn't think about that one

remote goblet
#

i tried

ocean quartz
remote goblet
#

it worked on my screen but when I tried again

#

it didnt work

static zealot
#

where's my embed?

obtuse gale
#

AMAZING

remote goblet
steel heart
#
non-sealed
#

Is that colored for u guys?

remote goblet
#

no

steel heart
#

Hmm because it’s apparently going to be a keyword

#

I think

static zealot
#

o?

obtuse gale
#

exactly

#

going to

#

though

record

isn't highlighted either

ocean quartz
#

@prisma wave

obtuse gale
#

lmao

#

@onyx loom 🙂

ocean quartz
#

🥲

onyx loom
#

☹️

obtuse gale
#

xD

static zealot
#

then it turns out you also have covid?

steel heart
#

@prisma wave

ocean quartz
#

My experience from england: Had a really nice burger on a local place close to the windsor castle, however the breakfast i had at the hotel was the worse i've ever had, the scrambled eggs legit had no taste, and .. beans? wtf england

steel heart
#

Innit

obtuse gale
#

how do you make tasteless scrambled eggs...

#

that's like

static zealot
#

you don't cook them

#

also you don't season them

steel heart
#

Sugar

onyx loom
#

wth

onyx loom
#

actually english breakfast doesnt have a scrambled egg, but yea

ocean quartz
#

Was saying i disliked the breakfast i had, wasn't really an english one, was a mix of bunch

ocean quartz
#

Beans are great, just not for breakfast

prisma wave
#

So wrong

#

beans + bacon + other shit = good

surreal quarry
#

never heard of bean cereal???

#

amateurs

#

#food via threads soon™️?

onyx loom
#

beans have to be done right for them to be good tho imo

prisma wave
#

meh

#

actually

#

yeah

#

not too runny

surreal quarry
#

i like em soggy

#

like cereal

#

hence bean cereal

prisma wave
#

stay away from me

surreal quarry
#

sometimes i add water and milk to make em even soggier

ocean quartz
forest pecan
#

wtf is that shit

obtuse gale
#

What the actually BZZ is that?!

forest pecan
#

that looks like someone puked on a plate

lunar cypress
#

bri'ish food

onyx loom
#

james food*

steel heart
#

ja'es food

surreal quarry
#

mmmm watery beans

forest pecan
prisma wave
#

🥴

#

oh my

#

where do you find these people

forest pecan
#

lol

steel heart
#

SpigotMC

#

a legendary place

#

truly one of a kind

frail glade
#

Love that place.

steel heart
#

Yeah it has become much better

potent nest
#

null.equals(object) is way better

prisma wave
#

((Object) null).equals(obj)

ocean quartz
#

Reminds me of my suggestion yesterday setPlaceholders((Player) null, "placeholder") 🤡

forest pecan
#

did you know you can get access to a Void

#

like the actual unit

prisma wave
#

indeed

steel heart
#

new Void();

static zealot
#

it died

#

the thread

#

noo

onyx loom
#

that lasted long

wind patio
static zealot
#

🥰

cinder flare
flint cipher
#

DeluxeCommands isn't open source right?

static zealot
#

yeah

#

only 1 plugin of clip's is os

#

and that is bcz a few said they'll rewrite and never finished

#

talking about ezblocks btw

#

xD

#

wait. kinda forgot about PAPI

#

but that's another story

hot hull
#

Wait what the hell

old wyvern
#

Yea terfs was talking to him about the levely bot

#

Probably for the project ig

prisma wave
#

oh my

#

no way

#

how do i get involved

old wyvern
#

xD

#

There we go, we got another person in

prisma wave
#

wherever he goes i follow

old wyvern
#

@eager fern

#

Someone make a Sx's gf role for bm

#

@quiet depot ^ Petition

prisma wave
#

yes

old wyvern
#

Did they remove the poll emote?

#

doesnt seem to work

#

or wait no

#

it does

eager fern
#

Lmao

#

@prisma wave you are apart

#

If you respond to dms

static zealot
#

Yooo. Anyone got any idea on how to customize the file explorer from PopOS?
I want:

  • To add a new folder on the right explore bar
#
  • To change the icon of a folder/directory
#

been looking into the options and there's very little customization

#

from what I can see at least.

#

Welp. found out how to put a folder on the side bar. only problem is that it is at the top. but will have to live with that I guess

half harness
#

im trying to implement gson into my bw plugin but its not being nice to me 😩

#

but im too far to go back

static zealot
#

yes. bcz gson. is not the way

sly sonnet
#

blitz

#

u just drag the folder in the sidebar

static zealot
#

yes. but that only goes at the bottom

#

found that out

sly sonnet
#

ooh, u need it at the top

#

now i see

static zealot
#

@half harness moshi is what you should use

half harness
#

moshi?

static zealot
#

yes.

#

its made by the gson developers. but without google

#

I think

#

anyways. it is better

#

its kotlin friendly and stuff

#

smaller in size

half harness
#

o

static zealot
#

default values for fields

half harness
#

uhhhhhhhhh

static zealot
#

google moshi github

#

it will be the first repo

#

usually

half harness
#

what

#

what are you doing gson

static zealot
#

u should take a break dkim.

half harness
#

I just started-

static zealot
#

yeah. exactly

#

oh fuck. I Just realised.

#

hmmmmmmmmmmmm

half harness
#

wat

static zealot
#

I've changed my OS but I may have forgotten to make a backup of my ssh keys. need to double check.

half harness
#

👀

static zealot
#

oh ok. I did not forget

#

@quiet depot what permissions did I have to give to .ssh?

half harness
#

uhh if I'm doing GsonBuilder#registerTypeAdapter(World.class, new WorldAdapter()) will this work? since World is an interface

#

¯_(ツ)_/¯

#

but its looking at some nms code

#

Caused by: java.lang.IllegalArgumentException: class net.minecraft.server.v1_8_R3.OpListEntry declares multiple JSON fields named a

static zealot
half harness
#

and idk what OpListEntry is

static zealot
#

u in kotlin?

half harness
#

yes

#

is it incompatible with kotlin or smth 😩

static zealot
#

World::class.java then I think?

half harness
#

yes

#

i just converted it to java

#

it compiles and stuff

#

but gson doesn't use the type adapters

#

I've already made adapters for both Location and World

static zealot
#

make sure you didn't import the nms world or something instead.

obtuse gale
half harness
#

ye, i found it out the moment you pinged me 👀

obtuse gale
#

registerTypeAdapter is for the direct class (in this case, craftworld), hierarchy for superclasses too

half harness
half harness
#

ty :)

#

hopefully it'll work now 😄

half harness
#

in the image

forest pecan
#

its just saying you are repeating the same string many times

#

and that you should assign it to a variable

#

and use that variable instead

obtuse gale
#

I love how it's like "this one line" and does not show ANY context

forest pecan
#

Yeah lol

half harness
#

this is literally a one liner (i forgot what its called).. I'm only using it once

#

;-;

#

and i dont think this: ```kt
fun getStringIdk(data: GameData): String = "editing.${data.world.name}"

#

the first one ill have to look at the code since it only shows 1 line ._.

#

uh

#

the first one doesn't exist

#

..

#

I don't know if my eyes are deceiving me but now there's two lines of the same thing

#

lol

#

which is not in this class

#

oh

#

those were fixed issues

#

🤦

onyx loom
#

old commit?

half harness
#

i just saw the word "issues" ._.

static zealot
#

lmao

onyx loom
#

💀

half harness
#

oops i committed with my test command still there

wind patio
#

what exactly does sourceCompatibility in gradle config do

static zealot
#

good one IJ xD

wind patio
static zealot
wind patio
#

so, ex. if I use Java 16 for project SDK

#

and I set source and target to 8 in gradle

#

is it even possible and if so what does it do

static zealot
#

wtf is going on?

wind patio
half harness
wind patio
half harness
#

uhh

wind patio
#

gradle?

half harness
#

yes

#

okay

wind patio
half harness
#

to set project sdk you press ctrl + shift + alt + s

wind patio
#

yeah, I know

#

just asking the difference between the two

#

the one in settings and gradle config for target/source compatibility

onyx loom
wind patio
#

does it like, allow me to use Java 16 shit in the project and it generates classes/bytecode for supplied version?

static zealot
#

oh. wonder where I've seen that

onyx loom
#

u wont be able to use java 16 features if ur going to downgrade the java version, even with these compatibility settings

wind patio
#

so, what would be the ideal situation to use it?

prisma wave
#

you need jabel!

wind patio
#

because right now I just set it to the project sdk java ver

onyx loom
#

to use the compatibility settings?

wind patio
#

¯_(ツ)_/¯

static zealot
#

so. @half harness u bored yet? xD

half harness
#

uh

#

sure

#

ill play bw

#

maybe

#

wait

wind patio
#

finally made automatic copy of the plugin jar in local to remote
I'm a happy text typer now

#

😩

static zealot
#

I'm waiting then

half harness
#

oh

#

u can join

#

oops

#

i dont have enough time for bw tho

#

maybe like 7 mins

static zealot
#

where u goin?

#

u can p invite whenever

half harness
#

btw anyone know a nice yml config library like TriumphConfig that lets you do something like this: (i forgot exact code)```java
public class Settings implements SettingsHolder {
@Comment("If the plugin should be enabled")
@Path("enabled")
public static final Property<Boolean> ENABLED = Property.create(true);
}

get(Settings.ENABLED)
*but* also makes it so that you don't have to do this if you want a custom property type: java
public class SettingsClass {
private String uuid; // example, idk if triumphconfig supports uuid serialization already

public UUID getUUID() {
    return UUID.fromString(uuid);
}

}
or even worse in kotlin: kt
data class SettingsClass(var uuid: String = UUID.random().toString()) {
fun getUUIDVariable(): /* kotlin disallows getUUID method */ UUID {
return UUID.fromString(uuid) ?: throw IllegalStateException("what")
}
}

#

or does triumphconfig support custom serialization

#

it needs docs 🥺

half harness
#

well
a lot of ppl here don't like spigot yaml lib and it also doesn't support saving comments or property thingies

#

¯_(ツ)_/¯

#

rn im using spigot library

#

but i made the change to gson for data storing

#

and now idk what to do

#

and so i thought of changing config too 🙂

dense dew
#

ok i dont understand anything 🙂

#

or like

#

30 %

#

maybe 50 :pog:

half harness
#

🥲

dense dew
#

ok i understand 🙂

half harness
#

lol

dense dew
#

just its too late so my brain is working on 10 %

#

like my english

half harness
#

oh

#

u sound fluent in english tho 👀

dense dew
#

lol

#

wtf

half harness
#

plus english nubs don't know "wtf" fingerguns

dense dew
eternal compass
#

Fixed! Everything besides that good?

jovial warren
#

man, multiplatform Kotlin is actually kinda cool, I just started converting my NBT library over to use multiplatform Kotlin (using Okio for multiplatform IO) because why not, and it's actually quite nice

half harness
#

what is multiplatform kotlin 👀

humble silo
eternal compass
#

What is Okio

half harness
#

Okii

#

😌

jovial warren
#

multiplatform Kotlin is where you can write libraries for all 3 of Kotlin's platforms

#

because Kotlin supports JVM, JS, and native compilation

eternal compass
#

It has JS?

#

And Native?

humble silo
#

and you need to write a library for all three of those?

eternal compass
#

Thats... intresting

humble silo
#

Oh is there a kotlin to lua compiler out there?

#

I really wanna be able to write in kotlin for roblox games lol

jovial warren
humble silo
#

Ik there are js to lua compilers, but idk if that would work well

jovial warren
#

but I'm considering porting Krypton over to Kotlin multiplatform so I could potentially write a client in JS or native or something in the future if I wanted to

humble silo
#

what are you using it for?

#

oh thats weird

#

lol

jovial warren
#

and I'm porting the NBT over to multiplatform because I can lol

humble silo
#

i feel like that would be terrible

#

but idk

eternal compass
#

There's already one

jovial warren
#

I can have the server use Kotlin/JVM and have a client use Kotlin/JS

#

or use Kotlin/Native

#

with multiplatform Kotlin

#

though whether I actually will port Krypton or not is another story

jovial warren
#

for example, you can have a jsMain with your JS stuff and use JS native stuff

#

and a jvmMain with your JVM stuff and use Java native stuff

#

Okio, the library I now use for IO, uses multiplatform Kotlin, and it's one of the fastest and most optimised IO libraries there is for Java and Kotlin

#

and what I could do for Krypton as well is define common expect interfaces like Component and then have the actual interface be a typealias of Adventure's Component on the JVM, or another impl on JS, or another on native

#

so you can do stuff like this, for example: ```kotlin
public expect interface TextComponent : BuildableComponent<TextComponent, TextComponent.Builder>, ScopedComponent<TextComponent> {

public fun content(): String

public fun content(content: String): TextComponent

}
and then have the actual interface be a typealias on the JVM, like so: kotlin
public actual typealias TextComponent = net.kyori.adventure.text.Component

ocean quartz
#

And objective C apparently

jovial warren
#

and those, yeah

#

iOS is native

#

and so is objective C

#

so saying "it supports native compilation" covers those

#

I think a multiplatform Krypton might actually be kinda cool

#

or, well, a multiplatform Krypton API, the server will still be Kotlin/JVM

half harness
#

JS plugin? 👀

#

lol

jovial warren
#

idk

#

I'm kinda new to Kotlin multiplatform lol

half harness
ocean quartz
#

Dkim the Jam already started

half harness
#

plus ive got school 😩

#

btw matt

#

i have a couple questions about triumphconfig

#

so if I make a bean or whatever its called, if I do ```kt
class Test(var enabled: Boolean = true)

object Settings : SettingsHolder {
@Path("test")
val TEST: Property<Map<String, Test>> = Property.create(Test::class.java, mapOf("default" to Test()))
}
and the config.yml is empty, the config will update to yml
test:
default:
enabled: true

ocean quartz
#

Yeah

half harness
#

is there a way to make it like something-enabled? since if this was in java, fields cannot have - in them

#

and also, what happens if the config is like yml test: default: enabled: "a" ? will it error? or just convert to enabled: true?

ocean quartz
#
data class Test(
  @Name("something-enabled")
  var enabled: Boolen = true,
)
half harness
#

ooh 👀

ocean quartz
#

It'll be false

half harness
#

hm

#

is there a way to set the default value?

ocean quartz
#

I mean that isn't default it's an invalid value therefore false

half harness
#

what would happen if the code was ```kt
class Test(var text: String = "a")

object Settings : SettingsHolder {
@Path("test")
val TEST: Property<Map<String, Test>> = Property.create(Test::class.java, mapOf("default" to Test()))
}
and the config was yml
test:
default:
text: true

ocean quartz
#

A string with value "true"

half harness
#

oh 👀

#

also is custom serialization/deserialization possible or no?

jovial warren
#

man, imagine not using Configurate

#

smh

#

configurate is the best JVM config library that I have found in a while

half harness
#

👀

jovial warren
#

it supports object mapping and a tree based API

#

like in configurate, you could do this

eternal compass
#

What config formats?

half harness
#

a lot

jovial warren
#
@ConfigSerializable
data class Test(val text: String = "a")
half harness
#

yaml, json, hocon, etc

jovial warren
#

and it's open to support more

eternal compass
#

Sick

jovial warren
#

it's maintained by Sponge

eternal compass
#

Oooh

jovial warren
eternal compass
#

I like sponge stuff

#

Mixins

#

Etc

jovial warren
#

we use it in Krypton because it's so fucking amazing lol

#

and it has Kotlin extras too so it can object map data classes properly

eternal compass
#

'we' who are you kidding? :p

oak raft
#

@half harness thoughts on C++?

jovial warren
half harness
eternal compass
half harness
#

c# 😌

eternal compass
#

I've seen the commits

jovial warren
oak raft
eternal compass
#

BTW @oak raft why's you join my server lol

half harness
#

yes

eternal compass
#

And how did you find it

oak raft
#

Well mr fred

#

It

#

It's a long story

half harness
#

👀

oak raft
#

I clicked your name and saw your about me...

eternal compass
#

Ah fair

half harness
#

lol

oak raft
#

lol

eternal compass
#

It's easy to find ig

jovial warren
#

I won't take the credit away from my man DerEchteJan for spending his time adding loads of commands, the whitelist, the OPs, the user and IP ban lists, and a few more things like entity selector parsing

half harness
#

whos gonna make the /execute command 🥲

oak raft
#

I'll do it if you learn C++ fingerguns

eternal compass
#

:p

oak raft
#

I really didn't LULW

eternal compass
#

I'm just cracked

half harness
oak raft
#

Unreal engine

eternal compass
#

Learn Go

half harness
#

oh

eternal compass
#

Go is sick

oak raft
#

Plus I feel like it's nice to know

half harness
#

i didn't want to learn c++ just for unreal engine 🥲

oak raft
#

What can I do with Go

half harness
#

but

eternal compass
#

That's the end goal of go

oak raft
#

Very very interesting

eternal compass
#

It's actually really nice though

oak raft
#

Would you say it's worth dropping C++

eternal compass
#

I plan to build future web APIs in it

eternal compass
oak raft
#

Since I'm trying to learn languages that are general use atm

eternal compass
#

Well go is easy

#

To pick up

oak raft
#

Speaking of picking up

#

I heard that if you learn C++ you can pick up any other language ez pz

#

Thoughts?

half harness
#

well

eternal compass
#

Never learned it

#

And anyway I can already do that

#

;p

oak raft
#

Yeah cuz you're 5Head

#

I'm 3Head

half harness
#

i think the same goes with java

but iirc c++ is more "low-level" so it might benefit a bit more? but this also means that it's more difficult

#

for example

#

say bye bye to the garbage collector

eternal compass
oak raft
#

I see

half harness
#

ive never used c++ before

#

so

eternal compass
#

I'm lazy

half harness
#

iirc theres some "annotation" or smth in c++ to handle automatic gc ¯_(ツ)_/¯

#

but

#

90% sure im wrong on that

#

lol

oak raft
#

Do you use Unity dkim

half harness
#

not atm

#

but used to

#

i got bored

#

i suck at designing

oak raft
#

Nah bro you gotta use unreal

#

It's so nice

half harness
#

unity is also nice 😌

eternal compass
#

I never use engines when making games

half harness
#

but i just went back to making plugins

oak raft
#

It's nice in it's own right

half harness
#

since with plugins u dont have to worry about UI 🙂

half harness
eternal compass
#

In ts

half harness
#

JavaFX game 😌

oak raft
#

Ohh

eternal compass
#

Shut up dkim

#

Good

half harness
#

already did

#

🙂

eternal compass
#

Delete that

half harness
#

already did that too

#

🙂

eternal compass
#

Yes yes

half harness
#

🙂

oak raft
#

Can we not discriminate against php?

half harness
#

ok

eternal compass
#

No

half harness
#

🙂

oak raft
eternal compass
#

We will discriminate against php

#

No you're canceled

oak raft
#

D:

#

How could you

eternal compass
#

D: You did it first

#

And likes php

#

So smh

oak raft
#

Fair enough

eternal compass
#

Anyway I should try to sleep, I think I have a concussion

oak raft
#

Uh oh

half harness
#

Uh oh

oak raft
#

Why the convussion

half harness
#

👀

eternal compass
#

I dumb dumb

#

And play sportz

#

And hurt head

half harness
#

bonk

oak raft
half harness
#

\👀

eternal compass
#

Bonk

half harness
#

\🥲

oak raft
#

Well gn

eternal compass
#

o/

half harness
#

gn

eternal compass
#

Last thing, @oak raft no PHP! Okay bye now

oak raft
#

Okay, no php!

jovial warren
#

Object mapping is what you saw there with the @ConfigSerializable

#

Where it can turn data in to objects

#

And the tree based API is its configuration node system

half harness
#

btw does it have properties? like the triumphconfig SettingsHolder

jovial warren
#

Also, configurate has full support for comments as well

jovial warren
half harness
#

is each node like spigot ConfigurationSection?

jovial warren
jovial warren
half harness
#

why does spigot's suck thonking

jovial warren
#

Because Bukkit's design is pretty horrible

#

Bukkit decided that every config section should know about its parent rather than knowing about its children

half harness
#

Configurate looks a bit confusing tho 👀

jovial warren
#

It really isn't

#

Lemme link you to Krypton's to show you how we load our config in like 5 lines

half harness
#

5?

#

and idek what that does

jovial warren
#

The loader is an abstraction used to load different formats and turn them in to the common configuration node objects that are wanted for Configurate

half harness
#

so you could easily convert this from for example hocon to yaml?

jovial warren
#

Yes

half harness
#

👀

jovial warren
#

You could even load HOCON and save YAML

half harness
jovial warren
#

Yeah that's just me adding Adventure's configurate serializer, as well as some of my own

half harness
#

what are the serializers?

jovial warren
#

And then you need that registerAnnotatedObjects one for the Kotlin stuff to work

jovial warren
half harness
#

oh

jovial warren
#

So you can have a field of type Component in this case and then define how a string is turned in to a component

half harness
#

wait u only have 3 serializers?

jovial warren
#

Yeah, there are loads of built in ones

half harness
#

also how can it change the variables even though it's val?
or is that some reflection magic

jovial warren
#

All primitive, strings, enums, and objects can be mapped by default

jovial warren
half harness
#

oh

#

thats a constructor

#

what if you want to change the value tho

#

like if you reload the config

jovial warren
#

You can do that too

half harness
#

oh wait

#

do u just have a ```kt
var config: KryptonConfig = KryptonConfig.load(path?)

jovial warren
#

You can set values in the nodes, and you can also just use the loader to load the node again

jovial warren
half harness
#

uhhh

jovial warren
#

Look literally 1 line below that in the code

half harness
#

where?

jovial warren
#

You can make yours a val

half harness
jovial warren
#

Actually no, make that 4 lines below

#

Krypton.kt

#

Same file as where that load line is

#

If you want the config to be mutable and reloadable, you need to make your config objects use vars and reassign the config object to the newly reloaded value

half harness
#

uh

jovial warren
#

What

half harness
jovial warren
#

That is what I mentioned earlier

half harness
#

oh

jovial warren
#

I copy the loaded config and apply all of the CLI parameters

#

Because some configuration options can also be configured via the command line to make some scripts easier to write

frail glade
#

The documentation for server and api usage is a 404 btw

obtuse gale
#

Configurate 😍

obtuse gale
#

Guys I want a custom chat & scoreboard for each world how?

brisk echo
#

I needed to send embeds so I made a discord bot in python and I was like “eh I’ll work on it a bit and finish it tmr” then I did it in 2 hours and now it’s 11:40 pm

rotund egret
#

Shame the python lib is shutting down

brisk echo
#

Wait really

#

Sadge

solid furnace
#

"[playername] does not have any rankups available at rank Fighter0"
But i have a rankup from Fighter0 to fighter1
Can any1 help me

distant sun
#

@solid furnace are you going to post this in all channels?

steel heart
#

u r gonna get memed in dev general

#

so no

#

not here buddy, but maybe the general plugins channel

jovial warren
jovial warren
rotund egret
jovial warren
#

oh, yeah, those are defunct, use the wiki

#

lemme update that

#

the wiki will be really really detailed when it's done, and should explain a hell of a lot

half harness
#

if I have an api module, is it possible to upload only that api module to maven central?

#

like how spigot-api only has the spigot api, not craftbukkit included too

#

and also, I'm trying to make an api module and a plugin module.. but I have an api interface in the api module and a class implementing it in the plugin module. This requires both modules to compileOnly each other which creates a circular dependency. Anyone know how to fix it?

ocean quartz
#

Add maven-publish only to the api subproject

half harness
#

oh

#

ty

half harness
steel heart
#

because it really should be
api -> impl and not api <-> impl

half harness
#

I need impl -> api so that I can implement the api interface and get the plugin instance

i guess i can just make the api a class and use JavaPlugin.getPlugin(Class.forName("me.dkim19375.mainclass")) though

steel heart
#

wut

half harness
#

but how did they do that without circular dependencies?

#

or is it some maven thing

#

or wait a minute

#

wait a minutee

#

oh

#

ic

#

ty

#

i think i fixed the issue

#

by looking at that repo xD

steel heart
#

so no circular deps I hope

#

and no api breaches

half harness
#

briefs?

steel heart
#

bruhj

half harness
#

lol

#

what are api breaches btw?

#

👀

steel heart
#

api containing implementation n api exposing implementations

half harness
#

oh

steel heart
#

well api can contain implementations

#

but it should most likely just be a composition of other api methods then

half harness
#

so if i keep all implementations in the plugin module

#

it should be fine?

steel heart
#

not relying on any concreteness

half harness
#

right?

steel heart
#

yeah

half harness
#

alr

#

also

#

another question

#

what should i name my BedwarsGame interface?
since whenever I use BedwarsGame I don't want to select the specific import every time ;-;

#

its not a major issue, but i can't think of any other good name

#

🤔

half harness
#

and I also dont want to name it BedwarsGameImpl or IBedwarsGame

half harness
#

i want to have a BedwarsGame interface

ocean quartz
#

The API shouldn't have any traces of the plugin though, i mean the API should be a bridge

half harness
#

ye, but the BedwarsGame interface allows you to get things like the players in a game and stuff

steel heart
#

yeah I consider even exposing the plugin instance in an api as an api breach

half harness
#

well

ocean quartz
#

I mean that the API having the instance of the plugin like that is odd

half harness
#

and 1 class

steel heart
#

It can have classes

half harness
#

this is how im planning to "distribute" the api

steel heart
#

but it should not be a part of the concrete implementation then probably

#

like a singleton might be fine

#

or whatever u'd need

half harness
#

alr

ocean quartz
#

Make the API an interface with a getPlugin method if you really need it that you implement in the plugin then use the service provider to pass it

halcyon hemlock
#

Hi, guys. I’m new to discord. Is it possible to make a complete private channel in discord

steel heart
#

it is

ocean quartz
#

Yes, this is not Discord's support server btw

half harness
steel heart
#

there's a documentation on how to manage discord stuff I belueve

half harness
#

only in the api impl

steel heart
#

good

halcyon hemlock
#

Also it possible that I can make a monthly key for my channel to add members?

steel heart
#

ur plugin class is ur highest ordered class

half harness
#

wdym?

#

by highest ordered

steel heart
#

ur plugin main class is the entry point, its the top of your class hierarchy

half harness
#

alr

half harness
#

or

#

should I just do BedwarsGameAPI

#

or does that sound weird

ocean quartz
#

IBedWar 🤡

half harness
#

🥲

steel heart
#

regardless, the BedwarsGame is an interface, then maybe maybe have a BedwarsGameApiBridge or BedwarsGameApiProxy

half harness
#

👀

#

wdym?

#

like rn i have a BedwarsGame class in my plugin module

#

but I want a BedwarsGame interface in my api module

steel heart
#

so the interface?

#

I've understood that alr

half harness
#

also should i make my api in java 👀

steel heart
#

you could have something
(api) BedwarsGame : interface -> (plugin) BedwarsGameApi : class
then you have another class
(plugin) BedwarsGame : class
that bridges the api BedwarsGame interface from the BedwarsGameApi class

#

btw

steel heart
#

that was what I thought of

half harness
#

but if I had two classes/interfaces of the same name

#

in BedwarsGameAPI

#

I'd have to use the package format thing

steel heart
#

//in api
interface BedwarsGame {}

//in plugin
class BedwarsGameApi implements BedwarsGame {
final qualified.name.BedwarsGame game;

BedwarsGameApi(qualified.name.BedwarsGame game) {
this.game = game;
}
}

//in plugin
class BedwarsGame {
final BedwarsGameApi game = new BedwarsGameApi(this);
}
maybe

#

there's a lot of ways to address this problem

#

but this is a way to decouple internal stuff with the api implementation

ocean quartz
#

I feel like the names would make more sense inverted, API being interface and Game being implementation

half harness
#

ye but i need a separate interface for each game unless I do ```java
int getPlayersInGame(String game);

steel heart
#

yeah matt, well api here is just to mark the class as an api implementer

half harness
#

or what about BedwarsGameApiImpl 😌

#

lol

steel heart
#

sure

half harness
#

or BedwarsGameImpl

#

idk

#

or Bridge

ocean quartz
#

Impl 🤮

half harness
#

o

#

whats the diff between bridge and impl?

steel heart
#

GameRegistry
<U extends GameUser<G>, G extends Game<U>> getByClass(Class<G> clazz);

BedwarsGame extends Game<BedwarsUser>

half harness
#

in this case

steel heart
#

maybe something like that

halcyon hemlock
#

Any one who can guy?

half harness
#

uh

halcyon hemlock
#

Need an expert here….

half harness
steel heart
#

we're not discord experts here

ocean quartz
halcyon hemlock
#

Lolz. You’re taking api bro 🙂

half harness
#

halcyon hemlock
#

I don’t even know what that is ….

steel heart
#

wet

half harness
ocean quartz
#

HelpChat is designed to support people all over the Minecraft community, from server owners to plugin developers.

steel heart
#

whilst bridge is a design pattern

#

it decouples an abstraction from its implementation basically

#

which gives u more mobility and u can basically do a lot of stuff independently

#

you could alternatively using something like a the proxy pattern

#

they're quite similar, so I advice googling in case you're interested in choosing the most suitable design

half harness
#

oh

#

hm

empty flint
#

Why are logging frameworks such a pain in the ass

#

it's 2021, who configures their software using .properties files anymore -.-

steel heart
#

xml!

empty flint
#

frick xml, I just want to change my log level dynamically, how is that so hard?!

steel heart
wind patio
#

Fuck yml, xml, .txt is where it's at

#

Plain text configuration

#

😩

sly sonnet
#

imagine not hardcoding stuff

half harness
#

lol

static zealot
forest pecan
#

I did reinvalidate caches and now intellij has to reindex 21 dependencies

#

🥲

urban sleet
#

What's the best way to get into devops?

steel heart
#

?lmgtfy What's the best way to get into devops?

#

frick

urban sleet
#

?lmgtfy devops

steel heart
#

thing is, there's like a ton of opinions and articles about it on the internet

#

so might be worthwhile reading those before coming here

prisma wave
#

devops = yaml

#

the more yaml you have the more devops it is

urban sleet
#

My goal is to learn more about how to scale servers

lunar cypress
#

I think you need blockchain

humble silo
#

Anyone know what a -1 opcode means in java? Im getting a lot of them in compiled kotlin classes(havent tested it in java ones) when using ASM(the library).... I dont think it really matters because i can just filter them out, but its still pretty weird

half harness
#

(btw the image is from .java files, the api is the only place i use .java, and the first number is all lines, second is code lines)

#

and in total my bw plugin is 7355 lines of code

#

👀

empty flint
#

Can somebody help me figure out what the difference between these gradle modules is?

#

They are on the same level in the hierarchy

#

But one is being shown under the folder structure of Blocky (root) in the gradle plugin and the other one isn't

#

Both are imported in settings.gradle.kts the same way

noble jay
#

Can I use player.getHeldSlot() async? Ik its not safe to use API async but just getting the slot doesnt seem to interfere with anything

half harness
#

(also this means that my API is 9.8% of my plugin xD)

noble jay
#

thank you emily

wind patio
#

uh, is there a way to run a .bat file after shadowJar?

half harness
#

wait

#

is that intellij?

wind patio
#

yeah

half harness
#

just make a new command configuration (idk exact name), then scroll down and where it says Before launch press the +, another configuration then ur gradle configuration

#

like this

#

ah

#

shell script

#

wait no

#

batch

#

although i think u might need the batch plugin

#

idk

wind patio
#

uhh

half harness
wind patio
#

scp is a batch command, correct?

half harness
#

¯_(ツ)_/¯

wind patio
#

so I can't just put in in a shell script

half harness
#

idk batch

half harness
#

when u create new configuration

wind patio
#

¯_(ツ)_/¯

half harness
#

do u have the plugin? Im using Batch Scripts Support

wind patio
#

where is the goddamn plugin menu

half harness
#

lol

wind patio
#

I always forget lmao

half harness
#

ctrl + alt + s

wind patio
#

ah, right

ocean quartz
wind patio
#

👀

half harness
#

?

wind patio
#

I suppose I can use scp for a shell script

#

all good

#

¯_(ツ)_/¯

half harness
#

._.

#

okay

prisma wave
#

shell scripts > batch scripts

wind patio
#

yes

#

had to learn both regardless

#

cuz

#

university

#

🥲