#[IN DEV] CVN (Cross-Version-NMS)
1 messages · Page 7 of 1
yeah
Just finish the masstester
just push your code 😭
Code?
thought you made some changes?
I have not written anythinf for the masstester
you said you made it work for mappings too 😭
I have branched it into a seperate project
It's a different thing
oh
release cvn
release cvn
GUYS
GUYS
IMPORTANT
I FIXED THE MAPPINGS
I FIXED IT
to be more specific, the mappings generator
everything is remapped!
this is grat
great
I can't believe it
progress!
@fallow sky can you believe it???
progress!
NO WAYYY
did you do any commits to CVN in this time
no
@rigid saffron now rewrite it in kotlin
will you let me fuck your mom in kotlin?
you wouldn't have even run into issues if you had just used kotlin
that's such nonsense
i mean sure
huh
I learned so much since I made this 💀
the problem is the /, right ?
not using Path#resolve ?
yes
I'll fix that x)
new File(plugin.getTempFolder(), "cvnjar") works
not rn
you'll fuck my local changes
why not cvn.jar 💀
I'll do it myself
it's a folder
oh
WE SAID IT BOTH AT THE SAME TIME
that's dum
WE SHOULD BE TOGETHER
I'll change that when you'll say to me that it's okay, and when you'll explain what I need to change in cvn
I'm prob gonna try to finish it off myself
okok
Your current remapping system is quite shchewpid
i had this git skill issue recently
i just wanted to ga; gca; gp but that did NOT work
then i tried gpr and that created merge conflicts 💀
this looks like the descriptors of methods in my mappings
(Lga;Lgca;Lgp;I)V
git add; git commit --amend; git push
The fact I know the format is a big sign of brain damage
real
Didn't Ike work with the jvm?
yea
And I think 14 did some bytecode?
yea iirc
@junior onyx is it true that knowing the format of descriptors is a sign of brain damage
thanks ❤️
bien
you dum?
bien means good iirc
bien is an adverb
Oh lmao
yeah but you're looking for bon
bien banana
Or something
Btw Idk a single bit of french
I never had to learn it because I have russian as my third lang
And I would choose latin over french because latin makes sense and if I know latin there are less people who I can talk to so I can receive less social contact which is a great bonus
yeah
lol
no, for a feminin word,, it's "bonne" instead of "bien" 🤓
Oh, sorry, didn't notice it'd feminine
me when gendersprache
Gendersprache deine Mutter or something
real
Add "deine Mutter" to the end of any sentence and it becomes offensive
yes
well actually
sentence my ass
writing hundreds of descriptors over and over is a sign of brain damage
sentence your mom
or
sentence my ass your mom
indeed
satz mein arsch deine mutter
Duetschland
dütschland yes
Who tf says Dütschland tho
what
Have you ever heard anybody say dütschland seriously
And not just laughing about dialects or something
i have never seen anybody say duetschland
It was a purposeful misspelling my sir
holy shit
kek
yeah this will be a fuckton of shit to rewrite
"let's make a libary for cross-version nms, with the exception that I do not know how"
the only thing paulem did pretty well was writing the asm code
good job paulem
lmao bro is not happy
...
that's a // FIXME
this is a swamp
a swamp of shit, the further you go the deeper in the shit you are
I smoked away my brain
where you smoking 110% marijuana or what
yeah
this should happen by itself later
okay
by later I mean "once needed"
I actually don't know how it will behave with on-startup plugins
might have to enable them ourselves
we'll see
okay
yeah
humm
code readability when tuple is used: -1000
what does it return
I don't remember
all the class files?
iirc
in some directories
every directories are in the main file
maybe if we add an UUID we can multithread this
you wouldn't want to wait for it to linearily handle 20 cvn plugins lol
which is absolutely useless and already deleted!
great job paulem!
btw did you know
bro wtf
right when I need to write the boilerplate code my copilot dies
L
haha
imagine depending on copilot for boilerplate
mf are you serious
kekw
I ain't writing all this shit myself yk
and don't you fucking dare mention kotlin
I will burn you alive, witch
htis isn't even related to kotlin
constructors my friend
if you're tryna make getters, there's an IJ shortcut :kekw:
constructors
same with constructors afaik
tf
no
I wrote them manually my whole life
nerd
are you fucking kidding me
huge skull emoji
why did I not know this
dum dum
i let my neuralink write em
at this point I could be using vscode with no difference
fr
^
you know there's LSPs right
language server p...lugins?
buddy used plain vim 💀
💀
you can literally do the same htings as in IJ
just use nano then
wtf
brother
take e.g. rust
I was using plain vim and 3% of IJ my whole life wtf
you even have ✨errors✨
dum dum
I would compile, look what errors I get, find the line and fix
seems like y'all have a skill issue and can't code like real men
Imma download netbeans instead of using this awful IJ
frostalf pilled
lol
what's that
AUTOCOMPLETE
autoco-- what?
bro is actually silly and doesn't want this stuff
no why would I want this weird shit
like this is fucking great
alt+insert ftw
real
and ctrl+o & ctrl+i
i use ij w/ vim motions turned on
do you know how to make those diagnostics wrap lines btw?
no idea
zed vim mode ❤️
it got me used to ctrl+w so much that i sometimes use it in the browser to erase a word at this point 😭
and you may imagine what happens
ctrl+shift+t saves the day
As a 16
❤️
dw my beloved
idk what that does
delete word
oh so same thing
ctrl+w erases a word?
yes
that doesn't sound like vim
in isnert mode
oh
ah i always use ciw or diw
diw ❤️
i refer to https://vim.rtorr.com/ literally every day to reduce my mouse usage lol
Explore vim.rtorr.com for an extensive Vim cheat sheet, offering clear, concise commands and shortcuts for Vim users. Whether you're a beginner or an experienced developer, find tips and tricks to enhance your coding efficiency in Vim.
yeah it does
ctrl-w is easier though, as in less finger stretching
one hand vs two hands
Ctrl w closes my current tab in firefox
yeah
I wish windows was fully usable without a mouse
laughs in arch
yeah that's how most browsers work
is it not
what can you not do wout a mouse
laughs in a usable OS
Navigate explorer
lmao
The terminal is better in that regard but usually I forget how to use it
Used to be a terminal sweat, now an explorer enjoyer
how can you forget a simple cd or an ls
cd build
ls build
oh wait fuck
ls
cd yourmom && grep the-cliborous
What do ya guys think of writing a little library that will be shaded in CVN that users can depend on to get some utilities when working with NMS and CB
yeah that's a really good idea
We should add in the logs, whenever CVN errors loading a plugin "Please do not contact the authors of the plugin and instead contact the authors of CVN"
that is brilliant
Then we won't be hated
ideally if theres a cvn error the author fucked up
true
@fallow sky did you have to make your MappingsDownloader so bad
I think I will rewrite it to be a proper library and then merge it with SMD
hope yo uhave nothing against that
actually
I think I can just put it in the plugin
doubt that needs a whole lib
can you fucking not add a space bar before every single one of your exclamation marks
checkstyle 
I'm gonna die if I have to work with this code
but this is code from like a month ago
kekw
I never put that ?
np, you can remake it, it doesn't bother me
I learned a lot since I wrote that
@fallow sky why
it was to guide myself
LMAO
yeah
I hope nobody minds if I drop a few unchecked io exceptions lol
no problem 💀
@woven arrow your opinion on that
iirc they are just RuntimeExceptions but for IOExceptions
what the fuck.???
Lol
wdym
that is so fucking cursed
why
bro 💀
it's for creating the main folder 🤓
Smartest paulem moment
I know 😎
Well I CODE LIKE A WANT EVEN IF IT'S SHIT 🗣️🗣️🗣️🔥
Just edit everything that is "hey bro why in the world you did that ?"
@rigid saffron can you commit your changes on github please ?
Later
okay
I'm in a car rn and my laptop is a bit far away
and is all the code actually working ?
I can wait until 1 September, you have time x)
We'll see that 👍
It's almost fully working
It now successfully does most of the stuff
All that's left to do is to fix the remapping (it isn't much just a small issue) and I'll push
what's the issue ?
Minor mapping issue, I suspect I can fix that in one or two debugging sessions
oh okay
I think I might be lacking a classpath
ayooooo
it works
but not on all versions I think
because of mojmaps
that would require some modification of the gradle ploogin
mmm my favourite
merge conflict
oh my gosh can't believe it finally pushed+
@woven arrow please leave a comment
oh
took you a while
too long actually
means i can start working on the mass tester testing functionality next week
will be able to start on saturday lmao
you know you could do that this whole time right?
hard to mass test something that isn't working
well, are you fucking dumb?
???
you could've just written the mass tester and walked away, we'd test it on place
❌
now we have to wait five quintillion more years until the stars align once again
write it yourself then
i'm away next week
i was planning on doing a server list ping request to the currently running server and if that MOTD is correct, it says "test passed" and moves on to the next versio
n
the fuck
and if it didn't work, it'll read stderr and write that to logs
that's interesting
need to make sure it actually works no?
well can't you do that with like any plugin tho?
wdym
you don't need CVN to test the mass tester do you
"testing the mass tester" hmm
that sounds interesting
then write something that fails on purpose lol
if (Random.nextInt() % 2 == 0) server.setMotd(...)
indeed
but i always had a reason to procrastinate on it
and now i don't
but i am away for 5 days
I'm literally in fucking croatia lmao
can't call it decent
I played wot on it for 30 minutes and my battery died 💀
ok but the fact that it even runs
if you can't launch IJ how would the masstester work
BT takes 30 min for each version
💀
btw
I had tried writing a mass mapping generator before
it had some good additions to the already existing mass tester
might drop it somewhere for your use
well
you don't need to
that project is useless but it does some hash and version checking to ensure it only builds each version one time and then reuses
this includes cases where 1.8.4 for example builds 1.8.8
HERE YOU GO 🗣️
btw older versions are pieces of shit
we'd want to download the mappings ourselves
hummm maybe ?
it is easy (thank god we have smd) but still such a bruh
I'll work on a gradle plugin for directly making what is done at runtime, at build
what
btw if you ever need a maven repo i gotchu
So plugin-1.8.8, plugin-1.9 etc.
damn
that's great
cvn is maven'd
remapping plugin for differents versions at build
understandable
really ?
I mean
that we have a maven repo in our hands
to publish stuff
yea i'll set it up and give you credentials to it rq
perfect thanks
I'll push the credentials on github
lmao
(that's 0 🤓)
oh fuck
this means I'll have to version the gradle plugin
well, I still need to finish it off
paulem friend me rq
yeah, that's a better idea
just this ```kt
publishing {
publications {
create<MavenPublication>("mavenJava") {
from(components["java"])
artifact(tasks["sourcesJar"]) {
classifier = "sources"
}
}
}
repositories {
maven {
name = "cvn"
url = uri("https://maven.radsteve.net/cvn")
credentials {
username = System.getenv("RAD_MAVEN_USER")
password = System.getenv("RAD_MAVEN_TOKEN")
}
}
}
}
WE ARE NOT IN KOTLIN 🗣️
tasks.register<Jar>("sourcesJar") {
from(sourceSets.main.get().allSource)
archiveClassifier.set("sources")
}
oh do you use groovy
I'll use that then thanks
env goes there iirc
we're old 👴
i have those saved under diff names
great nms interface or what
global nms interaction
why not ¯_(ツ)_/¯
I have all of them too
wth
I see ntar
lmao
COMBUSTMC 🗣️
bc i saw liveoverflow's vid about it
ntar reference!?!?!?
fuck my internet is slow
can't believe pulling a fucking git repo will use up all the possible bandwidth
is my code actually good ?
💀
what the fuck is that
if(block.getBlockData() instanceof MultipleFacing multipleFacing) {
this.multipleFacing = multipleFacing;
} else {
throw new IllegalArgumentException("Block data is not a multiple facing");
}
there ya go
how is pulling a fucking repository so bad on my network
also that should be a record
Preconditions.checkArgument(block.getBlockData() instanceof MultipleFacing, "block data is not a multiple facing");
this.multipleFacing = (MultipleFacing) block.getBlockData();
preconditions my beloved
never heard of that
I'll convert it to a record, one day
:concern:
hrvatski telekom 👍
but well, thanks for that
you dont need that
do you not
artifact(tasks.sourcesJar)
doesn't work for me
wait i responded to the wrong message
kekw
i just ```kt
tasks.register<Jar>("sourcesJar") {
from(sourceSets.main.get().allSource)
archiveClassifier.set("sources")
}
publishing {
publications {
create<MavenPublication>("mavenJava") {
from(components["java"])
artifact(tasks["sourcesJar"]) {
classifier = "sources"
}
}
}
repositories {
maven {
name = "radPublic"
url = uri("https://maven.radsteve.net/public")
credentials {
username = System.getenv("RAD_MAVEN_USER")
password = System.getenv("RAD_MAVEN_TOKEN")
}
}
}
}
for packed ^
(packed mentioned!?!?!?!?!?!?)
fuck I don't have 1.17
no shadow?!?!
does anybody know from what version spigot started not mapping members?
entirity of packed-core's build.gradle.kts
(packed promo!?!?!?!?!?!?!?!?!)
idk 🤓
also wheres ur javadoc artifact
does that help ? UwU
in root proj
dependsOn(tasks.dokkaJavadoc)
from(tasks.dokkaJavadoc.flatMap { it.outputDirectory })
archiveClassifier.set("javadoc")
}```
this.artifact(tasks.named("dokkaJavadocJar"))```
smh
guys are arguying about maven publish 💀
I mean, I wouldn't want to read somebodies spaghetto, especially if it has no docs
iirc we can generate javadoc automatically
bro's gonna abuse poor copilot AI
no no
there's a thing to generate the full javadoc of a source code
with comments etc.
like spigot
fixed
that ain't gonna write the docs tho?
no shit
i can always host shit iyw
oh btw
why not ?
looks perfect
i just took a massive shit
here, have that giffed
yup
im having fun so much fun
no, we are in java 8 😎
If it was just me, I wouldn't support 1.13-1.16.5
but well, no choice
now I support 1.16.3 and newer because of PERSISTENT DATA CONTAINER
Pdc was added in 1.14.4
Idk why, but I can't make Chunk#getPersistentDataContainer in 1.14.4
oops
x)
bro what the fuck???
yeah my notepad++ crashed after 2 seconds of trying to load it
💀
it loaded
i might be a hater
"niquel" like we say in french
Sounds like n word
huh
iirc, it was successful with a lot of help from.. (huh, he left the thread)
geol?
im guessing it was y2k by chance
exactly
yeah
I often see him in fabric mc
x)
Sometimes I say hi to him
(and he doesn't respond)
Lol
I confirm that cb renaming was sucessful
(from 1.17.1 plugin to 1.18.2 server)
but wait
ooo
k
I need to remap all strings for reflection, yk
Because private fields and stuff yk
никель
cum
Btw do you like the new CVN code
much better
lol
It now actually works too
I can't believe it was as simple as changing two lines in the mapping merger lmao
Almost
"almost" ?
There is some issue in the gradle plugin when it comes to remapping
I need to use the mapping merger there too
oh okay
Because classpathio
okay, I'm ready for CVN
okay, I added mappings for 1.21
https://github.com/SpigotCVN/CVN-mappings
Neat
okay cvn gradle plugin now correctly remaps
SO
there is only asm remaining ?
well, not quite
I'm currently trying to make it work with non-mojmapped envs as well as older versions
oh okay
I have very slow internet currently (on vacation in crotia rn) and cloning the builddata repo (the one with spigot mappings) is taking years
even sending messages takes a while lol
looks logical x)
gl 👍
Already
@fallow sky are the intermediary mappings for older versions server or client mappings?
humm lemme try
it's server
bruh wtf is this
lol
@fallow sky I have severly underestimated the amount of work
I have the issue rn that classes in old mappings are in the root directory (not net/minecraft/server/1_12_R01 or similar)
And the issue is that the package mappings only provider net/minecraft/server, no version identifier tho
bruh wtf
@floral zephyr Are you
YEAH
yup
well
I'll watch for a while
I have no ducking clue about cvn so
or just give me something to do
YEAH
@woven arrow do you think this is safe
private static boolean isRelocated(File jarFile) throws IOException {
try (JarFile jar = new JarFile(jarFile)) {
Enumeration<JarEntry> entries = jar.entries();
while (entries.hasMoreElements()) {
JarEntry entry = entries.nextElement();
String name = entry.getName();
if (name.startsWith("net/minecraft/server/1_")) {
return true;
}
if (name.startsWith("net/minecraft/server/") && !name.startsWith("net/minecraft/server/1_")) {
return false;
}
}
}
return false;
}
is it working ?
not yet
okay
paulem, do you have a selfbot
then touch it
how tf am i supposed to know
Idk does it look good
no, I was thinking "hey did they wrote in CVN ?" and then I saw you writing
we're connected
._.
we should be together 🤓
based
idek how tf minecraft relocates
then i have zero fucking clue
I really want to mention him
what is this
i swear this can't be worse than com.destroystokio.paper vs io.papermc.paper
VIRENPRUFUNG 🗣️
bruh
what
||nothing||
another email sent out to md_5
lmaoooo
fr tho
lmfao
he is lagging I think
We guys should make a website for ccn
Cvn*
And sometimes later also use https://adrinth.com/ (once it's publicly available)
Adrinth is an unobtrusive gaming advertising network.
Is anybody good at webdev? If not, I could do that, I have a friend who is good at webdev, he wouldn't work for us but he'll answer all my questions and help me
humm, I have a website
you are great at mobile web design
not just at mobile, mobile is DNZQINDQZNDQZ
I prefer desktop for web desing
I can much better than my website I think
we can't really compare a presentation website with a doc
@rigid saffron it's a doc right ?
no
a doc is javadoc
or a wiki page
this is like a proper website
with our team
and description
and links
and all that stuff
lol
I can do that, but I don't want you to blame me about some bad work that I can do
lmao
i can always host shit btw
thanks raddy
YOOOO RADS BACK
i am!!!!
cant believe you abandonded us for like 4 days
@woven arrow btw you still gotta finish the meuhs tester
- make it take in a directory from which it will copy files into all server folders
- make a seperate folder for each buildtools version
- before running buildtools, use smdownloader to pull the builddata repo and ensure the mc version in the info.json matches the one of the version that is being built
- add some flags so you can run it without going through the buildtools step, a flag so you can run the servers without the constant monitoring (maybe with manual control) and similar
Also, iirc idea is such:
It runs a test, while it's running motd is something like "Running tests...", if it succeeds it writes something like "Tests passed!", if it fucks up it writes "Tests failed!", if it passes the tester continues, if not it prints the Syserr and stops, right?
yes
Rip rad, I'm with you
md_5 is so fucking based
I write him a whole official email like it's a letter to the british emperor, in reponse I get the type of message you'd see on discord
Such a fucking based person
Yep that was exactly what I was searching for, thanks md_5
Everybody should thank md_5 for making this project not die in the first week
show
,_,
yours faithfully lmaooo
shitbarn00 mentioned??
!
Also, I love how nobody cares that I use microsoft outlook as my main email provider lol
I main it lol
True
Thank md_5
I don't know how to work on mappings so I can't help you 🤓☝️
around 95% of visible code is experimental and hasn't been tested yet
it's also an utter mess
we need somebody to clean up code after me lol
oh you're one of those people
not using Path and Files, weird
kotlinator, go away
last time I used Files gradle complained
so Imma not do that k?
amazing
Exception in thread "main" java.lang.IllegalStateException: java.lang.IllegalStateException: Missing mapping for Mapping{type=FIELD, name='A', className='net/minecraft/class_124', descriptor='Z'} in spigot
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Fixed everything
Debugging software that is running on hopes and prayers is hard
And practically all of cvn is running like that
it does look like it tho
I have already tested it, dw
It's working absolutely great
Besides the remapping part
I fucked up the mapping files somewhere
db and dbf are terrible var names, i hate when people use something like that
rust people use those all the time and i hate it
They are one time use variables, ones that could be inlined but weren't because too long
still
Document document = DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse(cbPom);
``` do you want it like this
yes
So everything works ???
so thats a no sir
We are close since the beginning 😌
Lol
i told you idk anyhting about mappings
well, this is intermediary
to be more specific, 1.12.2 intermediary
and it is quite different from newer versions intermediary because, well, yeah
also, I think we should make some app of our own to look at mappings
because we have a few mappings that aren't really a thing on mappings.dev or similar sites
Wait
@rigid saffron so for legacy versions (before mojmaps) you translate from spigot mappings to intermediary ones and then to Spigot ones ?
This is not another mapping rather than spigot right ?
ye
no
@fallow sky can you help me rq?
1.12.2 specifically
can you run a server with these boys?
I'll try that, but I'm on a car right now, I'm at ninety on a three ways (that's a reference to Eminem, but I'm really on a car actually)
I'm in croatia with nonexistant internet rn
But well, I can't really run a spigot server on my phone
I haven't the things needed installed
it's deep night already
dude, not in france
k
Show plugins/CVN/cache/
spigot exists, but not spigot/mappings
is it empty
oh btw
oh nvm
Is it empty tho
I think smd might be fried
Can you clone spigotmappingdownloader and try running it as a standalone?
With flags --version 1.12.2
okay
and after.. ?
--version 1.12.2 --spigot too iirc, that should generate mappings
I was on the beach sry
and check if the generates dir is empty or not
okay 👍
anything?
Did you also pull smd again? Or did you nog jave it before
I pulled
huh
Mapping merger, smd and stuff
Posting all to maven local
Then pulling cvn and building it
okay I'll do that
And then try using that instrad of what I provided
k
I'm with my cousin
so maybe not for now x)
he wants to play rocket league with me
okay here we go
@rigid saffron little problem with cvn remapper plugin ?
forget, I published mappings merger first, working
👍
NOT WORKING 🗣️
Idk why
also, there is [18:18:03] [Server thread/WARN]: org.eclipse.jgit.api.errors.JGitInternalException: Destination path "craftbukkit" already exists and is not an empty directory
huh
we are so close...
