#[IN DEV] CVN (Cross-Version-NMS)

1 messages · Page 8 of 1

rigid saffron
#

you said this when we just begun

fallow sky
#

yeah

rigid saffron
#

so we are not close

rigid saffron
#

Can you debug these two things? (Arrows from variable means print it, just an arrow means just print something there)

rigid saffron
#

a what

fallow sky
#

is it used by a lot of devs to represent prints ?

rigid saffron
#

Nah

#

Just my own ways

#

Of doing stuff

fallow sky
#

oh okay

rigid saffron
#

cvn/remapper/MappingFiles.java

fallow sky
#

k thanks

#

let's test that

#

hey the print doesn't works

woven arrow
#

💀

fallow sky
#

we'll see

woven arrow
#

boolean shouldUpdateRepo = true;

fallow sky
#

lmao

#

Remapping is taking so long bruh

#

average user good experiment

rigid saffron
rigid saffron
woven arrow
fallow sky
#

let's remap, again

rigid saffron
#

Btw delete the spigot and craftbukkit directories before

fallow sky
#

yeah

#

that's why I relaunch

rigid saffron
fallow sky
#

let's watch a bit of jjba while waiting

#

OMG

#

OH MY GOAAD (Joseph Joestar)

#

hummm

#

looks like rad is gay

rigid saffron
#

Ah fuck

woven arrow
fallow sky
#

WE SAID A BAD WORD 🗣️

#

looks like it's fucked

rigid saffron
#

Looks like it's retar-- dead

fallow sky
#

LMAO I'M SO FUNNY

rigid saffron
#

hahaha

#

so funny paul

#

Btw @woven arrow he is Paul now

fallow sky
#

Why not Paulem ?

rigid saffron
#

Paul

#

Du bist jetzt Paul

fallow sky
#

okay

fallow sky
rigid saffron
#

Basically

#

It is now your task to debug it

fallow sky
#

bruh

rigid saffron
#

I can't rn

#

So try everything

#

Modify smd

fallow sky
rigid saffron
#

Modify mapping merger

fallow sky
#

too many responsabilities

#

but with great responsatibiltiiesi<dis gotmm great powers

#

or smth like that

rigid saffron
#

Lol

fallow sky
#

wait, I can write in german

#

uèy_ èu*

#

huh no

rigid saffron
#

what

fallow sky
#

r(tt-èyuù

#

huh, I should use a QWERTY keyboard

rigid saffron
#

deutschlandstreffer

fallow sky
#

smashing my head on my laptop doesn't seem to work correctly

fallow sky
rigid saffron
#

So that's how you became braindead

fallow sky
#

OIL UP

#

no, not the same thing

rigid saffron
#

so

#

Go debug it

fallow sky
#

okay 👍

#

I think I know the issue, that's in smd

#

also, raydan, lemme push some changes with CVN

rigid saffron
#

yes

#

do it

fallow sky
rigid saffron
#

Idk what you are planning

#

But I hope it works

fallow sky
#

completely destroying what we have done since now 😎

#

nah that's false, some girls are bothering me

#

no way

#

wanna see my credentials ? 🫦

rigid saffron
#

can you just test it

#

and tell me whether it worked

fallow sky
#

yeah, but I need to diagnosis the problem

rigid saffron
#

Then do it huh

fallow sky
#

I need to understand your code first, not really difficult, but well

rigid saffron
#

Yeah it's pretty messyy

#

Wait

#

MESSI

#

RONALDK

#

RONALDK

#

RONALDO

woven arrow
#

kek

fallow sky
#

no way

#

Mbappé~

rigid saffron
#

French people don't count

woven arrow
#

yea

rigid saffron
#

What does count tho is CVN

#

As long as I am busy not having internet you guys should finish it

#

Holy fuck I'm casually shitting on the toilet and there is just a fucking cockroach running around the floor

#

Where the fuck did that shit come from

#

Is this a cockroach

#

ok it's dead

fallow sky
#

show me your shit

#

german shit should looks different

#

girls stopped talking to me (they slow my work, never talk to girls, it's a lot of time for nothing) and I ate (very important to survive) so let's continue working on CVN 🔥

#

first thing to try

woven arrow
#

doesn't mkdir() just silent return if it already exists

fallow sky
#

idk

#

okay wtf

#

THE POGUES 🗣️

#

@woven arrow you're german ?

woven arrow
#

did bro not know

fallow sky
#

it was to be sure

#

then you'll like the next music

#

(no troll)

#

99 LUFTBALLONS 🗣️

woven arrow
#

skull

fallow sky
#

VON NEUNUNDNEUNZIG LUFTBALLONS 🗣️

#

(that was difficult to write)

#

no way

#

maybe I have found ?

#

nah, that would have been too simple

woven arrow
#

i haven't heard that song in years

fallow sky
woven arrow
#

no

fallow sky
#

huh

#

what's the nationality of Elgar ?

rigid saffron
woven arrow
#

idk

fallow sky
bold trout
fallow sky
rigid saffron
woven arrow
bold trout
fallow sky
fallow sky
#

The Clash ?

#

iirc

rigid saffron
bold trout
#

probably

rigid saffron
fallow sky
#

YEAH

woven arrow
fallow sky
rigid saffron
fallow sky
#

do you like octets ?

rigid saffron
# fallow sky

It has pulled the repo but not created the files??? Wtf

rigid saffron
#

Try opening git bash in the spigot dir and running git clone

#

It should finish in miliseconds in theory

fallow sky
#

humm

#

hum

#

what are the arguments ? 😅

rigid saffron
#

git clone

woven arrow
#

kek

rigid saffron
#

Alternatively git pull

woven arrow
#

gc needs args no?

#

yea pull is better

rigid saffron
woven arrow
#

won't work iirc

rigid saffron
#

Well, then git pull

#

I suspect it doesn't finish cloning for some reason

fallow sky
rigid saffron
#

git pull

fallow sky
#

gay folder

woven arrow
#

cd .git && git pull

fallow sky
#

there is just that, no more folders/files in .git

fallow sky
rigid saffron
rigid saffron
#

That means it tried deleting the spigot directory but it couldn't because git was still holding onto that file

#

Gimme a sec

#

I think I know

fallow sky
#
File mappingsDir = new File(buildDataDir, "mappings");

if(deleteIfExists) {
    if(buildDataDir.exists() && buildDataDir.isDirectory()) {
        IOUtils.deleteDirectory(buildDataDir);
    }
}

if(!buildDataDir.exists()) {
    pullBuildDataGit(versionData.getRefs().getBuildData());
}

File infoFile = new File(buildDataDir, "info.json");
if(!infoFile.exists()) {
    return null;
}```
#

IOUtils.deleteDirectory(buildDataDir); ?

woven arrow
#

why tf do you need some random ass io utils for that 💀

#

just delete it recursively

rigid saffron
#

I KNOW EXACTLY

rigid saffron
woven arrow
fallow sky
#

that's not me doing the bad things, finally 😎

rigid saffron
#

Replace those by the cb dir

#

And remove buildDataDir from the arguments

fallow sky
#

okay

rigid saffron
#

I forgot to replace the references when copying code and now it all extracted into a method in this shitty way

#

Lmao

fallow sky
#

let's do that

rigid saffron
#

Once I saw that git directory I immediately knew what happened

fallow sky
rigid saffron
#

Because this exact same thing already happened to me

fallow sky
rigid saffron
fallow sky
#

maybe ?

#

oh no wait

#

wrong method

rigid saffron
#

You are in smd

#

Go to cvn

fallow sky
#

okay

woven arrow
#

lmao

fallow sky
#

that'll be good

rigid saffron
fallow sky
#

are we close to the end ?

rigid saffron
#

I believe

fallow sky
#

maybe the day of the birthday of my dad will be the first release of CVN

rigid saffron
#

What's that day

fallow sky
#

would be cool

fallow sky
rigid saffron
#

Oh so that's why your cousin was over and that's who the girls you were talking to were

#

You were talking to your grandma innit

fallow sky
#

nah

#

a girl in my school, or my old because I'm no longer in what we call "collège" in france

#

and I'll be in "lycée"

rigid saffron
#

In russia they got lycees too

woven arrow
#

frenchies smh

rigid saffron
woven arrow
#

just go to a gymnasium

fallow sky
#

bruh

rigid saffron
fallow sky
rigid saffron
woven arrow
#

whoa

fallow sky
#

lmao, raydan talking to himself and saying that he codes like shit basically

#

(he wrote those errors)

rigid saffron
#

the fuck

rigid saffron
#

The json is the hash

#

Plugin already initialized???

#

The fuck

fallow sky
#
public final class NMSTestProject1122 extends JavaPlugin {
    public NMSTestProject1122() {
    }

    public void onEnable() {
        CraftServer server = (CraftServer)this.getServer();
        MinecraftServer mcserver = server.getServer();
        mcserver.method_3864(false);
        IMinecraftServer serverInterface = (IMinecraftServer)mcserver;
        System.out.println(serverInterface.method_3827());
        System.out.println(DispenserRegistry.class.getName());
        System.out.println(ItemSign.class.getName());
        System.out.println(mcserver.method_3734().method_0_6231());
    }

    public void onDisable() {
    }

    private String allFieldsList(Object o) {
        StringBuilder sb = new StringBuilder();
        Field[] fields = o.getClass().getDeclaredFields();
        Field[] var4 = fields;
        int var5 = fields.length;

        for(int var6 = 0; var6 < var5; ++var6) {
            Field f = var4[var6];
            if (!Modifier.isStatic(f.getModifiers())) {
                try {
                    sb.append(f.getName()).append(" -> ").append(f.get(o)).append("\n");
                } catch (IllegalAccessException var9) {
                    IllegalAccessException e = var9;
                    throw new RuntimeException(e);
                }
            }
        }

        return sb.toString();
    }
}
#

is it good ?

rigid saffron
#

not at all

fallow sky
rigid saffron
#

I suspect

fallow sky
#

vodka

woven arrow
rigid saffron
#

@fallow sky make getFinalClasspath return getClasspath in the class ClasspathJars (in remapped package) and delete the json file

rigid saffron
woven arrow
#

i knew that raydan was bad at naming variables but not that fucking bad

rigid saffron
#

I suspect we don't need a remapped classpath

#

Idk why I thought that

fallow sky
#

delete the json file automatically ?

rigid saffron
fallow sky
#

okay

woven arrow
rigid saffron
#

it's so it remaps the plugin again

#

If the hash of the original plugin is stored and didn't change it won't remap it again

rigid saffron
fallow sky
rigid saffron
#

sec

woven arrow
woven arrow
rigid saffron
#

oh basically, make isClasspathJarRemapped() return true (put it at the top of the method), make getRemappedClasspathJar() return getServerJar() and make remapClasspathJar() return getServerJar()

fallow sky
#

okay

#

average good code

rigid saffron
#

Comment it out

#

For now

fallow sky
#

it'll work

rigid saffron
#

I hope

#

Very much

#

I don't smoke and I don't drink but I was on -17 hours of sleep when writing that code

fallow sky
#

guys

#

After 2 months of work...

#

IT'S

#

STILL NOT WORKING 🎉

rigid saffron
#

NOT WORKING!!!

#

YAY

#

!!!

fallow sky
rigid saffron
#

How does the decomp code look tho

fallow sky
rigid saffron
#

Btw send whole log

rigid saffron
fallow sky
#
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package io.github.spigotcvn.nmstestproject;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import net.minecraft.server.v1_12_R1.DispenserRegistry;
import net.minecraft.server.v1_12_R1.IMinecraftServer;
import net.minecraft.server.v1_12_R1.ItemSign;
import net.minecraft.server.v1_12_R1.MinecraftServer;
import org.bukkit.craftbukkit.v1_12_R1.CraftServer;
import org.bukkit.plugin.java.JavaPlugin;

public final class NMSTestProject1122 extends JavaPlugin {
    public NMSTestProject1122() {
    }

    public void onEnable() {
        CraftServer server = (CraftServer)this.getServer();
        MinecraftServer mcserver = server.getServer();
        mcserver.method_3864(false);
        IMinecraftServer serverInterface = (IMinecraftServer)mcserver;
        System.out.println(serverInterface.method_3827());
        System.out.println(DispenserRegistry.class.getName());
        System.out.println(ItemSign.class.getName());
        System.out.println(mcserver.method_3734().method_0_6231());
    }

    public void onDisable() {
    }

    private String allFieldsList(Object o) {
        StringBuilder sb = new StringBuilder();
        Field[] fields = o.getClass().getDeclaredFields();
        Field[] var4 = fields;
        int var5 = fields.length;

        for(int var6 = 0; var6 < var5; ++var6) {
            Field f = var4[var6];
            if (!Modifier.isStatic(f.getModifiers())) {
                try {
                    sb.append(f.getName()).append(" -> ").append(f.get(o)).append("\n");
                } catch (IllegalAccessException var9) {
                    IllegalAccessException e = var9;
                    throw new RuntimeException(e);
                }
            }
        }

        return sb.toString();
    }
}
fallow sky
rigid saffron
fallow sky
#

I deleted the whole CVN directory

rigid saffron
#

I was hoping so hard you forgot to delete the file and it will work

#

But Idk at this point

fallow sky
#

x)

rigid saffron
#

It will take time to debug

fallow sky
rigid saffron
#

no

#

And I have no idea rn why

#

Push code to gh and I'll try something tomorrow

fallow sky
fallow sky
rigid saffron
#

I hope I will have some internet atleast

#

Rn it is just completely down

fallow sky
#

:/

#

wait

#

maybe...

rigid saffron
#

Paulem is cooking

fallow sky
#

nah

#

it's not that

#

you'll really like the commit name

rigid saffron
#

sure

#

I suspect we will not have contributors

fallow sky
#

x)

rigid saffron
#

I'm thankful that we have no issues on dependency side

fallow sky
#

@coral gyro cooking hack of the thread

fallow sky
#

but it would be better if it just works

rigid saffron
#

Indeed

woven arrow
#

@fallow sky weirdo
type masturbation is fucking awful, java took it to the next level

fallow sky
rigid saffron
#

I know exactly why CVN isn't correctly remapping, but Idk why the weird thing with the plugin init exception happens

rigid saffron
fallow sky
rigid saffron
#

that's fucked

fallow sky
#

Like it's said in my status, but in french, I'll be busy because I'm at my grandparents's house

#

So I'll do some painting, but not in Splatoon

fallow sky
#

oh you commited ?

rigid saffron
#

Yes

#

Minor commit

#

Can you debug the plugin already initialized thingy tho?

#

Idk, look at craftbukkit

#

for 1.12.2

#

It clone the repo for that version so it's easy

rigid saffron
#

PluginLoader#loadPlugin

fallow sky
#

humm okay

fallow sky
#

okay interesting

fallow sky
#
public void loadPluginToSpigot() throws InvalidPluginException, InvalidDescriptionException {
    if(remappedPlugin == null) throw new InvalidPluginException("You can't load the plugin if it wasn't remapped!");

    System.out.println(Arrays.toString(cvn.getServer().getPluginManager().getPlugins()));
    System.out.println(remappedPlugin.getPath());
    Plugin loadedPlugin = cvn.getServer().getPluginManager().loadPlugin(remappedPlugin);
    if(loadedPlugin == null) throw new InvalidPluginException("The remapped plugin can't be loaded!");
}
``````log
[21:51:26 INFO]: [CVN] Loading plugin NMSTestProject1122-1.0.jar...
[21:51:26 INFO]: [CVN v1.0, cvn-dummy-142bfa36-a8d5-313e-266a-080f5fd9d252 v0]
[21:51:26 INFO]: plugins\CVN\remapped\NMSTestProject1122-1.0.jar
[21:51:26 ERROR]: [CVN] Could not load plugin NMSTestProject1122-1.0.jar!
[21:51:26 ERROR]: [CVN] This plugin will be skipped.
[21:51:26 ERROR]: [CVN] THIS IS LIKELY NOT A CVN ISSUE!
[21:51:26 WARN]: org.bukkit.plugin.InvalidPluginException: java.lang.IllegalArgumentException: Plugin already initialized!```

Why.
rigid saffron
#

Idk

coral gyro
#

why cvn.getServer() instead of just Bukkit

rigid saffron
#

why not

#

The thing is: I'm never loading the remapped plugin before??

coral gyro
#

extra typing?

#

and a hard dependency on your plugin which you may or may not need

rigid saffron
#

@fallow sky can you check for usages of PluginManager#load

rigid saffron
#

Of the CVN plugin

#

cvn is the local JavaPlugin

fallow sky
rigid saffron
#

Strange

#

Actually, I wonder if spigot ever did recursion on load

#

No, sounds like a stupid idea

fallow sky
#

a really stupid idea 🤓

rigid saffron
#

Can you check how PluginManager#loadPlugins is implemented?

fallow sky
#

yeah

rigid saffron
#

Because I suspect it might be doing some fuckery cuz it works on new versions

fallow sky
#

the full code lmao

rigid saffron
#

Strange

#

Any ideas?

fallow sky
#

nah

#

we should call md_5 🤓

#

(nah)

#

Maybe PluginLoader ?

bold trout
#

does the project have a plugin.yml

rigid saffron
#

yes

#

Everything is on place

rigid saffron
fallow sky
rigid saffron
#

Remapping is fucked I know

fallow sky
#

x)

rigid saffron
#

But it doesn't matter rn

fallow sky
#

yeah

rigid saffron
#

Because you can't load a remapped plugin if you can't load a plugin at all

rigid saffron
#

1.12.2 is old as dirt but who knows

fallow sky
rigid saffron
#

Write some stuff, get a link to the right file on gh and just answer the questions they ask you

fallow sky
#

okay

rigid saffron
#

Basically "we are trying to load a plugin but it says it's already initialized here look at how we load it (provide two links to github)" and that typa stuf

fallow sky
#

okay thanks 😄

rigid saffron
#

And also provide the stacktrace in a screenshot, for better vsibility and whatever

fallow sky
#

oh yeah

fallow sky
#

@rigid saffron we you should make DummyJavaPlugin's class final

rigid saffron
#

why

#

Makes no difference

#

Also, for that just commit to cvn remapper gradle plugin

fallow sky
#

because ti's better

rigid saffron
#

The resources folder

fallow sky
#

okay, I'll do that

fallow sky
#

So, how can we fix CVN with the help of yesterday @rigid saffron ?

#

Maybe we should not enable it if it is already enabled 🤓☝️

rigid saffron
#

tf are you talking about

#

I have no idea

#

What we can do

#

0

rigid saffron
#

@fallow sky try debugging, I don't think I can do anything

fallow sky
#

I don't really know where to debug :/

#

I'll do my best

rigid saffron
#

Try catching the exception, printing stacktrace and just continuing

fallow sky
#

okay

fallow sky
#

Bump

fallow sky
#

Bump

fallow sky
#

Why CVN is dying ?

  1. I'm not doing my work
  2. Why the fuck it doesn't work
  3. Not an excuse to skip my work
#

So, I'll work on CVN this morning !!!

rigid saffron
#

holy fuck, paulem is cooking

fallow sky
#

I exactly know what to do, and it may solves the problem 😎

rigid saffron
#

Paulem 15 minutes later: it didn't work :crying_sunglasses:

fallow sky
#

It may works 🤓

fallow sky
#

okay, that's wild, and I don't think it'll work

#

(using reflection)

rigid saffron
#

Whatcha doing

fallow sky
#

OH MY GOOOOOOAD

#

I need to test on 1.18.2, right ?

rigid saffron
#

1.19

#

1.19.4

fallow sky
#

huh, okay wait

#

hummm

#

@rigid saffron 🥱🥱log [15:56:05] [Server thread/INFO]: Preparing start region for dimension minecraft:the_end [15:56:07] [Worker-Main-7/INFO]: Preparing spawn area: 0% [15:56:07] [Worker-Main-13/INFO]: Preparing spawn area: 0% [15:56:07] [Worker-Main-13/INFO]: Preparing spawn area: 0% [15:56:07] [Worker-Main-13/INFO]: Preparing spawn area: 0% [15:56:07] [Worker-Main-10/INFO]: Preparing spawn area: 34% [15:56:07] [Server thread/INFO]: Time elapsed: 2388 ms [15:56:07] [Server thread/INFO]: [NMSTestProject1122] Enabling NMSTestProject1122 v1.0 [15:56:07] [Server thread/ERROR]: Error occurred while enabling NMSTestProject1122 v1.0 (Is it up to date?) java.lang.NoSuchMethodError: 'net.minecraft.server.v1_12_R1.MinecraftServer org.bukkit.craftbukkit.v1_19_R3.CraftServer.getServer()' at io.github.spigotcvn.nmstestproject.NMSTestProject1122.onEnable(NMSTestProject1122.java:18) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[spigot-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:342) ~[spigot-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_19_R3.CraftServer.enablePlugin(CraftServer.java:541) ~[spigot-1.19.4-R0.1-SNAPSHOT.jar:3763-Spigot-7d7b241-5a5e43e] at org.bukkit.craftbukkit.v1_19_R3.CraftServer.enablePlugins(CraftServer.java:455) ~[spigot-1.19.4-R0.1-SNAPSHOT.jar:3763-Spigot-7d7b241-5a5e43e] at ... [15:56:07] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it [15:56:07] [Server thread/INFO]: Done (10.864s)! For help, type "help"

#

I can optimize this, not really reliable

#

but it's working on spigot infrastructure (looks like it isn't on paper yet)

#

Basically, I access the JavaPluginLoader by using reflection in PluginClassLoader, and then I get the (already loaded [that's where I want to optimize], and still loaded) dummy plugin's name, and disable it by getting the plugin from it's name in the plugin manager

#
Field privatePluginLoaderField = cvn.getClass().getClassLoader().getClass().getDeclaredField("loader"); // org/bukkit/plugin/java/PluginClassLoader
privatePluginLoaderField.setAccessible(true);

JavaPluginLoader javaPluginLoader = (JavaPluginLoader) privatePluginLoaderField.get(cvn.getClass().getClassLoader());

PluginDescriptionFile pluginDescription = javaPluginLoader.getPluginDescription(plugin);

cvn.getServer().getPluginManager().disablePlugin(cvn.getServer().getPluginManager().getPlugin(pluginDescription.getName()));```
#

I just copy/pasted the JavaPluginLoader code lol

#

Perfect, it's "working" without reflection

#

basically you just need to fix java.lang.NoSuchMethodError: 'net.minecraft.server.v1_12_R1.MinecraftServer org.bukkit.craftbukkit.v1_19_R3.CraftServer.getServer()'

#

I'm pushing on github also

#

pushed !

#

perfect, my job is done

fallow sky
plucky ember
#

o.o

rigid saffron
#

what are you looking at, frost

fallow sky
woven arrow
#

@rigid saffron i'm gonna continue working on the masstester :o

#

so what do I add

rigid saffron
#

I have written a list of things before...

woven arrow
#

do you expect me to scroll up to that rn

rigid saffron
#

give me a minute

woven arrow
#

also

#

did you make any changes

#

if so, push

rigid saffron
#

well, only on a seperate branch that is already gone

#

there were some great improvements there but they vanished

woven arrow
#

wht

#

ij frozen, nice

rigid saffron
#

idk where that list is

woven arrow
#

ugh i'll look for it

rigid saffron
#

good luck lol

#

see ya in two months

woven arrow
#

you can't search in threads 😭

rigid saffron
#

ikr

woven arrow
#

holy fucking

#

i scroll up

#

and sometimes i just get reset

rigid saffron
#

lmao

woven arrow
#

this

rigid saffron
#

yes

woven arrow
#

this should be fine right

rigid saffron
#

looks fine

woven arrow
rigid saffron
#

no

woven arrow
#

aw

rigid saffron
#

use println

woven arrow
#

fine

fallow sky
#

WHY NO FANCY PRINT ????

#

it's so UwU

#

let's see tf is going on with asm (or maybe something else ?)

woven arrow
#

just not with the lib

fallow sky
#

x)

#

OOOOH

#

I FUCKING SEE

#

NO WAY

#

@rigid saffron When this notation stop ?

#

(the v_x_xx_R1 in nms)

rigid saffron
#

uhh, 1.20 iirc

woven arrow
#

never

#

or wait was that cb

rigid saffron
#

cb

fallow sky
#

nms

rigid saffron
#

nms relocation stopped around 1.20

fallow sky
#

cb is almost good, not nms

fallow sky
woven arrow
#

ruh roh

#

cmon guys

fallow sky
fallow sky
#

Remapping taking forever >>

#

already one minute...

#

dos minutos...

#

it's good lmao

#

it's not working lmao

fallow sky
#

DQZOJDZQJDOJZAQD

rigid saffron
#

asdasdashkdp#

fallow sky
#

WHY THE N WORD DISAPPEARED ???

#

I CAN'T SAY NIGGUYS ANYMORE ???

fallow sky
#

french bourgeois

#

SPEEDWAGON

#

I forgot to change the variable lmao

woven arrow
#

LET'S FUCKING GO

fallow sky
#

no way

woven arrow
#

wtf

#

genuinely

#

whyt f does it print the jdk version TO STDERR

fallow sky
#

bruh

woven arrow
fallow sky
#

skill issue

#

I need to go eat because if I don't eat I'll die

#

see ya

woven arrow
#

welp @rigid saffron now i have an excuse to not work on it

#

sonatype is down again

rigid saffron
#

fucking sonatype

#

let me boot up my mirror rq

woven arrow
#

you have a fucking mirror?

rigid saffron
#

no ofc not lol

#

not yet

#

also, just write it without testing

#

I always do that

woven arrow
#

💀

#

most normal day @ sonatype hq

rigid saffron
#

lol

#

looks like crowdstrike impacted even sonatype

woven arrow
#

o damn it worked again

rigid saffron
#

lol

#

btw 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 when

woven arrow
#

wtf does that mean

#

wtf do i ensure

#

bt generates the mappings

rigid saffron
#

that's not the thing

#

you don't need to generate mappings, you need to ensure that you aren't building 1.8.8 when building 1.8.3

woven arrow
#

oh 😳

rigid saffron
#

it's just that spigot-mappings-downloader also serves the role of builddata-repo-puller

woven arrow
#

so this thing

rigid saffron
#

yes

woven arrow
#

do i just compare the hash with the one from smdownlaoder

rigid saffron
#

nah

#

that's the hash of vanilla

woven arrow
#

no

#

the file hash

rigid saffron
#

before running buildtools, just info.minecraftVersion == currentBuiltVersion

#

you don't want to waste time building a version you already have anyways

woven arrow
#

so i run smdownloader and check if its info.mcversion is the one i'm currently building

rigid saffron
#

yes

#

smdownloader has a gson model class of the info file

woven arrow
#

i'll set up publishing for smdownloader first

rigid saffron
#

Because it uses it internally to get the mapping file directories

#

But it doesn't have a method for that info file

woven arrow
fallow sky
#

you should rename this maven

#

it's not your maven

#

but OUR MAVEN

woven arrow
#

alright @rigid saffron how do i use the downloader

#

just downloadMappings?

#

or pullBuildData

#

i love how it first downloads all the major versions and then their minor releases [this is a bug, not a feature]

rigid saffron
#

just call downloadMappings, it's gonna do the job

rigid saffron
woven arrow
#

sortBy isn't a thing

#

sortedBy exists but it only takes one block

rigid saffron
#

Idk what exactly it was

#

But it looked similar

woven arrow
#

right how tf do i get the version easily with gson

rigid saffron
#

Gimme a second

#

Mf this is getting too far

#

You have never gotten permission to do that

woven arrow
#

bro

#

gradle groovy is shit and unusable

rigid saffron
#

I will fuck your mom motherfuсker

woven arrow
#

right does this look good

woven arrow
#

proof?

rigid saffron
#

BuildDataInfo buildDataInfo = gson.fromJson(IOUtils.readFromFile(infoFile), BuildDataInfo.class);

#

And then .minecraftVersion

woven arrow
#

ehh

#

what i do should work

rigid saffron
woven arrow
#

L?

#

cry about it

#

aha, now it's sorted

#

nope it's not

#

ah fuck this sorting shit

#

idc

#

looks like it's working

#

(i only have the smd directory for those)

rigid saffron
#

rad, because of you I now have to use the power of force pushing again

woven arrow
#

and also

#

git pull --rebase

rigid saffron
#

I need to get rid of that commit

#

Once and forever

woven arrow
#

die

rigid saffron
#

you too :3

woven arrow
#

i will force push back

rigid saffron
#

Then I will take down the repo from SpigotCVN and repost it on my gh account under some fucked up license

woven arrow
#

license my ass

rigid saffron
#

It is my code, I can do anything with it

woven arrow
#

how about no

rigid saffron
#

I will ARR it and DMCA your ass

#

That all is, of course, a joke, but I do not want kotlin in my java

woven arrow
#

bro it's just gradle

#

mf deal with it

rigid saffron
#

bro it's just gradle

#

keep it like it is

#

I have been working on this absolutely fucking useless project (cvn) for so long, I have done so much research and now I can't decide what language I want to use for gradle?

woven arrow
#

lol

#

it's literally two files

#

makes like zero difference

rigid saffron
#

I don't go to your repos and make them all groovy, then be nice to me and don't turn my shit into kotlin

coral gyro
#

you been using java?

rigid saffron
#

I don't care what ya kotlinators say, I just use what I always use

rigid saffron
#

and this commit was not fucking nice

woven arrow
#

i literally told you

#

i was gonna add publishing to that repo

rigid saffron
#

you said you are gonna add publishing, you never said a single thing about switching to kotlin

woven arrow
#

bro it's two tiny files 💀

rigid saffron
#

"it's two tiny files" okay and? it's my two tiny files, and those two tiny files are important as fuck

woven arrow
#

that commit changed nothing about the functionality

rigid saffron
#

also tf you mean you are gonna add publishing

woven arrow
#

to the cvn maven repo 😂

coral gyro
#

why so much nesting am i asking myself

woven arrow
#

you cannot require everybody to have everything published in their .m2

#

that's why i set up the maven repo

rigid saffron
#

you should've atleast asked about the kotlin thingy

#

it is just not nice to do that

woven arrow
#

to use a proper language?

rigid saffron
#

how is that related to this

woven arrow
#

???

rigid saffron
#

it doesn't matter what you did, it matters that you did it without asking

#

it's just an asshole thing to do

woven arrow
#

revert it then

rigid saffron
#

later

#

got better things to do

woven arrow
#

you think i don't? 😂

rigid saffron
#

if you had better things to do you wouldn't've bothered turning that groovy shit into kotlin shit

woven arrow
#

took me 20 seconds to but ok

bold trout
#

raydan are you complaining about gradle being converted to gradle kotlin not groovy

rigid saffron
bold trout
#

for what purpose

#

how does it inconvience you by being in kotlin, there is almost 0 difference

rigid saffron
#

the file name is longer

bold trout
#

oh no

#

what a fuckin tragedy

rigid saffron
#

takes up extra bytes on my filesystem

#

can't let that happen

woven arrow
#

it's so joever guys

#

4 more bytes are used on raydans drive

#

😔

rigid saffron
#

A whole 8 actually

#

Because 2 gralde files

#

And in some encodings a whole 16

woven arrow
#

well akshually

#

i removed the long ass comment from the settings.gradle

#

so there's less space used

rigid saffron
#

hmm

#

now imagine if you did that without adding .kts!

#

I would be a byte-millionaire

woven arrow
#

damn

#

i already am

rigid saffron
#

I just launch mc servers on gh actions

#

Might port that fabric mod to spigot one day

woven arrow
rigid saffron
woven arrow
#

why would i want to

rigid saffron
#

Because I want you to

#

I want you to decompile my mod

woven arrow
#

🤔

#

why can't you do it

rigid saffron
#

Because I need you to do it

#

Rad, it's a once in a lifetime opportunity, no other mod dev will ever come to you and say "decompile my mod bro"

woven arrow
#

mhm

#

welp too bad

rigid saffron
#

Tf is that

coral gyro
#

look at bottom

woven arrow
#

jd-gui

rigid saffron
#

Looks like a skill issue

woven arrow
#

yea

#

prob is

fallow sky
#

lmao

fallow sky
#

so, we only got asm to fix ?

rigid saffron
#

is that even an asm thing

#

Oh yeah it is

#

Because mappings don't map MinecraftServer

#

Paulem you did the asm for cb last time, do it for nms this time

fallow sky
#

I started

fallow sky
#

okay niguys

#

most controversed commit in the world

#

let's do a PULL REQUEST (on smd)

#

(first PR in my entire life idk if I've done it good)

#

Okay, CVN should not work for now

#

basically, my asm system is ass imo

#

hummm @rigid saffron lmaolog [13:43:52 INFO]: [NMSTestProject1122] Enabling NMSTestProject1122 v1.0* [13:43:52 ERROR]: Error occurred while enabling NMSTestProject1122 v1.0 (Is it up to date?) java.lang.NoSuchMethodError: 'net.minecraft.server.v1_19_R3.MinecraftServer org.bukkit.craftbukkit.v1_19_R3.CraftServer.getServer()'

#

mb it's not relocated in this version

#

Located like net.minecraft.server and not net.minecraft.server.vX\_XX\_RX in :

  • 1.19.4 ✅
  • 1.18.2 ✅
  • 1.17.1 ✅
  • 1.17 ✅
  • 1.16.5 ❌ (net.minecraft.server.v1\_16\_R3)

So : it's net.minecraft.server since 1.17

#

okay, seems good

#

what da fucklog [13:58:26 INFO]: [NMSTestProject1122] Enabling NMSTestProject1122 v1.0* [13:58:26 ERROR]: Error occurred while enabling NMSTestProject1122 v1.0 (Is it up to date?) java.lang.NoSuchMethodError: org.bukkit.craftbukkit.v1_16_R3.CraftServer.getServer()Lnet/minecraft/server/v1_16_R3/MinecraftServer;

#

???```java
import net.minecraft.class_0_21;
import net.minecraft.server.v1_16_R3.DispenserRegistry;
import net.minecraft.server.v1_16_R3.IMinecraftServer;
import net.minecraft.server.v1_16_R3.MinecraftServer;
import org.bukkit.craftbukkit.v1_16_R3.CraftServer;
import org.bukkit.plugin.java.JavaPlugin;

public final class NMSTestProject1122 extends JavaPlugin {
public void onEnable() {
CraftServer server = (CraftServer)this.getServer();
MinecraftServer mcserver = server.getServer();
mcserver.method_3864(false);
IMinecraftServer serverInterface = (IMinecraftServer)mcserver;
System.out.println(serverInterface.method_3827());
System.out.println(DispenserRegistry.class.getName());
System.out.println(class_0_21.class.getName());
System.out.println(mcserver.method_3734().method_0_6231());
}
...```

bold trout
fallow sky
#

not net.minecraft.server.v1_...

woven arrow
fallow sky
#

look, some classes are not remapped (because they don't exist ?) some methods are not remapped too

#

(it's the remapped jar)

#

let's do some debugging

#

Wanna be my internalName ? 🫦 log [14:05:58 INFO]: [CVN] [STDOUT] org/bukkit/craftbukkit/v1_12_R1/CraftServer [14:05:58 INFO]: [CVN] [STDOUT] org/bukkit/craftbukkit/v1_12_R1/CraftServer [14:05:58 INFO]: [CVN] [STDOUT] net/minecraft/server/v1_12_R1/MinecraftServer [14:05:58 INFO]: [CVN] [STDOUT] net/minecraft/server/v1_12_R1/MinecraftServer [14:05:58 INFO]: [CVN] [STDOUT] net/minecraft/server/v1_12_R1/MinecraftServer [14:05:58 INFO]: [CVN] [STDOUT] org/bukkit/craftbukkit/v1_12_R1/CraftServer [14:05:58 INFO]: [CVN] [STDOUT] net/minecraft/server/v1_12_R1/MinecraftServer

#

1.19.4 :```java
import net.minecraft.class_0_21;
import net.minecraft.server.DispenserRegistry;
import net.minecraft.server.IMinecraftServer;
import net.minecraft.server.MinecraftServer;
import org.bukkit.craftbukkit.v1_19_R3.CraftServer;
import org.bukkit.plugin.java.JavaPlugin;

public final class NMSTestProject1122 extends JavaPlugin {
public void onEnable() {
CraftServer server = (CraftServer)this.getServer();
MinecraftServer mcserver = server.getServer();
mcserver.method_3864(false);
IMinecraftServer serverInterface = (IMinecraftServer)mcserver;
System.out.println(serverInterface.method_3827());
System.out.println(DispenserRegistry.class.getName());
System.out.println(class_0_21.class.getName());
System.out.println(mcserver.method_3734().method_0_6231());
}```

#

1.16.5 :```java
import net.minecraft.class_0_21;
import net.minecraft.server.v1_16_R3.DispenserRegistry;
import net.minecraft.server.v1_16_R3.IMinecraftServer;
import net.minecraft.server.v1_16_R3.MinecraftServer;
import org.bukkit.craftbukkit.v1_16_R3.CraftServer;
import org.bukkit.plugin.java.JavaPlugin;

public final class NMSTestProject1122 extends JavaPlugin {
public void onEnable() {
CraftServer server = (CraftServer)this.getServer();
MinecraftServer mcserver = server.getServer();
mcserver.method_3864(false);
IMinecraftServer serverInterface = (IMinecraftServer)mcserver;
System.out.println(serverInterface.method_3827());
System.out.println(DispenserRegistry.class.getName());
System.out.println(class_0_21.class.getName());
System.out.println(mcserver.method_3734().method_0_6231());
}```

coral gyro
#

tf

rigid saffron
#

Remapping is still fucked kek

fallow sky
#

yeah x)

rigid saffron
#

no idea why, I'll have to see

fallow sky
#

yeah

fallow sky
rigid saffron
#

thank god, atleast you do pr's

fallow sky
#

x)

#

I learned how to do that today

rigid saffron
#

@woven arrow learn from Paul

fallow sky
#

Changes pushed to CVN 🔥

woven arrow
rigid saffron
fallow sky
#

@rigid saffron what's the needed java version of smd ?

rigid saffron
#

Should be able to compile against 8

fallow sky
#

okay thanks

#

I'll do another pr in few minutes

rigid saffron
#

👍

lofty burrow
bold trout
woven arrow
#

120°C at least

fallow sky
#

@rigid saffron any idea about those fucked mappings ?

rigid saffron
#

no

junior onyx
#

just make sure there is none left before putting electricity in

woven arrow
#

yeah

junior onyx
#

you can use your CPU like a grill

#

you can actually just power a little cooking thing with your computer

woven arrow
junior onyx
#

yk I read CVN and thought about CV

#

Computer Vision Network

#

lmao

rigid saffron
#

lmao

#

should've called it cvNMS

fallow sky
#

nah

rigid saffron
#

computer vision net.minecraft.server ofc

fallow sky
#

💀

fallow sky
#

I won't be able to work on CVN for the next two weeks, I'll be in vacation

#

I'll just check the messages, and respond to them, but I can't dev :/

coral gyro
#

imagine not canning to dev

woven arrow
#

smh

coral gyro
#

rad lurking behind every corner i see

#

hes the boogeyman

woven arrow
#

yes

#

i am

fallow sky
coral gyro
#

what

fallow sky
#

Bump

woven arrow
#

cvn is dying smh

fallow sky
woven arrow
#

CVN dying smh

fallow sky
#

Nah

rigid saffron
#

What if add jar-in-jars for CVN

fallow sky
#

What there would in this jar ?

rigid saffron
#

Jar in jar is a way of including dependencies, where you put the dependency jar into your jar and the classloader then loads all jars with dependencies

#

Keeps it clean and I believe it helps against conflicting dependencies

fallow sky
#

With which dependency should we do that ?

fallow sky
#

Skibidi rizz

fallow sky
rigid saffron
fallow sky
rigid saffron
#

we should write it ourselves?

fallow sky
coral gyro
#

wtf

#

im outta here

fallow sky
rigid saffron
#

CVN dying?

woven arrow
#

yes

fallow sky
#

But well guys, I think I've found a girl

fallow sky
#

@woven arrow and @balmy bramble are BFF for real

#

And not BBC

woven arrow
#

what

#

💀

lofty burrow
fallow sky
lofty burrow
#

😔

fallow sky
lofty burrow
#

Lucky

fallow sky
#

And less cringe

#

And older

#

She's perfect, 'till the last minus details

junior onyx
fallow sky
#

But we can only meet at the beginning of the school year

#

I'll have to wait

junior onyx
#

L skill issue get good

fallow sky
junior onyx
#

npnp

fallow sky
#

Retrooper is in love of Neoncyo

balmy bramble
lofty burrow
#

what the flip bro!

fallow sky
lofty burrow
#

Mfs gone for like 4 days and comes back to post the most brainrot, probably cancer causing thing ever

fallow sky
lofty burrow
#

How old are you bro 😭

fallow sky
lofty burrow
#

I get raydan acting like this cuz his iq is low

fallow sky
#

I'm just like that here, I said it

lofty burrow
#

Skull emoji

fallow sky
#

I'm not that cringe in other places or with my friends

#

Or even with this incredible girl

#

That made me realize a thing about me, and the key of a good relationship

#

Which is being honest without hurting the other with words

lofty burrow
fallow sky
#

Hypocrisy just ruin everything at a certain point, telling what we think is much better

fallow sky
lofty burrow
#

Real

#

Wanna drink 2 colas and get faded?

fallow sky
#

Nah

lofty burrow
#

😦

lofty burrow
fallow sky
#

Her is the only thing I need

#

Just talking with her is perfect

lofty burrow
#

wish me luck big bro

fallow sky
plucky ember
lofty burrow
#

com? bust??

balmy dew
#

what neon

#

i seen that

lofty burrow
#

thats prince3ds

#

@balmy dew when are u gonna answer the calls

balmy dew
#

when im done installing debian

#

😠

lofty burrow
#

im getting views

#

your not

balmy dew
#

yes

#

no

lofty burrow
#

@balmy dew u gonna take this?

#

personally i wouldnt

#

was he?

woven arrow
#

🗿

#

what is bro cooking

#

@balmy bramble thoughts on this guys c++

#

🗿

rigid saffron
#

broo paulem

#

what the fuck

balmy bramble
#

L

little pier
#

Explain yourself (you can do it in DMs)

woven arrow
#

OH GOD

#

gg buddy

balmy bramble
#

yeah idk why he posted what he posted lol

rigid saffron
#

Poor Paul

woven arrow
#

bro he posted...

#

something..

rigid saffron
#

He deserves a uhhh

#

Fiftheent chance

#

Wait

#

Lemme

woven arrow
#

...

rigid saffron
#

Fiveteenth chance

woven arrow
#

fifteenth

rigid saffron
#

Yes, now that is the right spelling I think

rigid saffron
woven arrow
rigid saffron
#

English

woven arrow
rigid saffron
woven arrow
#

😳

rigid saffron
woven arrow
#

o7 this channel

floral zephyr
#

ok

fallow sky
#

GUYS GUYS

#

Did you ever saw a comeback like that ???

#

(really, thanks the moderation team, I gonna remove all of my inapprioriate messages when I'll be home)

#

@woven arrow and @rigid saffron, you really want to stop the project ?

fallow sky
#

yeah 😌

woven arrow
fallow sky
#

Yeah

#

That's right

#

Not gonna say it another time

lofty burrow
#

U say that cod is too violent now

#

U won't even kill pigs in minecraft anymore

#

YOUR NOT HIM

#

THEY REPLACED THE MAN YOU SWORE NOT TO BECOME!

fallow sky
covert talon
#

meh, spigot's moderation is pretty soft

#

banning someone for saying the n word is kinda insane

#

it's not 2019

#

nobody gives a fuck if you say the n word as long as it's not the hard r

fallow sky
#

I think they were right, personally

floral zephyr
#

hi @woven arrow

woven arrow
#

hi @floral zephyr

floral zephyr
#

pls

woven arrow
#

you're not cute enough if you aren't already

floral zephyr
#

but still

#

cute is fun

#

btw i love java

rigid saffron
woven arrow
floral zephyr
#

look at my pfp

#

am i still not cute

woven arrow
#

i have more cat

floral zephyr
#

that cat black

#

not cute

woven arrow
floral zephyr
#

holy shit

woven arrow
rigid saffron
woven arrow
floral zephyr
#

but doesn't disprove the fact that im cute

lofty burrow
#

But damn what a cute cat

balmy bramble
#

scary cat

#

who knows what it does when no one’s looking

#

wait why did u send it in this channel @woven arrow

woven arrow
#

idk

balmy bramble
#

the title is so long i cant even read it

#

Cross-Version…

fallow sky
#

AND IT'S SERIOUS

#

AND HERE COMES THE SUN TUDUDUDUTUDU

#

There's so many people in this thread

#

so many guys that helped me in this, not finished, but pretty good project who was CVN

woven arrow
#

fuck cvn

fallow sky
#

And I learnt a lot with this, developing with you and understanding FUCKING NOTHING

#

that was cool

fallow sky
#

AND YOU WERE THE ONLY DUDE TO USE KOTLIN

#

ARE YOU CRAY-CRAY LIKE THIS BEAT