#CombustMC (CumbustMC)

1 messages · Page 1 of 1 (latest)

woven yew
#

CombustMC, fork of SpigotMC 1.11.1 (but actually 1.7.10)
"CombustMC est une meilleur performanté et configurablé spigotmc fork non basé au ペイパーMC" ("CombustMC is one of the most performant and configurable spigot forks that do not base on paper")

  • All messages are translated into French with Bing Translate via English -> Cantonese -> Amharic -> French -> English -> Hindi -> French
  • Every plugin gets initialized with a message that's at least 15 lines long
  • Performance of this fork with 32GB allocated is worse than Bukkit with 512MB allocated
  • Cut down on like half of all vanilla features and make it unconfigurable
  • Remove about 30% of the API and change the implementations of about 20%
  • Spam the in-game chat occasionally with random one-liner errors
  • Leak memory
  • Every 5 minutes do some operation that has like a 15% chance to crash the server because it's buggy (and don't save player data)
  • Do not compress log files into .tar.gz but instead straight up delete them and only the latest.log must survive
  • Outdated libraries with vulnerabilities and exploits (not including log4j exploit bc that's effortless)
  • Not allow to use Spark and say it's already loaded (and create a config dir for it so people think it's a spark bug)
  • API implementations should be as buggy as they can be
  • The plugin loader should sometimes spontaneously combust (e.g. it should use so much RAM and CPU that if there are more than 40 plugins being loaded the entire machine just crashes)
  • Always change the spigot.yml, bukkit.yml, server.properties and combustmc.yml to default values ("bug")
  • Badly translated docs, or none at all, or misinformation
  • Mostly forget about coding/naming conventions
  • Only allow clients on 1.11.1 even though the server is actually 1.7.10 but it's "1.11.1"
  • Suppliers & lambdas to replace many functions
  • Oldest Java version possible
  • Functional interfaces without annotations
#

Devs: @woven yew, @inland field, @frail dune

inland field
#

Nice

woven yew
#

Part 2

  • A good bunch of classes are written in Kotlin and some of their names/method names use variables like this which are inaccessible in Java without @JvmName
  • There is some obscure method (it's very unclear what it does) and it almost looks like it can be removed, but if the Bukkit's psvm does not call it, the server fails to start
#

Like I actually wanna work on this after I release ue 2.2

inland field
#

sounds like a funny project ngl

woven yew
inland field
#

Lets badly translate some documentation and just delete some

#

And add some misinformation too

woven yew
#

Oh yeah I forgot to add that to the list

inland field
#

I know a funny thing we can also do

#

Lets add a few random chinese characters in some places just to confuse people

woven yew
#

Ofc

#

I'm learning Japanese so I can write some stuff in Japanese probably

#

"We forgot to translate this part of the docs"

inland field
#

Like imagine this "le combustmc performanté fork au spigotmc<chinese character>"

frail dune
#

i will join

inland field
#

Neat

#

OH I KNOW A THING

woven yew
#
interface stateId {
public State getState();

/**
 * @return state ID
 */
  public int getStateId();

/**
 * 翻訳し忘れたんだよ
 */
public void set_state_id(int var1);
}
frail dune
#

make sure to write it in groovy

inland field
#

Some of the code should be rewritten in kotlin

woven yew
#

Mostly java but some kotlin

frail dune
woven yew
#

In places where kotlin wouldn't even make snse

inland field
woven yew
#

I don't know groovy OR scala

inland field
#

Lol

frail dune
inland field
#

We also need to write the code as bad as possible and forget about conventions

woven yew
#

YES

inland field
#

From now on classes are named using thisCase and methods using this_Case

frail dune
#

nononono

inland field
#

Variables use ThisCase

frail dune
#

we need to write a dreamberd to groovy transpiler and tell everyone to write them in dreamberd

inland field
#

Also don't forget to use goto if it exists in java

frail dune
woven yew
#

Oh yeah we need to use Unsafe too

#

And deprecate half the api

#

With no replacement

frail dune
frail dune
woven yew
#

Or a replacement that throws unimplemented exception

frail dune
#

Lmfao

#

TODO()

woven yew
#

Yep

inland field
#

Welcome to fp

frail dune
# inland field Immutability

that means it can NEVER be changed. like it will always stay like that for the rest of the survival of the universe

woven yew
#

So yeah Java-prevalent (bc i don't want to rewrite the entire fucking spigot in Kotlin) but some classes are in Kotlin (but they are converted to kotlin with IntelliJ's "convert to kotlin", not by hand, so they look mostly dumb and ugly)

frail dune
inland field
#

Guys, can we please leave two newlines between each { and }

frail dune
#

and we use maven concern

woven yew
#

I mean I will do it

#

But not consistently

frail dune
woven yew
#

Also what version of spigot are we forking lol

#

1.7.10?

#

Or 1.20.6

inland field
inland field
#

Precisely that version

woven yew
#

I propose something that nobody actually uses

frail dune
woven yew
#

Like some version that literally nobody said in ages

inland field
woven yew
#

1.9.4 or something

#

Or 1.12.1

#

Or 1.14.3

woven yew
#

Something stupid

frail dune
inland field
#

1.11

woven yew
#

Yeah maybe

inland field
#

1.11.1

woven yew
#

Though idk that's too old maybe?

frail dune
woven yew
#

Actually no

#

1.11.1 is perfect

#

Bc it still uses ids instead of namespacedkeys

#

So the code will be uglier

#

A lot

inland field
#

Yay

woven yew
#

1.11.1 is the version

frail dune
woven yew
#

Howd you do that

inland field
#

Also, what if we use some good mappings while writing code but before pushing we always remap it to purely obfuscated

frail dune
#

nono we run on 1.7.10 but pretend we are 1.11.1

inland field
#

So code is harder to read

woven yew
#

1.11.1 mappings?

inland field
woven yew
inland field
woven yew
#

Are we forking 1.11.1 or 1.7.10

frail dune
woven yew
#

Lmao

frail dune
#

and only allow 1.11.1 clients

#

NO other version

inland field
#

Yes

woven yew
#

I mean I guess we can do that

frail dune
inland field
woven yew
#

Ok we can figure that out

#

I am going to go math

#

Cya

frail dune
#

cya

#

and docs will be written by my terrible french

inland field
#

And @acoustic tartan will tell us whether it's bad enough

woven yew
#

I thought we were doing this for docs

#

I guess some can be done byhand

inland field
#

We are doing it for everything

#

Not only docs

inland field
woven yew
#

Fair

woven yew
#

Xd

inland field
#

My french is bad enough toi

frail dune
woven yew
#

The only french word I know is beaucoup

frail dune
inland field
#

My message: le combustmc performanté fork au spigotmc
Correct according to chatgpt: Le fork performant de CombustMC pour SpigotMC

frail dune
#

baguette croissant oui oui tu est une baguette

inland field
#

Lol

frail dune
#

we write the api in terrible ansi c (first release)

#

and make groovy bindings

inland field
#

Please use as many gotos as possible

#

If they're existant in the jvm

frail dune
inland field
#

Lmao

frail dune
#

(but they're just methods)

#

oh yeah and you need our custom jvm fork to run the server

inland field
#

OH I KNOW AN AWFUL WAY TO WRITE CODE

#

We'll extract all methods into variables as lambdas

frail dune
#

YES

#

should we work on this later

inland field
#

goto used to exist

#

In java

#

And jvm

#

But it got removed

#

For the lack of need

frail dune
inland field
#

Jvm 1.1?

frail dune
#

yes

frail dune
inland field
#

The absence of lambdas

#

But writing new Supplier each time is even better

frail dune
#

lmaoo

inland field
#

RIGHT

lost vessel
#

?whereami

inland field
#

Lets create a functional interface for each function interface but without the annotation

woven yew
frail dune
#

pull a kyori without annotating

inland field
lost vessel
#

lmao

frail dune
lost vessel
#

this is just about paper though, like every other fork is fine

#

as long as its not paper

inland field
#

Yeah, it's the
"CombustMC is one of the most performant and configurable spigot forks that do not base on paper" or some shit

woven yew
#

Yeah check the topmost message

#

Waiting for conclube to pin it

inland field
#

I HAVE AN IDEA

frail dune
#

yes

inland field
#

We will make our own mappings that do not make any sense

#

And use it

frail dune
#

KFJDJDJD YES

#

no way to remap

inland field
#

IT WILL ALSO BE IN FRENCH

frail dune
#

YES

inland field
#

Frenchcraft

woven yew
#

I'll leave the remappings to you remap king

frail dune
#

yea

#

as well as paulem maybe

woven yew
#

Yes if he wants to contribute

frail dune
#

surely

#

i'll hop onto vc soon and set up some stuff for it then?

woven yew
#

Can we please delay the start of this project for a bit

#

I want to finish working on the update for my plugin first

#

Raydan may want to finish cvn first

woven yew
#

I mean you can set stuff up for sure but if possible not start coding it yet

inland field
#

Imagine looking into logs just to see "Method réseau/minecréer/serveur/minecréerServeur/obtenir_Niveau not found"

frail dune
#

but i want to procrastinate further!!!!

woven yew
#

I am barely juggling between spigot dev and maths lmao

frail dune
#

aw

woven yew
#

You can set it up so it's ready for contributions and work

#

And if you want you can be the project manager, like assign workloads and stuff

woven yew
#

But I'd like to postpone the actual start of dev if possible

frail dune
#

i'll make sure to be the worst PM possible

inland field
#

Btw, what I sent is just "network/minecreate/server/minecreateServer/get_Level"

woven yew
inland field
#

Btw, for methods, packages and classes, don't translate all at once, translate all of them seperately

frail dune
woven yew
frail dune
#

also please please please

#

can we make this the logo

inland field
#

Lmao

woven yew
#

Sure

frail dune
#

and idea

inland field
#

At the end you need to put the type of 2016 intro with "Comblast MCj" popping up lmao

frail dune
#

make a hardcoded resourcepack that can display that gif and have it always be in tab

#

i can do that

inland field
#

Lmao

woven yew
#

Suure

inland field
#

AND THEN OTHER RESOURCEPACKS DON'T WORK

#

GENIUS

woven yew
#

Lmao

lost vessel
#

can you force a resourcepack with your plugin?

woven yew
#

Sir this is a fork

#

We can change implementations

frail dune
woven yew
#

How we plaese

inland field
lost vessel
#

what how

#

I wanna know 😅

frail dune
#

sendResourcePack?

woven yew
#

What exacly

frail dune
#

there's also an rp status event

inland field
#

I have an idea

#

Make it throw exceptions from methods and classes that do not exist

woven yew
#

No-brainer

inland field
#

Imagine stacktrace telling you it's from réseau/minecréer/serveur/niveau/obtenir_Baguette and that just doesn't exist

frail dune
#

lmaoo

#

get_Baguette go brr

inland field
#

Lmao

frail dune
#

okay but actually

#

one of the cool featurs of kotlin

#

is

woven yew
#

Knew it. There's none

inland field
#

Lmao

frail dune
#
fun `hello world!! this is a cool method`() {}
`hello world!! this is a cool method`()
woven yew
#

Oh yeah that's true

frail dune
#

and we could use that

inland field
#

Use that as much as possible in combustmc

#

This way we get methods that are badly translated french sentences

woven yew
#

fun `this function is fun🤪`()

woven yew
#

YO

#

We should write method names

#

As if we are writing test method names

#

Yk those ones

inland field
#

`la methode pour executé spigotmc niveau`()

woven yew
#

givenDoubleMaxValueAsRadius_whenCalculateArea_thenReturnAreaAsInfinity

inland field
#

Lmao

woven yew
#

Turns into

fun `Given double max value as radius, when calculate area, then return area as infinity`()
#

I miss my 2022-2023 bravery

#

I wanted to learn kotlin

#

So I just went and rewrote one of my plugins in kotlin and made it 10 times better too

#

This code is horrendeous but it made me what I am today

#

Like these days I wouldn't dare do a project in a language that I'm not exactly familiar with

#

But with UnderscoreKillstreaks I just did it

frail dune
inland field
#

"CombustMC est une meilleur performanté et configurablé spigotmc fork non basé au papermc" this is the new description

frail dune
frail dune
#

IT DOESN'T EXIST IN JAVA

woven yew
#

"Um, actually, this name is incorrect🤓 "

inland field
#

Lmao

woven yew
#

Make it jvmstatic

#

Or smth

#

Idk

frail dune
woven yew
inland field
#

Lmao

frail dune
#

nope

#

doesn't help

inland field
#

When we are done with the fork we will be fluent french speakers

frail dune
woven yew
#

I sure hope not. I fucking hate french people (except paulem and that dude whose identity was stolen by leguernic), I do not recognize the existence of France

frail dune
#

same

inland field
#

As a german, I think france belongs to germany

frail dune
#

o.O

woven yew
inland field
#

We have fought it enough times to own it

frail dune
woven yew
#

Just in case you want to gifify

#

Gifify this

frail dune
#

ok

woven yew
#

Wait

#

One edit

#

One sec

frail dune
#

already ran imagemagick

woven yew
#

Ok there

woven yew
#

Do this

frail dune
#

urgh

#

okay i will

woven yew
frail dune
#

ok bet

inland field
woven yew
#

Ofc

frail dune
#

this too

#

what if we don't do it in tests

#

genuinely what the fuck

woven yew
#

UNDERSCORES

frail dune
woven yew
woven yew
# frail dune

I think your code has a warning, not sure though, double-check

frail dune
#

eh

inland field
#

Lnao

frail dune
#

it'll be fiiineeeeeeeee

woven yew
inland field
#

Laughing n-words ass off?

frail dune
#

WHAT

inland field
#

Lmao

woven yew
#

Laughing neighbour's ass off

#

As in, love thy neighbor

inland field
#

Nah

#

N word one was better

frail dune
woven yew
#

I'm about to do something rq

inland field
#

Could drop the n word but I don't wanna vanish

woven yew
frail dune
#

ok

#

wait

#

lemme crop it

woven yew
inland field
#

Lmao

frail dune
frail dune
woven yew
inland field
#

I'd say something like that if I wanted to

frail dune
#

WTF????

woven yew
inland field
#

Lol

frail dune
frail dune
inland field
#

Lmao

inland field
#

I got an idea

#

Each dev will write documentation in one specific language

#

This way it will look like everybody writes documentation for themselves

#

And don't forget to write comments

frail dune
inland field
#

I wanna take shitty french

frail dune
#

aw

#

i'll do toki pona then kekwhyper kekwhyper kekwhyper kekwhyper kekwhyper kekwhyper kekwhyper

inland field
#

Do you think you could write documentation in some german village dialect or some shit

frail dune
#

hm

#

maybe

inland field
#

Mixed with dutch and just simply nonexistant words

nimble pivot
#

PRing the rest would improve it

inland field
acoustic tartan
inland field
#

Lmao

#

Is my french that bad

acoustic tartan
#

I'll correct that for you

frail dune
#

no no

inland field
#

Well, it's bad on purpose

frail dune
frail dune
#

like uhhh

inland field
#

I can only do broken dutch

#

Ik spreke nederlandisch

#

Mien nederlandisch is super

woven yew
#

I feel needed

acoustic tartan
frail dune
#

Dit hier zeegt de wie mon ne Welt orschtellen koann

woven yew
acoustic tartan
#

Nah I'm joking 🤓☝️

inland field
frail dune
#

je ne parle pas le fran©ais

acoustic tartan
inland field
frail dune
#

lmao

acoustic tartan
inland field
#

Lmao

woven yew
#

Yep

#

Conclube still hasn't pinned the message

#

Smh my head mh

acoustic tartan
#

Pourtant le français ce n'est absolument pas compliqué, regardez, vous connaissez les propositions subordonnées relatives en anglais ? C'est simplement que la proposition est introduite par un pronom relatif, comme "qui", et qu'elle est complément de l'antécédent par rapport au nom auquel elle est reliée

frail dune
#

smh my head

acoustic tartan
#

X)

#

I say something true actually 🤓☝️

frail dune
acoustic tartan
#

We use "est" with "Il"

frail dune
#

shut up

acoustic tartan
#

"est" is the verb "be"

#

Like

frail dune
#

i know

#

être

acoustic tartan
#

Je suis
Tu es
Il est
Nous sommes
Vous êtes
Ils sont

frail dune
#

i knew that 😭

woven yew
#

why are you speaking in french ewwwwww

acoustic tartan
#

Now, let's do that in PASSÉ COMPOSÉ

frail dune
#

no

acoustic tartan
#

Or no, harder

#

PASSÉ SIMPLE

frail dune
acoustic tartan
#

Je fus
Tu fus
Il fut
Nous fûmes
Vous fûtes
Ils furent

inland field
woven yew
#

блять пиздец

acoustic tartan
woven yew
#

вот бы щас про падежи в русском рассказать

woven yew
#

или про то как в японском глаголы изменяются

woven yew
#

не шарю

acoustic tartan
inland field
frail dune
#

😔

acoustic tartan
frail dune
#

what the fuck 😭

acoustic tartan
#

So être = été

#

Like be = been

frail dune
#

fuck french

#

deutsch ist eh besser

woven yew
#

people

inland field
frail dune
#

für echt

acoustic tartan
#

So passé composé is :
J'ai été = I've been
Tu as été = You've been
Il a été = He has been...

acoustic tartan
inland field
frail dune
acoustic tartan
#

But we also got a "subjonctif" one

frail dune
#

bittesehr

acoustic tartan
frail dune
#

😳

inland field
#

This is some interlinguistic shit

frail dune
#

fr

acoustic tartan
inland field
#

If we continue this we are gonna spontaneously combust(mc)

inland field
acoustic tartan
frail dune
acoustic tartan
frail dune
#

LMAO

inland field
#

LMAOAAAOAOAOAO

#

💀💀💀

acoustic tartan
#

Saucisse

frail dune
#

lmfaooo

#

i'm dying help

acoustic tartan
frail dune
#

mi toki toki pona

#

no

acoustic tartan
frail dune
#

tu es morte

acoustic tartan
frail dune
#

:(

inland field
acoustic tartan
#

HIER ENCORE J'AVAIS VINGT ANS 🗣️🗣️🗣️🔥

frail dune
#

yes

acoustic tartan
#

Lorem Ipsum dolor sit amet

inland field
#

In english we have words from normads, such as "mortal"

acoustic tartan
#

Consectetur adisciping elit

inland field
acoustic tartan
frail dune
acoustic tartan
#

Sorry 😐

frail dune
#

frankreich means france...

acoustic tartan
#

Well actually that's my only thought about GERMANY

inland field
#

French reich

#

Reich of Franks

acoustic tartan
#

Allemagne 🗣️🗣️🔥

acoustic tartan
#

🤓☝️

frail dune
lost vessel
#

gerfew

frail dune
#

real

acoustic tartan
#

WELCOME GUY 🗣️

acoustic tartan
#

HIER ENCORE J'AVAIS VINGT ANS 🗣️🗣️

frail dune
#

what is zbll cooking 🔥

woven yew
#

A basic Japanese verb, due to the agglutinative nature of the language, can turn into the craziest things. There are 3 types of verbs

  1. Verbs that end in う, く, ぐ, す, つ, ぬ, ぶ, む, る (except those that end with iる or eる (except exceptions)). These verbs are verbs like 買う, 死ぬ, 並ぶ
  2. Verbs that end with iる, eる (except exceptions that are type 1), such as 食べる, 見る, 起きる
  3. Specific verbs くる and する

Depending on the type of the verb, it can be conjugated into its て-form:

  • For type 1 verbs that end with う, つ, る, drop the last mora and add って - 買って, 勝って, 怒って
  • For type 1 verbs that end with く or ぐ, drop the last mora and add いて or いで respectively - 書いて, 急いで
  • For type 1 verbs that end with す, drop it and add して - 貸して
  • For type 1 verbs that end with ぬ, ぶ, む, drop the last mora and add んで - 死んで, 並んで, 混んで
  • For type 2 verbs, drop る and add て - 食べて, 起きて
  • 来る becomes 来て
  • する becomes して
  • 行く becomes 行って

With a て-verb you can almost do anything. You can chain verbs or even clauses to describe sequences of actions, you can add special verbs that alter the general meaning (e.g. いる, ある, おく, くる); additionally, the て-form of the verb is often what's used in various grammatical structures.

Special verbs to append:

  • ている - turns the action verb into an action that's happening now; turns a state verb into a description: 食べている - I'm eating; 窓が開いている - the window is open
  • てある - turns an action verb into something like "this has been done intentionally": 窓が開いてある - this window is opened (by smbd)
  • ておく- to do something in advance: 試験だから、勉強しておきた - an exam is coming, so I've studied some
  • てくる - basically means "to do and come back": 店に行ってくる - I'll quickly pop into the shop and return
frail dune
#

what thr fuck

acoustic tartan
inland field
#

Why did we get paulem here

woven yew
#

Naruto? As in なると? The conditional form of "to become"?

acoustic tartan
acoustic tartan
inland field
#

Can you pls add md5 hashes to cvn

woven yew
#

MD5 MENTIONED 🗣️🗣️🗣️ WHAT THE FUCK IS SPIGOT

acoustic tartan
woven yew
#

Nahhhhh

#

Pure brainrot

acoustic tartan
#

I'll see that

#

I'm busy for now

#

doing some school work in parallel with artificial intelligence

#

and after, doing my musculation and going to judo

#

If I even have the time to do my musculation

inland field
#

@woven yew translate judo

woven yew
#

柔道 judo (jūdō)

#

The first kanji means tender, soft, gentle

#

The second kanji means road, path

inland field
#

I have an idea for writing documentation

#

I will go to random people on the bahnhof, ask them whether they wanna participate in an experiment, if they say yes I ask them how they would document a function that does xyz and tell them I will not give any context, they should just try to explain how it works and what it does and we will use that as documentation

frail dune
#

yesss

#

do that for every function and value

inland field
#

Yeah lmao

#

"wie würden sie eine Variabel bennen die zum iterieren durch eine Liste benutzt wird?"
"Ähm, wie bitte?"

frail dune
frail dune
#

abenteuer textkomponent 😭

inland field
#

Lmao

#

Literal fucking adventure

inland field
#

Dunno why, sounds better

frail dune
#

ok

inland field
#

Nobody:
Literally nobody:
IJ when kotlin bytecode: you want decompiled code? Fuck you. Take some method definitions instead

frail dune
#

hehe

inland field
#

That's why some of our code shall become kotlin

#

And groovy

#

And scala

#

Btw I have 5%

#

And I'm still waiting for my bus

#

Because the fucking train DOES NOT stop at my station today

#

Deutsche Bahn mfs

frail dune
inland field
#

Bro the people here

#

"bruder wallah" or whatever

#

Every single moment

frail dune
#

vallah habibi

inland field
#

Immer die Türken, ne

frail dune
#

💀

inland field
#

Wirklich schlimm, keine Deutschen mehr in Deutschland

#

German old people be like

inland field
#

@woven yew can we pls remove all usages of yml by json5

woven yew
#

wdym

frail dune
#

hear me out

#

pickel configs

inland field
#

@frail dune apparently "mappings" in german ist "zuordnungen" lmaooooo

#

"schick mal deine Zuordnungen" pfff

frail dune
#

my reaction to that information:

inland field
#

lmao

frail dune
inland field
#

lmfao

#

aber wirklich, welche Zuordnungen benutzt du? yarn oder mojang zuordnungen?

#

why does it sound so weird

frail dune
#

und yarn zuordnungen in meiner modifikation

inland field
#

LMFAO

#

that sounds so bad

frail dune
#

@inland field you should totally join my server !! frfr ong ong 2024 no fake no virus

#

(this is a cry for help)

inland field
#

lol

#

just as I said, "vllt"

woven yew
jovial spade
#

when were yall gonna tell me about this

woven yew
#

lmao

inland field
#

hello karmadev

misty violet
#

Can you guys make the plugin require to have a plugin.yml, but require to have a @Combust annotation on the plugin main?
If there's information which is not the same in the plugin.yml and the annotation, the plugin fails to load and deletes himself

frail dune
#

yes lmfao

#

and it deletes the jar

inland field
#

LMFAO

misty violet
#

And crashses the server

woven yew
#

Also every class in the jar must point back to the main class with @CombustPluginChild(pluginClass)

inland field
#

LMFAOOOO

woven yew
#

Otherwise the plugin class loader ignores it

inland field
#

Absolutely

frail dune
#

YES

woven yew
#

And throws ClassNotFound on invokations

frail dune
#

WPIASDJFOIDFHSDJOFG

#

BRILLIANT

inland field
#

And also make classes available only to the plugin it is annotated with

frail dune
#

yea ofc ofc

#

what are libraries

woven yew
#

AND set some hard limit on the amount of classes per jar, e.g. if there are more than 40 either don't allow the plugin to load, or make the plugin loader so overloaded that it eats like 7 gb of ram (and leaks it)

frail dune
#

YESSSSS

inland field
#

It has to look like an inexperienced developer was making a fork and this would be the ideal way to make it look like that

woven yew
#

So no obviously stupid shit

misty violet
#

The Bukkit class should be renamed to bukkit

woven yew
#

But rather shit that was done by somebody inexperienced

woven yew
frail dune
inland field
#

Yeah we also will make our own extra shit mappings that are just bad french

woven yew
frail dune
#

rude

inland field
#

I will email md_5 about this if conclube doesn't pin

slate sluice
#

Wasn’t this just a troll fork?

woven yew
#

No

#

We'll be working on this

#

Legitimately

inland field
#

Lol

woven yew
#

This will be a thing

misty violet
#

This is the future

woven yew
#

That you will be able to use

slate sluice
inland field
#

Conclube when a few idiots actually make a shit fork: 🗿

slate sluice
#

lmao

misty violet
#

The spigot fork for inexperienced developers

woven yew
#

I mean it's gonna be basically unusable but it's gonna be real

slate sluice
#

naaa dont roast urselves like that

inland field
slate sluice
#

ill pin

frail dune
#

yes

#

ty

woven yew
woven yew
#

:3

#

Tyy

slate sluice
#

In kotlin right?

woven yew
#

Both kotlin and java

#

And maybe groovy

frail dune
#

why no grovy

woven yew
#

And maybe scala

frail dune
#

tehre we go

slate sluice
#

Die

woven yew
#

Whatever ends upbeing there

frail dune
#

can I write everything in toki pona

slate sluice
#

Fuck groovy, cheers and bye

woven yew
#

Maybe some native C code too

frail dune
#

yea jdk 1.1 ofc

woven yew
#

Will it launch?

inland field
#

Yes

woven yew
#

Fuck it we'll make it thappen

frail dune
regal plume
#

now what cave did i end up in here?

frail dune
#

welcome.

woven yew
inland field
#

I KNOW, we will have to write commits and shit in the most broken english ever

woven yew
#

And method names

#

Etc

frail dune
woven yew
woven yew
#

E.g. not only toki pona

frail dune
#

yea ofc

woven yew
#

All languages

frail dune
#

😭😭

#

this gonna be so good

woven yew
#

And afterwards

#

We need to gather a sum of money

#

And send this project

#

For a professional code review

inland field
#

LMFAO

frail dune
#

YESSSSSS

misty violet
#

The docs should include a language that we just created, Spilang

Spillo hogot (Hello world)

frail dune
#

NONO

#

wait

woven yew
frail dune
#

better idea

inland field
#

My broken french (it's not even french at this point) will be the best thing about the documentation

frail dune
#

go to papermc generla

woven yew
frail dune
#

and ask about opinions on it

inland field
woven yew
#

"CombustMC est une meilleur performanté et configurablé spigotmc fork non basé au ペイパーMC"

#

Reminder

frail dune
#

and switch every accent

woven yew
#

"CombustMC is one of the most performant and configurable spigot forks that do not base on paper"

inland field
frail dune
#

plural

inland field
#

Idk plural

frail dune
inland field
#

I only know le, la, de, au and pour

frail dune
#

skull

lost vessel
#

enough for a language

woven yew
#

コンバストMCはペイパーMCのベイズじゃないしベストだしペルフォーマントだしコンフィグラブルなスピゴットのフォークです

#

Basically almost every word is transliterated

#

Configurable -> konfiguraburu etc

frail dune
woven yew
#

So that it would be absolutely horrible and unreadable

#

I bet those words don't even exist in japanese

#

I tried my best to make it as broken as possible

lost vessel
#

yet its still true

#

it aint no waistcoat

frail dune
#

no waistcoat 😭

woven yew
#

Wait i made a typo 1 sec

inland field
woven yew
#

Try this

inland field
#

Where tf are we gonna get spigot 1.7.10 from

#

Doubt that shit is hosted anywhere

woven yew
#

Idk lmfao

#

Our project manager @frail dune will find it

frail dune
#

erm

#

okay

#

i'll try

woven yew
#

"i'll try" you WILL do it

frail dune
#

stash not loading concern

inland field
#

Does anybody know what rev 1.7.10 is

woven yew
#

Not me

frail dune
#

1.8 is the earliest branch i could find

inland field
#

Yeah

frail dune
#

okay

#

hear me out

#

we say we are 1.11.1

inland field
#

If you know the rev for 1.7.10 I'll get it easily

frail dune
#

we then admit to using 1.7.10

#

but use 1.8

inland field
#

LMFAO

#

Bro carried

frail dune
#

i kinda cooked

misty violet
woven yew
#

Tooo good for us

#

We need worse

inland field
frail dune
inland field
#

Lmao

frail dune
#

and pretend we actually use 1.11.1

#

but then it's actually 1.8

frail dune
#

but it's actually not

misty violet
frail dune
#

genius right

inland field
#

What if we actually rename the cb and nms package to combustmc_1_7_10 to fuck with cb and nms users

misty violet
#

Use 1.20.6 but rename to 1_7_10 and say it's 1.11.1

inland field
#

Lmao

frail dune
#

no no

#

rename to 1_77_10

#

say it was a typo

inland field
#

There should also be something that looks suspiciously similar to a backdoor but then it should just be some weird impl of something

frail dune
#

xz

#

we include the xz backdoor

woven yew
inland field
woven yew
frail dune
woven yew
#

we were planning on making this fork as unsecure as possible

#

but no backdoors

frail dune
#

aww

woven yew
#

Outdated libraries with vulnerabilities and exploits (not including log4j exploit bc that's effortless)

misty violet
inland field
#

Lets just add something that looks like it's downloading a class when it's really just some shitty reflection

frail dune
#

LMAO

woven yew
woven yew
misty violet
#

It's impressive how bad developers are when naming things, but how good we are with naming things wrongly

inland field
woven yew
#

we need to not use some stdlib stuff (like Collections or something) and make our own horrendously slow and buggy implementations, but make them all private so they can be only instantiated with reflection, and every method should also be private

woven yew
inland field
#

Bro wtf

woven yew
#

use our impl somewhere and use collection somewhere

woven yew
# inland field Bro wtf

this is so that people wouldn't be able to use stuff they are comfortable with when working with the api

frail dune
#

and i will make horrid examples

woven yew
#

and yk what

frail dune
#

500 line example of hello world which includes one text component

#

also

#

let's make text api as horrid as possible

inland field
#

Yk what

woven yew
#

@nimble pivot is currently rewriting the JVM
so we need him to make a fork of any jvm and unoptimize it in some places etc

inland field
#

Let's, just to laugh at spigot, introduce a fully-working, completely ideal component api

woven yew
#

no bc text is too crucial for many plugins

#

we don't want something important to be good

inland field
#

Like, everything is burning and then there is just a component shining above the fire

woven yew
#

if you'll take the responsibility of writing the component api then sure

inland field
#

why not

frail dune
#

ykwhat

#

i will

#

fork adventure

inland field
#

It'll also break all usages of strings

frail dune
#

make it as horrid as possible

#

yes

#

pull a paper

inland field
#

It should use components even in the bukkit logger or broadcast

#

Even when it's to the console or somethijg

#

Aleays component

frail dune
woven yew
#

I HAVE AN IDEA

frail dune
#

lol

lost vessel
#

deprecate everything as a style guide

frail dune
#

yea

inland field
#

But don't overload, just replace with components so 0.01% of plugins work properly

#

Also use some weird package name

frail dune
#

textkomponenten

woven yew
#

Make the component API classes (e.g. TextComponent or something you come up with) have no direct toString() method and then use toString() in the logger
So it'll be something like this in the console

[23:11:23] [Server thread/INFO] TextComponent@aa9b2857
[23:11:23] [Server thread/INFO] TextComponent@aa9b2857
[23:11:23] [Server thread/INFO] TextComponent@aa9b2857
frail dune
#

YESSS

#

OMG

#

YES

inland field
#

organizatione.buquit.serveur

inland field
#

organizatione.buquit.serveur.komponenté.écriture_Komponenté

frail dune
#

yesssssss

inland field
#

And use like 5 different package names for bukkit

frail dune
#

this is gonna be so good

#

this feels so wrong

inland field
#

What's that

frail dune
#

live updating event team players

acoustic tartan
#

we should write some docs in french too

inland field
#

Ofc

#

But very bad french

woven yew
#

read the pinned messages

inland field
#

Like mine

acoustic tartan
#

and add some randoms hashes to the end of the doc

inland field
#

Mon francąis de bien

woven yew
#

we are writing docs in every language we can

acoustic tartan
woven yew
#

but badly

acoustic tartan
inland field
#

Mon francąis est bon?

woven yew
acoustic tartan
acoustic tartan
#

ching chong chuang

woven yew
#

sick

#

ah

inland field
acoustic tartan
woven yew
inland field
frail dune
#

same pensive_cowboy

#

this is the most confusing class i've ever seen

inland field
woven yew
cunning pumiceBOT
frail dune
#

look at this beauty

acoustic tartan
#

he said : "I kill babies"

woven yew
#

?

frail dune
#

what..

acoustic tartan
woven yew
#

photoshop

frail dune
#

@inland field@inland field@inland field@inland field@inland field

frail dune
woven yew
woven yew
#

???????????????????????????????????????????????????????????????????????????????????

#

paulem you got competition move the fuck aside

acoustic tartan
#

We should make some fields with mojang naming, other with spigot naming, classes with intermediary naming, method with obfuscation naming and parameters with yarn naming

#

I think that would help to work with NMS

#

And that would be PERFECT for CVN

acoustic tartan
#

bruhhhh

#

if we really make CombustMC that would be insanely trash and a big waste of time

#

but I think we would learn a lot about spigot and jvm lol

misty violet
#

||(i do the same)||

woven yew
#

Yall have no business pinging me this muchg

woven yew
nimble pivot
#

you have no idea the horrors I've seen working on this stare

#

there are 11 opcodes to load an int

woven yew
inland field
nimble pivot
# woven yew W H Y

LDC <- can load an int
ILOAD <- loads an int
ICONST_0 to ICONST_5 load their respective number
ICONST_M1 loads -1
BIPUSH <- loads an int

frail dune
#

tf

nimble pivot
#

BIPUSH albeit is pushes a byte as an integer onto the stack

inland field
nimble pivot
#

Load Constant

inland field
#

Ah

nimble pivot
#

ILOAD is used for (probably non-constant) integers

#

LDC is used for all constants

#

Fun enough

#

LDC is also used for loading class references

#

i.e.

inland field
nimble pivot
#

ldc Ljava/lang/String;

loads String.class

inland field
#

Damn

#

Does it also push it to stack immediately?

#

Or does it just load

#

For whatever reason

nimble pivot
#

get_static doesn't use iload OR ldc

#

so actually 12 ways

#

there is also get_field

inland field
#

I KNOW WHAT WE HAVE TO DO, rewrite some of nms in bytecode for 0 reason and then also write it right inside of the java files inside of the methods for no good reason and use a custom gradle plugin to compile that properly

nimble pivot
#

a for loop is like what

inland field
#

CombustMC needs it

nimble pivot
#

15 lines of bytecode for

for(int i = 0; i < max; i++) {
  System.out.println(i);
}
inland field
#

Show the bytecode

nimble pivot
#

had it somewhere wait

#
// Loads System.out
GETSTATIC java/lang/System, out, Ljava/io/PrintStream;

// System.out, 0
LDC -1
loop:
    // System.out, 0, 1
    LDC 1

    // System.out, 1
    IADD

    // System.out, 1, 1 
    DUP

    // System.out, 1, 1, 10
    LDC 10

    // System.out, 1
    IF_ICMPGE end

    // System.out, 0, System.out, 0
    DUP2
    INVOKEVIRTUAL java/io/PrintStream, println, (I)V, false

    GOTO loop



// End of method
end:
RETURN
inland field
#

Why // and not ; for commends

nimble pivot
#

It's a custom bytecode assembler my friend made

#

also javap uses //

inland field
nimble pivot
#

not really

inland field
#

Iirc

#

Well, there goes my internet

#

Bye

nimble pivot
#

it's just used so you don't have to go and look at the constant pool and analyze the stack manually lmao

inland field
#

Oh gosh

regal plume
#

wait nobody told me this channel is about bytecode

nimble pivot
#

I am going so crazy from bytecode all my talk is bytecode

inland field
nimble pivot
#

do you want to know that there are only two dconst_x instructions and three fconst_x instructions?

regal plume
#

ig they didnt have enough bits to represent all opcodes that way

#

mostly historical stuff

regal plume
#

the whole byte range for opcodes is already occupied no?

nimble pivot
#

well, 48 more are allowed

inland field
#

Some reserved

regal plume
#

well that shouldve been filled after java 8

nimble pivot
inland field
#

Most shit is just compiler tricks, not really bytecode

nimble pivot
#

^

#

DO YOU KNOW

#

switch statements are so fancy

#

they get TWO instructions

regal plume
#

are there any holes then? as it ends in ff

nimble pivot
#

tableswitch
lookupswitch

nimble pivot
#

last instruction iirc is like c4?

regal plume
#

guess i didnt notice

inland field
nimble pivot
#

they are ordered randomly

nimble pivot
#

tableswitch is used for enums

#

and when the difference between numbers is always 1

#

lookupswitch is used as an O(log n) alternative for every other case

inland field
#

ok

regal plume
inland field
#

Normal instructions end at c9

regal plume
#

ah i see

nimble pivot
regal plume
#

what

nimble pivot
#

why the opcodes like that

#

making your own jvm?

regal plume
#

kinda

nimble pivot
#

wyd then

regal plume
#

exactly that

nimble pivot
woven yew
inland field
#

Performance

#

There is just a certain set of numbers that get their own constant values

woven yew
#

i hate this

inland field
#

I love it

regal plume
frail dune
#

@woven yew when can we start

woven yew
#

remember that you're the project manager

#

you are responsible for distributing workloads

frail dune
#

i'll try to get a 1.8 spigot fork running and rename the cb package to v_1_7_10

woven yew
frail dune
#

oh

woven yew
#

so you actually have to do your job properly

frail dune
#

mb

frail dune
woven yew
#

lmao

frail dune
#

okay i'll try 🫡

acoustic tartan
#

Bruh

#

We should try CVN on that after lol

#

He will panic

frail dune
acoustic tartan
#

We should mark the most used methods as @Deprecated

frail dune
#

yeah we planned that

acoustic tartan
#

Perfect

#

I'm too late 😔

frail dune
#

check da pins