#dev-general

1 messages ยท Page 493 of 1

obtuse gale
#

to those I say "reading helps"/"have you tried reading?"/"read" etc

steel heart
#

pog

half harness
#

so im in this anticheat servers

#

the amount of times that people ask in #api-discussion is so confusing

#

lol

steel heart
#

invite lol

half harness
#

they renamed the channel to remove the discussion

#

because it seems like thats why ppl go to that channel

#

even though theres another channel called support

#

:p

onyx loom
#

just leave the server

half harness
#

lol

steel heart
#

lmao

half harness
#

bc of the large amount of questions being asked there

boreal needle
#

this might sound like a silly question but how do i configure a maven publication from gradle for every subproject

obtuse gale
#

in the root project build script

subprojects {
  // configure here
}
ocean quartz
#

You just configure it for the parent project

boreal needle
#

yeah im trying that but its complaining

obtuse gale
#

not in the subprojects thing?

boreal needle
#

lemme try it rq

ocean quartz
#

Inside of it yeah

#

mb

boreal needle
#

oh

#

yeah that didnt work

steel heart
#

subprojects should work

obtuse gale
#

yea

steel heart
#

if and only if you apply the plugin also

obtuse gale
#

^

boreal needle
#

am i doing this wrong then

ocean quartz
#

is that kts?

boreal needle
#

yes

obtuse gale
#

Matt is gonna show you the ways

obtuse gale
#

๐Ÿ˜Œ

boreal needle
#

it works in a normal project

half harness
boreal needle
#

i'm trying to do it for all subprojects

ocean quartz
#

Needs to be inside tasks

boreal needle
#

yeah thats still not working

obtuse gale
#

dkim editing a message 20 times won't give you more xp

obtuse gale
half harness
boreal needle
#

this is as far as i've got

remote goblet
#

very cool

obtuse gale
#

I need to fix the serializers circular dependency ๐Ÿ˜ฉ

#

but the multi spin ๐Ÿ˜ฉ

onyx loom
#

xp is much more important

distant sun
boreal needle
#

ahhhh this is painful

#

is it really that difficult to just set up one deployment for all my subprojects

#

please, i'm desperate

steel heart
#

maybe have to use this. to explicate its the sub project idk

boreal needle
#

fixed it :D

#

just had to add the maven publish plugin to the parent buildscript

remote goblet
#

maven is too confusing for my tiny brain

boreal needle
#

it makes sense to me

#

until it doesnt

obtuse gale
boreal needle
#

nope

obtuse gale
#

L.M.A.O.

steel heart
#

๐Ÿฅฒ

obtuse gale
#

lol

boreal needle
#

im a gradle newbie leave me alone >:(

#

an xml refugee so to speak

steel heart
#

sounds good

remote goblet
#

i like gradle dependencies { compileOnly 'org.spigotmc:spigot:1.16.4' } over ```xml
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.16.4</version>
<scope>provided</provided>
</dependency>
</dependencies>

boreal needle
#

yeah defo

remote goblet
#

and dont even get me started on repositories monkaW

boreal needle
#

so much more compact

obtuse gale
boreal needle
#

indeed

remote goblet
#

I went gradle for 2 reasons

obtuse gale
boreal needle
jovial warren
#

maven("https://example.com/maven") is so clean

#

oh btw, Yugi, does slimjar support API dependencies yet?

remote goblet
#
  1. It's what Esophose uses and she taught me basically everything so I learnt gradle from copying her code
  2. Maven is too complicated for my brain to handle, all the <text></text> is one of the reasons i hate html
old wyvern
#

stack.yml & packages.yml ๐Ÿฅฒ

jovial warren
#

like ones I can expose to dependants with api and still slim in?

old wyvern
#

@ocean quartz did that work?

ocean quartz
#

If you have java-library yes

old wyvern
#

Oh lit

jovial warren
#

or the Kotlin plugin?

#

that just provides api anyway

half harness
jovial warren
#

slimApi iirc

old wyvern
#

slimApi

#

Yea

half harness
jovial warren
#

oh btw Yugi, what are the options for actually loading and injecting the dependencies?

ocean quartz
half harness
#

ok

old wyvern
#

As in?

jovial warren
#

since I don't think I need (or want) jar-in-jar since I control the class loader

half harness
#

(NOTE: If you have specified relocations and are running in a IDE or any environment that does not use the shadowjar-ed build file, use the ignoreRelocation flag while running by using -DignoreRelocation in your runner arguments)
YES

#

๐Ÿฅณ

#

finally

#

i can hotswap

#

without forgetting to relocate again (after commenting it out)

old wyvern
jovial warren
#

Krypton itself

old wyvern
#

Coz I assume if for krypton you actually dont

jovial warren
#

plugins can just use addToClasspath

old wyvern
#

Dont you just use the default application class loader?

jovial warren
#

yes

old wyvern
#

You cant append to that from 16

#

You cant append to that even in 11 tbh

jovial warren
#

no, but you can just use a different class loader to load all the other classes from the entry point right?

old wyvern
#

Its not a URLClassLoader in 11

jovial warren
#

so what are the options then?

#

because I'd rather not use jar in jar tbh

old wyvern
#

If you want to be able to use static references of the types you inject, your application needs to be completely inside that classloader

old wyvern
jovial warren
#

because it's just a bit eh

old wyvern
#

You wouldnt notice the difference

jovial warren
#

fair I guess

#

if I have to I guess

old wyvern
#

It exists only to make it safer to use without accidentally loading stuff from the wrong classloader

#

Technically you can just have it use the same jar

#

Except you'll have to be very careful about what you reference, and where you reference it

#

Plus the anxiety of when a Class A cannt be cast to Class A

#

๐Ÿ˜‚

jovial warren
#

already lost me

#

jar in jar it is

old wyvern
#

Aight

old wyvern
#

The modules collection?

ocean quartz
#

Yeah

old wyvern
#

To select what modules(that were jar-in-jard) are to be loaded into the classloader

ocean quartz
#

@frail glade There xD

old wyvern
#

lol

jovial warren
#

well apparently adding slimjar makes Gradle not able to resolve api

old wyvern
#

What plugin version are you using?

frail glade
#

So do I have to do that for everything I put in the relocation?

jovial warren
#

I added 1.1.1

old wyvern
jovial warren
#

lemme try depending on java-library as well

frail glade
#

Oh that's only if I need it isoloated?

old wyvern
#

Yea

#

That example is of isolated

#

It doesnt show the appending one

frail glade
#

Ahh

#

I think that's what I'm looking for.

old wyvern
#

One of my friends wanted an example of it since he wanted to support j16

frail glade
#

Yeah that's what I'm trying to do right now ๐Ÿ˜›

old wyvern
#

Ah awesome

#

Ill release the down to 50kb thing tmr

#

Just gotta fix the api a bit beforehand

sick patio
#

๐Ÿค”

jovial warren
#

oh btw, where do my resources have to go?

frail glade
#

Alrighty I'll put this on the backburner then.

old wyvern
jovial warren
#

can my log4j2.xml for example stay in the server module or do I need to move that to bootstrap?

old wyvern
#

Are you the consumer of that file?

jovial warren
#

actually Log4J will be loaded by slimjar so it should be able to stay in server

old wyvern
#

Alright

jovial warren
#

nah it just needs to be on the classpath so Log4J can load it

old wyvern
#

Aight

obtuse gale
#

oh shit 99%

#

lvl 51 soon

#

can I paste lorem ipsum?

#

k done

#

๐Ÿ˜Œ

old wyvern
#

63kb including the actual app

jovial warren
#

okay I'm actually confused

old wyvern
#

by?

jovial warren
#

I've added slimjar as a plugin in my root script with apply false, and applying it manually to each of the submodules causes a strange Cause: com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar error

old wyvern
#

You need to apply shadowjar to them as well

#

slimjar depends on shadow

jovial warren
#

ah right

old wyvern
#

Does the exception not mention that?

#

Are you using 1.1.1?

jovial warren
#

nope

#

yes

old wyvern
#

hmm, ill have a look at that

jovial warren
#

apparently can't find api now

old wyvern
#

did you add java-library?

jovial warren
#

yes

#

actually I might know this one

#

nope

#

right, gonna be easier if I screen share this

old wyvern
#

Ill join you in a bit bard

jovial warren
#

alright

#

lemme try and explain it here then, since I'm too impatient for that lol

old wyvern
#

Sure

jovial warren
#

I have ```kotlin
id("io.github.slimjar") version "1.1.1" apply false
id("com.github.johnrengelman.shadow") version "7.0.0" apply false
java-library

#

then we ```kotlin
apply(plugin = "io.github.slimjar")
apply(plugin = "com.github.johnrengelman.shadow")
apply(plugin = "java-library")

#

and it can't find api

old wyvern
#

try reversing the order

static zealot
#

SOmeone please tell me there's a way to disable sleep mode for KDE Neon

jovial warren
#

seemed to work

old wyvern
boreal needle
#

damnit so close

static zealot
#

DIscord crashed like 5 times in the past 3 minutes now

old wyvern
#

๐Ÿฅฒ

static zealot
#

I had to open in browser

old wyvern
#

man, something is seriously wrong with your pc

static zealot
old wyvern
#

Didnt you have similar issues even on windows?

static zealot
old wyvern
#

Probably not for long

static zealot
old wyvern
#

I tried neon and it was working perfectly fine for me

static zealot
old wyvern
#

sad

distant sun
#

Shoulnt something like this set meta to Banner? (meta as BlockStateMeta) as Banner
This is what I currently have and I was just wondering if I can do it in one line

            meta as BlockStateMeta
            meta as Banner
            meta.patterns to meta.baseColor```
static zealot
#

I'll probably try a reinstall bcz I've got no idea what else to do

#

I thought maybe I've installed something bad but the only thing I Can think of is the nvidia drivers and it worked just fine on ubuntu

#

all I installed is: SublimeText, IJ, Mc, Discord, LibraOffice and MYKI (password manager)

#

and then the drivers and updates

distant sun
#

๐Ÿ™‚

old wyvern
#

(meta as BlockStateMeta) as Banner
Why

distant sun
#

for some reason, to access patterns and color from a shield you have to do that

old wyvern
#

Why

#

Why

jovial warren
#

if I want to call the main stuff that's in the server module from the bootstrap module, do I have to depend on the server module @old wyvern?

jovial warren
#

or should the Application be in the server module anyway

old wyvern
#

Application should be yes

#

Wait

static zealot
#

Well I guess its time to reinstall. See you in another 5-6 hours ... smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears smiling_face_with_3_tears

old wyvern
#

refer to this

jovial warren
#

yeah I am

old wyvern
#

your use should be pretty similar

#

The plugin is where your "server" goes

jovial warren
#

alright

old wyvern
#

bootstrap simple creates the instance of Application and calls start/stop as neccessary

jovial warren
#

how do I pass the CLI args down to the application btw?

old wyvern
#

If you want to expose something from the application to the bootstrap, you can use the facade

old wyvern
#

createIsolatedApplication takes a var arg at the end

#

pass that instead of java plugin

jovial warren
#

ah right

jovial warren
#

so how does it know to call my main method with the CLI args?

#

main function*

obtuse gale
#

main is in the bootstrap isn't it?

old wyvern
#

your main function is in your bootstrap

#

yes

#

you call whatever you want from your Application#start

jovial warren
#

ah

jovial warren
#

how do I get the args from the Application though?

jovial warren
#

ah

#

what's stop for btw? when's that ran?

old wyvern
#

It doesnt run start/stop automatically, its just a easy to use way to pass instructions from your bootstrap to app

jovial warren
#

ah we call start/stop

#

I see

old wyvern
#

So if you wanted to stop the started application from the bootstrap due to some reason, youd call stop and handle it appropriately in your stop method

jovial warren
#

but I don't need to use the stop function from the application to stop right?

old wyvern
#

Nope you dont

jovial warren
#

I can just use the same shutdown hook and stop function in KryptonServer to stop

#

yeah

old wyvern
#

Exists just for convenience

#

This is mostly useful when working with frameworks like in the case of spigot

#

You can notify your application about onEnable and onDisable

jovial warren
#

yeah

#

I was just making sure that shutting down wasn't gonna just make everything go

#

how should I get the class loader btw?

#

Thread.currentThread().getContextClassLoader()?

obtuse gale
#

what does that even do tbh

jovial warren
#

which?

obtuse gale
#

what's a "context" classloader

#

is it just the classloader that loaded the thread..?

jovial warren
#
Returns the context {@code ClassLoader} for this thread. The context
{@code ClassLoader} is provided by the creator of the thread for use
by code running in this thread when loading classes and resources.
ocean quartz
#

It has been a nice month ๐Ÿ˜ฉ

jovial warren
#
If not {@linkplain #setContextClassLoader set}, the default is the
{@code ClassLoader} context of the parent thread. The context
{@code ClassLoader} of the
primordial thread is typically set to the class loader used to load the
application.
onyx loom
jovial warren
distant sun
#

Is there a name for versions pre 1.9? Like how pre 1.13 is called 'legacy', is there a name for 1.8 and others?

prisma wave
jovial warren
#

ancient

distant sun
#

that will do it

onyx loom
#

bardy beat me to it

#

was gonna say same

distant sun
onyx loom
#

๐Ÿ™‚

half harness
#

btw why doesn't spigot api include craftbukkit? isn't craftbukkit outsode if mojang's code, so it's not in the vanilla server jar?

boreal needle
#

api

#

said it yourself

jovial warren
#

why would the Spigot API include CB?

#

CB is the implementation

half harness
#

is there any way to use CB without buildtools?

boreal needle
#

nope

#

why would you want to tho

half harness
#

because buildtools takes 15-20 minutes

obtuse gale
#

lol

#

rip

half harness
#

and if i run more than one at a time it errors for some reason

onyx loom
#

pc bad

boreal needle
#

cant you just copy a patched paper jar and use that

jovial warren
#
A problem was found with the configuration of task ':krypton-server:slimJar' (type 'SlimJar').
  - Type 'io.github.slimjar.task.SlimJar' property 'shade' is missing an input or output annotation.
    
    Reason: A property without annotation isn't considered during up-to-date checking.
    
    Possible solutions:
      1. Add an input or output annotation.
      2. Mark it as @Internal.
    
    Please refer to https://docs.gradle.org/7.0.2/userguide/validation_problems.html#missing_annotation for more details about this problem.
```er... @old wyvern
obtuse gale
half harness
#

oh

half harness
#

totally not

pale shell
#

man i gotta sort this plugin out but idk how lol. (well get one sorted)

#

What would it cost to get a enchant plugin created?

jovial warren
#

yes

half harness
#

it'd be paper api, but i can still use cb

old wyvern
#

Yea thats my bad, wasnt aware of the inout annotation requirement till matt told me

boreal needle
#

cb is in there somewhere in the fork hell

jovial warren
#

imagine using NMS smh

#

bad

half harness
#

why is paper "buildtools" like 100x faster than spigot's

jovial warren
#

bad dkim

old wyvern
#

Im pushing a fix for that along with the current changes

half harness
#

lol bardy i was just curious

boreal needle
#

cb is not nms

jovial warren
#

close enough

obtuse gale
jovial warren
#

the reason why I say using NMS is bad is because it breaks compatibility with other implementations of Bukkit

#

for example, Glowstone

boreal needle
remote goblet
#

NMS should always be a last resort

jovial warren
half harness
#

uh

old wyvern
#

Lemme just finish my tea

jovial warren
#

alright

jovial warren
#

plugins using CB and NMS is one of the big reasons why Glowstone's popularity isn't all that great

#

poor Glowstone ๐Ÿ˜”

boreal needle
#

but bukkit doesnt expose the stuff we need

jovial warren
#

guess that is true

#

what do you actually need that Bukkit doesn't expose?

boreal needle
#

command map

jovial warren
#

because things like NBT are, as md_5 rightly said, implementation detail

#

the way Bukkit handles commands sucks ass anyway I suppose, so that is fair

boreal needle
#

api

jovial warren
#

I'm planning on going for a Velocity approach with Krypton's command system

boreal needle
#

except you cant actually get the damn thing unless its paper

obtuse gale
jovial warren
#

yeah because that's not how you're meant to register commands

onyx loom
#

mf-cmd in krypton ๐Ÿ˜Œ

jovial warren
#

nah I think Velocity's way of doing commands is ๐Ÿ‘Œ

boreal needle
#

who decided that reading commands from a config file was a good idea

#

how does velocity do it

jovial warren
#

actually lemme change that to the 2.0.0 branch

#

you basically have different types of commands

boreal needle
#

you better give me a raw thing to work with

jovial warren
#

you have BrigadierCommand, which is backed by a LiteralCommandNode

boreal needle
#

i need to bolt my crappy command framework onto krypton

jovial warren
#

you have SimpleCommand, which is basically Bukkit/BungeeCord's way of handling commands

#

then you have RawCommand, which I'm not 100% sure on

boreal needle
#

rawcommand is what i need

jovial warren
#

well dw, your wish will become a reality

boreal needle
#

:D

#

i need to spread the crap framework!

jovial warren
#

or make something similar

spiral junco
#

spongi boi

boreal needle
#

hi reda!

spiral junco
#

hewwo

jovial warren
#

but I want like 3x less abstraction layers than they have

obtuse gale
#

lol

jovial warren
#

Sponge has way way way way too many layers of abstraction for me

#

like it actually confuses me to look at, let alone plugin developers

obtuse gale
#

good

jovial warren
#

if me, the one who would be implementing it, gets confused by it, something is wrong lol

obtuse gale
#

newbies won't get near it then

boreal needle
#

is implementing paper and spigot separately a bad idea given the direction it's been going recently?

#

ooh brb mc update announcement

onyx loom
jovial warren
half harness
#

YESSSSSS

#

IM SO HAPPY

#

MY BW BUG IS FIXED_ _

boreal needle
#

what?

#

oh nice

jovial warren
#

which one?

half harness
#

had it for a while

onyx loom
#

stop teleporting people to narnia smh

jovial warren
#

link me m8

half harness
#

sorry ๐Ÿ˜”

jovial warren
#

link it

onyx loom
jovial warren
#

lol how tf can that get misinterpreted

ocean quartz
onyx loom
#

wha bardy?

jovial warren
#

I wanna see his bug report

#

dkim

#

now

#

bug report

jovial warren
half harness
#

AAA IM 30 MINUTES LATE TO CLASS_ _ _ _ _ _

jovial warren
gusty glen
jovial warren
#

imagine still having work to do

half harness
#

gotta remove those spaces xD

jovial warren
#

leading and trailing whitespace bad

half harness
#

i didn't even know it was there

gusty glen
half harness
#

lol

gusty glen
#

now time to implement the item move thing in MF-GUI

ocean quartz
boreal needle
#

what are the required exp levels for each tier?

#

are they public?

onyx loom
#

weve worked them out yeah, let me find it

boreal needle
#

thanks

onyx loom
ocean quartz
onyx loom
#

btw, the formula we found isnt the same one that barry uses, but still gives the same results

ocean quartz
#

It's the actual formula though

onyx loom
#

cube has said himself its not

steel heart
#

he might be cappin

onyx loom
#

possibly

steel heart
#

admins are sus

#

have always been

ocean quartz
#

Oh I meant to say it's not xD

boreal needle
#

only 8k till tier 3 :D

#

then i get to look slightly less like a newbie

onyx loom
#

this spreadsheet needs updating ๐Ÿฅฒ

#

level 59 was the highest at the time we made it, now we got people in the 70s

boreal needle
#

some of the values look slightly wrong too

steel heart
onyx loom
boreal needle
#

how accurate is this formula?

onyx loom
#

the XP requirements at the right side should be all correct i think

#

but the formula is accurate

old wyvern
#

Pretty accurate, not exact according to cube but yea

#

@jovial warren 1.1.2

onyx loom
#

@prisma wave whyd u revoke my edit access to the spreadsheet ๐Ÿฅฒ

jovial warren
#

how do you set the libraries folder btw?

#

and is that something I set in the bootstrap?

jovial warren
#

imagine using File in 2021 smh

old wyvern
#

Imagine using Java in 2021 smh

jovial warren
#

oh btw, what's the first argument to that createDefault with the download dir meant to be?

#

what's depFileURL?

#

also do you not publish sources for the dependency smh

jovial warren
#

ah I see

old wyvern
#

That part of the API is being improved upon rn

#

Current one might induce some - "Clustrophobia"

jovial warren
#

wait so now where is the JAR that I want btw?

#

because bootstrap contains a krypton-server.isolated-jar

frail glade
#

Ooo 1.1.2 is out?

jovial warren
#

yeah, probably just a single "fixed bug" commit kekw

old wyvern
frail glade
#

That bug I believe was preventing me from compiling though tbh.

jovial warren
#

anyway

#

where is my JAR

old wyvern
#

Your shadowJar result?

old wyvern
jovial warren
#

does it use the configuration from the target module?

#

e.g. krypton-server's shadow config is the one used

old wyvern
#

yes, it shadowJars each module

frail glade
#

So when I compile do I run the slimjar task or the shadow? Or do I have shadow depend on slimjar?

frail glade
#

Mfw the jar just went up 2mb

jovial warren
#

seems to be 1.9MB in size

old wyvern
#

I havent done the 50kb release

jovial warren
#

wait what is ASM doing in this

frail glade
old wyvern
#

You need to disable shade in your isolated modules btw

#

lol

jovial warren
#

and Gson is in here too

old wyvern
#
slimJar {
  shade = false
}
#

Also yea, if on spigot, you can add an exclusion to shadowJar for gson

jovial warren
#

oh btw, what do I set the main class to? and where do I need the application plugin?

frail glade
#

Hmm.

frail glade
#

Alrighty back to the drawing board for the time being.

jovial warren
#

no main manifest attribute Yugi

#

after a clean build

frail glade
jovial warren
#

is the shadowJar configuration meant to be in the bootstrap btw?

old wyvern
old wyvern
#

You run shadowJar on bootstrap

jovial warren
#

ah

old wyvern
jovial warren
#

should be using jar in jar smh

old wyvern
#

for the jar-in-jar one you need to use createIsolatedApplication

pale shell
jovial warren
#

still no JAR in bootstrap/build Yugi

#

yes hastebin, that's clearly Ruby

frail glade
#

Do I need jar-in-jar?

#

I just want to do whatever PDM did

jovial warren
#

you should be using it

old wyvern
pale shell
#

that's not what the .rb means..?

jovial warren
#

PDM URL class loader hacks won't work anymore

frail glade
#

Ahh

pale shell
#

it's just random..

jovial warren
#

it means that hastebin recognised that file as Ruby code

pale shell
#

i swear its random

frail glade
#

So do I have to have a bootstrap class for this? I can't just use this in my main pluigin class?

jovial warren
#

it looks random because hastebin's code detection is awful

old wyvern
#

Is the project public?

frail glade
#

Yeah

#

I can DM you.

old wyvern
#

I can PR adding slimjar then ๐Ÿ‘

jovial warren
#

Yugi

#

still no JAR in the bootstrap module

old wyvern
#

Gimme a min bard

jovial warren
#

I'm running gradle clean slimJar

#

thought the premium customers might take priority xD

old wyvern
#

gradlew clean :krypton-bootstrap:shadowJar

jovial warren
#

oh shadowJar

old wyvern
#

xD

prisma wave
onyx loom
#

np

jovial warren
#
Exception in thread "main" UnresolvedDependencyException{dependency=Dependency{groupId='com.github.ajalt.clikt', artifactId='clikt', version='3.0.1', snapshotId='null', transitive=[Dependency{groupId='com.github.ajalt.clikt', artifactId='clikt-jvm', version='3.0.1', snapshotId='null', transitive=[]}, Dependency{groupId='org.jetbrains.kotlin', artifactId='kotlin-stdlib-jdk8', version='1.5.0', snapshotId='null', transitive=[]}, Dependency{groupId='org.jetbrains.kotlin', artifactId='kotlin-stdlib', version='1.5.0', snapshotId='null', transitive=[]}, Dependency{groupId='org.jetbrains', artifactId='annotations', version='13.0', snapshotId='null', transitive=[]}, Dependency{groupId='org.jetbrains.kotlin', artifactId='kotlin-stdlib-common', version='1.5.0', snapshotId='null', transitive=[]}, Dependency{groupId='org.jetbrains.kotlin', artifactId='kotlin-stdlib-jdk7', version='1.5.0', snapshotId='null', transitive=[]}]}}
    at io.github.slimjar.downloader.URLDependencyDownloader.lambda$download$0(URLDependencyDownloader.java:50)
    at java.base/java.util.Optional.orElseThrow(Optional.java:403)
    at io.github.slimjar.downloader.URLDependencyDownloader.download(URLDependencyDownloader.java:50)
    at io.github.slimjar.injector.DownloadingDependencyInjector.inject(DownloadingDependencyInjector.java:47)
    at io.github.slimjar.app.ApplicationFactory.createIsolatedApplication(ApplicationFactory.java:72)
    at org.kryptonmc.bootstrap.Main.main(Main.java:25)
```lol what
onyx loom
#

ive just went through a lot of xp levels to find any values that may be incorrect, if they werent underlined in the spreadsheet

jovial warren
onyx loom
#

trying to find someone who can give the exact answer for requirements for level 19/20

jovial warren
#

keep getting dependency error after dependency error

#

that dependency is not in Maven Central btw

onyx loom
#

lol, the xp formula has changed since it was first introduced #bot-commands message
3k = level 19 back then kekw

old wyvern
#

One sec bard

#

lol

old wyvern
jovial warren
#

https://repo.velocitypowered.com/snapshots/

#

do I need to manually specify that as a repo to download from?

ocean quartz
#

If it's on your repositories it'll already be there

jovial warren
#

yeah it is

forest pecan
#

Everyone is happy. There is Java, Kotlin, C++, and Ha.. wait

steel heart
#

Donโ€™t you dare adding Haskell

forest pecan
#

lmao

jovial warren
#

No need to shout.

forest pecan
#

No need to shout.

gusty glen
forest pecan
#

github

#

lmao

steel heart
#

IntelliJ has a plugin for that I believe

old wyvern
jovial warren
#

I'm getting that one

old wyvern
#

aight

jovial warren
#

I fixed the clikt one by updating

#

also wtf

old wyvern
#

Ah, ik the issue

jovial warren
#

now Kotlin's being shaded

old wyvern
#

Snapshot versions

#

lol

jovial warren
#

ah

old wyvern
#

Ok remove that for now bard

jovial warren
#

remove what for now?

old wyvern
#

slim in non-snapshot stuff

jovial warren
#

ah

old wyvern
#

This is a subsequent result of the ussual "oh that, hmm ill do that right after finishing this task, 5 mins later: Oh what was i supposed to do now?"

jovial warren
#

ffs what

#

8.2MB now

old wyvern
#

Did you disable shade

#

xD

jovial warren
#

ah that might be it

#

it's shading Kotlin lol

old wyvern
#

I literally just linked it like 10 messages ago

#

lol

old wyvern
#

it shouldnt be if you havent provided it as an implementation

#

shade shades the lib itself

#

You only need slimJars application library in the bootstrap module, the rest just share it hence you disable it explicitly in the non-bootstrap modules

jovial warren
#

ah right

#

please explain to me why it's shading random shit

forest pecan
#

kotlin std is 8.2 megabytes only?

old wyvern
#

What is it shading?

jovial warren
#

it's 1.4 MB

#

there's more in there

forest pecan
#

o

old wyvern
#

Send me the jar

prisma wave
#

Kotlin std positive

jovial warren
#

gimme a min Yugi

old wyvern
jovial warren
#

clean rebuilding

forest pecan
#

who did they get it from

old wyvern
#

Kotlin indirectly causing covid????

#

This was all andrey's secret plan???

forest pecan
#

who did kotlin lose its virginity too

old wyvern
#

Haskell

ocean quartz
#

God dammit Andrey

forest pecan
#

Damn

static zealot
#

well so far so good

#

installed discord, IJ and sublime-text

prisma wave
#

vim

#

Emacs

#

Nano

#

Pico

static zealot
#

no ty

prisma wave
#

neovim

#

vi

#

Doom emacs

onyx loom
#

@prisma wave i just went through a lot of xp levels and some need updating, i can give u the list and u can fill them in urself or u can give me edit access, idm

#

gotta keep the list updated ๐Ÿ’ฏ

half harness
prisma wave
#

Don't wanna make it publicly editable for obvious reasons

onyx loom
#

ye

jovial warren
fervent obsidian
boreal needle
#

you create a new plugin instance somewhere

#

dont do that

fervent obsidian
#

Oh, my bad

#

instead of instanceing an event on the onEnable() thing, i instanced the plugin itself

#

Thx!

old wyvern
static zealot
#
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
``` Tells me my keys are not protected. How do I protect them ?
boreal needle
#

chmod 700 -R ~/.ssh

half harness
jovial warren
#

chmod 600*

old wyvern
#

Thats an issue with project structuring, should be easy enough to fix

boreal needle
#

why 600

static zealot
#

chmod: cannot access '600': No such file or directory

jovial warren
#

we want read and execute

static zealot
#

same for 700

boreal needle
#

put the -R first sorry

#

chmod -R 700 ~/.ssh

jovial warren
#

chmod -R 600 ~/.ssh

boreal needle
#

or 600

#

that works too

static zealot
#

alr

jovial warren
#

actually I swear it should really be 400 here, since we want read only lol

#

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

boreal needle
#

700 is the maximum itll take

#

mine is 600

static zealot
#

wait but if I were to edit something in the .ssh directory how would I do it now?

boreal needle
#

as you would normally

static zealot
#

well I can't cd into it

boreal needle
#

why not

static zealot
#

Permission denied

winter iron
#

if u set to 700 u still have write perms

#

user

boreal needle
#

have you run anything with sudo

static zealot
#

yeah the chmod with sudo

boreal needle
#

ah

prisma wave
#

๐Ÿฅถ

boreal needle
#

thats why

static zealot
#

oh

boreal needle
#

sudo chown -R username:username ~

#

do that

#

then dont touch sudo unless you actually need to

#

obviously put your actual user in there

prisma wave
#

$(whoami) ๐Ÿ˜ƒ

#

oh wait

#

yeah

boreal needle
#

sudo

#

lmao

static zealot
#

hmm I still can't go in.

boreal needle
#

what if you stat it

#

stat .ssh

static zealot
#

it gives me some info

boreal needle
#

expected output is something like this

static zealot
#

yeah

boreal needle
#

are the uid and gid your user

static zealot
#

yes they are

boreal needle
#

and is the access 700 or 600

static zealot
#

0600

boreal needle
#

ok thats normal

#

do you just get permission denied trying to cd in?

static zealot
#

yep

winter iron
#

can u ls -la your dir and see what it says

#

should show user ownerships n shit

boreal needle
#

we have just verified ownership

static zealot
#

drw------- 3 blitz blitz 4096 May 19 22:03 .ssh

#

blitz being my username

obtuse gale
boreal needle
#

yeah thats all normal

#

can you try opening a new terminal?

static zealot
#

yeah I still get denied

boreal needle
#

what about stat .

static zealot
half harness
#

:/

#

the other option is so complicated ๐Ÿ˜ฉ

#

slimjar in bedwars soonโ„ข๏ธ

static zealot
obtuse gale
#

ty

obtuse gale
#

you're just lazy

half harness
static zealot
#

NOO! Not the truth!! it hurts so bad

half harness
#

what in the world is a bootstrap

#

pdm was so simple ๐Ÿฅบ

obtuse gale
#

and does not work on Java 16 either

#

๐Ÿ™‚

half harness
#
    final ApplicationConfiguration config = ApplicationConfiguration.createDefault("MyApplication");
    final ApplicationFactory appFactory = new ApplicationFactory(config);

    final Collection<String> modules = Collections.singleton("hello-world");

    final Application app = appFactory.createIsolatedApplication(modules, "example.project.ExampleApplication", args);
    app.start();
```so
can I just put the plugin name for `createDefault("MyApplication")`?
static zealot
#

why the hell do I have to ruin everything? smiling_face_with_3_tears. This is my third installation of ubuntu ffs

ocean quartz
half harness
#

also, what is modules for?
do i put every module besides the bootstrap?

obtuse gale
#

not a joke

#

100% true

#

@prisma wave matt HATES YOU

half harness
#

double ping ๐Ÿฅฒ

obtuse gale
prisma wave
obtuse gale
half harness
obtuse gale
#

dkim i can't help you with basic English

half harness
#

do i include both api and plugin?

obtuse gale
#

the API would be part of the bootstrap since it needs to be exposed to external applications

#

so no

#

"part of"

#

it can be a separate module

#

but it wouldn't be slimmed (?)

#

just shaded normally

half harness
#

aaaaaaaaaaaaaa imconfused now

#

if i have 6 modules:

  • bukkit
  • bungee
  • common
  • v1_8
  • v1_16
  • bootstrap
    which ones would go in the modules collection?
obtuse gale
#

why is there a bungee module in a bedwars plugin

half harness
old wyvern
#

the ones you access from your plugin

half harness
#

so every module? since there's no point of having the module if I'm not going to use it

#

right?

old wyvern
#

It exists for cases where you have multiple isolated containers

#

for your cases, all possibly

#

Dont forget to use "isolate" in your slimJar task as well

obtuse gale
#

oh don't worry

#

he will

old wyvern
#

xD

half harness
#

uh

old wyvern
#

such trust

ocean quartz
#

I need to figure a way to make setting up the isolated easier on gradle

half harness
#

slimjar too scary

old wyvern
#

specify isolated modules there dkim

#

all of them that you want to include

ocean quartz
#

What's scary about it? lol

half harness
ocean quartz
old wyvern
#

Did you go through the example dkim? xD

ocean quartz
#

no

half harness
#

that was the first thing i did

old wyvern
#

And you didnt see the build files I assume?

half harness
#

i did

#

but idk if i should put every module

old wyvern
#

So you were aware of isolate

half harness
#

or specific

#

yes, but i didn't know what it did

static zealot
#

things really aren't going my way today smiling_face_with_3_tears

old wyvern
#

?

half harness
old wyvern
#

Alright

static zealot
#

someone send help smiling_face_with_3_tears

half harness
#

its just made up

half harness
#

its for example

old wyvern
#

ah ok

half harness
#

i'd probably add an api module later

old wyvern
#

You would basically isolate evey module that you specify a slim dependency in

#

What isolate does is simply run shadowJar on that module and copy it into your bootstrap modules output

half harness
#

uhhhhhhh wait

#

What isolate does is simply run shadowJar on that module and copy it into your bootstrap modules output
what is the bootstrap modules output?

old wyvern
#

your actual plugin

half harness
#

so if i dont isolate it

#

will it be compiled into the jar?

old wyvern
#

No, I mean, bootstrap contains your JavaPlugin class, the actual logic is probably in your plugin module

half harness
#

so lets say i slim kotlin

#

i'd have to isolate every module that uses kt?

old wyvern
#

no

half harness
#

o

old wyvern
#

You only need 1 to actually be slimmed, the rest can just be compileOnly

half harness
#

๐Ÿค”

half harness
old wyvern
#

yes, or more idiomatically, you could define that common dependency in your bootstrap module itself

half harness
#

wait what

old wyvern
#

you can specify slim dependencies in your bootstrap module

half harness
#

so all my slim dependencies go in bootstrap build.gradle?

old wyvern
#

no issues

half harness
#

iuhewqkjdansd

#

D:

#

im so confused

old wyvern
#

its just convenient to keep common ones there

half harness
#

like for example kotlin

old wyvern
#

Ok lets take a step back

#

Ignore "slimming" for now

half harness
#

okay

old wyvern
#

lets consider what isolate does

#

I have a module A which is my bootstrap

#

in it, i isolate B

#

so when I run shadowJar on A

#

it first runs shadowJar on B, and copies the output jar into A as a resource file

#

Now

#

Another important detail is

#

if B uses the slimJar plugin, it will generate a slimjar.json config file as well on compilation

#

so now you have a jar A

#

inside this

#

you have another jar B

#

You have 1 slimjar.json in A

#

and another in B

#

everything in A

#

applies to B as well

#

Have you got it till this point?

half harness
#

uhh
wait so if both A and B has a slimjar.json

#

will they be combined?

#

ish

#

what

old wyvern
#

No, they are evaluated separately. but for the sake of simplicity, at runtime, they act as if combined

half harness
#

why not just put everything in A?

old wyvern
#

You can, but thats just a dirty solution

half harness
#

but

old wyvern
#

Its only worth it to mention them in A, if a certain dependency is used in multiple modules

#

if its only in a single one

#

its better to use it as the use site so its clear where its needed

half harness
#

wait a minute

#

so dependency in:
A = all modules
other = that module only?

old wyvern
#

No

half harness
#

KJDSAoijaADWJiwJADjwNHADW

old wyvern
#

You can separate them however, altho I dont think I want to complicate this further to you

static zealot
#

@boreal needle if I were to delete the .ssh directory would it remove the permissions by any chance?

obtuse gale
#

@ocean quartz ๐Ÿฅฒ

public static TypeAdapter<Style> of(final @Nullable LegacyHoverEventSerializer legacyHover, final boolean emitLegacyHover, final TypeAdapter<TextColor> colorSerializer, final TypeAdapter<ClickEvent.Action> clickActionSerializer, final TypeAdapter<HoverEvent.Action<?>> hoverActionSerializer) {
  return new StyleSerializer(legacyHover, emitLegacyHover, colorSerializer).nullSafe();
}
compact perchBOT
obtuse gale
#

lovely

boreal needle
#

thered be nothing for the permissions to apply on

static zealot
#

so its not saved that's what I mean? for when I Make the new one

#

oh ok done lmao

#

it was that easy I guess xD

#

now to remember to not use sudo again

boreal needle
#

no sudo unless you actually need to sudo

#

especially not in your home dir

static zealot
#

alr then

#

good to know

obtuse gale
#

i.e. no sudo

#

if you believe you need sudo ping Lucy ๐Ÿ™‚

static zealot
#

now I Just need to get Dolphin to work

#

the ssh part

static zealot
#

well shit is still not working

#

fuck

obtuse gale
#

lmao rip

boreal needle
#

how does dolphin have anything to do with ssh

static zealot
#

well no. ssh still doesn't work. I just have to set dolphin's sftp thing as well. bcz I can't get that one to work either

#

but back to ssh

#

I did chmod -R 600 ~/.ssh no sudo and I got no permission once again

#

@boreal needle btw it was bcz I was using 600. apparently 700 is fine

#

lmao

#

ty a lot

boreal needle
#

ah nice, glad to hear you got it working

static zealot
#

well back to dolphin

boreal needle
#

would it be weird to join the vc and just listen

half harness
#

nope

#

should I relocate annotations? there are like 5 annotation libraries in my jar, probably from dependencies

onyx loom
half harness
#

๐Ÿฅฒ

static zealot
#

task failed successfully I guess?

stuck harbor
#

yep

#

i often also successfully fail

static zealot
#

it worked

#

hell yeah

onyx loom
obtuse gale
#

o

static zealot
#

๐Ÿ˜ฎ

#

@prisma wave one more for the album

obtuse gale
#

lmaoo

half harness
old wyvern
boreal needle
#

does anyone have the album

old wyvern
old wyvern
#

The best-est of helpchat ๐Ÿ˜Œ

prisma wave
#

๐Ÿ˜Œ

obtuse gale
#

oh damn

#

the b&w eye

old wyvern
#

Elara - Highest paid language of 2020-2030

ocean quartz
#

Oh damn, good ol clojure mitten

prisma wave
#

the good old days

old wyvern
#

Predicate Mitten when?

prisma wave
#

soon

old wyvern
#
Mitten :- isBrister.```
half harness
#

๐Ÿคฃ

ocean quartz
#

Maybe Mitten

prisma wave
#

i think this one must be my favourite

half harness
#

i dont get that

old wyvern
#

I wonder how OP prolog would be if coc allowed it

#

considering youd pretty much rewrite the question instead of finding a soln

ocean quartz
prisma wave
# half harness i dont get that

okay so for some context, there was this guy in my discord who always wanted java help but refused to actually learn. we said something like "void is like def in python" so he wrote def onEnable. then we just gave up and sent him some clojure to copy

half harness
#

๐Ÿฅฒ

onyx loom
old wyvern
#

coc anyone?

half harness
#

ok

#

lets see if anyone joins

#

lol

#

or will i have to play by myself

old wyvern
#

@static zealot tag storm

half harness
#

bm r u there

#

bm is also staff :p

old wyvern
#

@prisma wave

half harness
#

everyone left us ;-;

#

thats awesome

boreal needle
#

one day i will get myself in that album

prisma wave
old wyvern
#

one day i will get myself, in that album

half harness
#

one day i will get myself in that album

boreal needle
#

second one is a no go

prisma wave
#

๐Ÿฅฒ

old wyvern
#

one day,( i will get myself ), in that album

boreal needle
#

one day, i will get, myself, in that album

half harness
old wyvern
#

one, day, i, will, get, myself, in, that, album,

boreal needle
#

wait did i actually join the album?

#

noice

half harness
#

lol

boreal needle
#

push notifs for dumb hc crap :D

old wyvern
#

Not yet I think

ocean quartz
#

Eh, you removed shortest

half harness
#

lol

old wyvern
#

ill add on next

#

I have it disabled by default

boreal needle
#

i actually got a notification

half harness
#

i cba doing this one ๐Ÿ˜ฉ

im confused

onyx loom
#

time to spam the album so we can crash ur phone

boreal needle
#

good luck

old wyvern
boreal needle
#

are external emojis turned on here

old wyvern
#

for nitro boosters

half harness
boreal needle
#

oof

#

cries in poor

prisma wave
#

lmao how did i get 100%

#

one of the tests failed

old wyvern
#

lmao

half harness
old wyvern
#

random()*100

prisma wave
#

i guess it forgot to test that one in the background

old wyvern
#

Imagine the chance of actually winning using that

#

biggest troll

println("${random()} ${random()}")
``` 100%
static zealot
old wyvern
#

Read right above

static zealot
#

ohhh

#

coc

#

u guys still playing?

#

so I can mass ping?

half harness
#

im not

static zealot
#

oh. sad

half harness
#

indeed

static zealot
#

now I Don't have a reason to mass ping

old wyvern
#

@quiet depot

#

๐Ÿ™‚

#

We have the new mascot

static zealot
#

not as good tho

#

good but not as good