#1.20.2

1 messages · Page 1 of 1 (latest)

wise forge
#

So, first impressions of the new snapshot (23w31a), Mojang made a code style guide.

lethal bane
#

wait, a style guide?

stray scroll
#

WHAT?!

lethal bane
#

also someone get maintainers in here <@&1128776937410670663>

stray scroll
#

all the king's horses and all the king's <@&1128777120068423680>s

lethal bane
#

seems like I can do that too thinkies

fallow sundial
#

everyone can do that

feral moat
#

What do you mean by made a code style guide…

lethal bane
#

I can't ping the snapshot people

fallow sundial
#

@wise forge clarify or stabolb

wise forge
#

Most of their codebase has essentially been reformatted into a particular style

arctic sphinx
#

Probably looked at the changes in Snowblower?

wise forge
#

Either that, or vanillagradle has done something different this time

fallow sundial
#

how would you know?...

wise forge
#

Which is annoying

#

Which, you know, probably is the case

#

Because I'm just tired today...ugh

arctic sphinx
arctic sphinx
wise forge
#

Welp, time to regen everything again

nova sundial
#

so uhh, when did neo plan to do the "hard break"? Was it 1.20.2?

arctic sphinx
#

afaik Yes

#

As of 1.20.2 (or really it was 47.1.3 since Forge had BCs) we're no longer guarenteeing compat

lethal bane
#

when mojang breaks most mods (i.e. now 1.20.2 confirmed)

muted hemlock
#

I remember somebody floating a plan to treat the first 1.20.x version with feature previews as the start of the "unstable" period, and the last 1.21.x version without feature previews as the stable version / LTS candidate

thorn tiger
wise forge
#

Probably, though currently this is telling me I should sleep before writing the primer

fallow sundial
#

sleep is good

tacit vale
#

@wise forge I updated IntelliJ and in reader mode it now adds fake spaces to get to 4 spaces per indent

#

You can turn this off to get back to three spaces by clicking Reader Mode in the top right

fallow sundial
#

psure VF is 4 spaces

inland mesa
#

3 spaces shudder

inland mesa
#

(if 1.20.2 ends up with annoying changes or upcoming features)

tacit vale
#

Have y'all been discussing the contents of the snapshot??? It's crazy!

inland mesa
#

it has some very interesting changes wrt protocol

#

at least on paper

#

haven't seen the code

tacit vale
#

Agreed

tacit vale
#

lol

#

Ik it made me go crazy too

lean warren
wise forge
#

Well, I'll write up the primer later tonight once I get a bit of my head back. I'll help with the private stuff later

tacit vale
#

ahh

#

thanks

mossy bobcat
#

I do love that new feature

lethal bane
#

so that's why reader mode broke kek

mossy bobcat
#

It's great. No more ugly weird spaces in generated sources

lethal bane
#

now I have a different problem harold

tacit vale
#

cuz the s paces it adds are literally fake/invisible/can't be copied

mossy bobcat
lethal bane
#

so it looks very broken

#

see #squirrels-🦊 message

formal plume
#

wow
even just reading the changes took a while

#

there are some really interesting changes here

dull bison
#

even the discord post is long

formal plume
#

the stuff they are doing with commands is really interesting but not sure how many people actually use it

#

been a while since i saw vidoes of command creations

#

I already have a usage idea for the overlay stuff if we manage to expose it for mods
it could be use to toggle optional content

mossy bobcat
#

Oh yeah, definitely. Currently you have to register your own pack source thing for that. This would be an amazing system for that

formal plume
#

(my mod would have a setup where it is technically possible to completly break the game if enought time is spent.......(as in switch to creative). so those features could be in an overlay and disabled on servers)

lethal bane
#

🍞❓

muted hemlock
#

afaict the main intention of overlay packs is optional compat for specific minecraft versions

e.g. you make a pack that works on 1.19.2 and 1.20.1 and you have an overlay pack that uses worldgen stuff from 1.20.1, in 1.20.1 the overlay pack is automatically used, in 1.19.2 it's ignored

#

noodogthonk if we could expand that it might be something we could use with iconditions, having overlay packs that load if and only if a specified mod is loaded

lethal bane
#

you could also make a pack that works on all future version by just making it only out of overlays kek

muted hemlock
#

I already do that though

#

I haven't updated my pack.mcmeta from 6 in years

#

minecraft doesn't actually care

lethal bane
#

yeah, it's mainly for users

formal plume
tranquil salmon
fallow sundial
#

1.20.2

tranquil salmon
#
      if (!($$6 instanceof FlowingFluid flowingfluid)) {
         return false;
      } else {
         FlowingFluid flowingfluid;
         Block $$7;
         boolean $$8;
         boolean flag2;
         label82: {
            blockstate = p_150717_.m_8055_(p_150718_);
            $$7 = blockstate.m_60734_();
            $$8 = blockstate.m_60722_(this.f_40687_);
            if (!blockstate.m_60795_() && !$$8) {
               label80: {
fallow sundial
#

VF do be something thinkies

muted hemlock
#

oh good more fluid changes

tranquil salmon
fallow sundial
#

huh

lean warren
fallow sundial
#

proguard strips the acc_record attribute for empty records now

lean warren
tranquil salmon
#

I think this is meant to be a choice statement

nova sundial
#

let's ask fry /s

kindred fractal
#

vineflowern't moment

fallow sundial
#

flowern't'n't

tranquil salmon
fallow sundial
#

trim moment

tacit vale
#

@tranquil salmon we should have a flag in FART (now ART) to restore the acc record flag!

#

try enabling that

#

and make sure you're using all the neoforge libs that have been moved over if possible

#

I know at a minimum ART

tacit vale
#

Fix it then u should have commit access

#

if u don't I'll give it to you

#

if u feel like it u can also ping me to give it a sanity check

tranquil salmon
fallow sundial
#

push then thinkies

tacit vale
#

not the actual fix but the part you didn't include, the jopt change in Main, is wrong

#

I guess I didn't articulate it which is my bad, but I wanted a commit link on a fork somewhere or a full diff but this is fine it's just minor but probably good to fix still

tranquil salmon
#

the configuration start packet calls clearClientLevel

#

which does this:

      this.gameRenderer.resetData();
      this.gameMode = null;
      this.narrator.clear();
      this.updateScreenAndTick(p_294558_);
      this.gui.onDisconnected();
      this.downloadedPackSource.clearServerPack();
      this.level = null;
      this.updateLevelInEngines((ClientLevel)null);
      this.player = null;
      SkullBlockEntity.clear();
tacit vale
wise forge
#

Oh hey, don't you love chunk classes? Well, too bad! They're all called sections now

fallow sundial
#

lovely

wise forge
#

Also, gui sprites have been flattened into individual textures. The actual big texture is now stitched using a texture atlas

tacit vale
#

yeah that I knew from the changelog

muted hemlock
#

wait, chunk sections were the 16^3 things

#

what are the tall things called now

#

SectionStacks?

frail oriole
#

They use a texture atlas to generate Gui screens now?

tacit vale
#

Jenga time

tacit vale
#

all the mega asset files got split up

#

amazing for pack devs

frail oriole
#

Ok cool

#

It sounds like it might be possible to use this to assemble custom sized player and chest screens

tacit vale
#

why does it sound like that to you?

wise forge
#

Image scaling in guis that determines stretching, tiling, and nine_sliced is now data driven in the .png.mcmeta

tacit vale
#

as far as I'm aware this is just regular atlas sticking like how the block atlas work and you don't actually merge textures with this

frail oriole
#

Ok

#

I misunderstood

tranquil salmon
#

Using a \ then a new line doesn't allow you to insert a new line character into a command

sturdy phoenix
#

Has BootstapContext been fixed harold

lean warren
#

Nope harold

true pivot
#

interesting note I discovered while testing modernfix 1.20.1 on this snapshot: the handleUpdateTags packet listener method doesn't seem to fire anymore when joining a singleplayer world

#

not sure if this is just a misapplied mixin, or if tag syncing has changed

lean warren
#

handleUpdateTag() is a Forge addition, vanilla calls BlockEntity#load()

true pivot
lean warren
#

Ah, yeah, that changed a bit. Both sides now have a "common" packet listener (i.e. ClientCommonPacketListenerImpl), a "configuration" packet listener (i.e. ClientConfigurationPacketListenerImpl) and a "play" packet listener (i.e. ClientPacketListener) and the latter two extend the former. If you want to react to the packet in both config and play phase, then you need to target the common listener and not the specific one

true pivot
#

thanks mojang

wise forge
wise forge
tawny iron
#

splitting the sprites is interesting

#

and very nice

#

yayy... the absolute bare minimum expectation of a not-shit mobeffect system

winged hull
#

1.20.2 is already out?

sturdy phoenix
#

is the chunk -> section rename maybe the beginnings of a 3d chunk loading optimization? thinkies

tranquil salmon
#

new debug command only available when IS_RUNNING_IN_IDE is set to true: debugconfig

#

It basically just let's you put a player in or out of configuring mode

#

valid variable names for macros can only contain the characters [a-zA-Z0-9_]

mossy bobcat
#

Those function macros are cool and I'm definitely going to abuse them a bit

tranquil salmon
#

function that parses a string to an int

$return $(num)
true pivot
#

the DataFixTypes thing on SavedData is concerning, it's not clear how to get around that without just passing a random vanilla fixer there

tawny iron
#

configuring mode?

tranquil salmon
tawny iron
#

what's it for

true pivot
#

datapack registry stuff

quiet talon
#

does this mean biomes reload now thonk

tacit vale
#

without looking at the code it looks like reconfiguring stage is what proxies have been dreaming for

tacit vale
#

no idea what that word is but you can do a ctrl f to find it in ur primer

#

and "addition integer" I assume should be additional integer

#

"Calle when ..."

quiet talon
#

Calle wen

stray scroll
#

I'm guessing "atkes in" should be "accepts"
so it would be "#readPackInfo also accepts an additional integer to get the directory overlays..."

#

Better Calle Ash

tacit vale
#

btw ash this is great work

#

I have no idea how u have the motivation to doc all this stuff

#

this is gonna be a hellish port

#

I think it's best to wait for a few more things to get into 1.20.1 pipeline before I/someone else attempts it

#

esp. fixing server install + probably deferredholder

#

also perhaps waiting on vineflower to be ready? idk tho that would be even more work to port to...

stray scroll
#

this reminds me, I think I have yet to fix that parameter annotations bug in AutoRenamingTool which I discovered before the Forge kerfuffle

wise forge
wise forge
dull bison
#

I challenge you to document DFU

fallow sundial
#

professional docusaurator

wise forge
dull bison
#

proof or it never happened

wise forge
#

Fair enough, I guess I’ll just have to do it again

bold steppe
#

Doesn't the overlay stuff kind of solves the loot table and advancement issue we had the other day when discussing conditions?

kindred fractal
#

Well it only toggles based on resource pack version atm

wise forge
#

Ok fixed the typos...probably

lunar summit
#

net.minecraft.client.GuiGraphics#blitNineSliced, #blitRepeating, and #slices have been renamed and privated.
FFS Mojang, I just got done documenting GuiGraphics screm

wise forge
#

They're data driven now :p

lunar summit
#

(╯°□°)╯︵ ┻━┻

#

Screw this, I'm boycotting Minecraft.
#LetsAllMoveToRoblox
/s

dull bison
shadow widget
#

you define how they stretch/slice/repeat in mcmeta, now

muted hemlock
#

ewww

#

what if I want to nineslice a texture in more than one way

#

#getTotalChunks -> #getTotalSections
does that actually return the number of cubic sections instead of the number of stacked chunks now thinkies

normal wigeon
#

I love how I've been busy implementing actual Ninepatch support in images

#

Oh well, that means easier to implement Ninepatch support

wise forge
muted hemlock
#

SavedData$Factory
SavedData instances are now constructed through a $Factory record. This takes in the supplied constructor to construct the data when none is available, the function deserializer to construct the data from a tag, and the DataFixTypes for fixing the data when an error occurs. This currently cannot be null.

Both DimensionDataStorage#computeIfAbsent and #get take in a SavedData$Factory.
bruhhhh

#

half my SaveDatas dont' even serialize anything, I just use them to stick keep transient data around thinkies

#

guess we'll need to patch that in any case

#

unless making a noop DataFixTypes is easy

lethal bane
#

DataFixTypes
and

cannot be null
harold

mossy bobcat
lethal bane
#

I mean, I have no problem providing a datafixer if I knew how screm

#

I'd like to use them even

muted hemlock
#

oh DataFixTypes is an emum thinkies

#

err there's already a DataFixTypes for savedata in 1.20.1

#

DataFixTypes.SSAVED_DATA

#

what would happen if you gave that to a nonvanilla savedata factory

lethal bane
muted hemlock
#

I don't have 1.20.2 yet

lethal bane
#

fair point

dull bison
#

did nobody make a 23w31a neo froge yet?

#

/s

kindred fractal
#

there's not even a fabric yet, doubt there would be a neofroge so early 😛

#
  • I'd say getting neoforge to work is likely higher prio than neofroge
true pivot
muted hemlock
#

oh no

lean warren
feral moat
#

At least for now

sweet herald
#

I would like an ELI5 on 1.20.2

  • is it a breaking update in terms of mod support?
  • what exactly has changed to make compat break?
  • (likely very stupid question) what took so long between 1.20.1 release and the first 1.20.2 snapshot?
shadow widget
#

for the third one, summer vacations in Sweden

sweet herald
#

Bork

formal plume
#

What do you mean by the first?
If you mean what will change code side for mod makers. Than apart from the massive rewrites that mojang is doing there are many ideas that are being considered for improving NeoForge.
For those ideas look around in this ( #1105595318197825557 ) forum channel

sweet herald
#

I want to know the full context for both, but more so the former

formal plume
#

We don't have a fix plan yet. As we don't know what and how soon Mojang will change. Like if they release the next version in two weeks than nothing major breaking will be merged in time.

sweet herald
#

I am happy to see the changes on the snapshot, despite them not affecting me all that much, and I am also happy to see Mojang update progress pick up again, as there are a number of modmakers that are waiting for a 1.xx.2

tawny iron
#

why are they waiting on a .2?

formal plume
#

We are still a volunteer based project so what gets done will depend on who is available and how long.
So giving time estimates is really hard. And because of that giving change info is hard as well
But again currently the best way to see what change ideas are being brought up is to read the discussions in #1105595318197825557
Some of the notable ones are (as far as I see):
#1135328752658829312
#1131130393144336385
#1136448404495532133

sweet herald
tawny iron
#

or it could be a .1

formal plume
#

But these are just the NeoForge things. We have no idea what Mojang will cook up this time

formal plume
tawny iron
#

yep

#

waiting for a .2 specifically is silly lol

sweet herald
#

Inb4 the next snapshot actually updates something about the sealife

formal plume
#

Nah people are guessing desert cause of a Dev twitter post that had some stuff in the background

sweet herald
#

Apple cake? Waffles? Kanelbulle?

formal plume
#

That would be dessert 🎂

muted hemlock
#

analogous to 1.19.2 and 1.19.3

#

1.20.2 is going to break every mod that does gui stuff I think

sweet herald
#

Another reason that I can guess is that they are waiting specifically for NeoForge

tawny iron
#

what's the sting this time

muted hemlock
quiet talon
#

thats only for the misc widgets

muted hemlock
#

mojang's doing this to the gui widgets

#

(just the widgets, not the big background pictures)

quiet talon
#

it won't break that much unless you were relying on drawing the vanilla texture file

muted hemlock
#

all my mods with guis draw the vanilla texture file harold

quiet talon
#

you're custom drawing vanilla widgets?

fallow sundial
#

forge also draws vanilla widgets

#

that'll be fun too

quiet talon
#

that sounds terrible

#

that should just be part of the background texture, lol

muted hemlock
#

the background texture is the villager trade screen harold

fallow sundial
#

screem

muted hemlock
#

why make my own art when vanilla ships with perfectly good art

lean warren
#

Unless I'm completely blind, the empty arrow is not on the GUI atlas and is instead baked into the individual backgrounds. The full arrow is on the GUI atlas

fallow sundial
#

just make all of your blocks crafting tables

muted hemlock
#

oh right nvm I'm probably blitting from the furnace gui lol

lean warren
#

The GUI atlas also contains a bunch of duplicates screm

lean warren
#

I can give you the full atlas if you want

lethal bane
#

did you already port the mod?

lean warren
#

Nope, but vanilla has an export feature since 1.19.3 or 1.19.4

lethal bane
#

👀 it does?

tacit vale
#

Where?

lean warren
#

Yes, press F3 + S ingame and all atlases and dynamic textures (i.e. maps) get exported to screenshots/debug/

tacit vale
#

Oh cool

lean warren
tacit vale
#

Huh

#

What's that stoplight one

lethal bane
#

which one?

lean warren
#

Close to top left

lethal bane
#

ah, that one thinkies

lean warren
#

The stoplight ones are Realms expiry indicators

tacit vale
#

Oh

#

be me, never played realms

lean warren
#

I did exactly once 😄

bold steppe
#

Where is the main inventory GUI background?

lean warren
#

In a separate texture. The GUI atlas currently only contains widgets

bold steppe
#

Hm thought the point of having them in an atlas was less texture swapping

lean warren
#

I'm fairly certain that for the texture switches to matter in a UI context, they would first have to stop uploading after every little thing. A nine-sliced texture currently does at least 9 individual uploads to the GPU harold

bold steppe
#

Yay. To think about it now they swap even more as before they were mostly all on same texture per each screen

#

Guess performance in a gui isn't much of a concern

lean warren
#

My guess would be that their goal is to not need an individual background texture for most GUIs and instead draw a nine-slice of the "demo background" texture. The issue with putting GUI backgrounds on the atlas is that the size of the atlas could very quickly explode

bold steppe
#

I wonder if it would still compare to the modded block atlas tho

#

I mean mods can add just so many blocks that that thing gets huge

lean warren
#

Mods also add a ton of GUIs and their size is usually significantly larger than a single block texture

bold steppe
#

1 standard gui background should be 256 single texture blocks

#

Quite some indeed

tawny iron
#

this is a pretty good change imo

#

allows for people to customize individual sprites without conflicting

#

and even opening up those same sprites to animations

bold steppe
#

Yes nice snapshot. Just wish villagers would have been merged more. Zombie villager change was definitely needed but librarian one just seems like a shift of meta..

muted hemlock
winged hull
#

exactly

dull bison
tawny iron
#

it won't even change afaik?

#

it's just now you reference icons individually instead of the whole sheet

lunar summit
# lean warren

Why are there 5 arrow progression buttons with red X's over them Thonk

#

Crap forgot to turn off ping, sorry XFact >.>

dull bison
bold steppe
#

Isn't it because they are diff textures so packs can change them individually?

wise forge
#

^ That's what my thought was

vague otter
lean warren
#

Possible, no idea

sweet herald
#

So are you guys satisfied with how the directory system is working?

#

I am not complaining, but I have a few ideas/thoughts I would like to toss out

muted hemlock
#

which directory system

sweet herald
#
  1. Is it viable for library mods to be in its own directory, or at least a sub-directory of /mods/?
stray scroll
#

i'm guessing the pack overlay system?

#

ah, other thing

#

should we wait for all the ideas to be tossed out first thinkies

sweet herald
#
  1. I am not sure as to how tightly things need to be bound to the instance data directory. For instance, shader packs can benefit from being in a "universal" directory, and have the thing in the instance directory be a reference file
stray scroll
# sweet herald 1) Is it viable for library mods to be in its own directory, or at least a sub-d...

iirc, any kind of changing in where mods are loaded from, as in anything other than the direct children files of the mods folder, has been disfavored in the past
one of the reasons is that most players use a mod/modpack management tool, like CurseForge, and so this wouldn't have effect for them, and would possibly complicate modpack managers who now have to consider this new folder as well (like how modpack managers have to consider the coremods folder from bygone eras)

stray scroll
# sweet herald 2) I am not sure as to how tightly things need to be bound to the instance data ...

as far as I understand, we follow on the idea of the Minecraft launcher on installations -- each installation is separate and self-contained, with nothing being shared between installations
(the assets, libraries, versions, and other similar info are handled by the launcher, as part of the global .minecraft to reduce downloading everything anew, but even then the launcher can be configured via command-line iirc to hold separate assets/libraries/etcs. in another directory)

sweet herald
#

Library mods are designed to help out other mods, and do not do much of anything on their own

mossy bobcat
#

Yeah, no, it's not that clear cut

#

Take DynAssetGen, a mod I maintain. it gives tools that allow other mods to generate assets or data at runtime based on existing assets/data - this turns out to be pretty useful for all sorts of stuff. In this regard, it is a library mod. And indeed, if you just installed the mod, you'd notice no difference. However - DynAssetGen offers features that could act as standalone content too, depending on how you look at it - it gives tools that resource packs (or end users, or modpack makers, etc.) could use to generate their own stuff at runtime, without needing to write a full mod. It's sorta like, I dunno, CraftTweaker or something in that respect, which definitely isn't a "library mod".

#

This is one of the more benign examples I can think of

#

I've got other mods, such as JsonWrangler, that tow this line even more. Telling what should or shouldn't be a "library mod" is anything but obvious

#

But yeah - any sort of distinction you try to make like that will run into countless weird edge cases. Best to just keep everything in the mods directory - you avoid pain for modders, users, and modpack makers alike that way

quiet talon
arctic sphinx
#

<@&1067092163520909374> new snapshot dropped

wise forge
#

Agh, too early in the morning

mossy bobcat
#

Game no longer uses numeric values when storing mob effects to world (so, for example, 4 becomes minecraft:mining_fatigue)

wise forge
#

Oh hey, no more packet workaround for forge then

mossy bobcat
#

Mob effect instances now all seem to have text IDs

#

At least from the article

#

Haven't poked the code or anything yet obviously

wise forge
#

Neat

#

Ok, I’m going back to sleep, I’ll deal with this later

formal plume
#

this one looks smaller than the last one
wonder how long this snapshot period is gonna be

muted hemlock
#

I'm guessing they'll snake more fields in the upcoming weeks

#

datafixerupper go brrrrrrr

formal plume
#

yeah i wonder how much internal changes this snap has

frigid mountain
#

still quite a bit

formal plume
#

i'm kind hoping they do a bigger UI rewrite... more usable widgets and stuff

lethal bane
#

Gameplay packets are now packed into bigger TCP-packets to reduce overhead from TCP-headers, significantly reducing network usage
does that mean that the max payload size is now bigger than 1MB?

kindred fractal
#

not necessarily

#

it just means they merge small packets into a larger packet

#

or it could just mean that they increased the MTU idk

lethal bane
#

well, if someone could look at the new value of ClientboundCustomPayloadPacket#MAX_PAYLOAD_SIZE then we'd know thinkies

true pivot
arctic sphinx
#

Yes, and done

#

:p

true pivot
#

thanks!

daring ginkgo
#

I was also gonna ask that 😅

inland mesa
#

\o/ Game no longer uses numeric values when storing mob effects to world (so, for example, 4 becomes minecraft:mining_fatigue)

#

one less use of numeric IDs

muted hemlock
#

Was that the last one?

#

I thought biomes were but I checked and they use a per-section palette by string id

true pivot
#

biomes got changed a while back (1.18 iirc)

arctic sphinx
true pivot
#

I wasn't gonna bite lol

#

but no problem

inland mesa
#

damn if there's nothing else saving IDs to disk that'd be one less feature we have to preserve in #1131130393144336385

naive ridge
#

It was the last one. The method to register with fixed id was removed from vanilla
The Flattening is over!

true pivot
#

so IDs are finally a runtime thing only now?

stray scroll
#

bust out the champagne (or a non-alcoholic equivalent)!

gilded halo
#

(how long has it been since the flattening started? 1.13 released in 2018 apparently, damn)

muted hemlock
#

to be fair I also just implemented a feature people have been asking me for since 2018 harold

#

(pipe filters that can filter more than one item)

rare yacht
#

1.13 in 2018? feels like 2016 tbh

#

that's not that long

inland mesa
#

it's 2023, 2018 is 5 years ago

#

the issue is that 2018 doesn't feel like that long, not that it isn't ;P

pine ember
#

I think registry id persistence can be removed now 👍

stray scroll
#

another thing which Forge registries does, now down the drain

#

:catjam:

inland mesa
#

at this point the only reason to keep forge registries is registry replacement?

stray scroll
#

'reason' 😉 ( kekw )

#

as good as dead, then

inland mesa
#

cos DeferredRegister + vanilla can deal with everything else

pine ember
#

Still need to sync the raw ids.

inland mesa
#

I have mixed feelings about replacement. I think it's a good feature on paper, but there's so few places where it can be used without bringing huge downsides along...

stray scroll
#

theoretically promising, practically useless kek

inland mesa
#

yeah but that can be done by patching / extending the vanilla registries

stray scroll
#

just like many ideas!

gilded halo
#

maybe this is me primarily being a fabric modder but I don't really see the use-case for registry replacement? modifying vanilla classes with mixin, etc, seems less invasive than fully replacing them

inland mesa
#

I'm still of the opinion that mixins should be a last resort, and not the main tool your reach for

#

if something can realistically be done without them

#

but with registry replacements, at best, you get to a "last man wins" situation

#

where if two mods try to replace, only one can succeed

wise forge
#

Looks like a lot of fun things this update

stray scroll
#

the theoretical of it is that instead of coremodding into a e.g. block class to modify its behavior, you replace the block with your own version (extending the original block) which does your own stuff
essentially, the key points are no coremodding, and easier to do a future hot-reload since the only thing needed is to fire the registry events

jagged agate
gilded halo
#

oh right
ngl I forget that hot-reloading is a goal of (neo)forge

jagged agate
#

i rather have mixin conflict and get an error report than two registry replacing with one silently overridden and no one can debug why one mod isnt working

stray scroll
#

I'm not sure if it's a goal anymore kek

gilded halo
#

it just seems infeasible to me, when mods are fundamentally just a bunch of arbitrary code

fallow sundial
inland mesa
#

you will be missed...

#

or eh I guess maybe not

muted hemlock
inland mesa
#

I stopped using registry replacements when they started brekaing worldgen

#

so can't argue

muted hemlock
#

I guess if people really want to registry replace vanilla stuff they can mixin into the register calls in Blocks harold

inland mesa
#

Blocks are like the worst thing to replace though XD

#

any other registry replacement is less worse than blocks

wise forge
inland mesa
#

nods

muted hemlock
#

are loot tables still a reloadlistener?

mossy bobcat
mossy bobcat
wise forge
jagged agate
vague otter
vague otter
#

huh, i don't think stews could even have multiple effects before

rich void
rich void
muted hemlock
rich void
#

I read it too partially

muted hemlock
#

also some people have decompiled the snapshot and found things like, the big switch statement in MobEffect is replaced by effect subclasses overriding stuff

rich void
#

Oh that is better

dull bison
rich void
#

What's that?

sweet sundial
#

Oh lovely!

rich void
#

(I am a newbie when it comes to coding, I must say)

sweet sundial
#

In the past it was all hardcode in a base class, now each class can have a unique action.

quiet talon
#

after 20 versions that shitcode is finally gone?

rich void
#

Nice

inland mesa
# rich void What's that?

to provide a slightly more complete explanation: in Object-Oriented programming languages like Java, you define a "class", which is a description of the structure of an object. you can then use this class to construct objects of that type. but for what matters here, a class can inherit from another class, which means the class builds on the parent class, reusing parts it needs and adding/replacing things that must be different.
this means that you can have a skeleton of a class (what they call an abstract class), and have multiple subclasses which each "complete" that parent class with the logic they need.

#

if you have done any modding as your profile suggests, you probably have seen extends on classes, and @Override on methods

tranquil salmon
#

Somehow javac thinks the parameter for inventoryTrigger might be ItemPredicate.Builder[]

lean warren
#

As far as I can tell from looking at that in Snowblower output, it seems to fail to infer the generic type of the toArray() call. If I add an explicit ItemPredicate generic to that call, then it shuts up

tacit vale
#

That was the last vanilla holdover that stores int ids to disk!!!

#

This means we can entirely remove the serialization of int ids to world save

#

Mods that rely on it can get fucked

tacit vale
tacit vale
#

Ok so after reading the backlog everyone came to the same conclusion ages ago.

#

xD

tranquil salmon
#

They changed some instances of !var.isPresent() to var.isEmpty()

vague otter
#

now i just need to figure out who the C&B dev is

lean warren
#

Orion

vague otter
#

i've got a really clever idea half sketched out in my head for how to serialize an octree

prime quest
#

Serialised octree: the most important meal data structure of the day

bold steppe
quiet talon
inland mesa
bold steppe
inland mesa
#

the desync? yes

#

if you mixin a block to have more blockstates, forge can't detect that something has changed (it doesn't have a list of the original states, it only looks at registry replacement before / after) so it won't error, but then the state id map will be different and a vanilla client won't know about it

fallow sundial
#

that's why you use a library to add more states

bold steppe
inland mesa
#

same thing

#

mixin into SomeBlock vs replace the registration line is the same result: forge doesn't know it has happened

#

forge can only know if you used registry replacement

kindred fractal
#

Registry replacement is going away forever. Time to say goodbye

bold steppe
bold steppe
kindred fractal
#

not really, the point of the replacement is to replace the block with a custom subclass instead of using mixin to achieve the desired behavior changes

bold steppe
#

Right but how do you add new states and why does it seems that my mixin code manages to add states without issues?

inland mesa
#

this isn't about vanilla blocks but a vanillaclient connecting to forge server or forge client connecting to vanilla server

bold steppe
#

Ah right makes sense as to why it would only work with mods that are required on clients and servers

#

Anyways I'm just saying that just like you can register a new block (which makes vanilla connection not possible afaik) would be nice if you could add states with reg override with same effect

kindred fractal
#

again, registry replacement is going away

bold steppe
#

Ah so guess mixin is only way then?

#

At least it's easier for multi loader

jagged agate
# bold steppe Ah so guess mixin is only way then?

Use Statement library if you’re adding new blockstates to vanilla blocks. They handled all the edge cases that you won’t think of. I’ve been burned waaaaay to many times by other people thinking it’s an easy mixin to add new states to vanilla blocks and then forget to handle all the extra edge cases that come from it.

In past, it breaks all datapacks using blockstate codec as the codec used to require people to define every single property for a block so when one adds a new property… everyone else dies

Another issue is people extending the class for their own block now gets that property. And they code isn’t made to handle that new property. I used to extend VineBlock. Then someone unsafely mixin added waterlogging to VineBlock. My code proceeded to crash because it couldn’t handle my block being waterloggable.

So many bugs and issues by people thinking they will just do it themselves when mixin properties to blocks lol. Just use Statement library pls

#

As you can see, I am very passionate about that as I broke or crashed due to other people’s block property mixins over at LEAST 10 times

#

Bonus for one person screwing up their block property mixin to lanterns and caused all lanterns spawned in structures to be waterlogged always

kindred fractal
#

oh ffs it's one of these horrible libs supporting all the versions

bold steppe
jagged agate
#

i already elaborated

#

registry replacing with a new block might be better in the regard to adding new property not breaking people extending the original block but you run into issue like giga said that it has to be on both sides

bold steppe
#

Yes but I mean since the codec issue isn't a thing anymore and your second example doesn't apply to this

jagged agate
#

I'm talking in general about adding new properties to blocks

bold steppe
#

I'm trying to see where other of these edge cases are

jagged agate
#

registry replacing might be safer for adding new property for a block on both sides but I still don't trust it. I trust no one with this.

rich void
jagged agate
#

If I had to add a new property to an existing block, what I would personally do is make a new block class extending the old one and have the new property in the new class. Register the new block under my own modid. Then when conditions are met, swap the existing block with my block in the world itself and swap back when needed. Issue is new block won’t be in tags that people specified the old block in directly. That or statement

fallow sundial
#

another issue with swapping the block is that once the mod is removed, so is the block

#

also you'd want to update all references to the block (loot tables, recipes, worldgen etc)

jagged agate
#

Statement it is.

#

Now imagine what happens once Mojang makes blockstates be data driven lol

fallow sundial
#

soon enough heh

lethal bane
#

weren't there plans for blockstates in blockstates at some point?

shadow widget
#

what does that mean?

lethal bane
#

for stuff like advanced waterlogging, just with any fluid

gilded halo
#

having a proper layer system for true fluidlogging without huge amounts of blockstates would be great

lethal bane
#

I don't remember what the exact plan was, I just remember that someone talked about that like 1.5 years ago or something

vague otter
#

honestly that might end up with just letting things crash if things don't contain blockstates that they're supposed to

#

there are structure processors that can crash if non-stairs are in the stairs block tag e.g.

lethal bane
#

inb4 "No more Blockstate crashes" mod in a similar vein to the "No experimental settings" mods

jagged agate
#

Imagine all blockstates become tags. You tag something and it gets that blockstate. Cursed as hell and limiting. Which means Mojang will do it

lethal bane
#

hmm yes, minecraft:age_7

rich void
#

(sorry for ping)

arctic sphinx
rich void
#

how do I get that role?

arctic sphinx
#

Currently? You can't
I'm not doing this again harold
At least until Maty or Sci confirm it is now solely for notification

shadow widget
#

big attack reach changes cuh

nova sundial
#

reaction roles, anyone?

kindred fractal
#

Mob attack reach changes
@quiet talon kek

dull bison
#

they changed some F3 keybinds

arctic sphinx
#

Yep, and Narrator key can finally be rebound

quiet talon
kindred fractal
#

Ahhh ok

rich void
#

interesting change: the chorus fruit now INSTANTLY puts you on the ground when falling from ANY height

#

MLG water buckets are useless now after going to the end

rich void
#

nope

#

thats new

#

oh nvm they do that

#

but...

drowsy condor
#

i think it was added in 1.9

#

HOW OUTDATED R U?

rich void
#

they didnt reset fall damage

rich void
#

also I like started playing in like 1.8.9

muted hemlock
#

I don't think I've ever seen a chorus fruit

rich void
muted hemlock
#

not really

#

stopped playing for a while after 1.4 and started playing/modding again around 1.13

rich void
#

ic

#

I think I (mostly) stopped playing vanilla in like 1.14/1.15

lethal bane
#

but apparently the role was removed

wise forge
tacit vale
#

@tranquil salmon so if I wanted to setup a forgedev 1.20.2 dev workspace, do I need to do anything special or will the 1.9.2 vineflower sorta work or what?

#

I am curious to know how much effort it would be to convert the vineflower release for the latest snapshot to a forgeflower release; I haven't really looked at how much effort it took to go from forgeflower -> vineflower

tranquil salmon
tacit vale
#

Oh hmm ok

#

Thanks!!

#

Guess I will have to fix up NG first

dull bison
#

will NG not be replaced by dedicated stuff in buildsrc?

tacit vale
#

sounds incredibly brittle

#

there's already a lot in the build src, probably too much

#

having a dedicated plugin means we can improve toolchain and apply that to more than just one branch at a time

#

No idea how NGNext works though

dull bison
#

NGNext has nuked all the forgedev only stuff

tacit vale
#

@mental carbon so what's the plan then??

mental carbon
#

I am working on a ngnext platform plugin

#

It is currently an includeBuild on FoxLauncher

#

So that I can effectively develop stuff

#

But yeah ngnext will have a platform plugin we can just apply

tacit vale
#

hmmm just remembered this existed

#

but I'm about to get really busy

mental carbon
#

That is fine

#

I don't thing NGNext and the installer rework in Den will reach readyness for 1.20.2

#

And they are also not directly needed

tacit vale
#

Den?

mental carbon
#

It is the name of the new installer platform

tacit vale
#

has it been started?

#

are you using the original installer repo as a base?

mental carbon
#

Yes I started, but have not committed anything the repo is empty.

No I did no such thing.

My main goal is to make the installer modular and CLI runnable

#

The main concept is that you can host installer modules anywhere

#

By default the installer would look for ours, but if given command line options (or by selecting the relevant options in the UI) you can add other module sources as well 😄

tacit vale
#

but it's java right

mental carbon
#

Yes it is java

tranquil salmon
mental carbon
#

Yeah

#

It can be done easily

#

But at the moment we should figure out what decompiler to use

tacit vale
#

The one that works?

#

Lol

mental carbon
#

Well people have been putting work in VineFlower

mental carbon
#

And pushing us to use it

tacit vale
#

In my eyes we need to wait a bit longer for VF

mental carbon
#

Was there not significant effort put in to make NeoForm compatible with it? Or was that just curiosity?

#

Yeah for sure VF is not stable enough

tacit vale
#

nobody was pushing us but that was coeh

mental carbon
#

Aaah okey

#

Misunderstood

#

Thanks for clearing that up

tacit vale
#

and I fully intend for that to get used when VF is ready

mental carbon
#

Sure

#

But it needs to produce much better code then ForgeFlower

tacit vale
#

But right now VF is not ready which is fine

mental carbon
#

?

tacit vale
#

It just needs to not break and provide advantages

mental carbon
#

Which are?

#

Like what is an advantage of VF over FF?

tacit vale
#

Couldn't tell you

#

one of its biggest advantages is active maintainers for starters

mental carbon
#

Well that is true

tacit vale
#

Line wrapping is nice when it works. Inline lambdas

#

has some hiccups with generics afaik

mental carbon
#

is still waiting for CG

tacit vale
#

I don't remember if Coeh every explained if VF was a net positive or negative in terms of purely # of patch lines added

#

if I had to guess tho probably added more lines than it saved

kindred fractal
#

producing better code in the sense of less compile errors is an advantage for the toolchain

#

producing better code in general is nicer for modders

tranquil salmon
#

Readable commands (atleast when using mojmap)

kindred fractal
#

is that VF or FF?

tacit vale
#

VF

tranquil salmon
#

VineFlower

kindred fractal
#

it's missing some generics though? ah no that's just weird editor colors 😄

tacit vale
tranquil salmon
#

I think VineFlower requires more patch files

stray scroll
#

something something generics

tacit vale
#

rip

stray scroll
#

generics is the enemy of the Java decompiler

tacit vale
#

but we fixed it

#

xP

#

well coehlrich weren't the generics you?

stray scroll
#

ah yes, someone please remind me how many patch hunks we have for fixing generics issues alone kek

kindred fractal
#

most of the patches are for generics, I'm pretty sure

tacit vale
#

calculate it

#

look for lines that start with + or - and contain <

tranquil salmon
tacit vale
#

+600 lines hmm

stray scroll
#

eliminating false positives, it would need to look for - lines without a </> and corresponding + lines with a </>

tacit vale
#

there's few enough patches you could just manually verify

rich void
mental carbon
#

Yes

rich void
#

nice

stray scroll
formal plume
#

there is almost nothing in it from an outside perspective

tacit vale
#

Lot of dep updates

#

Reminder: Update neoforge build.gradle ext block to update all versions of vanilla deps that are not overriden

tranquil salmon
#

Judging by the change log I don't think any changes to patches for neoform are going to be needed

wise forge
#

Dang, can’t ping snapshot

tacit vale
#

?

wise forge
#

New snapshot released

#

Trying to ping alarm

tacit vale
#

*Have you scrolled up

wise forge
#

Nope, I see it

tranquil salmon
rich void
tranquil salmon
#

23w33a to 23w35a diff is about 21k lines

muted hemlock
#

recipes got refactored?

kindred fractal
#

just their loading and a bit of their usage

wise forge
#

Quick look over everything tells the me the major changes are just some refactoring of advancements, triggers, and recipes. Mainly recordizing and codec stuff

tranquil salmon
#

Recipes don't store their own resource locations anymore

kindred fractal
#

ah that explains why there is RecipeHolder everywhere now

tranquil salmon
#

Seems like it's the same case for advancements

muted hemlock
#

what about loot tabes thinkies

fallow sundial
lean warren
#

They went to 17.0.8 according to the blog post

rich void
kindred fractal
#

does it matter? ¯_(ツ)_/¯

kindred fractal
#

custom ingredient API will need an overhaul thanks to codec fun

mental carbon
#

Probably something with dispatch and a serialization registry

kindred fractal
#

yeah

rich void
quiet talon
#

I think I preferred items being aware of their registry name but codecs don't support that and they're going for consistency

rich void
#

what are codecs?

muted hemlock
#

!fcw Codecs

kindred hatchBOT
muted hemlock
#

#modder-1․20․1-support too

inland mesa
#

I find it interesting that there's so many people who are active modders making mods for versions 1.14 and up, that still haven't come across Codecs despite being all over Minecraft

shadow widget
#

I guess it might have finally changed in this update(no idea), but lots of the stuff relevant to most modders, like recipes for example, doesn't use codecs

mossy bobcat
quiet talon
#

it will be interesting to see what the recipe manager looks like now if its using holders

#

Because it has to still be reloadable, so its not using the primary registry system

muted hemlock
#

RecipeHolder harold

quiet talon
#

is there uh, a separate one for each subtype thinkies

#

RecipeHolder, AdvancementHolder, LootTableHolder

#

that would be haunted

sturdy phoenix
#

probably

#

AdvancementHolder exists

#

dunno about the last

tacit vale
#

Is it an actual Holder?

#

Or fake

quiet talon
#

Can't be, not registry backed

#

I mean I guess it could be, technically

#

but unlikely

tawny iron
#

damnit I was hoping for 20 lol

dim sonnet
#

If we're lucky we might get 21

tawny iron
#

doesn't look likely if they're only just updating to 17.0.8 now

dim sonnet
#

Yeah, more likely to get 21 with 1.21

tawny iron
#

poetic

true pivot
#

gotta make up for shipping java 16 with 1.17, and java 17 with 1.18

tawny iron
#

lol

kindred fractal
#

They're just records with the id and the recipe

fallow sundial
#

ah yes, instead of fixing the dp reg system to support reloading let's make "Holders"

#

MOJAAAANG stabolb

jagged agate
#

No loottable holder? Rip. I wish I could easily look up loot table names from loot table object

kindred fractal
#

Idk about loot tables

#

Advancements and recipes already knew their id

kindred fractal
#

We're talking about a trivial record with two fields, idk why you'd want to bring up registries

wise forge
#

@lean warren have time to take over primer writing? I’m not sure what my computer is doing, but it isn’t what it’s supposed now

lean warren
#

Bad timing, I'm stuck in the middle of something else right now :/

wise forge
#

Hmm, @kindred fractal who’s the person who does the primer for fabric? Can’t think of anyone else willing

tranquil salmon
#
   private <C extends Container, T extends Recipe<C>> Map<ResourceLocation, RecipeHolder<T>> m_44054_(RecipeType<T> p_44055_) {
      return (Map<ResourceLocation, RecipeHolder<T>>)this.f_44007_.getOrDefault(p_44055_, Collections.emptyMap());
   }

Cannot cast from Map<ResourceLocation,RecipeHolder<?>> to Map<ResourceLocation,RecipeHolder<T>>
What is wrong with this cast?

inland mesa
#

<?> is not <T>

#

so far as java is concerned, they are literally different types

#

is f_44007_ a map? what type is it?

tranquil salmon
#

Map<RecipeType<?>, Map<ResourceLocation, RecipeHolder<?>>>

inland mesa
#

yeah that cannot be cast to T directly

#

gotta add a temporary

#

or intermediate cast, ```java
private <C extends Container, T extends Recipe<C>> Map<ResourceLocation, RecipeHolder<T>> m_44054_(RecipeType<T> p_44055_) {
return (Map<ResourceLocation, RecipeHolder<T>>)(Map)this.f_44007_.getOrDefault(p_44055_, Collections.emptyMap());
}

#

and it will complain about raw types / unsafe

#

but that's fine

tranquil salmon
#

It should be getting the value of the map with a type of Map<ResourceLocation, RecipeHolder<?>> then casting that

quiet talon
#

Honestly I wish java had associative generics like that

inland mesa
#

yeah

quiet talon
#

so that you could have Map<T, Thing<T>> and the key->value generics had to match, but not the overall generics

inland mesa
#

yeah, but I have no idea how you'd declare such constraints

quiet talon
#

Yeah, you would need a new generic syntax
Map<associative T, Value<T>>

#

but that looks haunted™️

inland mesa
#

yeah the way C# does constraints is a bit more welcoming to stuff like that

#

but anyhow

inland mesa
#

and Map<RL, RH<?>> is not covariant/contravariant in any way

quiet talon
#

Do you even need the explicit unchecked cast there?

#

I think you can just return the rawtype

inland mesa
#

you mean like ```java
private <C extends Container, T extends Recipe<C>> Map<ResourceLocation, RecipeHolder<T>> m_44054_(RecipeType<T> p_44055_) {
return (Map)this.f_44007_.getOrDefault(p_44055_, Collections.emptyMap());
}

? yeah that should be the same
tranquil salmon
#

serializers for Recipes now use codecs

#

advancements don't use codecs though

#

AdvancementProgress does

tacit vale
#

if it was list<?> vs list<T> it would obviously be different

#

But it's List<A<?>> to List<T> which is not the same

#

*when you boil it down to a single generic as an example

tranquil salmon
#

RecipeProvider.buildRecipes now takes a RecipeOutput instead of Consumer<FinishedRecipe>
Along with void accept(FinishedRecipe) RecipeOutput also has Advancement.Builder advancement()

vague otter
#

honestly i was half joking but i'm having trouble coming up with a better way to do it in C# either, you've fundamentally got to differentiate between "type variables internal to this declarator" vs "type variables that belong to the class/method"

inland mesa
#

the issue is that it can't be a constraint of the class, it has to be a constraint of the entry, which makes it weird

vague otter
#

actually this has the problem that it makes it ambiguous to try to declare a method returning such a map

inland mesa
#

Map<KeyType<:T>, ValueType<:T>> suppose you had a syntax like this
:T wouldn't be a specific type, but a placeholder. anywhere the K,V parameters are used in the class, the :T would become itself a generic parameter.
like ```java
class Map<K,V> {
public V get(K k);
public void put(K k, V v)
}

would be seen for type checking purposes as  ```java
class Map<KeyType<:T>, ValueType<:T>> {
  public <T> ValueType<T> get(KeyType<T> k);
  public <T> void put(KeyType<T> k, ValueType<T> v);
}
#

I don't think this can be done without these "meta-generics"

#

obviously you couldn't use T* in practice, specially in C# :P

#

let me change it to something else for clarity (used :T )

mossy bobcat
#

Higher order types! Those things Java should really have but doesn't

#

This is actually not that different to the issue that pops up with lambdas at times, and is why functional interfaces with method type parameters can't be used for lambdas - the inferred types of the lambda parameters in practice would look a lot like that

#

Or, basically, "type parameters at random places" is another way to think about it, because that's fundamentally what you'd have to support.

fallow sundial
kindred fractal
#

There's no tag though

wise forge
wise forge
#

Cool, got apple’s permissions to links their primers for the time being

tacit vale
fallow sundial
#

aren't apple's primers yarn

fallow sundial
#

those typos aren't in forge, we don't have our own mappings anymore, they're in mojang's naming

stray scroll
#

all hail Bootstap

wise forge
kindred fractal
#

Ring the alarm

inland mesa
#

oh shit pre1

#

RIP function additions

This data pack version removes the recently introduced execute if function and return run functionality. Flaws with those commands (see bugs MC-264595, MC-264699 and MC-264710) require some substantial changes to fix, which we do not want to make close to a release.

kindred fractal
#

Didn't expect this to happen so early

#

Neo might be unstable for some time

fallow sundial
#

The search will only match the beginning of any word in the item's name
For example, searching for "tor" will still show Torch and Redstone Torch but not Daylight Detector anymore

kindred fractal
#

Make creative search even worse (impossible challenge)

nova sundial
#

so who's making the micromod to reverse this change? harold

fallow sundial
tacit vale
#

welp

#

we never started the snapshots

#

I don't have enough time to help start now either

fallow sundial
#

me neither

#

ash isn't able to and xfact also seems to be busy

tacit vale
#

lol

#

@tranquil salmon It turns out both of your bug reports caused them to revert an entire feature

#

Good job, I guess?

#

I never imagined the issues would be so extensive they would revert the entire thing

kindred fractal
#

I can only help in 2 weeks kekw

dull bison
#

I can help with porting if someone shows me how

stray scroll
#

@tacit vale write a quick outline of what needs to be done during porting

tacit vale
#

And the process is different cuz neoforge now

#

no more private maven

#

Ok let me break down the absolute basics:

  • Checkout latest of whatever branch before porting

  • Uncomment the /projects/forge in gitignore, then commit ALL java files (it is now illegal to distribute this on a public GitHub)

  • Commit the files

  • Update mc version and NeoForm version -- this is harder cuz we are using mcpconfig right now, we need to fix NeoGradle, too

  • Run setup -PUPDATING=true, commit

  • Verify that it did things and then start fixing compile errors -- COMMIT OFTEN AND PUSH OFTEN

  • We need a private git repo again if it doesn't already exist. People need permission to it in order to help

#

I have a more complete document somewhere else

#

But it's in discord

#

not somewhere I remember

rich void
#

people working on the port ignore this:
mending books in ancient cities awesome 10/10

stray scroll
#

(excluded Shrimp since he seems to be busy thinkies)

winged hull
stray scroll
mental carbon
stray scroll
mental carbon
#

Currently running a unit test sweet

stray scroll
#

(presuming you meant "suite")

mental carbon
#

Yeah

#

Aequivaleo color handling for cliques

#

It is a fiddle piece of code

#

Since technically in the recipe graph they are not cliques

#

But in the real world, those "recipes" produce a clique

#

Cause from every single color of wool you can get to any other wool with a single craft

#

So it is tricky to detect and implement properly

stray scroll
#

@tacit vale do we commit the rejects? where do they live? are they covered by the /projects/forge uncomment?

mental carbon
#

Normally yet we commit them

#

And I think so -.-

#

But they might be in a completely seperate rejects folder in the root

#

And got my unit test to pass

#

It helps if you actually pass in the right values......

#

WTF marc

stray scroll
#

NG-Next?

#

are we moving to NG-Next this version?

mental carbon
#

No

#

That is far from complete, at least for ForgeDev

stray scroll
#

okay

mental carbon
#

UserDev is actually pretty close

#

I solved several issues this week

#

And Schurli is taking care of the mixin support

#

So that we can support that natively

stray scroll
#

okay, good

mental carbon
#

Once that completes

#

And I get some people to actually test it

#

And figure out if we need a better DSL / API in certain places we can do a limited Beta run

dull bison
tacit vale
#

It is not covered afaik

stray scroll
#

noted down on my whiteboard thinkies

mental carbon
#

Damn

#

I had hoped my tests would fix the corner case

#

It seems to work in my unit tests

#

But in production it stills craps the bed

mental carbon
#

Okey here we go

#

1.20.2-pre1 work starting now

#

First up patching NG

mental carbon
#

@stray scroll @tacit vale @fallow sundial Any of you know a good name for the private repo? NeoForge-Private seems boring

nova sundial
#

SecretNeoForge

mental carbon
#

How about Kits? (As in a young fox?)

winged hull
#

SecretFox

muted hemlock
#

neoforge-private-super-secret-donotshare

nova sundial
#

do_not_share_or_you_will_be_fired

winged hull
#

if_you_share_this_you_will_be_suffocated_by_the_ever_present_bolb

mental carbon
#

Pushing to Kits for now

#

All maintainers have access

#

I will clone it then

#

And apply the update to FGNext

#

Before starting the migration

#

But I think I need to wait for @tranquil salmon to do his magic

#

Okey pushed

#

Updated the gitignore and then pushing the current state

#

Before starting the update

#

Okey, update is on hold untill I can get a new NeoForm update

#

With which I can test my FG Changes

#

I will do that tomorrow morning

#

Right now I had a long day and I need sleep

mossy bobcat
#

Just have to say - I love that the processes and workflows for doing these updates are all being shared in public channels! I feel like I understand the update process more from just reading what's been in this channel than I did before from everything else I saw

kindred fractal
#

Remember to add a webhook to #neoforge-private (idk if something's been pushed yet)

tranquil salmon
kindred fractal
#

So, vineflower will be used?

tacit vale
arctic sphinx
#

NFP is too close to NFT for my liking harold

muted hemlock
#

non-fungible poultry?

arctic sphinx
#

Kits a good name given the context

mental carbon
#

The repo of for kids called Kits, after young foxes

#

We can teenage it later

#

Rename*

tacit vale
#

that's not a boring name

#

that's a stupid name

#

like can we just give things reasonable names pls thanks. Kits is fine idk I'm not good at it

fallow sundial
#

good thing it's now ART

tacit vale
#

I just don't think we should give everything a unique name cuz it gets hard to remember. like why Kits vs like neoforge-staging, -internal, etc?

#

bc other than the name it's literally the exact same thing as neoforge but our custom version

kindred fractal
#

Kits is a garbage name btw

#

Stop trying to be clever, and make a usable product instead, IMO 😛

#

(NeoForge-Private is good)

tranquil salmon
quiet talon
#

yeah kits is a horribly irrelevant name

fallow sundial
#

also reminder to update the login packets as discussed thinkies

dim sonnet
#

Which has nothing to do with docker or testing btw

mental carbon
#

Okey porting has started

mental carbon
#

FG Is patched

#

Loading NeoForm with the new data

#

And running setup in update mode

mossy bobcat
mental carbon
#

I explicitly did not choose NeoForge-Private or anything in that direction

#

For the simple reason that; IMHO I think that name is too long, and can cause confusion.

#

BTW any Maintainer now has access to the private repo and can help porting

#

No more gatekeeping bullshit

mental carbon
#

108 Reject files detected

mental carbon
dull bison
#

who do I have to stabolb ?

tranquil salmon
#

So we're doing 1.20.2-pre1 and vineflower at the same time?

mental carbon
#

Yeah

#

It is currently only 108 rejects

#

Which is relatively easily doable

#

I do however have a problem

#

Some dependency jars are missing in my IDE

#

Like JOML

#

Yet others are there.

#

So I am bit confused at the moment

#

A double refreshed fixed it

stray scroll
fallow sundial
#

tbh I'd say this is a very special scenario since we're chronically lacking porters lol

mental carbon
#

Shit

#

ItemPredicates became a record

#

Looks like we need to refactor that ItemPredicate core

mental carbon
#

Okey I will leave the ItemPredicate rejects patch currently in place

fallow sundial
#

don't think people even use custom predicates

mental carbon
#

So I know people will

#

It is technically patchable

tranquil salmon
#

You didn't publish your custom NeoGradle version

quiet talon
#

what is ItemPredicate for again?

mental carbon
#

To check for overrides

tranquil salmon
#

- Plugin Repositories (could not resolve plugin artifact 'net.neoforged.gradle.patcher:net.neoforged.gradle.patcher.gradle.plugin:[6.2.0-features-neoform_defaulted, 6.4)')

mental carbon
#

Still need to push the branch

#

And talk to shrimp how we will publish that

fallow sundial
#

uhh item predicate is for advancements?

quiet talon
#

oh, yeah, that being a record will be annoying

mental carbon
tranquil salmon
#

What about a webhook for #neoforge-private ?

tranquil salmon
#

After fixing some brackets I brought the compile errors down from about 5000 to about 1000

kindred fractal
#

The length doesn't matter - what matters is the clarity

nova sundial
#

NeoForge-Confidential

stray scroll
#

i'd tend to agree with Tech here on this, since the private repo is less a separate project (and therefore deserving of a new name) but more an extension of NeoForge
the thought did pass in my mind to name the snapshot mod in NF as Kits instead thinkies

tranquil salmon
#

Shouldn't github actions be disabled in the kits repo?

kindred fractal
#

Please stop calling it kits

#

I don't even know what that word means as a non-native speaker

fallow sundial
daring ginkgo
mental carbon
#

And undid everything

#

Needed to switch to official mappings

stray scroll
#

i was reminded about the fact of runtime mappings, and plans™️ to change to Mojmap

#

are we targeting that alongside NG-Next?

mental carbon
#

NG-Next currently does implement obfuscation

#

Because it supports an arbitrary runtime naming scheme

#

Whether runtime mappiongs are mojmap or not is not really related to ir

winged hull
mental carbon
#

In practice the name is not perfect

#

And we should find a better one

#

That said

#

I seem to be stuck with migration

#

I can't use parchment because it breaks a a large amount of our patching system at the moment

#

And I can't use official, cause there is some bug with the versioning i need to figure out later today

#

So

#

I will get back to you guys in a couple of hours, hopefully with a fixed version of NeoGradle that makes neoform work

winged hull
dull bison
winged hull
#

wait... what's FART?

dim sonnet
#

Forge Auto Renaming Tool

winged hull
#

I feel like F.U.C.K would be a good acronym

inland mesa
#

the immature humor was 100% intentional: a reminder that forge has never been an enterprise product

#

but fuck is too in your face

#

anyhow that was forge Neo doesn't have to follow

#

the private repo I'd call something like Greenhouse

#

an enclosed area to help things grow

mental carbon
#

That is a good idea

dull bison
kindred fractal
dull bison
kindred fractal
#

Talking about the webhook

tacit vale
inland mesa
#

IMO it's far more intuitive than "Neo-Private" which sounds like we are scheming from the shadows? it doesn't convey that it's for porting

jagged agate
#

Where do you make the connection that greenhouse = porting work?

#

Ain’t no way in hell am I going to know that if I wasn’t seeing this prior convo lol

#

Neoforge-Porting is clear imo

#

NeoPorting if you want shorter

tacit vale
#

NP is not P

#

:>

#

idc what the name is but I don't really like Kits and it wasn't like voted on or anything. Not that it matters since it's internal only but still

#

and if we gave everything a fox name we would run out of them quick

#

I just think especially when it's the exact same product but a different release cycle

#

there's no point to rename it

daring ginkgo
#

Private Porting (pp)

inland mesa
inland mesa
tacit vale
#

That's the thing! Not all of our names have to be fun

#

too many fun names get boring

inland mesa
#

🤷‍♂️