#dev-general

1 messages ยท Page 488 of 1

onyx loom
#

u must be high

jovial warren
#

you know that TLDs aren't country bound btw right?

half harness
#

๐Ÿคฃ

#

me.dkim19375.dkim19375jdautils

onyx loom
boreal needle
#

thoughts on .tk?

half harness
#

free domain

jovial warren
#

not bad

boreal needle
#

including .cy sadly

pale shell
#

yo anyone seen bm?

boreal needle
#

nope

pale shell
#

fucks sake

hot hull
#

probably drinking his tea

onyx loom
#

shut it frosty

pale shell
#

I got a bug i guess i'll pay someone else

hot hull
#

Fuck u mean

#

Sure, 40$ for 5min of help Odin

pale shell
#

if anyone can help remove the fucking npc then i'll pay them

#

it won't delete I think I done something wrong with UUID's but idk

boreal needle
pale shell
#

no

hot hull
#

Well I mean where and how are you storing that

pale shell
#

code wise, frosty?

hot hull
#

Yes

pale shell
#
    private UUID npcId;
    private UUID oldID;

then i set it in the method

#

oh

#

um

#

wait ๐Ÿค”

hot hull
#

That sounds like a yikes

steel heart
#

thought u coded in kotlin

pale shell
#

pmines was in java

#

bm wrote it

ocean quartz
#

Also Odin, how many times are you going to apply for the dev role? lol

pale shell
#

yes

#

Should I apply again

ocean quartz
#

No you should not, wait for Piggy to review it, you already have 3 there, it won't change anything

prisma wave
#

ooo I wonder if I can join the reviewing team now

pale shell
#

I do?

#

Matt, I am sorry for doing that. I forget I do things sometimes. My apologies. I won't go into reasons behind it it's personal.

ocean quartz
#

it's alright lol

pale shell
#

things happen when you have part of your brain missing (:

boreal needle
#

what's that thing called where it mangles your unit tests to make sure they fail?

old wyvern
#

pitest?

prisma wave
#

stack test

old wyvern
#

Haskell doesnt need to mangle

#

Pure good

prisma wave
#

๐Ÿ˜Œ

old wyvern
#

Also, for some reason coverage is very broken when it comes to try with resources

#

Always shows a "untested" closing brace line after finally

#

Oh wait it wasnt even a try with resources

#

Yea

#

Just a try catch with a finally

boreal needle
#

i cannot for the life of me remember what this thing is called

old wyvern
boreal needle
#

yep thats the one thanks

old wyvern
obtuse gale
#

uh....

#

that's alarming

jovial warren
#

there is so many things wrong with that

#

oh btw, is there a way you can take an existing Gson instance and apply all of its registered type adapters to a new instance?

obtuse gale
#

that = other :)

jovial warren
#

wat

obtuse gale
#

why'd you need to "clone" it?

jovial warren
#

Adventure

#

I want my own Gson instance, and Adventure only gives you the prebuilt instance

unkempt tangle
#

Senpai

#

Would ya welp me

steel heart
#

Gson#newBuilder

jovial warren
#

yeah

jovial warren
#

can Gson serialize UUIDs natively btw?

obtuse gale
#

yea

jovial warren
#

like turning a UUID object into its string form

#

alright

#

because that's something kotlinx.serialization can't do lol

jovial warren
#

or that

obtuse gale
#

looks more apropiatr

#

apro

#

aaaaa

#

approrpiate

#

appropriate

jovial warren
#

so val GSON: Gson = GsonComponentSerializer.gson().populator().apply(GsonBuilder()).create() then?

#

(will use more things on the builder when I need them ofc)

obtuse gale
#

that should work yea

jovial warren
#

lol

#

I'm currently completely removing NamespacedKey and replacing it with Adventure's Key for ease of use

#

oh btw, thoughts on Guice?

prisma wave
#

GUICE GOOD

#

KOIN SHIT

jovial warren
#

not necessary but ok

#

I might add Guice to Krypton

prisma wave
#

am I wrong

jovial warren
#

not really

prisma wave
#

case in point

jovial warren
#

Guice seems very advanced and does a shit ton of stuff

prisma wave
#

๐Ÿ˜Œ

#

and it encourages immutability

jovial warren
#

does Guice = you use the API? ๐Ÿ™‚

prisma wave
#

what

jovial warren
#

lol

#

was worth a try ๐Ÿ˜”

prisma wave
#

Oh

#

NO

half harness
#

?

jovial warren
#

waiting for dkim to ask what Guice is

steel heart
#

does guice use reflection or method handles (or unsafe?) to create new instances @prisma wave

prisma wave
#

neither

#

classgen

#

Or probably reflection if classgen doesn't work for whatever reason

steel heart
#

ah

prisma wave
#

but that means it's pretty much as fast as normal DI

steel heart
#

ok so no real overhead then

hot hull
half harness
steel heart
#

dependency injection framework

jovial warren
#

BM your turn

prisma wave
#

DEPENDENCY INJECTION

ocean quartz
steel heart
#

it uses annots to bind instances when creating objects sort of

half harness
#

?di

compact perchBOT
half harness
#

no guice needed

#

ez

prisma wave
#

Imagine functional dependency injection but classes ๐Ÿ™‚

jovial warren
#

Guice reduces the boilerplate

half harness
#

what

jovial warren
prisma wave
#

ofc it does

half harness
#

example of guice usage?

steel heart
#
public class MessageLogger implements MethodInterceptor {

    @Inject
    Logger logger;

    @Override
    public Object invoke(MethodInvocation invocation) throws Throwable {
        Object[] objectArray = invocation.getArguments();
        for (Object object : objectArray) {
            logger.info("Sending message: " + object.toString());
        }
        return invocation.proceed();
    }
}
#

just googled it

#

but ye

half harness
#

what is dat

steel heart
#

an example usage of guice like u asked

half harness
#

when does logger get initialized

prisma wave
#

property injection ๐Ÿฅถ

steel heart
#

with a module

ocean quartz
half harness
#

@Singleton

steel heart
#

dont confuse with static singleton

plush willow
#

anyone wanna make me a plugin

ocean quartz
lunar cypress
jovial warren
#

LinkedTreeMaps don't use reference equality and KeyImpl has a correct equals override that should compare properly so wtf is going on there

lunar cypress
#

Well one thing is wrong on your side

jovial warren
#

what

lunar cypress
#

either hashCode or equals are broken

jovial warren
#

Key is not mine btw

prisma wave
jovial warren
lunar cypress
#

wait

jovial warren
#

wait a minute

#

will different string instances produce different equals and hash code results?

#

actually that shouldn't matter in my case

#

omg what

#

if I ask for a Key, you're meant to give me a fucking Key, not a string

#

and there is a registered type adapter for that object as well

#

why isn't Gson converting that

pale shell
#

I think the time has come to try and get someone to help re-code this project.

jovial warren
#

not sure why I'm even using keys here tbh but /shrug

#

I need it to convert keys in other places though

#

someone please explain though why tf Gson isn't converting that

pale shell
#

Where's the best place to get a price for something? (Coding work)

jovial warren
#

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

#

surely Gson should know that if I ask for a Map<Key, RegistryEntry> then I want it to turn the strings into Keys

#

ah maybe I need to use this TypeToken thingy

distant sun
#

๐Ÿ™‚

jovial warren
#

yep, that worked

jovial warren
#

okay got a bit of a problem here

#

basically, I want to deserialize JSON into a Map<Key, RegistryEntry>, which works fine at the top-level since I can use a type token, however RegistryEntry contains an inner Map<Key, RegistryIdHolder>, which seems to cause issues

#

would it be best to just define a custom deserializer?

distant sun
#

d;gson gsonbuilder#registerTypeAdapter

ruby craterBOT
#
public GsonBuilder registerTypeAdapter(java.lang.reflect.Typeย type, java.lang.Objectย typeAdapter)```
Description:

Configures Gson for custom serialization or deserialization. This method combines the registration of an TypeAdapter, InstanceCreator, JsonSerializer, and a JsonDeserializer. It is best used when a single object typeAdapter implements all the required interfaces for custom serialization with Gson. If a type adapter was previously registered for the specified type, it is overwritten.

This registers the type specified and no other types: you must manually register related types! For example, applications registering boolean.class should also register Boolean.class.

Returns:

a reference to this GsonBuilder object to fulfill the "Builder" pattern

Parameters:

typeAdapter - This object must implement at least one of the TypeAdapter, InstanceCreator, JsonSerializer, and a JsonDeserializer interfaces.
type - the type definition for the type adapter being registered

jovial warren
#

alright

distant sun
#

.registerTypeAdapter(new TypeToken<Discount.DiscountType>() {}.getType(), new Discount.DiscountTypeDeserializer())

    public static class DiscountTypeDeserializer implements JsonDeserializer<DiscountType> {

        @Override
        public DiscountType deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
            return DiscountType.valueOf(json.getAsString().toUpperCase());
        }
    }```
This is what I have
jovial warren
#

ah

#

but guess what library could deserialize that with only a @Serializable annotation

obtuse gale
#

generics go brrrr

jovial warren
#

what would even be the best way to deserialize that? lol

#

just ```kotlin
json as JsonObject
val properties = context.deserialize<Map<String, List<String>>>(json.get("properties"), object : TypeToken<Map<String, List<String>>>() {}.type)
val states = context.deserialize<List<RegistryBlockState>>(json.get("states"), object : TypeToken<List<RegistryBlockState>>() {}.type)

#

jesus christ wtf is that mess

#

Gson best JSON library my fucking ass

obtuse gale
#

idk bout you but I prefer to keep my TypeToken/Type in static final fields

#

Really helps cleaning things up

jovial warren
#

ah yeah, might be a good idea

half harness
#

btw does gson allow you to make a custom serializable/deserializable method

#

like bukkit

obtuse gale
#

Yes

#

TypeAdapter<T>

jovial warren
#

I'm using JsonDeserializer<T> lol

obtuse gale
#

That's kinda deprecated iirc

#

Kinda but not really

#

Or that TypeAdapters are preferred, I don't quite remember

jovial warren
#

doesn't using TypeAdapter mean I have to write both a serialization and deserialization method though?

gusty glen
#

let me copy and paste

jovial warren
#

I need to override both write and read

gusty glen
#

and creating a gson using it KT val gson: Gson = GsonBuilder() .registerTypeAdapter(Location::class.java, BlockLocationAdapter()) .create()

half harness
#

๐Ÿ˜ฎ

gusty glen
#

when you can just use gson.toJson(yourBlockLocation) and gson.fromJson(yourSerializedBlockLocation, Location::class.java) and it just works

#

btw you can create literally any adapter for any type/combined types you want, it's specially useful if you want to handle the serialization/deserialization process or store the data in a different way

jovial warren
#

with Kotlin serialization, it can auto-generate the serializers at compile time for you

#

and you can just use Json.encodeToString

gusty glen
#

yeah, but that requires that you own all the implemented code, which in your case (Krypton) you own, but when working with other's implementations you have to make your own custom Adapters to handle the cases

jovial warren
#

true

#

and one thing I don't miss is custom serializers ๐Ÿฅฒ

#

they actually suck ass

gusty glen
#

well, bukkit location serializer actually serialize the world by name, lol

#

I hate that so much

jovial warren
#

right, finally fucking fixed my palette lol

#

240 files changed, 2542 insertions(+), 2590 deletions(-) ๐Ÿฅฒ

#

I've done like 3 things in this

#
  1. moved API package to org.kryptonmc.api instead of org.kryptonmc.krypton.api
  2. switched to Configurate
  3. switched to Gson
boreal needle
#

are you running a server from a windows mount

#

that's pretty cursed

jovial warren
#

I may or may not be writing this entirely from my Windows partition

#

like MineKraft is the folder that Krypton is in

boreal needle
#

do you need help

jovial warren
#

it used to be called MineKraft lol

jovial warren
boreal needle
#

why would you want to do that

jovial warren
#

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

half harness
#

i thought that said bacon

#

not hocon

gusty glen
#

thanks

jovial warren
#

we've had that in there since it was called MineKraft lol

half harness
jovial warren
#

kinda tempted soon to stabilise the API and release 1.0

ocean quartz
onyx loom
#

โ˜น๏ธ

half harness
#

;-;

onyx loom
#

๐Ÿ˜ 

prisma wave
#

stack masterrace

#

(context: stack is the de-factor haskell build tool and haskell is a good language! :D)

half harness
#

haskell is a good language

#

but not a great language

prisma wave
#

Please cite your sources

#

You have 30 seconds

onyx loom
#

source: trust me bro

#

@static zealot just merged ur PR from 10 days ago, lol

#

cant think of a better way to do it myself

lunar cypress
#

today in software engineering it was exactly this

onyx loom
#

๐Ÿฅฒ

lunar cypress
#

well not with haskell

#

but generally

prisma wave
#

let me guess they think "java is good" ๐Ÿ™„

lunar cypress
#

no

#

most people who write in the chat during lectures are annoying know-it-alls

#

unironic "i use arch btw" on crack

prisma wave
#

yikes

lunar cypress
#

today one was bashing c# for not being cross platform

#

"unlike C"

#

that was really funny to me

prisma wave
#

lmao what

#

that has to be a joke

lunar cypress
#

I hate that Zoom doesn't let you turn off chat

#

you just want to watch the lecture but at the bottom the next message about how bad windows is pops up

steel heart
gusty glen
obtuse gale
#

๐Ÿฅด

onyx loom
#

man that is so annoying

#

can u disable it?

jovial warren
#

Caused by: java.lang.UnsupportedClassVersionError: org/kryptonmc/api/AbilitiesTests has been compiled by a more recent version of the Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 55.0 anyone know how to fix one of these for tests?

obtuse gale
#

Like once and for all? I don't think so

jovial warren
#

tried gradle clean test but that did nothing

lunar cypress
#

What's JAVA_HOME set to

onyx loom
#

yea u can trust the specific domain, but it becomes annoying when uve gotta do it for every new link u visit

jovial warren
#

ah that'll likely be it, lemme check

#

ah actually that would make sense

#

I set my Gradle JVM manually to 11 because I had something that needed 11 because that was it's only variant's version

#

time to set that back to project SDK

#

I forgot since I've only just bumped the minimum Java version in Krypton to 16

#

man, archlinux-java is so useful

prisma wave
#

it's no sdkman

jovial warren
#

man, someone teach me how to do integration testing properly lol

prisma wave
#

what would be the ideal way of setting mysql credentials for a docker image? environment variables?

obtuse gale
#

doing it properly sounds like a good idea

prisma wave
#

you are all useless

ocean quartz
jovial warren
#

NOT configuration help

jovial warren
#

it tells you that you should use environment variables

#

or at least, the MariaDB one does

prisma wave
#

that's not really what i mean

#

i mean if i have a docker image that needs to connect to a database

#

no matter where that database is hosted

jovial warren
#

environment variables

prisma wave
#

i guess environment variables are the only option yeah

#

shame

#

this command is gonna get long

#

docker run --name devdenbot --env SENTRY_DSN=${{ secrets.SENTRY_DSN }} --env DDB_TOKEN=${{ secrets.DDB_TOKEN }} --mount source=devden,target=/var/data -d --restart unless-stopped ghcr.io/thedeveloperden/devdenbot it's already long, 5+ more variables are gonna be pain ๐Ÿ˜ฉ

jovial warren
#

cough docker compose cough

prisma wave
#

cant use compose i dont think, i am pulling from a registry

#

all i get is the image

#

and i want to keep this simple, cba to clone and then docker-compose up or whatever

jovial warren
#

fair

prisma wave
#

oooh hold on

#

DOCKER_HOST is a thing ๐Ÿ‘€

lunar cypress
#

you can use compose if you're pulling from a registry

#

you can just set image: whatever/lol

#

doesn't have to build anything local

prisma wave
#

what I mean is, my current CI process just consists of:

  • on github, build with gradle, make docker image, push to registry
  • on vps, pull from registry, run image
#

how can i integrate compose into that?

#

oh wait

#

yeah

#

i see

jovial warren
#

AbstractIntOrStringEnumSerializer not sure if this is shameful or not lol

steel heart
#

I like the name

#

It tells us what it is very detailed

jovial warren
#

gonna use it to abstract away the common logic between the gamemode and difficulty serializers

#

since a gamemode/difficulty can either be represented by its (case-insensitive) name or its ordinal

prisma wave
#

polymorphism?

jovial warren
#

wdym?

steel heart
#

monomorphism

prisma wave
#

that class should probably have 2 subclasses, for Int/String respectively

jovial warren
#

nah I cbfa to do that lol

steel heart
lunar cypress
#

Bimorphism ๐Ÿ˜Œ

prisma wave
steel heart
#

I donโ€™t know if youโ€™re trolling like usual

jovial warren
#

the latter is definitely trolling

prisma wave
#

Object orientation is all about writing as many getters and setters as possible

jovial warren
#

as many layers of abstraction as possible isn't that far fetched though for OOP lol

lunar cypress
#

The more getters and setters, the object oriented-er it gets

prisma wave
#

^

#

This guy gets it

steel heart
#

hilarious

lunar cypress
#

funniest shit I've ever seen

jovial warren
#
if (json !is JsonPrimitive) throw JsonParseException("Cannot deserialize this as it isn't a string or integer!")
if (json.isNumber) return fromInt(json.asInt) ?: throw JsonParseException("Cannot parse ${json.asInt}!")
if (json.isString) {
    val string = json.asString
    if (string.toIntOrNull() != null) return fromInt(string.toInt()) ?: throw JsonParseException("Cannot parse $string!")
    return fromString(json.asString.uppercase())
}
throw JsonParseException("Unable to parse $json!")
```jesus christ that's lenient
onyx loom
#

definitely some r/programmingcirclejerk going on here

boreal needle
#

am i not a player?

jovial warren
#

seems legit

obtuse gale
#

hhhhhhhhhhhhhhhhhh

jovial warren
#

apparently not

onyx loom
#

have u tried being a player

boreal needle
#

oh good point

#

let me try that now

steel heart
#

This means that youโ€™re probably a console

onyx loom
#

๐Ÿ‘ ๐Ÿ‘ ๐Ÿ˜„

jovial warren
obtuse gale
jovial warren
#

someone teach me integration testing pls

boreal needle
#

no

jovial warren
#

wow

#

didn't mean you anyway, doubt you're advanced enough for that ๐Ÿ™‚

boreal needle
#

:(

#

no need to be mean

obtuse gale
#

ughghghghghg u cant send photos

boreal needle
#

you can

#

just gotta be tier 2

obtuse gale
#

can someone help me link my portals

#

with multiverse netherportals

jovial warren
boreal needle
#

yay it thinks im a player now :D

prisma wave
#

why

#

Being a console is cooler

boreal needle
#

consoles dont have pronouns

prisma wave
#

consoles have transcended the human body

boreal needle
steel heart
obtuse gale
#

"The Console"

prisma wave
obtuse gale
#

no

#

THE CONSOLE

boreal needle
#

i do have some predefined sets

#

should i make THE CONSOLE

obtuse gale
#

YERS

#

TES

#

YES

#

ALL CAPS and UNDERLINED and all that

boreal needle
#

that's gonna be interesting

#

sets are only pronouns atm

obtuse gale
#

a set of one element

#

and it's THE CONSOLE

distant sun
#

yup, exactly what I wanted lol

obtuse gale
#

that's snakeyaml for ya

steel heart
#

slightly verbose

distant sun
#

well but you see, it worked before lmfao

#

there should be item's name

obtuse gale
distant sun
#

property displayName (Kotlin reflection is not available) -.-

obtuse gale
#

hhhhhhhhhhhhhhhh

distant sun
#

this came out of nowhere

prisma wave
#

kotlin bad

steel heart
#

even I disagree on that

distant sun
#

makes no sense ๐Ÿ˜ต

steel heart
#

and I am like a pro java user

cinder flare
steel heart
#

I feel like lisp is somewhat ancient

#

do u know the concept of async and sync first and foremost?

#

okay so first you must understand async can in theory never happen when we only have 1 process/thread

#

then we're practically doing it synced

#

for instance a single queue

#

only one customer can be handled atm

#

Let that single queue represent thread A. Now if we want to introduce asynchronous then we might have another queue which will represent thread B. Now when we have 2 queues you can say that we can handle 2 customers at the same time right?

#

So now if we want to introduce the term asynchronous properly we could say that thread B is working asynchronously with respect to thread A as it never has to depend or care what happens in thread A. We could go ahead and say the very same for thread A (thread A is working asynchronously with respect to thread B).

cinder flare
#

though Concool is pretty cool

#

awe yeah

steel heart
#

now tho

#

๐Ÿ˜„

#

yeah xdddT lets apply the things we just learnt

cinder flare
#

also p sure you can have async on one thread

steel heart
#

like javascript

cinder flare
#

it just won't be blocking that thread while waiting

steel heart
#

yeah

#

just trying to simplify this stuff for him heh

lunar cypress
#

that would be the difference between concurrency and parallelism

steel heart
#

parallelism is over cpus right where two tasks can happen at the very same time and concurrency is when the two tasks happen seemingly at the same time but in reality the thread first works on the first task then work some on the second task and so on. Or no?

#

Anyways in queue A customer Bob ordered a very big package of food. Now let's say we only have our single queue A. In that case all the customers after queue A would have to wait for the customer Bob to get his food served. If we instead had the queue B, we could redirect customers to queue B while queue A is waiting for the finishing order. @dense dew Idk might not be the best example but yeah anyone feel free to give criticism.

cinder flare
lunar cypress
#

I would enhance the understanding of concurrency as code where you don't have a linear flow of time or where things generally seem like they're happening at the same time, whether that is due to scheduling or not

#

for example async/await doesn't have to be parallel

#

and often isn't

storm orchid
#

Hi everyone. I don't know where to ask, so I'll write here.
Question to the people who have a server on Paper 1.16.5... Has anyone encountered the problem of deleting vanilla teams (/team add <name>)? I create a new team and after restarting the server, it disappears (it's not about plugins, I removed everything and the problem did not disappear)! I have this problem on all my servers... ๐Ÿ˜ฆ

steel heart
#

Uh

#

well

#

That can represent multiple processes happening in parallel so I guess

cinder flare
storm orchid
#

Sorry, I didn't quite understand your question (I'm not a native English speaker). Did you mean, is it normal to disable/reboot my server?

#

By the way, there are no problems with the scorebord. When creating a scorebord and restarting the server, everything is saved. This means that there are no problems with saving the world's data.

steel heart
prisma wave
#

Oh no

steel heart
#

lol

#

lmfao

#

@prisma wave itโ€™s too good

prisma wave
#

You are tarnishing my name

#

I love it

steel heart
#

Do I?

#

Sorry I mean itโ€™s an amazing website

pale shell
#

@prisma wave i burnt privatemines. I am loosing hope :(

sweet cipher
#

Also how do you have 76 pings and not go crazy?

steel heart
#

Oh fish

#

Idk

#

Never payed attention to it

pale shell
steel heart
#

If itโ€™s java sure

pale shell
#

Yeah it's java

steel heart
#

What u need help with

ocean quartz
#

@obtuse gale processResources

obtuse gale
#

oh yeah shoulda mentioned the folder I want to zip is outside of the resources folder, I supposed the task is suitable still?

pale shell
#

Well, it has the fun game of how many npes can it throw all the time :/ i think it happens when upgrading the mine only (I think) I'm loosing hope with it so it could come from elsewhere also.

winter iron
#

Yo, this might be a big ask but if anyone who is able to can test my plugin I would greatly appreciate it. I believe in some countries/locations, it is unable to access my server to retrieve the resource pack. If you install the plugin with directions on the page and dm whether u get an error about โ€œinvalid pack idโ€ and your general location, country (city if possible) that would be a massive help

feral kiln
#

yo wht cmd have to for musics cuz i dont know which bot hc using ?

#

nvm got it

pale shell
#

Alright thanks

ocean quartz
#

So, this is stupid

call.receive<PushWebhook>() // error: Unexpected JSON token at offset 0: Expected '[, kind: LIST'
val json = call.receive<String>()
decodeFromString<PushWebhook>(json) // no error, correct mapped

thonking

eternal compass
forest pecan
#

alright, im kinda shitty at making regexes but someone has to help me out here: Suppose i got this url: https://open.spotify.com/playlist/37i9dQZF1DWXRqgorJj26U?si=d8c8418491ee4416

I want to extract the 37i9dQZF1DWXRqgorJj26U part right after playlist/. Does anyone know the proper regex for this?

obtuse gale
#

No

forest pecan
#

๐Ÿฅฒ

winter iron
#

I would just be weird and split by โ€˜/โ€˜ then take the last section and split by โ€˜?โ€™ And take the first section lmao

forest pecan
#

no no no i dont wanna use split

#

i wanna use a regex (Pattern) + Matcher for this

#

cause obviously it matches a specific pattern always

half harness
#

what if it matches the part after si=

#

oh wait

obtuse gale
#

I mean just group what's between playlist/ and ??

ocean quartz
obtuse gale
#

how the hell do I get the resources folder as a File

#

in gradle

#

all I can find returns the children files in some way or another

sweet cipher
obtuse gale
#

yes that exists but the resources folder will be empty to begin with

#

so I can't get a file and then get the parent file

sweet cipher
#

Oh

obtuse gale
#

I mean sure I can do src/main/resources but that's hardcoded and yucky

sweet cipher
#

new File(getClass().getResource("/something/resources").getFile())maybe?
I used this for JavaFX

obtuse gale
#

in the gradle script

#

not in the jar

obtuse gale
#

apparently it's a collection of dirs

#

this is bullshit lmao

obtuse gale
#

yoooooooooo it worked

pale shell
obtuse gale
#

?

#

wdym "why"?

pale shell
#

Why did it work

obtuse gale
#

trying to zip files from some folder in the gradle script and put the zip in the resources folder

#

why? because I did it properly I presume :^)

pale shell
eternal compass
#

Anyone here experienced with github actions?

eternal compass
#

I've got mine almost entirely working, except it uploads the file zipped instead of by itself

gusty glen
eternal compass
#

Whats bad about them? ._.

gusty glen
#

the face was not for actions, it was for me

eternal compass
#

Ooh

#

I need to figure out how to attach all files in a regex pattern

pale shell
eternal compass
#

As opposed to zipping them, or manually using its name

pale shell
#

I might actually give up soon

eternal compass
#

On?

pale shell
#

Where do i start

compact perchBOT
#
FAQ Answer:
ยป Give the helpers some details
ยป Ask suitable questions
ยป Be polite
ยป Wait

Source

eternal compass
#

;p

obtuse gale
#

Requested by: Fredthedoggy
kek

pale shell
#

I gotta somehow fix pmines because it's an essential part of my upcoming project, I gotta code a enchant system somehow, I gotta write a ranks system etc fucks sake why do i still play this game

eternal compass
#

I just realised if I get 250 more members in my discord server, I can apply for discord open source, since one of the main projects in it is os :p
Then I get my pfp on discord's website

pale shell
#

No

quiet depot
#

lol

#

good luck

pale shell
#

hi piggy

quiet depot
#

discord open source is not easy to get

#

we applied for open source on may 2019

#

we got accepted in september 2020

pale shell
#

Damn

quiet depot
#

and we had a lot more than 1000 members in 2019

eternal compass
#

Well thats because they're slow to read them

quiet depot
#

no the problem is they don't read them

#

like at all

#

we sent countless emails

eternal compass
#

Yup

pale shell
#

Wait.... Did that break for anyone else?

eternal compass
#

You typed a colon

pale shell
#

No, that changed after I sent the msg

#

I sent it with the emoji there

eternal compass
quiet depot
#

even once they accept you it takes a while to actually get the perks

#

iirc we had to email them a couple times before we could get them

pale shell
#

Piggy have I only got one thing open do you know

#

App*

#

Barry be spamming my dms

quiet depot
#

you had 4 developer role requests

#

now you have 1

pale shell
#

Ok ty

eternal compass
#

Well I really want to apply for partnership on my server, but apparently they just don't feel like telling me the server's stats.
Its like 7 weeks old, and all the data just says "nothing to show"

quiet depot
#

partnership lol

eternal compass
#

Idk, it seems cool

pale shell
#

I gotta retractor pmines mine but its a pain to sort out because there's 1 small bug and it is argh

quiet depot
#

it is cool

#

just a pain

#

well used to be a pain

eternal compass
#

Ah

quiet depot
#

less of a pain now

pale shell
#

How did you deny the things btw piggy

#

Is it a cmd?

quiet depot
#

proprietary info

pale shell
eternal compass
#

Barry's executive and piggy had a meeting

#

They discussed it, and barry's executive gave barry messages to send

#

Then updated it in barry's file folders

pale shell
#

Pog

#

Piggy how are the support in training people getting on btw

eternal compass
#

They're awful

#

Just terribe

quiet depot
#

yeah probably the worst bunch we've had so far

eternal compass
#

Wait a second-

quiet depot
#

gonna ban them all once their trial is over

pale shell
#

Yeah, that bm guy does nothing

half harness
#

i have PROOF that bm ABUSES perms

eternal compass
#

That fred guy is promising though

pale shell
#

Keeps trying to make people use shit languages KEKW

half harness
#

not so sure

quiet depot
#

yeah no they're all equally bad

#

definitely gonna ban them

eternal compass
#

Nah BM abuses perms :p
He did the paste thing

half harness
quiet depot
#

dkim they have like barely any more perms than u guys

half harness
compact perchBOT
#
๐Ÿ“‹ Your paste, dkim19375
https://paste.helpch.at/keqisefixe

A member of staff has requested I move your message to a paste,
Most likely beacause it contains a config/error/code snippet.

quiet depot
#

only like 2 things

half harness
quiet depot
#

yes

#

the fun stuff

half harness
#

๐Ÿ‘€

#

fun stuff

#

that scares me

eternal compass
#

Only for the past 2-3 days

half harness
#

what is <@&565817345143078912>

pale shell
#

Piggy why do the channels in the other discord get closed?

quiet depot
#

what

eternal compass
pale shell
#

I wanna look at my history of being denied Pepe_F

quiet depot
#

oh

#

idk

pale shell
#

Probably 5 times?

quiet depot
#

we've only had 2 intakes

#

so that number seems about right

pale shell
#

Yeah must've been 6 then

eternal compass
#

Piggy have you used GH-actions?

quiet depot
#

no

pale shell
#

Piggy, you wanna swap bm with a better British person? ;)

quiet depot
#

no

pale shell
#

Wtf rudd

eternal compass
#

BM is cool

quiet depot
#

never had an issue with jenkins

pale shell
#

I'm better than bm

quiet depot
#

don't see a need to switch

pale shell
#

I actually fix code

eternal compass
#

I don't have jenkins :p

#

So gh it is

pale shell
#

I don't convince everyone to use bad languages

quiet depot
#

bm has convinced what

#

like 5 people

pale shell
#

Exactly

#

Demote him and swap him out for someone better (me)

#

Who spends the most time on HC?? Me or bm?? (obviously me)

eternal compass
#

Bm is cool though finger_guns finger_guns

#

/s

eternal compass
#

Cool >> Work

pale shell
half harness
#

yes

pale shell
#

Piggy, does @prisma wave boost? No! Do I? Yes!

eternal compass
#

Well you also need to pass the physical test to be considered.

#

Stength

#

Agility

ocean quartz
half harness
#

haskell bad

eternal compass
#

Python bad

half harness
#

python bad

obtuse gale
#

javascript bad

half harness
#

i tried both haskell and python

eternal compass
pale shell
#

Python good

eternal compass
#

Wrong

pale shell
#

We prefer python over hasktrash right @prisma wave

#

Or is it trashkell?

eternal compass
#

@obtuse gale have you used gh actions? :p

obtuse gale
#

non

eternal compass
#

Noones used it :(

cinder flare
quiet depot
#

python is an abomination

obtuse gale
#

oh yes

cinder flare
# quiet depot python is an abomination

did you see the thing where one of the lead python bois was like "we want to make python twice as fast!" and the top comment was "that's still like 50x slower than JS"

quiet depot
#

idec about the speed

gusty glen
#

wait, does python have high order functions?

quiet depot
#

just bad language

cinder flare
quiet depot
#

yes

#

truthy falsy

#

stupidest fucking thing ever

cinder flare
#

i mean, it's really easy for writing shitty little scripts

#

certainly a lot nicer and easier to get into than like bash or powershell

quiet depot
#

nah

#

bash is easy

cinder flare
#

it has a terseness problem like Haskell

quiet depot
#

that word just confuses me everytime I see it

cinder flare
#

it condenses a lot of information into a small amount of symbols

#

for the untrained novice, it is very hard to decipher what a long bash script will do

quiet depot
#

windows literally makes my laptop heat up by 30c

#

just idling

#

as a vm

cinder flare
#

well what VM are you using to run it

quiet depot
#

kvm

cinder flare
#

also you are running two operating systems now

#

so that might do it

#

oh dang KVM kinda cool

obtuse gale
#

kotlin virtual machine ๐ŸŒš

quiet depot
#

when I first set this up I installed vmware

#

and then I had an epiphany

#

I'm not on windows anymore

#

what the fuck am I doing installing vmware

#

kvm here i come

cinder flare
#

haha

#

a lot of places use VMWare hypervisors so I'm used to em

#

but FOSS is always great

quiet depot
#

there's probably a reason all these vps providers use kvm

cinder flare
#

it's free?

#

same reason they use linux

quiet depot
#

it's good

#

I mean the free is a bonus

cinder flare
#

yeah certainly a measure of both

#

but i'd say the primary factor is free

quiet depot
#

I disagree

gusty glen
cinder flare
#

im sure vmware hypervisor is just as good if not better than kvm

quiet depot
#

I'd say the primary factor is because it's the best tool for the job

#

hosts have no issue with shelling out money for software if it's better than the foss alternatives

#

e.g. cpanel & whmcs

cinder flare
#

i mean it's probably quite good in its own right

#

but being free certainly helps keep the cost down

#

and there must be a reason why so many places use VMWare

quiet depot
#

windows

cinder flare
#

VMWare hypervisor does every OS

quiet depot
#

yes but kvm doesn't

cinder flare
#

ah

#

that'd do it

gusty glen
# gusty glen

that in kotlin ```kt
val numbers = listOf(...)

val squared = numbers.map { it * it } ```

#

kotlin still got better syntax imo

cinder flare
#

if only we had collection literals ๐Ÿฅฒ

#

and tuples

#

man kotlin could be so much better

gusty glen
cinder flare
#

tuple...

gusty glen
gusty glen
quiet depot
#

a pair is a type of tuple

#

but a tuple is not a pair

cinder flare
#

instead of listOf(5, 5, 5) it could just be {5, 5, 5}

cinder flare
#

a tuple is any data type that can hold multiple different types of data (I think)

quiet depot
#

yeah pretty much

#

like a pair, but for n number of elements

#

called an n-tuple

cinder flare
#

it's primarily in python, which is one of the only good things python brought this world

gusty glen
cinder flare
#

okay

quiet depot
#

who the fuck uses dart

cinder flare
#

^

gusty glen
#

idk but Dart have mixins and tuples

cinder flare
#

what a strange pairing

gusty glen
#

kotlin could steal those

cinder flare
#

not knowing what collection literals and tuples are -> but also knowing Dart

gusty glen
cinder flare
#

ah haha

quiet depot
#

@obtuse gale do u know if they were planning on adding "vararg generics" to java?

#

ik c++ has something like it

#

you were talking about it a while ago

obtuse gale
#

yeah and it's pog

quiet depot
#

what are they actually called

obtuse gale
#

variadic templates

cinder flare
#

oh like a function can take a tuple or something?

quiet depot
#

right

cinder flare
#

an n-tuple*

obtuse gale
#

yeah it lets you have that

cinder flare
#

now that's cool

#

man remember how we're gonna get to use Java 16 stuff soon

#

im still really hyped

quiet depot
#

i'm devastated

#

bye bye dcevm

obtuse gale
#

so like std::tuple<int, std::string, long, whatever> tuple = { 1, "asd", 123, ... }

gusty glen
obtuse gale
#

in theory you wouldn't even need the <...>

cinder flare
cinder flare
quiet depot
#

HUGE PRICE

gusty glen
quiet depot
#

literally bigger than ur mum

cinder flare
#

i've never even heard of it until now, can't be that bad

cinder flare
obtuse gale
cinder flare
#

With 1.17, Minecraft will require a minimum of Java 16

#

Paper followed suit

gusty glen
gusty glen
cinder flare
#

and yeah it's real nice

#

goes a small step of the way towards fixing Java's biggest problem imo

gusty glen
quiet depot
#

javascript

cinder flare
#

yes i quote that graph so often

#

it makes me a big cry

gusty glen
#

Java 8 -> 60% ๐Ÿคข

ocean quartz
#

More worried about 7% on Java 7 or older

gusty glen
#

let them burn, Matt, let them burn

quiet depot
#

@cinder flare this is what dcevm allows me to do

obtuse gale
#

that type inference is pog

cinder flare
ocean quartz
#

Huh, Go, Rust, Kotlin all going down a bit in this quarter of the year, last year they were all going up

#

(most popular languages according to github)

obtuse gale
#

"Huh"? What's that language? Never heard it before ๐Ÿคก

ocean quartz
#

Lmao

quiet depot
obtuse gale
#

C is rising

#

what

ocean quartz
#

2020 for comparison

cinder flare
#

it makes me cry that Python went up 3%

cinder flare
quiet depot
#

i wrote a guide on hotswapping

#

dcevm is the technology that allows it

cinder flare
#

hotswapping yeah yeah

#

and that's not supported anymore?

quiet depot
#

well no it just hasnโ€™t been updated for 16

#

it only gets updated for lts

ocean quartz
#

@prisma wave ๐ŸŒš

gusty glen
#

Java: 11.6%, Kotlin: 0.6% ๐Ÿฅฒ

cinder flare
ocean quartz
#

PHP's amazing journey to die out

#

Haskell ๐Ÿฅฒ

obtuse gale
#

lol

#

what site is that

ocean quartz
hot hull
#

Matt go sleep

ocean quartz
#

๐Ÿ˜ฉ

obtuse gale
#

ah yes

old wyvern
old wyvern
ocean quartz
#

Yas!
And ikr, thing is still in the top 10 somehow

old wyvern
#

xD

#

Rust at top 14, less goo

ocean quartz
#

Was 13 at the end of last year

old wyvern
#

๐Ÿ˜ฌ

ocean quartz
#

Though it's still in the beginning

old wyvern
#

yea ig

#

Elm at 45 sadge

#

Why is Erlang going up??? ๐Ÿ˜ณ

ocean quartz
#

The pull request is basically just JS lol

old wyvern
#

xD

#

Elm needs to overtake JS

ocean quartz
#

That'd be awesome

old wyvern
#

๐Ÿ˜Œ

obtuse gale
#

just found out about this shortcut

#

that's pog

old wyvern
#

You can write your own templates too

#

in editor settings

ocean quartz
#

Yas it's awesome

obtuse gale
#

oh now that you mention that i remember visual studio having something similar

#

"snippets" or something

lost forge
#

Yeah, you can play with the theme for VS

quiet depot
#

does vs excel in anything jetbrains doesn't

obtuse gale
#

well i haven't used vs in a good number of years so i couldn't really tell

#

all i remember is that setting up a cpp project, with external libraries, linking and a shit load of other options was unbelievably easy

old wyvern
quiet depot
#

ms should just abandon vs

old wyvern
#

lol

quiet depot
#

and endorse jetbrains as an official ide

#

google android studio style

old wyvern
#

visual studios suppourts more stuff than jb does I think

lost forge
#

vs is still widely used by a huge range of people. Even Udemy programming courses use Vs. Well the ones I have seen do

obtuse gale
#

yeah it's the free ide of choice for many languages still

quiet depot
#

? yugi

old wyvern
#

I didnt know jb supported vb

#

Seems rider has suppourt for it

#

for unity, rider's debugger is far superior to vs

quiet depot
#

rider is a .net ide

#

it supports f# too

old wyvern
#

Yea ik, vb seemed obscure

quiet depot
#

really?

#

I'd say f# is way more obscure

old wyvern
#

Do many people even use it anymore?

quiet depot
#

cube does

#

very rarely

old wyvern
#

For actual work or just playing around?

quiet depot
#

both i think

old wyvern
#

weird, I thought it was dead

ocean quartz
#

Yeah after rider was released there is no more reason for vs for me
I remember a few years ago I tried using IJ with Unity and it was horrible and i hated vs

quiet depot
#

i don't understand how u like game dev yugi

old wyvern
#

Yea vs debugger doesnt have a proper "evaluator", you'll have to hack around the watcher to get similar results

quiet depot
#

its just so

#

not it

lost forge
#

game dev is kinda fun

quiet depot
#

jumping off a cliff is kinda fun

#

till you hit the bottom

ocean quartz
#

Yeah i agree i like it quite a lot

old wyvern
#

Huh?

quiet depot
#

I always found it mind numbingly boring

ocean quartz
#

I guess it's because ever since i was like 12 i wanted to make games

obtuse gale
#

oh lmao

lost forge
#

Same lol

quiet depot
#

well I started making games at 12

#

and it just wasn't great imo

obtuse gale
old wyvern
#

I mean, everyone need not like the same things as others, I got into programming initially because of games and am still interested

quiet depot
#

I know

ocean quartz
quiet depot
#

I just don't get the appeal with game dev

old wyvern
#

I really enjoy game design

quiet depot
#

and I got into programming because of games too

old wyvern
quiet depot
#

i'm guessing everyone in here did

#

it's just so tedious yugi

lost forge
#

For me, I just don't like the designing aspect, cos I cant design anything to look half decent at all xD

quiet depot
#

especially around the math

#

although ig these game engines handle most of that for you

ocean quartz
old wyvern
quiet depot
#

omega I think he meant more like story

old wyvern
#

^

#

Story, player engagement... ect

#

Didnt know there was such a separate section till our course an year ago, but its really fun

#

altho we only had like 3 classes for it in a whole month

obtuse gale
quiet depot
#

same

#

honestly same

old wyvern
#

Id love both

ocean quartz
old wyvern
#

Yea from cherno

ocean quartz
#

Yas!

quiet depot
#

i don't really watch programming youtubers

old wyvern
#

Hes actually pretty nice

obtuse gale
#

yeah the dude explains pretty well actually

old wyvern
#

Patreon โ–บ https://patreon.com/thecherno
Instagram โ–บ https://instagram.com/thecherno

Twitter โ–บ https://twitter.com/thecherno
Discord โ–บ https://thecherno.com/discord

Series playlist โ–บ https://thecherno.com/engine

Gear I use:

BEST laptop for programming! โ–บ http://geni.us/pakTES
My FAVOURITE keyboard for programming! โ–บ http://ge...

โ–ถ Play video
ocean quartz
#

If you want to watch one Piggy, I'd really recommend Sebastian Lague

quiet depot
#

no I don't watch them by choice

ocean quartz
quiet depot
#

coding is my main hobby

#

I do it all the time

#

well I used to

#

and I will eventually again when school is over

#

at the end of the day I don't want to go onto youtube, and watch more coding

#

I just wanna watch some stupid science shit

#

or explosions

#

or guns

old wyvern
#

You dont watch coding, you learn concepts from most

quiet depot
#

isn't that the one with the robot voiceover

ocean quartz
#

Nile Red for the explosions

obtuse gale
#

yeah lol

quiet depot
#

can't watch those types of vids

#

I need a real narrator

old wyvern
#

Have you watched veretasium piggy/

quiet depot
#

yes

#

and yes I watch nilered too

old wyvern
#

Youtube ruined his potash video ๐ŸŒ

quiet depot
#

the only programmer I watch is tom scott, but I don't even consider him a programmer seeing as the only language I've ever heard him mention is javascript

old wyvern
#

What about ben awad?

quiet depot
#

never heard of them

old wyvern
#

๐Ÿ‘€

ocean quartz
#

Ben awad is a meme, i love it

old wyvern
#

๐Ÿ˜Œ

#

dogehouse got stormed by literally every company

#

Discord started stages from his idea

#

twitch is starting audio rooms too I think

obtuse gale
ocean quartz
#

I used to watch Brackeys but he stopped

old wyvern
#

Yea

ocean quartz
#

Oh boy louis rossman

#

Speaking of which i need to donate to the right to repair thingy

obtuse gale
#

pog

quiet depot
#

what

#

why

#

why does that need donations

obtuse gale
#

because i'm por

quiet depot
#

what's the money actually being used for

obtuse gale
#

hookers

ocean quartz
quiet depot
#

do I really need to read a book

#

or can the explanation be said in one sentence

obtuse gale
#

btw I'm sure some of you know this channel already but it's pretty awesome too https://www.youtube.com/c/NewMind

quiet depot
#

because I'm struggling to see how what I assume is a petition, needs donations

ocean quartz
#

My audience has asked why we do not do a direct ballot initiative; it worked for the car people, right? It did - but it also cost them about 25 million dollars. This is a bit out of budget. The reason we have not done a ballot initiative is because they are very expensive!

#

Something American probably

quiet depot
#

right so

#

you want to donate for a country to introduce a law

#

but you're not even in that country

ocean quartz
#

Good changes in the US tend to be fastly implemented in the EU

old wyvern
ocean quartz
#

For example the EU is requiring Apple to use USBC, which will likely mean they'll do it in the US and Australia, etc, as well

#

So even if it's not direct it still has a big effect

quiet depot
#

eh

#

idk if australia would do something like that

old wyvern
quiet depot
#

awad

#

add an m infront

#

replace the first a with an o

#

replace the w with an n

#

and you have monad

#

coincidence

#

i think not

old wyvern
#

๐Ÿ˜ฎ

#

Ben is secretly Simon

#

Revealed!

ocean quartz
#

They wouldn't need Piggy, for example if they need to do usbc in the EU likely the entire model will be usbc, it'd be worse for them to do the lighting port for other countries, so they'd adopt it everywhere

quiet depot
#

charger thing is stupid

#

where they don't include a charger in the box

#

completely irrelevant to the convo, I just remembered it

#

we'll see matt

ocean quartz
#

Yup "for the environment" but yet costs just as much as the one with a charger

quiet depot
#

nuclear power is straight up banned in australia

#

kinda wack

old wyvern
#

Why?

quiet depot
#

same reason weed is illegal

old wyvern
#

Chernobyl scare?

#

because its toxic?

#

idk

quiet depot
#

because the government is silly at times

old wyvern
#

lol

quiet depot
#

I don't think either nuclear power or weed is toxic

ocean quartz
#

Probably because of money from coal companies, etc

old wyvern
#

On damage nuclear power can lead to a toxic environment

quiet depot
#

well sure