#dev-general
1 messages ยท Page 374 of 1
Oh yeah and good luck figuring out if the compiler throws errors lol
The closest you get in Java on specialization is either inheritance & overriding methods or just a whole separate class on its own (IntStream and Stream<T> are separate classes altogether, if specialization was a thing, they would be just Stream<T> and one Stream<int>)
How ugly/dumb would it be to have a try catch for NPE as a condition to close the menu :p
Not my code so it's a fucking mess
"Aw, who wrote this crap? This is so confusing!" git blame "Oh, it was me."
Nah it's not confusing, it's just made in a retarded way because the person didn't know what they were doing
Are you fixing it?
holy shit copyright Sun from 2006
"Better fix that." git blame-someone-else "Starmism <noreply@starmism.com>" 3b3125c4da142e64becd02095a4f1c4b7e2cd9ab
and I wish I wasn't so stupid that I just blamed it on the person who was originally at blame
oh I thought that was from your pov haha
noreply emails are overrated
I have a noreply email
and it's the only email i use
i also send emails from it
it usually confuses people because I have to say "please do actually reply to this email, even though it's called noreply"
fun stuff
bet you have your own domain and everything ๐
Hello? My question please? ๐
go ask in #development thien
๐
what's the face for
i've got zero domains, and you've got two
and one of them is a google thing or something?
google thing?
no
p1g.pw points to a link shortener, but I mainly use the domain for dev stuff
projects and shit
google.com is just an example link
oh that makes sense
used to have 3 domains actually but let the third expire, didn't need it (piggeh.org)
3 isn't even that much
gian has way more
๐
can you not afford a domain?
no lol
can't afford $20 a year?
actually you're probably american aren't you
more like $15 for you
well with zero income, it is pretty hard to pay recurring fees
goes towards paying for uni
and you can't spare $20?
my parents take it i dunno man
have you asked them lol?
i do suck at making websites, so maybe it's for the best lol
i mean not about a domain lol
a domain is quite important
well at least to me
anyway
students can get a free .me from namecheap for a year
while still a student, renewing is discounted
already used it like 3 years ago
there's also like 2 other companies on github edu that give free domains to students
yeah used the other one
then there's also the final option of using your non tech savvy friend's school email
pfft haha
i've done it before
now that is pretty big brain
now all that's left is to think of something to put there!
ricardo
?
oh yea
wow
Lol
Programmers these days
the dinosaurs will come back if this keeps up
All they know is nodejs, bootstrap, vue
Talking about bootstrap
What are some cool CSS frameworks?
bootstrap
bootstrap is still my favourite but some people use some weird shit called "bulma" aswell
and some people have just given up on the manual html/css thingo and use vue (which I think basically does everything for you? ngl haven't looked into vue much)
l
J
That would be useful if we want to selectively load dependencies ig
I'd assume the value
Ill remove the xml parser since we wont need that now
I presume you give it the key and it gives you the value
nice one more level and a new color!
awe nice only 3k
I think I wanna use a scheduler for ticking at this point lol
screw your sleep method Yugi
it always gets out of sync and doesn't produce accurate timing results
๐
I think that means I can't do watchdog though
but watchdog seems kinda broken anyway, so not really sad about that lol
https://i.imgur.com/KQCJfhR.png now that's more like it
Oh did Krypton just hit 20 tps?
using a single-threaded SES, yes
tickScheduler.scheduleAtFixedRate({
val nextTickTime = System.currentTimeMillis() - lastTickTime
if (nextTickTime > 2000L && lastTickTime - lastOverloadWarning >= 15000L) {
LOGGER.warn("Woah there! Can't keep up! Running ${nextTickTime}ms (${nextTickTime / 50} ticks) behind!")
lastOverloadWarning = lastTickTime
}
GlobalScope.launch { eventBus.call(TickStartEvent(tickCount)) }
val tickTime = measureTimeMillis(::tick)
val finishTime = System.currentTimeMillis()
GlobalScope.launch { eventBus.call(TickEndEvent(tickCount, tickTime, finishTime)) }
lastTickTime = finishTime
}, 0, TICK_INTERVAL, TimeUnit.MILLISECONDS)
ez
that's the actual code lol
and somehow, the main thread doesn't die
lemme show you the old code
Also, stop GlobalScope abuse
ignore that for now lol
while (isRunning) {
val nextTickTime = System.currentTimeMillis() - lastTickTime
if (nextTickTime > 2000L && lastTickTime - lastOverloadWarning >= 15000L) {
LOGGER.warn("Woah there! Can't keep up! Running ${nextTickTime}ms (${nextTickTime / 50} ticks) behind!")
lastTickTime += nextTickTime
lastOverloadWarning = lastTickTime
}
GlobalScope.launch { eventBus.call(TickStartEvent(tickCount)) }
val tickTime = measureTimeMillis(::tick)
val finishTime = System.currentTimeMillis()
GlobalScope.launch { eventBus.call(TickEndEvent(tickCount, tickTime, finishTime)) }
lastTickTime = finishTime
if (tickTime < TICK_INTERVAL) delay(TICK_INTERVAL - tickTime)
}
this is the old code
and this would chill at 16 TPS
launching coroutines might have significant overhead
lemme try not doing that
Sure
still chills at 16
still that same runBlocking yes
Try without that
also, won't that kill the program since the main thread will stop executing?
"Woah there!"
Wdym?
Run that outside a coroutine context on the thread you want blocked
removed the runBlocking and replaced delay with Thread.sleep and guess what
Still same?
still 16 TPS xD
how?
Use any profiler
I'm using spark atm for profiling (yes, I wrote a spark impl for Krypton so I could monitor this stuff lol)
Use hte one built into ij
also, maybe it might be worth adding a profiler at some point, like what Mojang code has
^
like one that can push to listening profilers
Just use the debugger for now
JProfiler
alright
if my trial hasn't ran out yet lol
right, where am I looking?
main seems to do a hell of a lot of waiting
If you're getting an avg of 16 handling things normally id assume you have some bottleneck somewhere
yeah I'm impressed you don't have 20 without any plugins or any players
pathetic
I have LuckPerms and spark, but I've removed LP before and it did nothing
bard screen share in vc?
sure
Bardy, have you tested it being ran outside of IJ yet?
I wanna throw it on my survur :sadge:
ooh yeah that'd be cool
we can get the whole gang together to start rewriting open source plugins for Krypton!
FrozenJoin for Krypton ๐
FrustyJoyn
@onyx loom Start flaming this dude for not knowing what that is
eeeeeeeee
frozenjoin good
oh damn we got the whole gang of contributors here
would it be worth making actions, which take in any event, and execute whatever you want?
Frosty, BM, Yuri, and Piggy!
so uh, what does this bad boy do
cool particle effects or something upon join?
Does anyone have any good tutorials for ktor and react.kt?
matt may be able to help
Whatever you desire on join
such as?
This is just one of the many testimonies on how bad Frosty's code is. /s
Maybe the code ain't bad, just the documentation lol
Couldn't ActionHolder.kt be a data class?
.
Itโs not the worse Iโve seen donโt beat yourself up ๐
@jovial warren I'm waiting for this greatness to happen
yoooooo it's #2!
Well yes
poor airplane
airplane is just there cause it loads fast
๐ฅฒ
soonโข๏ธ
What would be the cause of this again?
pings the server just fine, just fucks it when I try to connect
it broke
restart it ๐คทโโ๏ธ
that looks like a bungee message, so it seems like the backend servers aren't reachable
exactly! just like Java and Kotlin! And look at the difference there
Does Velocity have good error messages tho? This kinda looks a little painful
Not really
I canโt find you the server nor fallback server so goodbye
Not exactly hard to understand
hmmm maybe the io.netty part threw me off
I'm a developer and I still got scared ๐
waterfall gang
oh which one is better
oh?
It's gonna be maintained so long larger servers use it, after that I doubt anyone is gonna bother
Well isn't that... the state of every piece of software?
Nah stuff like paper will always be maintained, since people can fix shit themselves
Can someone try connecting to frosty.op65n.tech
mc connection?
yes
smh
Have you got it on a proxy @hot hull
awe now im not whitelisted :'(
๐คก
stop bully
Hehehe
always bully
@ocean quartz Can we get FrozenActions support for mf cmds?
Make a PR. you won't
He's rewritting it, so no I won't ;C
awe too bad
what was it!
Thread.sleep apparently has about a 10 ms overhead
lol
so I was sleeping for just over 60 ms instead of the 50 ms I should've been sleeping
Damn you unproductive af sleeping for 60ms
/s
lol ik Kaliber
elara/threads::sleep 50
0 overhead
damn thats crazy
yes
this is because every elara function compiles to just a single line of assembly
fastest possible operation
calls JVM Thread.sleep
or have you finally decided to ditch the JVM
It wasnt an overhead
thats always been planned
Its just that the next time the scheduler ticked was 12 millis after the wake time
@ocean quartz wakey wakey, if I set the nbt tag to null, will it remove it?
can anyone here tell me how to link C files properly with JNI?
I read a tutorial but it didn't seem to work
I just wanna write some JNI code in C and call it from Java lol
what are you doing exactly?
but the Java compiler complains native_sum isn't in java.library.path
#include <jni.h>
JNIEXPORT jlong JNICALL
Java_dev_bombardy_testing_NativeMath_sum(JNIEnv *env, jint number) {
long sum = 0;
for (int i = 0; i < number; i++) {
sum += i;
}
return sum;
}
```this is my C code btw
Where do you load the library?
yes
actually maybe the static block should go at the bottom
that does not matter at all
public static native long sum(final int number); this is my native method
System.loadLibrary("native_sum"); then this is how I load the library
If you have copied the build.gradle file it will only add this to the library path for the test task
which is not what you want I presume
I'm running the test task
at least, I should be
I'm just trying to do some testing with JNI
so you are running gradle test
lemme try doing that
what's in build/libs/hello/shared
ah, I see the issue actually
> No tool chain is available to build for platform 'windows_x86':
- Tool chain 'visualCpp' (Visual Studio):
- Could not locate a Visual Studio installation, using the command line tool, Windows registry or system path.
- Tool chain 'gcc' (GNU GCC):
- Could not find C compiler 'gcc' in system path.
- Tool chain 'clang' (Clang):
- Could not find C compiler 'clang' in system path.
yes, you need to build the library before you can use it
you can't. you don't have to install the full VS though
in the installer you can select to only install the cpp build tools
I'd assume you need the same stuff as you need for the rust installation
You could also try to see if it works with WSL (it should)
If you don't want the effort
I'm in the individual components section of VSC, which ones do I actually need?
you're in the visual studio installer?
also, WSL doesn't work for me atm, since WSL 2 requires the hypervisor enabled, and that breaks VirtualBox
yes
what should I be linking with? MSVC?
you need this
I have that installed
maybe I'm missing something
which tools do I need ticked inside of that?
ew, mingw
just switch to Linux you pussy
yeah true, I should do that lol
currently on Windows atm
some time ago
ah
I see
I've been meaning to move back, but I just can't be assed lol
yea for now mingw should be enough
#include <jni.h>
JNIEXPORT jlong JNICALL
Java_dev_bombardy_testing_NativeMath_sum(JNIEnv *env, jint number) {
long sum = 0;
for (int i = 0; i < number; i++) {
sum += i;
}
return sum;
}
```is there anything wrong with this code btw?
since idk whether jlong and C's long are interoperable or not
right, got MinGW installed, how do I actually use it?
try type gcc in cmd
nothing
run it thru mingw directylt ehn
Make sure you have it in your PATH
installer should add it atuomatically
It didnt for me I think
depending on where he downloaded it from
I had to add it manually
yeah it's not there
also, I didn't download it, I just used an installer I have on my system
the minimal git bash one does it automatically but the full mingw64 doesn't iirc
ah
Probably not, I think you have to use the env to translate them
or might be other way around
From the example it looks like they can return long for jlongs
install the full mingw64 then
add it
what path do I want to add? C:\Program Files\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin?
that seemed to work
no idea, old installer lol
well, it was just sitting on my system
jlong is an alias for long
x86_64-8.1.0-win32-seh-rt_v6-rev0
I think
tf is this
dude they don't even make installers for the full ver last time I checked
it's just zips
bardy got a virus question mark
i can always give him one tho 
corona virus question mark
ยฏ_(ใ)_/ยฏ
anyway, I'll upgrade it another time
Gradle still can't find GCC though
thats weird
yeah idk if what I said is true, I might've been thinking of something else cuz I'm looking at their site now and looks like they do have installers
- Could not find C compiler 'gcc' in system path.
also, gcc still doesn't seem to be recognised inside of IJ's CMD
it's recognised in CMD though
oh btw, apparently, this is one of the only places where NetBeans & Eclipse > IntelliJ
the fact that they have support for C and apparently IntelliJ doesn't
like they have support for these multi-language projects
wdym?
See file:///C:/Users/callu/IdeaProjects/testing/build/tmp/linkNative_sumSharedLibrary/output.txt for all output for linkNative_sumSharedLibrary.
linking native_sum.dll failed.
g++.exe: error: Shlwapi.lib: No such file or directory
g++.exe: error: Advapi32.lib: No such file or directory
Finished linkNative_sumSharedLibrary, see full log file:///C:/Users/callu/IdeaProjects/testing/build/tmp/linkNative_sumSharedLibrary/output.txt.
no idea, read it somewhere
Install the plugin
IJ pretty much has everything
3 years ago
c/c++ plugin might not be up to par with clion
someone I know has complained about it
I see
anyway, any idea about my error?
It seems to run fine with Android Studio mostly
there isn't an official C/C++ plugin on the marketplace
oh?
ah
you know
I've been told this 3 times now
I always forget the exact reason why "intellij c bad"
for some reason the fact that the plugin doesn't exist just doesn't want to stick in my head
damn
๐ฅฒ
actually, tell a lie, correct answer my ass
idk about you, but I don't think 20 * (20 - 1) is 1409450392
wot lol
๐
can someone tell me what EXCEPTION_ACCESS_VIOLATION means?
trying to write some C code to print the size of a C long and it seems to throw that
#include <jni.h>
#include <stdlib.h>
JNIEXPORT void JNICALL
Java_dev_bombardy_testing_Native_printSizeOfLong(JNIEnv* env) {
printf(sizeof(long));
}
ah that'll be it
first arg is the format
okay what the actual fuck
the size should be the second arg
that returns 0.000000
for (i in 100 downTo 20 step 20) {
if (player.hasPermission(Constants.Permissions.MORE_FLY_PERMISSION.plus(i))) {
return i.toString()
}
}
return "0"
// or
return (100 downTo 20 step 20).firstOrNull {
player.hasPermission(Constants.Permissions.MORE_FLY_PERMISSION.plus(it))
}?.toString() ?: "0"```
Send what you used
public class Native {
public static native void printSizeOfLong();
static {
System.loadLibrary("natives");
}
}
The C function
@Test
public void longSize() {
Native.printSizeOfLong();
}
printf("%f", sizeof(long));
woozy_face
lol
use %d
f is for floating point numbers
lol
d is for integers
what did I say yesterday
idk
long is 4
c sucks
I'm basically Linus torvalds at this point
why don't they just use Big Integer !
so I assume ```c
JNIEXPORT jlong JNICALL
Java_dev_bombardy_testing_NativeMath_sum(JNIEnv* env, jint number) {
return (long) number * (number - 1);
}
bardy you should actually use jna instead of jni
since jlong is 64 bit and jint is 32 bit
Youll need to cast each number'
wdym?
why is Vault so demanding :/
Could not find org.bukkit:bukkit:1.13.1-R0.1-SNAPSHOT.
Required by:
project : > com.github.MilkBowl:VaultAPI:1.7
(unsigned long long) 0
Does operations on jlong work?
no clue
@dusky drum transitive = false
they seem to work Yugi
but I get really really weird thingies
why you use jni ๐ฆ
cast it to a long long
i64 ๐ ๐ ๐ 
wtf
Couldn't be Dev Den
someone
apparently, 20 * (20 - 1) is 113309238466483752 @old wyvern
oh wait
something's going on here
Lmfao
what the fuck
sned me link
idontbangfraud
Wait goddamit xD
lol
I forgot the server name itself
oh yes
TheCodingDen
You are already in it I think pulse
damn
im in bois
the channels aren't there
xD
lol
how does that even happen
That whole discord is going crazy
JNIEXPORT jlong JNICALL
Java_dev_bombardy_testing_NativeMath_sum(JNIEnv* env, jint number)
{
long casted = (long) number;
return (long long) (casted * (casted - 1));
}
```someone please tell me in what universe that would return `-480383736` with `number` as `20`
overflow
๐ฅฒ
wdym overflow?
lmaoo
when nums go over the max, they'll go negative
overflow
I have never seen that many people type in one channel before
ikr xD
that was nuts
Those channels were flying
why ๐ are ๐ you ๐ using ๐ jni
They disabled chat in msot channels now
the only thing i can think of it going faster is when the official python discord got raided lmao
experimenting
is the coding den the biggest code server?
Probably not
theres a lot of ones out there
I assume it is
"jamieontop"
Tcd is one of the biggest definitely
wait so they didn't just get radied, they must've got hacked?
Yep
Yea one of the admins ig
both
lol
if microsoft buys discord
minecraft accounts won't be the only accounts getting migrated to microsoft accounts ๐
๐ฉ
fuckkk
please never
That will be the day I don't use Discord anymore
I mean it's not ideal but at least it'd probably greatly mitigate bots
i still havent migrated my mc account to microsoft
^
nvm then ๐
they'll just leave it to act independently, like what they did with a few of their other acquisitions
if they buy it there'll be a lot of pressure to make it profitable at first
maybe after that they'll leave it alone
but that alone will probably require some changes
Discord is profitable though
well have to pay for the stickers kek
isn't it?
discord doesn't make a profit
ah
oh no
fun fact youtube doesn't make a profit either
mind you youtube doesn't lose money, but it's not profitable
they break even
damn
also, surely Microsoft wouldn't want to ruin the massive community of people who use Discord
by making servers paid or something
oh they wouldn't do that
they definitely wont do that
that would defeat the whole purpose of discord
i really hope they integrate discord to the xbox
they would do that
yeah that's my hope too
and then leave it alone after that lol
i thought xbox already had discord integration
but then itll never get integrated into playstation ๐ญ
nah

phone master race
na u can link ur discord account to xbox and see what game ur playing but thats it
i play rocket league with friends who have xbox's
/s
yeah this is one of the biggest
so i have to use the god awful xbox app
discord self hosting when
lol
it'd be really cool if microsoft integrated skype's phone number thing into discord
Microsoft won't stop Discord running on Linux either, since they have no reason to
maybe
as long as they don't do what they tried (and of course, failed) to do to Skype with Discord
i sure fucking hope not
kaliber it's a phone number that's attached to your skype account
Wait
so people can call you on a normal mobile phone and it goes to discord
could you imagine they drop discord support for mac and linux to force windows 10 sales
oh right cool
Why would they invest on a non-profittable organisation?
in the hope that it becomes profitable
that's how investing works
companies don't start profitable
no reason really for them to do that
is discord public
I mean discord is pretty big rn
no discord isn't public
aw
although that's an option
if they still thought Linux was a "virus", they wouldn't've made WSL
Is there much more growth to be done to discord rn?
absolutely
Its very widely used
Why cant I cast an int to a long
Int#toLong
there's a huge potential market yugi
yeah but it is an Object
can you actually not?
which could be a int or a long
toLong#fromInt(int)
well then that's why Niall
Doesnt pretty much everyone use it at this point tho?
no
kneeee
you can't cast Object to primitives
discord is still mainly a "gamer" platform
a lot of people don't
a LOT
you can only cast primitives between each other
cast it to a Long not a long
they have their own separate bytecode instructions
discord is still in its infancy compared to how big it could get
Also piggy i got a question about class loading
lay it on me
o
thinking about class loading actually, someone in Paper mentioned the other day how they thought that Paper should use module class loaders instead of URL class loaders if/when it hard forks
and just scrap loading dependencies at runtime
who said that
because depending on who said it i'll either say "lol" or
idk
maybe "lol"
yeah one of those two options
So if I had a class using a custom ClassLoader which loaded some ClassA and is now holding an instance of that class, if it returns that instance to the parent class which doesnt use this classloader, nee instances created inside that ClassA will still use the custom class loader right?
apparently, module class loaders are "the way to move the platform forward"
And all of its contents can be used by other classes even tho it doesnt use the "custom" class loader?
yeah we'll see
@old wyvern your question is confusing me a little bit
mind removing any reference to "instance" because classloaders don't touch instances afaik
should clear it up a bit
oh wait
nvm
i think I just misread
Would that still not have to load the classes at runtime?
Ok one min
sorry, I mean like what LuckPerms does
Ill write it up a bit clearer
where it loads its own dependencies at runtime
@ocean quartz #dev-general message

you think Frosty cares about that?
lol
also, who tf sleeps until half past 3 in the afternoon (his time I think)
I think I'm confused with what "parent class" refers to
ah yeah, Portugal isn't it
as in the class that created that other class
or rather
wait
Fefo gave me something like this about loading plugins using some form of bootstrap:
public final class PulseLoaderClassLoader extends URLClassLoader {
PulseLoaderClassLoader(PulseBootstrapLoaderPlugin plugin) {
// No URLs by default, they will be added as you go anyway; have the PluginClassLoader as parent class loader
super(new URL[] { }, plugin.getPluginClassLoader());
}
// Don't actually expose the method, but "wrap" it
public void addJarToClasspath(URL url) {
addURL(url);
}
}
public final class PulseBootstrapLoaderPlugin extends JavaPlugin {
// Maybe add a getWhateverClassLoader method? So you can do like JavaPlugin.getPlugin(PulseBootstrapLoaderPlugin.class) to get *this* class loader and add URLs to it
private final PulseLoaderClassLoader classLoader = new PulseLoaderClassLoader(this);
private Map<String, PulsePluginWhatever> plugins = new HashMap<>();
public PulseBootstrapLoaderPlugin() {
// Some constructor logic
// Scan a folder for your custom jars
// Read your "custom plugin.yml"
// Load the "main" class with the class loader
// Call their constructors, set the dataFolder, the logger, etc (essentially what Bukkit does)
// Save them into the Map
}
@Override
public void onLoad() {
// Call their onLoads
}
// Repeat for onEnable and onDisable
public ClassLoader getPluginClassLoader() {
return getClassLoader(); // older versions of Bukkit had this method as protected final
}
}
public abstract class PulsePluginWhatever extends JavaPlugin { // or not, it can be fully custom unrelated to a JavaPlugin
}
I haven't tried it before, but he claims that it should work for loading all plugins. It becomes the dominant plugin loader and will load all the plugins itself. This will allow the url method to be opened cause it uses the custom classloader instead of the one provided.
oh btw a little conclusion to something I said earlier. If discord is currently somehow making a profit, I highly doubt it'll be from the simps buying nitro for their favourite streamer, it'll probably be from discord selling our data (or more accurately, the investors selling/using it).
oh no not my data!
PulseLoader 
yea lol
also, that's what I do in Krypton lol
lmfao
lemme show
prolly going to china anyway so no biggie
oh no not china!
// this is only so we can expose addURL for internal use
class PluginClassLoader(vararg urls: URL) : URLClassLoader(urls) {
internal fun addPath(path: Path) {
addURL(path.toUri().toURL())
}
companion object {
init {
ClassLoader.registerAsParallelCapable()
}
}
}
(china i love you dont kill me pls ๐ )
so you opened the url?
im coming for you daddy
wat?
๐คจ
wait are you actually?
Yes
o
yeah I was gonna say
lithium
So lets say I loaded a class "MyClass" with my implementation of ClassLoader called "TestClassLoader"
I then create an instance of this class. Some other class which doesnt use "TestClassLoader" fetches this instance.
But since the "other class" here doesnt use TestClassLoader, it will try to load the class again using extension class loader if I refer to it right?
๐ฅถ
I mean, I didn't guess that, but it's very obvious now you mention it
Yea
yugi when you say an instance of this class
do you mean a Class<MyClass>
or a MyClass
MyClass
ok
So would TestClassLoader loading it affect parent class loaders of it so I can refer to it with the other classloaders?
let's picture it this way:
MyClass: TestClassLoader
OtherClass: OtherClassLoader
In OtherClass, if you didn't wish for MyClass to also be loaded by OtherClassLoader, you would not be able to reference MyClass in code
you would only be able to interact with MyClass via reflection
pdm remake
gl with that one
with what
Since 9+ cant append to URLClassLoader
isolation?
yes you can?
No Imena
just expose the inner addURL method lol
why tf are you manually loading classes using the system class loader
why are you trying to add things to the system class loader?
okie
also, surely you can reflectively access addURL anyway?
if you find anything interesting, pls let me know
Sure piggy
or do modules deny that now
Its not a URLClassLoader
would love to expand my classloader info repertoire
this works for Java 8-15
well then you shouldn't be trying to add to it
strong encapsulation of JDK internals xD
Yea lol
yugi especially anything regarding unloading classes reliably
you shouldn't be trying to manually load classes using any internal class loaders
if you find any mention of that you might've stumbled onto a gold mine
oh god ๐ฌ
Ill let you know if I end up finding anything useful
im just confused, are you having trouble support java 9-15 or java 16+?
thx
Im still figuring out a way such that they can actually use their classes as normal evne while using this
couldn't you technically use JNI to unload classes?
Mhm
so what are you using?
Because that implementation has changed
what?
Well that supports java 9 - 15 (the URLCLassLoader one)
?help
ยป Give the helpers some details
ยป Ask suitable questions
ยป Be polite
ยป Wait
probably not the place to ask for help here
^
#development maybe?
is there a channel?
Yeah
And don't randomly ping people, read the rules about pinging support
thx! ok..
I mean, with C, you have full control over the actual memory that's being allocated
you can control memory in java code too ||unsafe||
Why was I pinged
yeah but nowhere near as well
C, memory leaks, rust, never
read up you lazy shitbag xD
Dude deleted his message
lol
Fucking ass
oof
God do I hate ghost pings
lol
until u disable safe mode niall
if you can get Rust to work with JNI then please, tell me lol
All java programs run on Java Virtual Machine (JVM). After compilation, a java class gets transformed into a platformย and machine-independent bytecode, and com ...
Pulse
I think so, haven't tested though
jump off a cliff
i will
i can't access it. But you can use URLClassLoader for Java 9 - 15
will test, thanks :p
frosty pls see in #development
lol
lol
What "use" are you talking about here?
The instance you get is not a URLClassLoader
Nah, I'm good thanks
How? ;o
hm remind me of your general goal again
Ofc yo ucan create your own class loader that extends it
-_- i need help tho frosty
Yes but that goes into the entry point idea
@pure glacier just wait patiently for an answer in #development, if someone knows the answer they will share
Because you actually need the entry class to be created by that classloader
well you can do what everyone else has to do when they need help and wait for someone to answer you in #development
Hm yeah
Yeah that's going to be tuff
Hmm okay, I'll dig a bit more into that, don't think It'd be too hard ;p
urlclassloader is easy for supporting java 9 -15, but after that it gets harder
Awesome!! ๐ฎ
sorry if you mentioned it before wasn't following super closely
it's just in bukkit, you don't really get the system class loader
so is this for standalone apps?
Either
wdym how
For bukkit shouldn't you use the plugin classloader though?
Im trying to keep it agnostic to that
You could pass in a classloader as an argument
Run anywhere
or some sort of injection
for standalone apps you could get your pdm remix to take over as the application's entry point, and then run the actual program in a url class loader
or do what Lucko did and use jar-in-jar 
then deps are loaded into that class loader
you can use the boostrap class thingies for that instead
where you dominate the current classloader
wat
in what way?
As the actual entrypoint has a different classloader than what we want it to have
Or actually
Where's the dev build for Deluxechat?
#deluxechat pinned
or that
๐ฅฒ
does any other topic in java go this far?
๐ฅฒ
well
Turing complete generics?
I mean some probably go further, like gc
Executing a program with javac do be crazy
class loaders have lots of impl details
mhm
Like, how do you want it to support your actions? As parameters?
Oracle biscuit
Once or twice
It is my fundamental belief that "unsafe" should be avoided at all costs
I believe that's not just yours
Maybe I can just change the bytecode at compile time to make all uses of new use the classloader ๐ฅฒ
it's a pretty fundamental belief in life in general; not even unique to programming, that "unsafe" should be avoided at all costs
is jumping off a cliff unsafe?
No
Would it be considered bad if I try to change the entry classe's bytecode for this?
don't parachutes add extra weight
should be fine then
Exactly
piggy
More unsafe than safe
yugi worse things have been done
I'd keep looking for another solution before putting effort into that one
look into osgi
isn't there also stuff like the agents
