#dev-general
1 messages · Page 580 of 1
Writing Enigma Radio since Rythm shuts down tomorrow
finds AMAZING package to almost do it for me
https://www.npmjs.com/package/discord-music-player
Google will probably end up finding some legal shenanigan to c&d the libraries used
Probably, but it’s better than nothing for now
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...
I usually have it in gradle.properties
what's the syntax? just key=value and new line as separator?
Mhm good ol properties file
not working either. wtf is going on
Java 17 is now available! #Java17 #JDK17 #OpenJDK
Download now: https://t.co/ui83Aehxoq
Release notes: https://t.co/VKB0vfaPsP
API Javadoc: https://t.co/VHs6UWdka8
Documentation: https://t.co/74Dk6r23Dt https://t.co/NZvvxchXGT
128
242

:ooooooo
ohh
oh shit right this is LTS!
also wtf java has a twitter lol
YEAH it's insane
😌 😌 😌 😌 😌
Memory API 👀
🤩
Oh man!! New API for Accessing Large Icons!!!
so exited for this 
sooooooooooo useful
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 😥
tf is a large icon
a large icon!
it's an icon that's large
There are actually a good number of changes here https://jdk.java.net/17/release-notes
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
If I'm not mistaken non-sealed is now a valid keyword
public non-sealed class Blah
I feel sick
What is that latest request paid lmao
Ew
what is the point in this
to be non sealed
🥴
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.
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!
it's a "class modifier"
which is very much a keyword
I'm just shocked about the hyphen
I thought it the wrong way around lol
You wouldn't be able to use it anyway
not non-sealed, but sealed yes

In the event that there is a problem getting a resource,
URLClassLoader.getResource()andfindResource()now returnnullinstead of throwing an undocumentedIllegalArgumentException
what, I never got an exception thrown on not found resources?
public !sealed class boom
cursed
Any interesting stuff?
Might as well add dependent typing at that point
Whats that
uh
I don't really know
It's where you can have like functions that create types, and stuff
Id love to have !instanceof tbh like Kotlin's !is
and functions that return different types based on their input and things
Isnt that what a method with generics does?
yeah but dependent typing is better
the hyphen was discussed heavily lol
Like, you could have a static typing system, but you could say "if the string is empty it returns a different type"
Or something
Oh
What language has that?
Very obscure ones
And why was it accepted smh
Agda and Idris I think
because it was considered the best approach
I guess
I mean java has @interface, why wouldn't !sealed be an alternative 🤣
I don't think that's very expressive and visible
Feels weird but we gotta live with that now
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
use JML for contracts smh
no
ok
cool
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/constant/DynamicConstantDesc.html this is an example for a non-sealed class btw
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
you mean the jar produced by shadowjar?
yeah
apparently this is how it's done, according to: https://imperceptiblethoughts.com/shadow/multi-project/
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?
Its not supposed to let you use the shaded sources
wait what is it supposed to do then?
Its just supposed to copy over the shaded artifact
The exposed dependencies still need a transitive configuration
but isn't that what using the shaded sources means then?
Copied over files != files you have in your compiletime classpath
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?
You relocate in the jar you're building
So I have to relocate the same packages?
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
Yeah
Yea again, most likely not a good idea
The problem with the above is the following:
You could try applying the relocations to all projects from the root script if you want ig
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
🥴
It's expensive not to
Very unlikely
I want to have a jetty http server running
You underestimate the jvm
can't have each plugin run their own
anyway ^
If you have a better idea, please do share. I know mine sucks but it's the best I can come up with
I want my plugins to be configurable via a website running on the MC server
I'd say its still fine to have it per-plugin
just have a enable/disable feature
Where they can enable the web editor
not if it is supposed to show a gui as well
as in?
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?
Seems to be working fine for me ¯_(ツ)_/¯
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)
and not just my library, any dependency I include cannot be minimized
which will absolutely bloat up the plugin
I did that as well, it behaves just as Yugi explained. Thanks!
13MB plugin
yikes
I am guessing that's over the limit for spigot, right?
l
i
m
j
a
r


Download dependency at runtime
On the topic of slimjar, zml says "oof it looks like they don't know how to write a gradle plugin" 😂
🥲
oh I remember, I had an issue with the appending thing
I wrote like a single function
lol
and yea I havent worked on any other gradle plugin xD
// 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?)
<clinit> 
what if I reference my dependencies before onLoad?
@tiny tartan pr!! xD
oh shit
lollll
LOL
static initializer block 
ClassNotFoundException
Is the initializer block called before the parent class gets initialized?
Your dependencies are available only after ApplicationBuilder.appending("MyApplicationName").build() this runs
Do you have an example project? This is too big brain for me...
Sure one moment
it's specified somewhere in here lol https://docs.oracle.com/javase/specs/jls/se17/html/index.html
Are you telling me you reference the dependency classes.. on static fields/init blocks?
Yeah, it's complicated....
hi what's up with those task inputs
hellooo9ooo
Also why on earth are you using a java agent?
To use the instrumentation api
Altho it isnt really used anymore
It used to be used
there are serious platform-specific issues with paths containing non-ascii characters
yea I think I fixed those in the last few releases
plus it requires a runtime with instrumentation available
It doesnt require instrumentation anymore*
that's good :p
According to this
https://docs.oracle.com/javase/specs/jls/se17/html/jls-12.html#jls-12.4.2
The subclass' static fields/init blocks are initialized before the superclass'/super interface(s)' so yeah
😄
About the gradle plugin, I barely have any ideas sorry
Thats matt's department
🥲
I wish I could get away from it in sponge, but cpw/modlauncher are inconvenient
@ocean quartz reeeeeeeeeeee
ayyy xD
the plugin is also application-order dependent
The task inputs was a recommendation I got from the Gradle slack to allow Gradle to cache things, the UP-TO-DATE stuff
So that means, I can minimize everything except my own lib, because that's not in any repository and can't be downloaded...
slack 🥲
Yes
and gradle has no defined application order for plugins in the plugins DSL
as in with usage along with shadow?
1.2MB library
well, every input to the task needs to be declared as an input
ya
usually that's done with annotations on getters on the task class
I see
tbh you probably want to distance yourself from the shadow plugin, it's barely maintained these days
🥲
make your own smh
is there any proper alternative atm?
just putting the classes into the jar yourself
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
lol
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
Possible, i can give it a shot
you have to be pretty careful, especially if you want to be configuration cache compatible
Why are you declaring as "api" if you're gonna be depending on the shaded and relocated jar anyway?
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
Don't you love it when spigot plugins include source in their jar when they aren't pushed to GH :moan:
🥲
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
Your need to use the Java-library plugin to have access to those configurations
Oh wait
You already have it
Hmm
I dont think you need both
Anyway give me a moment, getting some tea
"since it doesn't actually work"? You mean the thing I tried and worked?
yep that one
🙃
the exact same thing shown in the shadow guide
and as I mentioned having to build the shadowed sibling project I'm depending on
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
¯\_(ツ)_/¯
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
Can we all appreciate some good quality code
https://paste.helpch.at/owajohukak.java
Before I get beaten to death, yes this is a joke, and no this is not my code
right is the actual content of the me.blocky.core package in the shaded jar
the suggestions are only from the actual imported module
I already answered this borzan
get gud
I think emily meant depending on a shaded flatfile
I assume using the shadow configuration with the project wont have the same effect
well she says all she has to do is build the file...

Hi
@old wyvern is it possible something like
shadowJar {
configurations = [project.configurations.shadow]
}
is missing?
I'll do in a bit, having lunch rn
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
B*ngee 😷
@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
Bungeelocity
What's that?
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
@empty flint this is what I just used for testing
root project: https://paste.helpch.at/sagoqihuya
"api" project: https://paste.helpch.at/asonalinuk (no classes)
"core" project: https://paste.helpch.at/kesuqesuci main class https://paste.helpch.at/akebasalif.java
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
... 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"
yep, and the class that will be present is shaded, which is my whole issue
this whole thing you're doing sounds completely wrong
How so?
how will it be present?
how is it shaded if you are explicitly telling it to not shade it?
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
????
that is my whole issue
what the fuck are you doing
I do have all day but I mean I have better things to do
this, as-is, works
Alright, so I have a lib that includes an AbstractPlugin class, derived from JavaPlugin and a bunch of others
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?
so you want to expose the shaded & relocated api jar through core to another library consumer
yes.
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
api project(path: ':api', configuration: 'shadow')
Why is api shaded here?
my Core plugin, which uses the lib and shades it
It doesn't use the shaded lib tho
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
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?
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)
it's the project
yeah but it should be the shaded one
so I wanted to check if the relocation is used here
it will be the shaded archive is you have configuration: 'shadow'
That's exactly what I did and what you called me stupid for 😛
The shaded archive does provide the me.blocky.core.lib package tho
and in my case it works so you're doing something wrong
the 'shadow' gradle dependency does not
it definitely does
have you tried it with compileOnly?
well idk what I could be doing wrong, there's nothing else I am doing
core does not have api (PluginLib), but implementation (PluginLib), it is not exposed as a transitive dependency, and you build with shadowJar
and test does not have implementation(project...), but compileOnly(project(..., configuration: 'shadow')
I do and it does fetch the relocated classes
of course it fails at runtime with a NCDFE because the jar is simply is not there, unlike something Bukkit would do
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?
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
ah I get what you're saying
if I set it to api(...) it would mean core provides it as an api?
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")
shading will affect "this" module, it will change the binaries, so you don't want to expose as transitive
./gradlew :core:shadowJar (or whatever core is named)
again, the jar needs to be already built
try not removing the archive classifier in the core
let me try and invalidate cache
potentially pointless
Hey that's gradles spec for deciding what to cache!
--refresh-dependencies exists for that matter
"invalidating caches and restart" is an intellij thing, not a gradle thing

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
did you try not-unsetting the archive classifier in core?
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
¯_(ツ)_/¯
hm yeah, CNFE did not occur anymore
Now I just gotta fix StupiJ
Nah, the compile dependency is completely F'ed
Just do it right smh
Idk, I don't even have your buildfile
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
hm?
That wouldn't actually be digging a hole would it
Exactly
IntelliJ does not want to load the archive
I removed the classifiers
Not really the same is it 😮
yes... which is the issue
then i dunno man, all up until now works for me so gl ig
lol
I just looked at the built jar
it only has the blocky core classes for some reason
it's not even being shaded?!
what IJ version are you on?
latest, whichever that is
Crap
Was watching this video and the C++ profiller is really cool ;o
https://www.youtube.com/watch?v=iY6QbL_3L2I
Check out my video on Bloom ► https://youtu.be/tI70-HIc5ro
Follow my stream ► https://twitch.tv/thecherno
Support Hazel here ► https://patreon.com/thecherno
Instagram ► https://instagram.com/thecherno
Twitter ► https://twitter.com/thecherno
Discord ► https://discord.gg/thecherno
#Hazel
@obtuse gale Thanks for the help anyway, didn't really get anywhere but I think I am doing less things wrong now
uh where can I see all the tier benefits?
The only difference I can see is that you use groovy dsl
Hm
Maybe Kotlin DSL screws that up?
classic kotlin!
oh in general I don't
I used groovy for this test project only because idk
ooh
lol
"lol"? 
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)
yesterday..?
welp nvm
but if a plugin sends a message via a packet (not protocollib), does protocollib receive it?
or does it bypass
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
hm
I don't think anyone is insane enough to do that tho lol
ah, seems to be action bar
where can i hire plugin coders
how
only if ur not service muted 
how did u do that
[#882530561141375026](/guild/164280494874165248/channel/882530561141375026/)
How
if i add the slash before #882530561141375026 shows that
bad
\✨Mobile experience\✨
btw it turns out they use Player#sendMessage
🤔
That's the regular chat message packet then
ye, but idk why its not calling protocollib
you can always use your own packet listener but i dont recommend it lol
and try that
Is it called when other plugins do it?
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)
:O
woah
the truth
The truth is you should clear your goddamn notifications and pings
SO TRUE
what's the 3rd guild? I feel like I've seen that logo before
from top or bottom?
Top
I cant
im in too many servers
Then mute the servers or leave them
😌
Why would you have to
Oh mute, jesus I can't read
Can't you mute a folder?
Uninstall discord.
Disable your account, ez
😵💫
why is org.xerial:sqlite-jdbc so big smh
wait, do I even need to shade it or use compileOnly? 🤔
I shaded it, haven't tried without implementation
@obtuse gale Aparently, IJ does not support dependencies on relocated classes this way:
https://youtrack.jetbrains.com/issue/IDEA-163411#focus=Comments-27-5135285.0-0
Soooo...
Lol
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
nice, how much?
why is debian bad
65€ (around 70$) a month
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
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
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
Its not as hard as you think
The installation process is really just copy pasting commands from the wiki
it's simply a matter of beard length I'm afraid
ah
mine is almost at gentoo
but not quite there yet
wheres openSUSE on the list?
suse is awesome
opensuse irrelevant
i'd put it between debian and arch honestly
i've only used like 3 distros
ubuntu, debian, centos
used lots of ubuntu flavours but still ubuntu so
I count mint & popos as ubuntu flavours
True
From that I decided that: Arch is best for me, Debian is best for my servers
also didn't realise redhat was an os
really?
yes
ok lol

I guess I'm hopping on the debian train too
ew
you guys use arch ||btw?||
If someone uses Arch you'd know, apparently they love to talk about how much they use Arch :kek:
😂
me @ plugin jam event
https://github.com/adoptium/adoptium/issues/74
activity not yet started
o. u did something for it?
depends if u count like 2 classes 
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
I had two very cool ideas and I'm still here doing none of them :(
2 days is enough!
clearly
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:
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
THIS
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
Ayy it works, type safe flags :pepehappy:

The ender dragon dropping a hatchable egg with a tameable dragon would be cool.
A profiler 👀
man. I love the new generation
like. these are actual mountains. compare these with what we had before as mountains xD
then throw in some really slow totally 100% efficient database calls to store those generated blocks and you have the perfect plugin idea
perfect idea
I should use yaml to store the blocks right?
nah, use fuckin' SQLite or something lol
that would be too optimized
or better, use MySQL
I would personally prefer .txt
coreprotect in a nutshell
so every call is remote
oh you right
and no batching allowed
I'll store a txt file for each block converted to a blob in MySQL
With no indexes of course to save space
every time a block is generated in a world, manually add it to MySQL with a single remote call
I remember using core protect a while ago, one day i noticed the db file was 20GB lol
lol
it do be like that
is it just me or is discord dying slowly?
like not as a platform
I mean right now lmao
Yeah
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
qqqqqqqqqqqqqqqqqqqqqqqqqqq
maybe
Messages are slow, i added a reaction and it disappeared lol
¯_(ツ)_/¯
idk
guys what happens if my server has an outage?
it goes offline
that's it
do i just wait or something
yes
outage usually means the electricity is out, meaning there is fuck all you can do
Fucking discord :ugh:
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

Discord API to the moon
\✨ mobile experience \✨
I have to reinstall discord mobile every couple weeks just because it becomes unusable
It used to work fine :(
imagine being on mobile though lol
If I install the app version from about 3 months ago it runs flawlessly
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
I know right, phones in 2021 pft
I just grab my desktop and walk around with it when i go out
😖
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
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
yes
BM I believe got his account terminated and they didn't give a reason
😔
oh. he's here. hello Brister Mitten
I'll get my revenge eventually, dw
wait what happened?
Well I've seen that 30 days after the trial they shut down the machines and you have to remake them.
oh
Most evil company on the planet
oracle CEO is literally lex luthor
Evil
oracle CEO is literally lex luthor
lol
DISCORD
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 .
You're mistaking it with Amazon
It's after the trial credits expire afaik
Not that I'd know 🙄
missing replies
Nice
Fuck
Lmao
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.
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
But, free stuff 🥺
lol
Google cloud has a free forever tier
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.
I wonder if it's enough for reposilite
What are the specifications for the free tier?
It's hard to find hmm
I just didn't know if what I saw was different from what you saw.
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
Yeah that stinks. I want it to run MCBanners 😦
like Kipp lol
wasn't that ran on GCP?
or am I going crazy lol
and the dialogue flow
200 wtf
Yeah you get $200 free when you sign up
Nope, its running fine for me
lasts until December 15th
Its been like 2-3 months ish? I think
They increased it? Damn
They even have a survey going on rn about the always free ones
ya 300 for initial, 100 extra for work email
There we go
Classic oracle with designs from the 90's
xD
Html only pages, no css needed
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
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
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
{@inheritdoc}
Huh didn't know that was a thing
you don't need it if you don't want to add something
Yeah, too lazy to add that to everything xD
so you basically have access to Frontend Developer and Kotlin Basics
the other tracks require a personal account
gaby web dev™️
yeaa I realized that later on
But its atleast something I guess
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
o
i didn't even know u were on before this
lol
o u left
yes. I said bye. but the debug messages in chat probably made it disappear really fast
xD
He saw PlugMan and couldn't handle so he just bounced off :ugh:
👀
no boost. :ugh:
well actually no nitro at all xD
Nope 😢

the cape looks nice indeed
They sued because google copied some 10k lines of code
So my 10 lines copied from google should be fine right? 🥲
Google argued it was fair use, court saw in their favor
Tips for readme? https://github.com/MinecraftMediaLibrary
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
what makes you think it's not him
xD
the name
that sounds like something pulse would totally do :^)
here's an idea of what it looked like
oh my
except paste that like 20 times
what the fuck why is that shit configurable
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


Hey @ocean quartz..
I need a favor 
C-can you export and send your IJ color scheme?

Sure thing!
Let me just finish this match
@obtuse gale Uwu
Yw ;p
Let me know if there is anything you want improvements on
lol
mhm ☹️
test
ah
so it works
neat
hi 1v1 me club penguin
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!
Oh yeah I see it
Adoptium now lol
Wym Adoptium?
Adoptium?
yeah, you know, that BIG YELLOW WARNING you see when you enter adoptopenjdk.net
nope
o_O
oh
aw cmon it stil ldoesn't have dark nmode
if its getting a new coloring at least they should do dark mode 😔
We're talking about Java here, they still have a website from the 90s
lmao
I've gone over why a couple times in dev den, you can prolly Ctrl F it
@Matt
@ocean quartz
I'm still not entirely sure that java.com is legit
50/50 chance the "Java Download" button will implode my computer
Lmao exactly!
@zenith raftwell hello there
hi 
Oh shit
That’s my eye 
lol why does this look so weird 🤣
Yeah
Damn
$0
Yeah
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
Fun fact the Mercades motor company doesn't own the phone number for 1-800-mercades
Is that because it's spelt Mercedes not Mercades
No, I'm just an idiot
it's also Mercedes-Benz
Yeah sorry I didn't really sign on to be advertising rep, but cheers for looking out for em
how does this translate into kotlin-dsl?
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
}
}
Thanks, I read that already, but I can't get the publication component in kotlin dsl
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
sec
hm yeah that looks similar to what I'm doing :/
hm?
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
}
java components 👀
im writing in kotlin tho
So is that project 👀
Doesn't change anything
My relocated packages just aren't being loaded by the dependency handler
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
😮
Idk looking at my gradle it's not so bad
Do you have the full file I can take a peep at perchance?
The build file
/paste content:
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?
tasks.shadowJar {
mergeServiceFiles()
manifest {
attributes(mapOf("Main-Class" to "dev.divinegenesis.Kson5e"))
}
}```
I'm pretty sure this is what fixed mine..
hm what if there is no Main-Class?
Your api doesn't have like a class to call when using it?
or rather what if there are two?
well no, my plugin is an api for other plugins
and it contains relocated library among other things
Honestly not super sure, at this point.
You'll need someone with more sleep 💤
Dude, thanks for looking into it anyway!
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 🥴
ty iij
well. I wished we played bedwars. sometimes dreams don't come true. ||but sometimes they do||
:( ok ill play a game :), but i have to stop procastinating on working on bedwars 😩
sometimes it is good procastinating.
🤨
especially when you find games as cool as systemd
welp. if u wanna play gimme 1 minute. gonna try starting lunar again.
btw
also. lunar on windows is broken af. especially with the migrated accounts.
o
works fine for me
¯_(ツ)_/¯
i tried playing with the mouse acceleration off (by default it's on), and its so hard 😩
I can't even start the game. my session is always invalid and when I disconnect and try and connect again, I can't
so i just left it on
wtf is this bullshit. my laptop is crashing from oppening lunar.
lmaooo
ok I'm back.




