#dev-general

1 messages · Page 580 of 1

old wyvern
#

Also

#

any reason why you're using shaded

#

the configuration is shadow

empty flint
#

ah lmao

#

yeah that did fix it, my bad

#

thanks

abstract hearth
remote goblet
#

Google will probably end up finding some legal shenanigan to c&d the libraries used

abstract hearth
#

Probably, but it’s better than nothing for now

empty flint
#

How do you pass the plugins-dir property to your build? I can't get it working, neither with IntelliJ user defined env variables, nor with -D and -P cli arguments...

obtuse gale
#

I usually have it in gradle.properties

empty flint
#

what's the syntax? just key=value and new line as separator?

obtuse gale
#

Mhm good ol properties file

empty flint
#

not working either. wtf is going on

prisma wave
steel heart
obtuse gale
#

:ooooooo

old wyvern
#

Damn

#

another version in 6 months

#

Oracle speed running towards Java 100

obtuse gale
#

Pattern Matching for switch (Preview)

#

(Preview)
CH_PepeCry

old wyvern
#

Oh wait what

#

Wasnt it supposed to be out of preview for 17?

obtuse gale
#

It wasn't even a thing for switches

#

Sealed classes tho 😌

old wyvern
#

ohh

obtuse gale
#

oh shit right this is LTS!

obtuse gale
prisma wave
#

YEAH it's insane

obtuse gale
#

😌 😌 😌 😌 😌

ocean quartz
#

Memory API 👀

obtuse gale
#

I need some of that

#

in my daily life 🥲

#

MC 1.18 w/ Java 17? 😩

prisma wave
#

🤩

obtuse gale
#

Oh man!! New API for Accessing Large Icons!!!

#

so exited for this PepeLa

#

sooooooooooo useful

quaint isle
#

does anyone here know an easy way to get public profile data (follower count, profile image url, post count, etc.) from instagram?
The API requires one to apply for it and it only works for business / creator accounts if I'm not mistaken 😥

prisma wave
#

tf is a large icon

obtuse gale
#

a large icon!

#

it's an icon that's large

#

Like I'm sure 90% of them I won't use and will have no effect on me

#

But still

#

"New Class Hierarchy Analysis Implementation in the HotSpot JVM"
This is really hot stuff

prisma wave
#

If I'm not mistaken non-sealed is now a valid keyword

#

public non-sealed class Blah

#

I feel sick

hot hull
#

What is that latest request paid lmao

distant sun
#

Ew

onyx loom
prisma wave
#

to be non sealed

obtuse gale
#

wat

#

wouldn't you specify which classes are sealed?

onyx loom
#

🥴

prisma wave
#

As an example of the third constraint, Circle and Square may be final while Rectangle is sealed and we add a new subclass, WeirdShape, that is non-sealed:

package com.example.geometry;

public abstract sealed class Shape
    permits Circle, Rectangle, Square, WeirdShape { ... }

public final class Circle extends Shape { ... }

public sealed class Rectangle extends Shape 
    permits TransparentRectangle, FilledRectangle { ... }
public final class TransparentRectangle extends Rectangle { ... }
public final class FilledRectangle extends Rectangle { ... }

public final class Square extends Shape { ... }

public non-sealed class WeirdShape extends Shape { ... }

Even though the WeirdShape is open to extension by unknown classes, all instances of those subclasses are also instances of WeirdShape. Therefore code written to test whether an instance of Shape is either a Circle, a Rectangle, a Square, or a WeirdShape remains exhaustive.

obtuse gale
#

it's probably a restricted/reserved er.. thing idk how it's called

#

not exactly a keyword

#

like record

#

I have absolutely nothing to base this though on

#

oh language spec!

prisma wave
#

it's a "class modifier"

#

which is very much a keyword

#

I'm just shocked about the hyphen

obtuse gale
#

"Contextual keyword"

#

so not a reserved keyword you cannot use

obtuse gale
prisma wave
obtuse gale
#

not non-sealed, but sealed yes

prisma wave
obtuse gale
#

In the event that there is a problem getting a resource, URLClassLoader.getResource() and findResource() now return null instead of throwing an undocumented IllegalArgumentException

what, I never got an exception thrown on not found resources?

distant sun
#

public !sealed class boom

obtuse gale
#

cursed

distant sun
#

Any interesting stuff?

prisma wave
distant sun
#

Whats that

prisma wave
#

uh

#

I don't really know

#

It's where you can have like functions that create types, and stuff

distant sun
#

Id love to have !instanceof tbh like Kotlin's !is

prisma wave
#

and functions that return different types based on their input and things

distant sun
#

Isnt that what a method with generics does?

prisma wave
#

yeah but dependent typing is better

potent nest
#

the hyphen was discussed heavily lol

prisma wave
#

Like, you could have a static typing system, but you could say "if the string is empty it returns a different type"

#

Or something

distant sun
#

Oh

prisma wave
#

I think

#

Idk man

distant sun
#

What language has that?

prisma wave
#

Very obscure ones

distant sun
prisma wave
#

Agda and Idris I think

distant sun
#

Ah never heard of either

#

Sounds nice and like a pain in the ass

potent nest
distant sun
#

I guess

prisma wave
#

I have never used either but I saw a conputerphile video about it

#

Seems pretty cool

distant sun
#

I mean java has @interface, why wouldn't !sealed be an alternative 🤣

potent nest
#

I don't think that's very expressive and visible

distant sun
#

Feels weird but we gotta live with that now

prisma wave
#

Oh yeah this is an example

#

You could use dependent typing to prove that List#add creates a new list of length + 1

#

Or something

potent nest
#

use JML for contracts smh

prisma wave
#

no

potent nest
#

ok

prisma wave
#

cool

potent nest
empty flint
#

Has anybody tried to use their shadow jar as a dependency?

#
dependencies {
  implementation project(path: ':api', configuration: 'shadow')
}

Does not actually work for me, I can't import anything from the project I specify

obtuse gale
empty flint
#

yeah

#

but my project does not provide any of the shaded sources, nor the relocated packages

#

I don't quite understand what this configuration "shadow" means or if I have to specify that it refers to the archive made by my shadowJar task?

old wyvern
#

Its not supposed to let you use the shaded sources

empty flint
#

wait what is it supposed to do then?

old wyvern
#

Its just supposed to copy over the shaded artifact

#

The exposed dependencies still need a transitive configuration

empty flint
#

but isn't that what using the shaded sources means then?

old wyvern
#

Copied over files != files you have in your compiletime classpath

empty flint
#

I can do the transitive config using api(...) and that works just fine, but it doesn't factor in the relocations

#

is there a way to use the dependencies with relocated package names?

old wyvern
#

You relocate in the jar you're building

empty flint
#

So I have to relocate the same packages?

old wyvern
#

Yes

#

Why are you even relocating in a library?

#

Oh right, you're trying to do a the core plugin thing you talked about earlier I guess

empty flint
#

Yeah

old wyvern
#

Yea again, most likely not a good idea

empty flint
#

The problem with the above is the following:

old wyvern
#

You could try applying the relocations to all projects from the root script if you want ig

empty flint
#

I want my core plugin to provide library methods and stuff I need to my other plugins, so I compile the other plugins using compileOnlyApi

old wyvern
#

I dont see why you need this to be a plugin

#

Just shade it in

empty flint
#

Singletons

#

We talked about this 😄

old wyvern
#

Dont use singletons

#

Bad

obtuse gale
#

🥴

empty flint
#

It's expensive not to

old wyvern
#

Very unlikely

empty flint
#

I want to have a jetty http server running

old wyvern
#

You underestimate the jvm

empty flint
#

can't have each plugin run their own

old wyvern
#

😂

#

i'm not completely sure what you're working on, so sure

empty flint
#

If you have a better idea, please do share. I know mine sucks but it's the best I can come up with

empty flint
old wyvern
#

I'd say its still fine to have it per-plugin

#

just have a enable/disable feature

#

Where they can enable the web editor

empty flint
#

not if it is supposed to show a gui as well

old wyvern
#

as in?

empty flint
#

as in, a player interacts with the plugin not via shitty inventories but via a website

#

So anyway

#

I need a core plugin, right

#

I can set up the dependencies and everything

#

the only thing I can't get around then, after relocating and everything (not a big deal), is that I would have to include my whole lib in the core plugin because I can't minimize it with all the depending projects in mind, can I?

obtuse gale
#

The one thing I had to do is build the other project beforehand (so in your case you'd need to build :api, I guess it takes the output jar)

empty flint
#

and not just my library, any dependency I include cannot be minimized

#

which will absolutely bloat up the plugin

empty flint
#

13MB plugin

#

yikes

#

I am guessing that's over the limit for spigot, right?

old wyvern
#

Looks like you need....

#

s

obtuse gale
#

l

old wyvern
#

i

obtuse gale
#

m

old wyvern
#

j

obtuse gale
#

a

old wyvern
#

r

obtuse gale
old wyvern
empty flint
#

oh right you mentioned that before

#

What exactly does that do?

old wyvern
#

Download dependency at runtime

obtuse gale
#

On the topic of slimjar, zml says "oof it looks like they don't know how to write a gradle plugin" 😂

old wyvern
#

🥲

empty flint
#

oh I remember, I had an issue with the appending thing

old wyvern
#

I wrote like a single function

obtuse gale
#

lol

old wyvern
#

and yea I havent worked on any other gradle plugin xD

empty flint
#
// this needs to be ran before you reference your dependencies
ApplicationBuilder.appending("MyApplicationName").build()

Is this run in gradle before referencing dependencies or in the source code? (I'm guessing source?)

old wyvern
#

No, thats in your source code

#

In your onLoad or onEnable

obtuse gale
#

<clinit> hell

empty flint
obtuse gale
#

lollll

old wyvern
#

that actually pinged

#

xD

obtuse gale
#

LOL

obtuse gale
old wyvern
empty flint
old wyvern
#

Your dependencies are available only after ApplicationBuilder.appending("MyApplicationName").build() this runs

empty flint
old wyvern
#

Sure one moment

obtuse gale
tiny tartan
obtuse gale
#

hellooo9ooo

tiny tartan
#

Also why on earth are you using a java agent?

old wyvern
#

To use the instrumentation api

#

Altho it isnt really used anymore

#

It used to be used

tiny tartan
#

there are serious platform-specific issues with paths containing non-ascii characters

old wyvern
#

yea I think I fixed those in the last few releases

tiny tartan
#

plus it requires a runtime with instrumentation available

old wyvern
#

It doesnt require instrumentation anymore*

tiny tartan
#

that's good :p

obtuse gale
old wyvern
#

😄

#

About the gradle plugin, I barely have any ideas sorry

#

Thats matt's department

#

🥲

tiny tartan
#

I wish I could get away from it in sponge, but cpw/modlauncher are inconvenient

obtuse gale
#

@ocean quartz reeeeeeeeeeee

old wyvern
#

ayyy xD

tiny tartan
#

the plugin is also application-order dependent

ocean quartz
#

The task inputs was a recommendation I got from the Gradle slack to allow Gradle to cache things, the UP-TO-DATE stuff

empty flint
#

So that means, I can minimize everything except my own lib, because that's not in any repository and can't be downloaded...

obtuse gale
#

slack 🥲

tiny tartan
#

and gradle has no defined application order for plugins in the plugins DSL

old wyvern
#

as in with usage along with shadow?

empty flint
#

1.2MB library

tiny tartan
tiny tartan
#

usually that's done with annotations on getters on the task class

old wyvern
#

I see

tiny tartan
#

tbh you probably want to distance yourself from the shadow plugin, it's barely maintained these days

old wyvern
#

🥲

obtuse gale
#

make your own smh

old wyvern
#

is there any proper alternative atm?

tiny tartan
#

just putting the classes into the jar yourself

ocean quartz
#

The main input is annotated
The configuration one from what I was told can't be done with the getter, only using the inputs
But I could be wrong

old wyvern
#

lol

tiny tartan
#

or I think jmp has sth

#

you could do it as a @Nested maybe

empty flint
#

fuck me.

Dependencies scoped as api will automatically excluded from minimization and used as "entry points" on minimization.

#

can that be turned off somehow?

#

I can probably include it

ocean quartz
tiny tartan
#

you have to be pretty careful, especially if you want to be configuration cache compatible

obtuse gale
empty flint
#

I'm not depending on the shaded jar since it doesn't actually work

#

my relocated stuff isn't available in the sourcecode and neither are my other dependencies

hot hull
#

Don't you love it when spigot plugins include source in their jar when they aren't pushed to GH :moan:

old wyvern
#

🥲

empty flint
#

Yugi, compileOnlyApi doesn't seem available. Does it require some gradle voodoo to make it work?

#

I have the java and java-library plugins in the project

old wyvern
#

Your need to use the Java-library plugin to have access to those configurations

#

Oh wait

empty flint
old wyvern
#

You already have it

#

Hmm

#

I dont think you need both

#

Anyway give me a moment, getting some tea

obtuse gale
empty flint
#

yep that one

obtuse gale
#

🙃

empty flint
#

doesn't work for me

#

What did you try exactly?

obtuse gale
#

the exact same thing shown in the shadow guide

#

and as I mentioned having to build the shadowed sibling project I'm depending on

empty flint
#

I did both of those

#

I get the shaded project as a dependency, but no references to the shaded dependencies or relocated packages inside

#

maybe IntelliJ is spasming out again

obtuse gale
#

¯\_(ツ)_/¯

empty flint
#

can you send me your build file?

#

I wanna see the dependency declaration and the shadowJar config

#

This doesn't make any sense to me

hot hull
#

Before I get beaten to death, yes this is a joke, and no this is not my code

steel heart
#

Omg

#

Pro code dev hacker

#

😏

empty flint
#

right is the actual content of the me.blocky.core package in the shaded jar

#

the suggestions are only from the actual imported module

old wyvern
#

I already answered this borzan

empty flint
#

but it works for emily

#

aparently

#

why not for me?!

hot hull
#

get gud

old wyvern
#

I think emily meant depending on a shaded flatfile

#

I assume using the shadow configuration with the project wont have the same effect

empty flint
#

well she says all she has to do is build the file...

empty flint
#

@old wyvern is it possible something like

shadowJar {
  configurations = [project.configurations.shadow]
}

is missing?

obtuse gale
empty flint
#

Enjoy

#

No hurry, can't do anything anyway until shadowjar fixes their minimize() shit

#

Does anyone know if/where the code for BungeeCord is available?

#

I am getting the error java.lang.IllegalAccessException: class net.md_5.bungee.api.plugin.PluginManager cannot access a member of class me.blocky.core.bungeecord.BlockyCore with modifiers "private"

#

but my class has no private members

#

oh it's literally on github

#

good to know

obtuse gale
#

B*ngee 😷

empty flint
#

@old wyvern How do I go about "relocating" compileOnly dependencies in the files that get shaded and reference them?

#

I am relocating dependencies in my Core plugin that I am referencing, but it seems like shadowJar does not relocate dependencies if they are not included in the jar

steel heart
#

Bungeelocity

empty flint
steel heart
#

Idk a future fork I might make

#

Anyways

#

Why relocate compileOnly

empty flint
#

Because the project it's referencing is relocating some things and if I don't relocate them as well, it results in a ClassNotFoundException because it's looking at the wrong path

obtuse gale
empty flint
#

can you try with

dependencies {
    compileOnly project(path: ':api', configuration: 'shadow')
}
#

Add a class in api that gets shaded and try to use it in core, with the compileOnly dependency

obtuse gale
#

... of course that will not work

#

why the hell would that work

#

compileOnly specifically means "do not include in the runtime classpath, it will be present by some other being"

empty flint
#

yep, and the class that will be present is shaded, which is my whole issue

obtuse gale
#

this whole thing you're doing sounds completely wrong

empty flint
#

How so?

obtuse gale
#

how will it be present?

#

how is it shaded if you are explicitly telling it to not shade it?

empty flint
#

api provides the shaded one, core expects the not-shaded one

#

I need core to expect the shaded one

#

and I don't know how to do that

obtuse gale
#

????

empty flint
#

that is my whole issue

obtuse gale
#

what the fuck are you doing

empty flint
#

How much time do you have?

#

lol

obtuse gale
#

I do have all day but I mean I have better things to do

empty flint
#

Then I have my Core plugin, which uses the lib and shades it

#

and then I have my Test plugin, which also needs the lib, but only the shaded one from Core, and I don't want to package Core into it because it's expected to be provided

#

Does that make sense?

obtuse gale
#

so you want to expose the shaded & relocated api jar through core to another library consumer

empty flint
#

yes.

obtuse gale
#

in that case, core would have api project(path: ':api', configuration: 'shadow') and the other plugin compileOnly project(path: 'core', configuration: 'shadow'); of course this will be different if the core project is uploaded to a repository since it's not a project anymore

empty flint
#

api project(path: ':api', configuration: 'shadow')
Why is api shaded here?

obtuse gale
#

my Core plugin, which uses the lib and shades it

empty flint
#

It doesn't use the shaded lib tho

obtuse gale
#

...

#

good luck

empty flint
#

because then it can only be shaded once

#

only core can provide the shaded lib

#

but it shouldn't matter. I have
api project(path: ':api') and compileOnly project(path: 'core', configuration: 'shadow') and that doesn't work. If I shaded api directly, I wouldn't need to use the shaded core because api would already be shaded

obtuse gale
#

api project(path: ':api') goes IN THE CORE

#

NOT in the plugin

empty flint
#

Yeah

#

So I have it like this:

Core:

dependencies {
   api (PluginLib)
}
...
shadowJar {
  archiveClassifier.set("")
  relocate("me.blocky.lib", "me.blocky.core.lib")
}

Test:

dependencies {
  implementation(project(BlockyCorePath, "shadow"))
}
...
shadowJar {
  archiveClassifier.set("")
  relocate("me.blocky.lib", "me.blocky.core.lib")
}

Where PluginLib is the Lib project and BlockyCorePath is the path of the Core project so the dependencies do resolve correctly.

But now in Test.java, I can neither import me.blocky.lib, nor me.blocky.core.lib because the former only exists in unshaded Core and the latter in the shaded Core. Neither of which are imported via Gradle correctly.

#

And I don't understand why, because it should work as you have demonstrated with implementation(...)

#

Is there a way to check out what's inside this thing?

obtuse gale
#

I think I understand
Analogous to your usage, in my example, my "api" would be your "core", it shades and relocates some other library, but they are configured as implementation (not exposed)
These libraries I am using would be your "api"
And in my example, my "core" would be your "test";
Since your "core" will already be provided, you can configure it as compileOnly project(path: ':core', configuration: 'shadow') (I used implementation instead because this was not a bukkit plugin example, but a standalone app to test it)

obtuse gale
empty flint
#

yeah but it should be the shaded one

#

so I wanted to check if the relocation is used here

obtuse gale
#

it will be the shaded archive is you have configuration: 'shadow'

empty flint
#

The shaded archive does provide the me.blocky.core.lib package tho

obtuse gale
#

and in my case it works so you're doing something wrong

empty flint
#

the 'shadow' gradle dependency does not

obtuse gale
#

it definitely does

empty flint
#

well idk what I could be doing wrong, there's nothing else I am doing

obtuse gale
obtuse gale
empty flint
#

I can try with implementation in Core and compileOnly in Test, but then the whole point of having transitive dependencies in lib is voided. Besides, isn't implementation the same as api, except that api also propagates dependencies?

obtuse gale
#

it is not a transitive dependency

#

it never was

#

for all Test knows and cares about, it is part of the Core in and of itself, it was never a transitive dependency

empty flint
#

ah I get what you're saying

#

if I set it to api(...) it would mean core provides it as an api?

obtuse gale
#

which is why you don't want to expose it as transitive

#

if you set it to api it means it should be in the runtimeClasspath but it should also be in the compileClasspath of anything that consumes "this" module (i.e. it's a "transitive dependency")

empty flint
obtuse gale
#

shading will affect "this" module, it will change the binaries, so you don't want to expose as transitive

empty flint
#

This results in

#

compilation errors

obtuse gale
#

./gradlew :core:shadowJar (or whatever core is named)

#

again, the jar needs to be already built

empty flint
#

did that already

#

it is

#

it's in the core/build/libs folder

obtuse gale
empty flint
#

let me try and invalidate cache

obtuse gale
rotund egret
obtuse gale
#

--refresh-dependencies exists for that matter

#

"invalidating caches and restart" is an intellij thing, not a gradle thing

rotund egret
empty flint
#

except I've had issues before where gradle would be able to build but intellij wouldn't

#

and invalidating caches also forces gradle to rebuild the project

#

but that's besides the point

#

yeah, interesting

#

gradle build worked but IntelliJ still can't resolve it correctly

#

which is no bueno because I can't write code like that

#

let me see check if the jar works

obtuse gale
#

did you try not-unsetting the archive classifier in core?

empty flint
#

yep

#

just now

#

after invalidating caches, the gradle build worked

obtuse gale
#

well if I remove the archive classifier intellij does fail to load the jar but gradle works fine

#

if I don't change it everything works

#

¯_(ツ)_/¯

empty flint
#

hm yeah, CNFE did not occur anymore

#

Now I just gotta fix StupiJ

#

Nah, the compile dependency is completely F'ed

rotund egret
#

Just do it right smh

empty flint
#

What does that even mean?!

#

what would be "doing it right"?

rotund egret
#

Idk, I don't even have your buildfile

empty flint
#

exactly

#

also, if you wanted me to dig a hole and I said "just build mountains around a spot", you wouldn't be helped either

rotund egret
#

That wouldn't actually be digging a hole would it

empty flint
obtuse gale
rotund egret
#

Not really the same is it 😮

obtuse gale
empty flint
#

no, sorry, I meant I removed the classifier removal ^^

#

bad phrasing

obtuse gale
#

then i dunno man, all up until now works for me so gl ig

empty flint
#

lol

#

I just looked at the built jar

#

it only has the blocky core classes for some reason

#

it's not even being shaded?!

empty flint
obtuse gale
#

latest, whichever that is

empty flint
#

Crap

obtuse gale
#

err

#

2021.2.2

empty flint
#

I think I have to contact IJ support about this

#

ridiculous

ocean quartz
empty flint
#

@obtuse gale Thanks for the help anyway, didn't really get anywhere but I think I am doing less things wrong now

obtuse gale
#

lol

#

yw ig

pastel imp
#

uh where can I see all the tier benefits?

compact perchBOT
#
Your Current Level Tier

Let's see how far along you are:

Current Tier:

Tier VII

Contains Levels:

60 - 69

ocean quartz
#

Oh

#

?roleperks

compact perchBOT
empty flint
#

The only difference I can see is that you use groovy dsl

#

Hm

#

Maybe Kotlin DSL screws that up?

prisma wave
#

classic kotlin!

obtuse gale
#

I used groovy for this test project only because idk

half harness
#

ooh

obtuse gale
#

"lol"? hmm

half harness
#

hmm what could be a reason why im not getting certain messages using protocollib? (Chat packet)

#

the plugin sending the message is closed source & obfuscated :(

#

(emily if you remember from yesterday, this is related)

obtuse gale
#

yesterday..?

half harness
#

maybe not yesterday

#

idk

#

from kyori

obtuse gale
#

er

#

what?

half harness
#

welp nvm

but if a plugin sends a message via a packet (not protocollib), does protocollib receive it?

#

or does it bypass

obtuse gale
#

should work fine unless they go out of their way to serialize the packet themselves and send it directly to the netty stream instead of sending the Packet object through the playerconnection

half harness
#

hm

obtuse gale
#

I don't think anyone is insane enough to do that tho lol

rotund egret
#

Deep level obfuscation

#

Not even allowed to modify my messages 👀

obtuse gale
#

the heck is an "overlay message"?

#

a title?

half harness
#

title or actionbar

#

¯_(ツ)_/¯

obtuse gale
#

ah, seems to be action bar

icy quest
#

where can i hire plugin coders

obtuse gale
#

#request-paid

#

Nice one discord

forest pecan
#

how

onyx loom
#

only if ur not service muted oof

forest pecan
#

how did u do that

#

[#882530561141375026](/guild/164280494874165248/channel/882530561141375026/)

#

How

onyx loom
#

bad

obtuse gale
half harness
#

🤔

obtuse gale
#

That's the regular chat message packet then

half harness
forest pecan
#

you can always use your own packet listener but i dont recommend it lol

#

and try that

obtuse gale
half harness
#

its only this 1 messagefrom this plugin

#

every other message works

#

and the plugin author said that he uses Player#sendMessage

#

the only part where it would have a chance of not working is when I do PacketContainer#chatComponents.values.mapNotNull { it?.json } (since mapNotNull excludes null words), but there'd be zero reason for it to be null..

#

bc my debug is in ```kt
for (text in PacketContainer#chatComponents.values.mapNotNull { it?.json } /* I also do some other mapping to turn it into text */) {
if (text.contains("packet:")) {
continue
}
sendPlayer?.sendMessage("packet: $text")
}

#
val sendPlayer = if (player.name == "USERNAME") player else null
```(for context, this is being used on a public server since i dont have access to that plugin)
old wyvern
#

Bois

#

JB academy going to be free again

distant sun
#

:O

sly sonnet
steel heart
#

the truth

hot hull
#

The truth is you should clear your goddamn notifications and pings

prisma wave
#

SO TRUE

distant sun
steel heart
#

from top or bottom?

rotund egret
#

Top

distant sun
steel heart
#

auxilor

#

the eco guy

steel heart
#

im in too many servers

hot hull
#

Then mute the servers or leave them

steel heart
#

you think im gonna go thru the effort muting 170 servers

wind patio
steel heart
#

😌

rotund egret
#

Oh mute, jesus I can't read

steel heart
#

Oh that’s pretty useful regardless

#

Thx

hot hull
#

Can't you mute a folder?

steel heart
#

Then I have to put the servers into folders PES_Why

#

Actually I have some already

hot hull
#

Uninstall discord.

steel heart
#

But the rest is effort

#

Lmao

hot hull
#

Disable your account, ez

steel heart
#

😵💫

distant sun
#

why is org.xerial:sqlite-jdbc so big smh

#

wait, do I even need to shade it or use compileOnly? 🤔

wind patio
#

I shaded it, haven't tried without implementation

empty flint
#

Soooo...

#

Lol

empty flint
#

Dude

#

Even normal implementation dependency does not resolve

#

I published to .m2 and it still won't compile any references to classes in the jar

gilded granite
#

just bought a dedicated machine

#

100% worth the money

distant sun
#

nice, how much?

quiet depot
#

debian

#

lame

gilded granite
gilded granite
quiet depot
#

didn't say it was bad

#

it's not oracle linux

#

that's truly bad

#

just lame

gilded granite
#

ew

#

oracle linux

#

I personally use arch on my main machine

#

but

#

i am NEVER putting a rolling release distro on a server

#

i will not make that mistake twice

#

what distro would you reccomend instead? (not switching i like debian, im just curious)

#

@quiet depot

quiet depot
#

lol it doesn't matter

#

it's just personal preference

#

doesn't affect how good ur server is

#

but i use ubuntu

#

ye basically i'm a basic bitch

gilded granite
#

ubuntu is too ubuntu for me

#

I used mint when I first tried linux but when I switched to arch i discovered ubuntu is lame

#

just my opinion tho

quiet depot
#

idk if I've used arch tbh

#

don't think I have

#

my beard isn't long enough for it

gilded granite
#

Its not as hard as you think

#

The installation process is really just copy pasting commands from the wiki

quiet depot
#

it's simply a matter of beard length I'm afraid

gilded granite
#

ah

quiet depot
#

you see here

#

my beard is simply not long enough

gilded granite
#

mine is almost at gentoo

#

but not quite there yet

#

wheres openSUSE on the list?

#

suse is awesome

quiet depot
#

opensuse irrelevant

gilded granite
#

i'd put it between debian and arch honestly

quiet depot
#

i've only used like 3 distros

#

ubuntu, debian, centos

#

used lots of ubuntu flavours but still ubuntu so

gilded granite
#

Ah

#

I've used Ubuntu, Mint, PopOS, Debian, Arch, RedHat, CentOS

quiet depot
#

I count mint & popos as ubuntu flavours

gilded granite
#

True

#

From that I decided that: Arch is best for me, Debian is best for my servers

quiet depot
#

also didn't realise redhat was an os

gilded granite
#

really?

quiet depot
#

yes

gilded granite
#

ok lol

prisma wave
wind patio
#

I guess I'm hopping on the debian train too

prisma wave
#

ew

surreal quarry
#

you guys use arch ||btw?||

ocean quartz
#

If someone uses Arch you'd know, apparently they love to talk about how much they use Arch :kek:

old wyvern
#

😂

distant sun
onyx loom
#

me @ plugin jam event

obtuse gale
static zealot
onyx loom
#

depends if u count like 2 classes kappa

static zealot
#

lmao.

#

I had a lot of ideas but only got 2 of them to work. well one of them is not fully done yet. xD

obtuse gale
#

I had two very cool ideas and I'm still here doing none of them :(

onyx loom
#

2 days is enough!

static zealot
#

clearly

ocean quartz
#

That moment you keep trying to figure what was wrong and you find it's because you're stupid and have an inverted if statement :ugh:

static zealot
#

hehe

#

😢 hehe

#

I had these ideas:

  • A new boss. Something like a snow giant that throws snowballs and freezes players
  • Better wandering traders
  • Baby ender dragons (idk what they would do xD)
  • Flying pigs (a new enchantment for saddles that when you put on a pig and ride them with a carrot on a stick they can fly in the direction you point to)
  • Dogs. Better wolves basically.
  • Torches that burn out
  • Graves
  • Trash cans
obtuse gale
#

Okay but how about

#

A world without diorite 😌

onyx loom
#

THIS

tranquil crane
#

on world generate:
if diorite:
don't();

#

gotta just make a custom WorldGenerateBlockEvent which gets called every single time any block in the game is generated, ez. totally efficient and not slow at all

ocean quartz
#

Ayy it works, type safe flags :pepehappy:

onyx loom
sweet cipher
obtuse gale
#

"Hello World" thonk

#

that's a lot of new biomes

prisma wave
#

A profiler 👀

static zealot
#

man. I love the new generation

#

like. these are actual mountains. compare these with what we had before as mountains xD

jovial warren
tranquil crane
#

perfect idea

jovial warren
#

ez

#

see, I is genius

tranquil crane
#

I should use yaml to store the blocks right?

jovial warren
#

nah, use fuckin' SQLite or something lol

tranquil crane
#

that would be too optimized

jovial warren
#

or better, use MySQL

static zealot
#

I would personally prefer .txt

obtuse gale
#

coreprotect in a nutshell

jovial warren
#

so every call is remote

tranquil crane
#

oh you right

jovial warren
#

and no batching allowed

tranquil crane
#

I'll store a txt file for each block converted to a blob in MySQL

#

With no indexes of course to save space

jovial warren
#

every time a block is generated in a world, manually add it to MySQL with a single remote call

ocean quartz
#

I remember using core protect a while ago, one day i noticed the db file was 20GB lol

jovial warren
#

lol

tranquil crane
#

it do be like that

obtuse gale
#

is it just me or is discord dying slowly?

#

like not as a platform

#

I mean right now lmao

ocean quartz
#

Yeah

jovial warren
#

I think they're trying to grow it

#

oh, you mean like as in responses?

#

I ain't seeing any slower responses

#

actually I kinda am

obtuse gale
#

qqqqqqqqqqqqqqqqqqqqqqqqqqq

jovial warren
#

maybe

ocean quartz
#

Messages are slow, i added a reaction and it disappeared lol

jovial warren
#

¯_(ツ)_/¯

obtuse gale
#

idk

smoky meadow
#

guys what happens if my server has an outage?

jovial warren
#

that's it

smoky meadow
#

do i just wait or something

obtuse gale
#

yes

jovial warren
#

outage usually means the electricity is out, meaning there is fuck all you can do

smoky meadow
#

alright thank you

#

lmao i figured

ocean quartz
#

Fucking discord :ugh:

tranquil crane
#

Discord on mobile has been deteriorating since a few months ago

#

It takes upwards of 20 seconds to load a channel sometimes and the profile banners constantly flicker

ocean quartz
obtuse gale
tranquil crane
#

Discord API to the moon

prisma wave
#

Oh good it's not just me

#

I bet they're regretting using "rust"!

tranquil crane
#

I have to reinstall discord mobile every couple weeks just because it becomes unusable

#

It used to work fine :(

jovial warren
#

imagine being on mobile though lol

tranquil crane
#

If I install the app version from about 3 months ago it runs flawlessly

obtuse gale
#

I just clean cache and move along
I cba to log in every time, pull up bitwarden, 2fa yada yada once every couple of weeks lmao

ocean quartz
#

I know right, phones in 2021 pft

ocean quartz
prisma wave
#

😖

tranquil crane
#

But then I don't get the banners or stickers

#

Which I guess isn't terribly important

#

oh or threads which is slightly more important

frail glade
#

For those who did the Oracle Free Trial, has anyone else had their machine shut down yet and had to remake yet?

#

CC: @old wyvern

potent nest
#

yes

static zealot
#

BM I believe got his account terminated and they didn't give a reason

prisma wave
#

😔

static zealot
#

oh. he's here. hello Brister Mitten

prisma wave
#

I'll get my revenge eventually, dw

jovial warren
#

wait what happened?

frail glade
#

Well I've seen that 30 days after the trial they shut down the machines and you have to remake them.

jovial warren
#

oh

prisma wave
#

Most evil company on the planet

#

oracle CEO is literally lex luthor

#

Evil

#

oracle CEO is literally lex luthor

obtuse gale
#

lol

prisma wave
#

DISCORD

frail glade
#

I just can't tell if it's 30 days of the trial or 30 days after the machine made, because if it's after the machine made, I can go ahead and just make a backup and remake .

ocean quartz
#

You're mistaking it with Amazon

prisma wave
#

nope

#

Oracle is worse

prisma wave
#

Not that I'd know 🙄

#

missing replies

ocean quartz
#

Nice

prisma wave
#

Fuck

ocean quartz
#

Lmao

frail glade
#

You get like 20,000 hours a month on free tier per core or whatever so if you theoretically have just 1 VM with 12GB and 2 CPU and not use the other half, you might not have to reset.

prisma wave
#

epic reply fail

jovial warren
#

I mean, Oracle did try to sue Google once for use of Java in android, so ya know, yeah, they don't really give a fuck lol

frail glade
#

But, free stuff 🥺

jovial warren
#

lol

ocean quartz
#

Google cloud has a free forever tier

frail glade
#

Yeah but I think I looked at it and what it offers couldn't even handle a monthly nexus instance or something to that effect, depending on how much it's used.

ocean quartz
#

I wonder if it's enough for reposilite

frail glade
#

What are the specifications for the free tier?

ocean quartz
#

It's hard to find hmm

frail glade
#

I just didn't know if what I saw was different from what you saw.

ocean quartz
#

I can't find anything specific about the specs
Tough i know it's pretty small, mostly good for things like a small personal discord bot or something

frail glade
#

Yeah that stinks. I want it to run MCBanners 😦

jovial warren
#

wasn't that ran on GCP?

#

or am I going crazy lol

ocean quartz
#

You're going crazy

#

All i used cloud for was the mysql database

jovial warren
#

and the dialogue flow

ocean quartz
#

Which ran out in like 6 months, it ate through the $200

#

Dialog flow is free though

distant sun
#

200 wtf

ocean quartz
#

Yeah you get $200 free when you sign up

obtuse gale
#

1 shared vcpu + 1 gb of memory or smth

#

I got $400 free just now for signing up

obtuse gale
#

lasts until December 15th

old wyvern
#

Its been like 2-3 months ish? I think

ocean quartz
old wyvern
#

They even have a survey going on rn about the always free ones

obtuse gale
old wyvern
#

There we go

ocean quartz
#

Classic oracle with designs from the 90's

old wyvern
#

xD

ocean quartz
#

Html only pages, no css needed

old wyvern
#

🥲

#

Java Applets!

ocean quartz
#

How do people write javadocs for simple descriptive boolean methods?
Like legit idk how to not make this redundant:

/**
 * If argument is optional or not.
 *
 * @return Whether the argument is optional.
 */
public boolean isOptional() {
    return isOptional;
}
#

The @return makes it so awkward lol

jovial warren
#

yeah I generally do that for some of my documentation, since I have a requirement that all elements must be documented

#

if you're not thinking about a wiki, detailed documentation would explain some possible applications as well

ocean quartz
#

There will be wiki so i'll just leave this redundant lmao

#

Also do people put javadocs comments on hashcode and tostring? Sounds dumb to do that lmao

distant sun
#

{@inheritdoc}

ocean quartz
#

Huh didn't know that was a thing

potent nest
#

you don't need it if you don't want to add something

ocean quartz
#

Yeah, too lazy to add that to everything xD

balmy badge
#

i need some help with protection of my server

#

can i get some help

distant sun
# old wyvern

so you basically have access to Frontend Developer and Kotlin Basics

#

the other tracks require a personal account

half harness
#

gaby web dev™️

old wyvern
#

But its atleast something I guess

static zealot
#

but it says no need for free trial and when I go to the website I can only find the trial one.

#

oh nvm. found it

static zealot
#

dkim. why u closed it? xD

#

just exposing @half harness

half harness
#

i didn't even know u were on before this

#

lol

#

o u left

static zealot
#

yes. I said bye. but the debug messages in chat probably made it disappear really fast

half harness
#

xD

ocean quartz
half harness
#

👀

static zealot
#

well actually no nitro at all xD

ocean quartz
#

Nope 😢

obtuse gale
static zealot
#

kinda like it

dawn hinge
#

the cape looks nice indeed

rotund egret
ocean quartz
#

So my 10 lines copied from google should be fine right? 🥲

rotund egret
#

Google argued it was fair use, court saw in their favor

forest pecan
quiet sierra
#

I saw your github profile picture and had a mini heart attack

#

some dude with the same profile picture made a repo with like 5k repeated code lines and I thought you were him lol

obtuse gale
#

PepeLa what makes you think it's not him

static zealot
#

xD

quiet sierra
#

the name

obtuse gale
#

that sounds like something pulse would totally do :^)

quiet sierra
#

here's an idea of what it looked like

static zealot
#

oh my

quiet sierra
#

except paste that like 20 times

obtuse gale
#

what the fuck why is that shit configurable

quiet sierra
#

beginner developers come up with the best radiator designs

#

Thing is

#

for each version in that check

#

it actually repeats that tower of ifs

#

as observable here

obtuse gale
quiet sierra
#

and then I made a pull request to turn it into a one-liner

#

and got denied

obtuse gale
obtuse gale
#

Hey @ocean quartz..
I need a favor 7acosp_blushing

#

C-can you export and send your IJ color scheme?

ocean quartz
#

Sure thing!
Let me just finish this match

ocean quartz
obtuse gale
#

I have been blessed

#

so good!

#

thank you

ocean quartz
#

Yw ;p
Let me know if there is anything you want improvements on

half harness
#

what

#

im not sending the same message across channels

obtuse gale
#

lol

half harness
#

;-;

#

ima test it if it actually works tho

#

oh

#

hi matt

ocean quartz
#

Being targeted by Barry

#

Hi

half harness
#

test

#

ah

#

so it works

#

neat

#

hi 1v1 me club penguin

oak raft
#

When I download the adoptopenjdk, and I have to add an sdk for intellij, where can I find the jdk folder?

#

Where's the default installation?

#

Hey dkim!

half harness
#

%PROGRAMFILES%\AdoptOpenJDK

#

i think

oak raft
#

Oh yeah I see it

obtuse gale
#

Adoptium now lol

oak raft
#

Wym Adoptium?

half harness
#

Adoptium?

obtuse gale
half harness
#

nope

obtuse gale
#

it's right there, yep

oak raft
#

o_O

half harness
#

oh

#

aw cmon it stil ldoesn't have dark nmode

#

if its getting a new coloring at least they should do dark mode 😔

ocean quartz
#

We're talking about Java here, they still have a website from the 90s

half harness
#

🥲

#

wait how come that only has java 8

ocean quartz
obtuse gale
#

lmao

obtuse gale
oak raft
#

Update ?jdk then

#

If Adoptium is meta

half harness
#

@‫Matt

ocean quartz
#

@ocean quartz

zenith raft
#

50/50 chance the "Java Download" button will implode my computer

ocean quartz
#

Lmao exactly!

obtuse gale
#

@zenith raftwell hello there

zenith raft
#

hi meow_uwu

ocean quartz
#

Oh shit

obtuse gale
#

I see my eye there 👁️

#

Well, my skin rather

oak raft
#

That’s my eye Thonk

half harness
#

lol why does this look so weird 🤣

distant sun
distant sun
prisma wave
#

Unrelated but TIL .java is a valid TLD

#

I wonder how much oracle paid for that

obtuse gale
#

$0

prisma wave
#

oh wow

#

Ok

obtuse gale
#

Yeah

empty flint
#

Does anybody know how to publish the shadow artifact to the local maven repository?

#

I tried this:

publishing {
  create<MavenPublication>("shadow") {
    from(components["shadow"])
    artifact(tasks.shadowJar.get().archiveFile)
    artifactId = tasks.shadowJar.get().archiveBaseName.get().toLowerCaseAsciiOnly().replace(" ", "-")
    groupId = project.group.toString()
    version = currentVersion
  }
}
#

But when depending on the jar (the jar looks correct), I can't use any classes that are inside

rotund egret
#

Fun fact the Mercades motor company doesn't own the phone number for 1-800-mercades

prisma wave
#

Is that because it's spelt Mercedes not Mercades

rotund egret
#

No, I'm just an idiot

potent nest
#

it's also Mercedes-Benz

rotund egret
#

Yeah sorry I didn't really sign on to be advertising rep, but cheers for looking out for em

empty flint
#

how does this translate into kotlin-dsl?

  publications {
    shadow(MavenPublication) { publication ->
      project.shadow.component(publication)
    }
  }
empty flint
#

from shadow

#

Or could there be some other reason?

#

I am publishing my jar but the dependency does not resolve it correctly

#

I'm guessing it's missing some metadata or something, idk

rotund egret
#

sec

empty flint
#

hm yeah that looks similar to what I'm doing :/

rotund egret
#

hm?

empty flint
#
    create<MavenPublication>("mavenPublish") {
      from(components["kotlin"])
      artifact(tasks.shadowJar.get().archiveFile)
      artifactId = tasks.shadowJar.get().archiveBaseName.get().toLowerCaseAsciiOnly().replace(" ", "-")
      groupId = project.group.toString()
      version = currentVersion
    }
rotund egret
#

java components 👀

empty flint
#

im writing in kotlin tho

rotund egret
#

So is that project 👀

empty flint
#

Doesn't change anything

#

My relocated packages just aren't being loaded by the dependency handler

rotund egret
#

I had to do some funky stuff to get it to work

#

I found the solution on some old issue in the Shadow thread and had to modify it a bit

#

it was a mess

empty flint
#

😮

rotund egret
#

Idk looking at my gradle it's not so bad

#

Do you have the full file I can take a peep at perchance?

empty flint
#

jar file you mean?

#

I'll zip you the publication result

rotund egret
#

The build file

empty flint
#

ah yeah sure

#

!paste

#

what was the command thingy again?

rotund egret
#

/paste content:

empty flint
#

no for tzhe pastebin

#

or was it hastebin?

#

got it

compact perchBOT
empty flint
#

it's messy because I'm still figuring stuff out

#

@rotund egret the first one is the one that gets shaded and published, the second one depends on the publication

#

Looking at the generated .module file

#

it lists the variant

#
{
      "name": "shadowRuntimeElements",
      "attributes": {
        "org.gradle.category": "library",
        "org.gradle.dependency.bundling": "shadowed",
        "org.gradle.libraryelements": "jar",
        "org.gradle.usage": "java-runtime"
      },
      "files": [
        {
          "name": "blocky-core-1.0.9-shaded.jar",
          "url": "blocky-core-1.0.9-shaded.jar",
          "size": 14349542,
          "sha512": "f0fce2d4415ca3af5a8dee7119e3f847cea2f4da48e7f01c560c2f1e66593b7e32661e2ff4e08e294af1ff06fbb2d09a390bd117b8013b77fe1e4223140c8e01",
          "sha256": "7a87e7a0d0ad6828a619d62b34f0651c295f818cbad3761874acb508170fc80b",
          "sha1": "dae290fd8a7630d7ce14242c0262b16a18d66280",
          "md5": "bac87507b72d53cdabac9328af69566f"
        }
      ]
    }
#

how do I make sure to get that one?

rotund egret
#
tasks.shadowJar {
    mergeServiceFiles()
    manifest {
        attributes(mapOf("Main-Class" to "dev.divinegenesis.Kson5e"))
    }
}```
I'm pretty sure this is what fixed mine..
empty flint
#

hm what if there is no Main-Class?

rotund egret
#

Your api doesn't have like a class to call when using it?

empty flint
#

or rather what if there are two?

empty flint
#

and it contains relocated library among other things

rotund egret
#

Honestly not super sure, at this point.
You'll need someone with more sleep 💤

empty flint
#

Dude, thanks for looking into it anyway!

half harness
#

tyy (it worked)

rn i have api-all.jar, api-javadoc.jar, api-sources.jar, and api.jar, will gradle/maven choose api-all.jar or api-jar?

#

since api-all.jar has all the dependencies shaded in too, and I don't want that 🥴

distant sun
#

ty iij

half harness
#

lol

#

rip

#

aaa i wish you could rename maven artifacts

#

or delete them

#

😩

static zealot
half harness
#

:( ok ill play a game :), but i have to stop procastinating on working on bedwars 😩

static zealot
#

sometimes it is good procastinating.

half harness
#

🤨

static zealot
#

especially when you find games as cool as systemd

half harness
#

ah

#

now that's an exception

static zealot
#

welp. if u wanna play gimme 1 minute. gonna try starting lunar again.

half harness
#

btw

static zealot
#

also. lunar on windows is broken af. especially with the migrated accounts.

half harness
#

o

#

works fine for me

#

¯_(ツ)_/¯

#

i tried playing with the mouse acceleration off (by default it's on), and its so hard 😩

static zealot
#

I can't even start the game. my session is always invalid and when I disconnect and try and connect again, I can't

half harness
#

so i just left it on

static zealot
#

wtf is this bullshit. my laptop is crashing from oppening lunar.

half harness
#

oh no not again lol

static zealot
#

lmaooo

half harness
#

welp he left

#

lol

static zealot
#

ok I'm back.