#MosaicMC!

371 messages · Page 1 of 1 (latest)

tidal moss
#

Hello there!

I've been working on a new toolchain called MosaicMC, which aims to be like bukkit but It will avoid the issues that bukkit currently has, while still maintaining its positive aspects. The framework is designed for kotlin and will be kept up-to-date with the latest versions, instead of focusing on backward compatibility like bukkit did. MosaicMC is user-friendly and comes with comprehensive documentation. If you are interest in helping or using the toolchain, check out https://github.com/MosaicMC. Core of toolchain is already released on modrinth as alpha, check it out https://modrinth.com/mod/mosaiccore!

lyric pier
#

thinkies

The plugin loader itself only supports kotlin (due to backend stuff with jvm).

#

It is neat idea tho

tidal moss
plush harness
#

great but

#

kotlin

#

modrinth

tidal moss
tidal moss
plush harness
#

no

#

absolutely not

tidal moss
#

yes

plush harness
#

not in any way shape or form

#

kotlin is a fucking cancer

#

java is the one true JVM language

tidal moss
#

i already said why kotlin > java

plush harness
#

the ONLY JVM language that should exist!!

#

kotlin sucks like a brand spanking new hoover

tidal moss
#

did you know that jvm bytecode has features that java doesnt support at all

#

so jvm isnt made for java

plush harness
#

uh huh

#

it is

plush harness
#

Java Virtual Machine

tidal moss
#

and what

#

what does the name changes

plush harness
#

it is made for java

#

wouldn't be called the JAVA virtual machine otherwise

#

would it

tidal moss
#

clearly not if there are features that java doesnt support

plush harness
#

ok I am going to make a CSharp Virtual Machine
btw it has no relation to C#

tidal moss
#

it is called dotNet

plush harness
#

no actually

#

.NET is a framework

#

C# is the language

#

it runs on the CLR

#

well, CIL runs on the CLR

#

C# is compiled to CIL bytecode

#

(Common Intermediary Language)

#

The CLR (Common Language Runtime) then runs CIL

tidal moss
#

ok but still dont care becuz it is just language for bindowz

plush harness
#

fucking what

#

the CLR runs on linux too???

#

a friend of mine runs arch (as do I) and he swears by C#

tidal moss
plush harness
#

what.

tidal moss
#

if you do, then you have no sanity

plush harness
#

wh-

#

hhhh-

#

Terraria is written in C#

#

It runs on Linux

tidal moss
#

there are way better languages on linux than c#, example: java

#

and kotlin being the best high level language fr

plush harness
#

wrong

tidal moss
#

you can compile kotlin to anything, kotlin has the best null handling i have ever seen, it allows you to write both OOP and functional, it is very feature rich, minimal syntax (not too verbose but still great)

plush harness
#

ok koomer

tidal moss
#

ok boomer

plush harness
#

i'm 17

tidal moss
#

but talks like boomer fr

plush harness
#

ok zoomer

tidal moss
#

ok boomer

tidal moss
#

The core gonna be soon on modrinth as alpha version hahayes

#

just gotta implement some data converter for config

plush harness
#

this is your weekly reminder to fuck kotlin

earnest lotus
tidal moss
#

go use real language and not primitive one

earnest lotus
#

Primitive my ass kotlin looks like p🤮thon

tidal moss
#

or rust

earnest lotus
#

Hell naw

tidal moss
#

it doesnt even touched python

#

how the fuck do you see anywhere python

#

it is like saying on any language ever "it looks like python becuz why not"

earnest lotus
#

The syntax is ambiguous

tidal moss
earnest lotus
#

As hell

tidal moss
#

it is less verbose than java and tries to fix all java garbage

earnest lotus
#

Where are my lovely strongly typed variables

#

Where are my clear naming schemes

tidal moss
tidal moss
earnest lotus
#

Fuckin fun

tidal moss
#

function

earnest lotus
#

How should i know what the hell that returns

tidal moss
#

by looking at type

earnest lotus
#

(im joking ok)

earnest lotus
#

But imo, actually, kotlin looks eeever so slightly too js if comparing to languages i know

tidal moss
#

more like typescript but whatever

earnest lotus
#

Well yes

tidal moss
#

also kotlin can be used to replace JavaScript

earnest lotus
#

Also
Kotlin RUINS the decomplibility of java

tidal moss
#

too bad

earnest lotus
#

Which imo is a good feature

#

Too bad my ass

tidal moss
#

stop decompiling random code, just look at source code smh

#

and there are kotlin decompilers for jvm too

earnest lotus
#

What if i don't have source anymore

#

What if i lost it, for example

tidal moss
#

thats sounds like skill issue

earnest lotus
#

Valid point but it happens all the time

#

Just use cil or jvm bytecode at that point

tidal moss
#

i mean, it is like saying "What happens if i lose code of Rust app, "

earnest lotus
#

Yes.

tidal moss
#

it is compile to native btw

earnest lotus
#

Ik

#

Dont we all love looking at generated c pseudocode from cheatengine?

#

Note: /s

tidal moss
#

but also yall have problem with kotlin not even have actual argument against it

#

i mean every language will copy from themselves

#

java copies from C/C++

earnest lotus
#

My point is that you should support java, even if you like kotlin more, because more people use java.

tidal moss
earnest lotus
#

Uhh
Make them not use comanions in that case?

tidal moss
#

i cant they need to be accessible by instance, something like static value in java but objects are better becuz safer due to not being static

#

also it is not that hard to implement companion object in java

tidal moss
#

@earnest lotus k so i have better idea, im gonna make so you can register an event that then you can call on, which makes so you can make events without companion object, making it java comaptible hahayes

#

it is gonna look like this EventHandler.registerEvent(Identifier("test:test"), EventObject())

earnest lotus
#

That works

tidal moss
tepid spear
#

reading y’all arguing about this was funny as hell

tidal moss
#

modrinth take so much time to accept the mod lol

#

nvm

tidal moss
#

@earnest lotus so what do you think if the EventHandler worked like this

earnest lotus
#

seems much more fine

tidal moss
earnest lotus
#

seems fine

tidal moss
#

i learnt how to use DSL in kotlin lol

tidal moss
#

so im gonna be remaking the event handler

tidal moss
#

Update on the api state

#

thats how it is gonna work lol

tidal moss
tidal moss
tidal moss
tidal moss
#

from now on the versions will be broken into branches (way easier for changelogs)

tidal moss
#

MosaicCore 1.0.5-alpha

What's Changed

  • Added more reified arguments
  • Removed utils
  • No need for event to be registered (removed registration functions for events)
  • No need for listener to be registered (moved registration functions to private)
  • No errors from not registration event
  • Removed before plugin initializer as it is useless
  • Updated to pre-6

Full changelog: https://github.com/MosaicMC/MosaicCore/commit/98845f4
modrinth https://modrinth.com/mod/mosaiccore
github https://github.com/MosaicMC/MosaicCore

tidal moss
tidal moss
# earnest lotus why

due to losing github student pack so i will get more stuff on gitlab than github lol

earnest lotus
#

what's wrong with github free

tidal moss
earnest lotus
#

ok
i don't like gitlab's gui

tidal moss
earnest lotus
#

...why

#

it's small and hard to navigate ino

#

imo*

tidal moss
earnest lotus
#

also where is the file tree

#

the new and cool and nice GH feature

tidal moss
#

idk

#

well then

#

gotta back for github

#

but on github i have repository mess

tidal moss
tidal moss
#

Codecs are so hard to make lol

plush harness
#

yeah, just stick with MP3

earnest lotus
#

or ogg

plush harness
#

it is raw uncompressed audio

#

straight up PCM

earnest lotus
#

ok

plush harness
#

Ogg Vorbis is good too I guess

#

Used in Minecraft and....

#

um...

#

Cave Game

tidal moss
#

something like mojang has

earnest lotus
#

i was referring to lili's joke

tidal moss
#

bruh

tidal moss
#

they released 1.20 and now they are making 1.20.1

#

i havent even updated my mod yet

earnest lotus
#

Wait wha
1.20.1

tidal moss
#

they today started doing huge amount of bug fixes

tidal moss
#

it took me too much time lol

earnest lotus
#

Nice

#

Seems reasonable enough

#

Also, welcome to CodecHell

tidal moss
#

what codec hell?

earnest lotus
#

The hell that is DFU

tidal moss
#

DFU?

earnest lotus
#

The mojang DataFixerUpper library

#

What you're using

tidal moss
#

im not using it

#

:)

earnest lotus
#

Wha-

tidal moss
#

i wrote completely my own :)

earnest lotus
#

Do you do your own serialization

#

Oh fuck you

#

Now make it crossclmpatible eith vanilla codecs

#

Interchangeability is good, for hooks etc

tidal moss
#

no lmao

earnest lotus
#

💀

tidal moss
#

my code shall be clean from mojang dog shit

earnest lotus
#

Why have you done this to me

tidal moss
#

im doing what mojang should do but better

#

lol

earnest lotus
#

Yes
So make it jank with mojang shit
So people can call your stuff from mojang & their own dfu-based code

#

Like SmartBrainLib

tidal moss
#

why

earnest lotus
#

To be able to fully utilize it

#

So you don't have to make mc codec stuff again

#

Don't reinvent the wheel

#

Even if it's a shitty wheel, make it so you can put back another, even newer wheel at some point

tidal moss
earnest lotus
#

No, just do the jank only in the converter?

tidal moss
tidal moss
#

as mojang codecs is dog shit code

tidal moss
#

actually i wont be including codecs with mosaic core

#

im gonna make it as separate library

earnest lotus
#

Even better

tidal moss
#

actually why not rename it as framework?

#

instead of plugin loader

tidal moss
#

"Framework create for creating server-side mods in kotlin, using fabric loaded"

tidal moss
#

i need da response lol

earnest lotus
#

That works

tidal moss
tidal moss
tidal moss
weak sigil
#

neat mod (no not the one by vazkii)
i was asking if there was something like this the other day on modrinth

weak sigil
#

basically i wanted to know if there was a server framework on top of fabric since some people were using fabric instead of spigot for serverside stuff

tidal moss
#

which isnt complete... but there is

tidal moss
#

thats gonna be i think last alpha build

#

a0.0.8

tidal moss
#

i have no time to work on this shit

#

nor idk what to add to the core, only thing i can do is to start create new libraries

#

i need to find out more features to add to the core

weak sigil
#

are you making plugins with mosaicmc? seems like the best way to figure out what you need + adds incentive to use it

tidal moss
tidal moss
tidal moss
#

oh i have an idea

#

im gonna add multi threading to events!

weak sigil
#

what's the use case for that (asking as a figurative rubber duck who understands what you mean, not as a modder)

#

oh performance i guess

#

at the same time people will have to worry about thread safety right

tidal moss
weak sigil
#

sensible ig
(i’m not a java programmer so i don’t know but shhhh)

inland stone
tidal moss
#

got destroyed

plush harness
#

no actually, TWO months ago

#

if you have to dig up things from several months ago in an attempt to validate your virtue signalling

#

then I think your scarecrow is broken

#

didn't even ping me and say it to my face lmao

weak sigil
earnest lotus
tidal moss
inland stone
#

i was just scrolling the channel tbh i wanted to see what this project was

#

i dont care abt how old it was no one changes their entire person in a month

#

pedo sympathiser 👍

earnest lotus
#

yk, I don't like either
I like quilt people just even less

inland stone
#

wdym cancel culture fan

#

i dont like quilt that much either i just dont like fabric ebcause of personal experiences lmfao

#

my main loader is forge

#

/shrug

earnest lotus
#

i thought you were a quilt fan

plush harness
#

not saying either is morally right

tidal moss
plush harness
#

that is a can of explosive worms I am not opening

#

not getting into semantics here because of rule 9

tidal moss
#

at least this thread is more active than #1037515046814761020

plush harness
#

but my point is, one illegal thing doesn't always automatically imply the other, even if the two are closely linked

#

lmao

tidal moss
tidal moss
tidal moss
#

290 messages!

tidal moss
#

im working on mosaiccoder library, what do you think of this codec example?

#

also you can add fields without testBy

#

(string is exmaple, i will be replacing it with JsonObject lol)

#

or more likely immutable map lol

#

better example

inland stone
#

not quite sure what it’s showing

#

codecs are already pretty easy outside of unboundmaps and xmaps

earnest lotus
tidal moss
earnest lotus
#

weeellll

#

fair

#

you never even got to the important part

tidal moss
#

codecs are just shit

earnest lotus
#

codecs are exactly what they need to be

#

a type-agnostic type conversion library

tidal moss
#

also codecs have broken support with kotlin

#

due to how shitty it generic

inland stone
#

codecs are fucking amazing

#

and no they arent broken with kotlin

#

i use them loads in kt

tidal moss
inland stone
#

i used them all the time

#

ive never had an issue with them in kt

tidal moss
#

i have this code

#

and it immiediately errors on compile time

#

with error that i cant decipher

inland stone
#

this is all i can show but

val CODEC: Codec<LandmarkSpawnData> = RecordCodecBuilder.create { instance ->
            instance.group(
                LandmarkSpeciesData.CODEC.listOf().fieldOf("species").forGetter { it.species },
                Codec.INT.fieldOf("max_delay").forGetter { it.maxDelay },
                Codec.INT.fieldOf("min_delay").forGetter { it.minDelay },
                Codec.INT.fieldOf("max_nearby_entities").forGetter { it.maxNearbyEntities },
                Codec.INT.fieldOf("player_range").forGetter { it.requiredPlayerRange },
                Codec.INT.fieldOf("cooldown").forGetter { it.cooldown },
                Codec.INT.fieldOf("duration").forGetter { it.duration }
            ).apply(instance, ::LandmarkSpawnData
            )
        }

this works perfectly fine

#

i use optionals in others too and never had an issue

tidal moss
#

what kotlin version do you use

#

becuz it is erroring on compile time

inland stone
#

1.8.22?

#

i think

#

not on 1.9 yet

tidal moss
#

update to 1.9

inland stone
#

cant

#

qkl not on 1.9 yet

tidal moss
#

use fabric language kotlin

inland stone
#

qkl updates soon

#

will let u know when it updates

tidal moss
#

i dont really care as i dislike anything made by quilt and for quilt

tidal moss
inland stone
#

¯_(ツ)_/¯

#

doesnt for me

#

works on forge too

tidal moss
#

but try my code

#
fun preInit() {
    logger.info("Welcome to mosaicmc!")
    val codec =
        RecordCodecBuilder.create {
            it.group(
                    Codec.STRING.optionalFieldOf("test", null).forGetter<TestCodec> { it1 ->
                        it1.tester
                    }
                )
                .apply(it, ::TestCodec)
        }
    codec.parse(JsonOps.INSTANCE, JsonObject())
}

data class TestCodec(val tester: String?)```
inland stone
#

i'll maybe try later when i'm at my pc

tidal moss
#

stfu codecs

#

i have found the issue

#

the generic over here issued v

#

.forGetter<TestCodec> { it1 ->

tidal moss
#

working on config library noises

tidal moss
#

i cant get myself to work on the library ;-;

tidal moss
plush harness
#

tf is an indy

#

the car thing?

tidal moss
#

instead of creating classes per lambda, it uses lambdadynamic

plush harness
#

oh

#

indy

#

invokedynamic

tidal moss
tidal moss
tidal moss
tidal moss
tidal moss
#

gonna release the config library on modrinth

tidal moss
#

MosaicCore 0.2.0-beta for Minecraft 1.20-1.20.1

  • Changes on events handling
  • Fixed issue with even not calling
  • Moved extension functions into different files
  • Minimized size of binaries
  • This update will result in binary incompatibility

Full Changelog: https://github.com/MosaicMC/MosaicCore/compare/b0.1.5...b0.2.0
Modrinth: https://modrinth.com/mod/mosaiccore
Curseforge: https://www.curseforge.com/minecraft/mc-mods/mosaiccore
Github: https://github.com/MosaicMC/MosaicCore

tidal moss
tidal moss
tidal moss
tidal moss
#

i didnt touch it for some time hmmmm

tidal moss
#
  • [x] test
#

that sucks

#

[ ] a