#1.20.5/6 Snapshots

1 messages Β· Page 8 of 1

summer furnace
#

for dev, at least

elder swallow
#

We're working on cleaning up FML

slow prism
#

waves towards #1187879036815417456

summer furnace
#

or we'll spend months doing nothing but tell people "rename your mods.toml"

elder swallow
#

Yes we need it giga, but we need a billion things done in FML

#

In fact I really need the CoreMods PR approved so we can move forward

slow prism
#

opens github

summer furnace
#

so long as it's part of the ongoing plans, all good

elder swallow
#

This reminds me that we should bump ML

dapper hornet
#

is this still WIP ? I changed the name to neo.mods.toml and it is still not being loaded. I cant find the commit or the PR for that change else would have verified myself

elder swallow
#

It's neoforge.mods.toml

foggy steeple
#

this is what happens when everyone keeps saying Neo lol

dapper hornet
#

neo is the way

elder swallow
#

I'm fighting against neo πŸ˜›

lean anchor
#

Neo got hands tho

dapper hornet
elder swallow
#

We dodged a bullet with Neo kek

dapper hornet
#

Did this syntax work before ? It errors out now. Is this known ?

elder swallow
#

If you configured Gradle correctly yes

#

Look at your processResources config

#

I bet you haven't renamed mods.toml there

dapper hornet
#

yep

#

realised that as you said gradle file

elder swallow
#

It's probably time to start drafting the 1.20.5 blog post so it can be used as a reference

wooden tendon
#

Not really

#

It is at least another 2 weeks before pres start rolling

blazing valve
#

There's a lot of content we can prepare though

#

I wonder about discoverability though

#

Should notes on how to port go into the blog post or rather onto a new page in the docs

#

(which then is either copied into the blog or linked from it)

elder swallow
#

I'd have everything on the blog post

elder swallow
blazing valve
#

I don't know that I agree, the capability info got lost pretty quickly

#

I am not against replicating the info into the post so people don't just glance over a link to the actual info...

#

But IMHO anything we write should just go into a porting page on the docs

median wasp
#

It's actually applied like a GString

#

So $var and ${var + 'hi'} are allowed

#

I've actually used that before

#

To use a ternary

elder swallow
#

everything is turning into MapCodec πŸ˜„

#

well not everything but yes

plucky brook
#

thinkies that's actually nice

frail hatch
#

Did any of neoforge extract codecs get yoinked upstream or at least able to be cleaned up?

#

Mainly wondering about the more robust versions of with alternative we add than the extracodecs versions

blazing valve
#

As far as I could tell that gets rid of that god-awful hidden instanceof it was doing to inline other MapCodecs

#

Even if they were wrapped in Codecs already

elder swallow
#

Yes it's very nice

elder swallow
#

misaligned patch?

#

ah no heh - just the BE changes

restive raft
#

The grand finale

β†˜οΈ Quoting Minecraft (@Minecraft)

Ominous Trials are now available on Java Snapshot!

πŸ”‘ Drink an ominous bottle to gain the Bad Omen effect
πŸ”‘ Head to a village for a Raid Omen and start a pillager raid OR enter a trial chamber to trigger a Trial Omen effect
πŸ”‘ Trial Omen effect will spew out tougher mobs with better gear, ...

stiff galleon
#

so now instead of attacking the village for killing their captain they attack the village because you drank their booze

summer furnace
#

plot twist, the ominous bottle is hallucinogenic and the pillagers are really just random creatures and villagers that you are slaughtering

lean anchor
#

But what about the original pillagers?

#

And the outposts

summer furnace
#

the illagers in the mansion are minding their own business, you are the one breaking into their private property
the outposts are ... well, outposts. the villagers in them are law enforcement, same as the patrols. that's why they mostly ignore you, or stop and stare in your direction unless you get too close.

plucky brook
#

But they're very trigger happy, I'm just defending myself

fallen igloo
elder swallow
restive raft
#

hmmmm

elder swallow
#

interesting error message

#

why do codecs have basically 0 error tracking

#

it wouldn't be hard to at least say the field that was erroring facepalm

#

it's probably due to the mc upgrade, I bet reloading the world won't give that

boreal flint
#

networking has basically 0 error tracking too

#

it's quite annoying and honestly should be considered a vanilla bug imo

blazing valve
#

Yeah we noticed that too. It's just borked. You get an "writer index blah blah blah" error with no indication as to which packet type it even was

#

Which is nuts given that we now use the vanilla custom payload ID field, even

elder swallow
#

OK we just need the remaining rejects to be fixed and the port to 24w13a should be complete

elder swallow
#

didn't feel like doing the rebase yet

#

might do it in a few days

#

TODO: figure out what to do with mojang's ItemStack#getEnchantments and whether we want to adjust our IItemStackExtension#getAllEnchantments method

true jacinth
elder swallow
#

more of a note for later than anything

#

mojang added this method to ItemStack:

#

we have this one in IItemStackExtension

#

there's a single call site in Player right now

true jacinth
#

Yeah we can probably flatten those, just need to maintain the event's functionality

wild pine
#

did someone forget to run gradle unpackSourcePatches?
just ran it in my local clone for local publishing and it generated a patch for MobEffectIdFix, shouldnt the port branch already have all patches generated?

elder swallow
#

What would it even generate the patch from? Did I push the sources?

reef parcel
#

i imagine they ran unpackSourcePatches with old sources from before they pulled from upstream

wild pine
#

maybe it was old files left behind, but i did a clean checkout of the 24w13a branch afaik

#

dk how helpful it is but this is the patch it generated

elder swallow
#

Ah yes this is incredibly annoying

#

Idk why diffpatch does this

#

It might be on my end then, I'm not sure

elder swallow
#

lovely

kind sable
#

Looks like one of those "no thank you" merges

elder swallow
#

TODO: redo attachment internals PR

elder swallow
#

and I just pushed the rebase

#

got to run now πŸ˜„

elder swallow
#

thank God I still got my train

kind sable
#

(you have your own train?? /S)

naive hound
#

he's the technician on the train (*slaps knee extra hard*) /j

magic sierra
#

I don't know if this is normal, but the GUI test in NeoForge's Github is not correctly rendered.

#

Text is rendered in the foreground when the F3 menu is open

#

like this

elder swallow
#

That's not really unexpected

digital drum
#

what happened to ModList in 24w13a?

wooden tendon
#

It is still there

digital drum
#

wait lemme refresh then

stray bay
# elder swallow we have this one in `IItemStackExtension`

the semantics of gameplay logic vs actual enchantments [tinkers construct uses this to have certain enchantments like fortune and silk touch be effective in gameplay without actually being removable with the grindstone] are important to maintain

#

so we need to make sure we have something for that in whatever the API ends up being

blazing valve
#

Yeah same here, we need it in AE2 as well. We have implicit Fortune on some tool

reef parcel
#

so like the item enchantment components, not the item stack patched components

frail hatch
#

Yeah mek also uses it. And just adding it directly doesn’t work because then grindstone and stuff would affect it

blazing valve
reef parcel
#

improvable?

#

i agree that there should be patches to make them not affected by the grindstone and such, but I imagine it could be done by just using the item-defined component

reef parcel
#

question. with the new "reloadable registries", are they real registries that can have tags?

short cove
#

yes

#

see: biome tags

reef parcel
#

tommy, reloadable

#

new element in 24wsomething

short cove
#

oh great a new kind of registry

reef parcel
#

currently only used by loot tables iirc

short cove
#

datapack ones are reloadable kinda

#

not confusing at all

reef parcel
#

no, reloadable refers to the /reload command

short cove
#

im pretty sure dp registries are affected by the reload command

#

cuz it existed before 24w...

#

And i think datapack registries used it

reef parcel
#

they are not

short cove
#

what was the purpose of reload before

reef parcel
#

reload listeners, like tags, recipes, and formerly loot tables

#

and now the new reloadable registries, which ik next to nothing abt but that they complicated loot events for fabric

stray bay
#

were loot modifiers not reloadable?

reef parcel
stray bay
#

i know loot tables weren't a registry before, but loot modifiers [a forge feature] were

#

wait, they might not be a registry

#

the serializers are a registry

reef parcel
#

no, they weren't. the serializers are

stray bay
#

got me confused

reef parcel
#

yep

true jacinth
#

They are full registries, which implies tag support

#

It is currently not possible to move everything to this model since some reload listeners are dependent on tags

#

(i.e. recipes)

reef parcel
#

interesting... wonder how that works with loot tables that check tags

short cove
#

i think its fine if they load after tags

#

but

#

hmm

#

maybe theres a load order

#

item/block tags, then tables, then table tags

reef parcel
#

nvm, they don't resolve them immediately, unlike recipes, so it's fine

short cove
#

ah

#

wait

#

recipes resolve every item tag in one when they're reloaded

#

even if the recipe is never used

reef parcel
#

it has to sync them to the client. to do that, it resolves everything in the tag. loot tables are not synced

short cove
#

ah

clear bane
#

So uh...
Ring the bells?
kek

#

Or are we not gonna count the april fools one lol

rigid walrus
#

Seems like it is based off 24w12a since it has the trial edition advancement and the heavy core but not the new ominous items

clear bane
#

No idea, still on phone in bed

rigid walrus
wooden tendon
#

<@&1067092163520909374> The 1. April joke is online.

dapper hornet
#

TECHNICAL CHANGES
The flux capacitor integration now synergizes with quantum voxelization, which enables a 360-noscope enhancing real-time RTX terrain-rendering nightshade multibox spectrum acceleration while optimizing transdimensional entity synchronization for seamless vitelotte-king edwards-russel burbank experiences!

#

how much more fps per tick do I get now

clear bane
#

I can already hear the influx of people that dont like the current updates come in and say "SEE???!!! Mojang is fully able to make content updates!?!!?!?!!"

fallen igloo
#

Does snowman run for april fools?

ember furnace
restive raft
#

(SRGUtils has a hardcoded list of April Fools versions, iirc, because they don't follow the standard version format)

rigid walrus
#

Going to have to get neoform to use neoforged srgutils

restive raft
#

probably pin the version, so we can make changes to SRGUtils without breaking NeoForm

#

same sentiment for any of our other projects using SRGUtils, really thinkies

#

i'll poke at SRGUtils later, I think I have some energy for that

restive raft
#

FYI on that modification to the April Fools snapshot

dry stumpBOT
#

[Jump to referenced message](#general message) in #general

lean anchor
summer furnace
#

did someone figure out what differences the two jars had?

stray bay
#

one of the recurring problems in recent content updates is that they're unwilling to figure out a good place for useful things so they put it way later in progression than when you'd actually benefit from it. lodestones and the recovery compass are good examples of this. and the hammer looks like another one (well, the hammer is super overpowered, but the difficulty to get it is scaled accordingly, rather than making something that's just as fun to play with but fits into the mid-game). April fools updates don't have that issue since they're free to wreck the core gameplay loop

digital drum
#

what happened to ExtraCodecs.lazyInitializedCodec in 24w13a?

stiff galleon
#

it may have been merged upstream into DFU

#

either that or mojang is just using static fields in static inner classes to delay classloading where needed

prisma locust
#

the embed is arguably a better approximation since boq is the commit author (but not the committer)

restive raft
#

however, on the GH commit page itself, it distingushes as "boq authored and Gegy committed"

#

so it's an inconsistency at least

#

having said that, it might be a side-effect of GH's way of handling commits where the web-flow user is the committer (e.g., squashes, merges, web editor commits)

elder swallow
digital drum
#

hypothesis: pre 20.5, if I had a call that copied attachments from an item stack to a tile, how would that be done post?

blazing valve
#

There are methods on BlockEntity for assuming the components found on ItemStacks now

#

(and the reverse)

digital drum
blazing valve
#

just look for methods named component in BlockEntity

shut wraith
#

Gotta love the nothingtoseeheremovealong in the April 1 snapshot..

fallen igloo
#

https://www.youtube.com/watch?v=s_VWNUJ3bEs
sooo, angel block, cursed earth, grappling hook, and a lot of other stuff

Minecraft The Poisonous Potato Update Playlist β–Ί https://www.youtube.com/playlist?list=PL7VmhWGNRxKixIX8tWEQn-BnYKE9AaAXk
Snapshot 24W14potato for Minecraft 1.20.5 adds a new dimension, the potato dimension! Full of potato related fun and a boss fighr against mega spud!

All My Links In One Place
πŸ”— https://linktree.xisuma.co

πŸ™ Support Xisuma Di...

β–Ά Play video
pine egret
#

Nearly every call site in vanilla that wants enchantment lists just fetches the single enchantment as of the time we added that feature

#

meanwhile all the usages of the full list was for areas that would change enchantments

#

However, its possible a mod wants the full list for gameplay reasons

elder swallow
#

I'm aware - except that vanilla just added this new method with the full list (only one call site for now πŸ˜› )

pine egret
#

what are the semantics of the vanilla method though?

#

if they use it in anvil/grindstone, its not gameplay, its recipes

elder swallow
#

There's a single call site atm

pine egret
#

single call site in player is not clear to me if its gameplay logic or conveience to get for teh anvil

elder swallow
#

Gameplay

#

I think

pine egret
#

if its gameplay, then yeah, its the same as the forge one

maiden prairie
#

it would be nice to have detached tags or something to be able to poke at the snapshot code from github

restive raft
#

detached tags?

fallen igloo
rigid walrus
wooden tendon
#

So I can bump Jammer for you

rigid walrus
#

net.neoforged:srgutils:1.0.1

wooden tendon
#

Building

rigid walrus
#

entity.ignoreGridCollision = true; when moving in a vehicle in 24w14potato

#
    private static boolean awesomeAntiCheatIsFlying() {
        return false;
    }
maiden prairie
#

as in you can push them without a branch

elder swallow
#

what do you want it for?

maiden prairie
#

Just fun?

elder swallow
maiden prairie
#

I'm talking about snowblower output for the April fools snapshot

elder swallow
#

idk if that's what you're looking for

#

ahhhh

maiden prairie
#

Oops I didn't actually specify I was talking about April fools snapshot lol

elder swallow
#

yeah πŸ˜…

maiden prairie
#

But uh someone will have to fix snowman cuz it won't run for any future snapshots until srgutils is fixed

#

which is honestly silly design but it's once a year so 🀷

elder swallow
#

🀷 indeed

fallen igloo
#

do we know what snapshot/version is the base for the april fools one?

rigid walrus
#

24w12a

#

also Ingredient.of(POTATO_PEELS_MAP.values().toArray(p_340204_ -> new ItemLike[p_340204_])); confuses java of whether the called method is Ingredient.of(ItemLike...) or Ingredient.of(ItemStack...)

rigid walrus
#

/tellraw @s "\uD83E\uDD54"

wooden tendon
rigid walrus
#

the fletching table has gotten a use

rigid walrus
slow prism
#

I only nkw looked at the content in the snapshot and wow, this should have been a normal update

#

the floater stuff is so cool

rigid walrus
#

try putting 2 poisonous potato plants in a chest and reopening the chest

#

also theres a quest system

slow prism
#

I'll start a kits branch, curios about the reject amount

#

what snapshot is it based on

rigid walrus
#

24w12a

elder swallow
rigid walrus
#

you get a new version of the end poem if you fall into the void of the potato dimension

#

the potato staff can create a potato portal anywhere you click but only if you have either already visited the potato dimension or aren't in survival

wooden tendon
#

Already on it

#

A fix is being build for it

slow prism
#

that's literally the srgutils class lol

wooden tendon
#

Yeah

#

Because the original code used it

#

It is stupid

#

But I ripped it out

#

The problem is that I have 4 test failures with that removed....

#

So I am tracking those now

rigid walrus
#

now to find out what this sub grid is for

#

there's a grid carrier entity

#

#squirrels-🦊 message
Video of floatater block

dry stumpBOT
#

[Reference to](#squirrels-🦊 message) #squirrels-🦊 [➀ ](#squirrels-🦊 message)Create machines version 2?

wooden tendon
#

Down to 3 tests failing

slow prism
#

who wants to PR the removal of the dep required fallback and dev crash

#

and we should also probably move most properties to mod-specific instead of file-specific (see #1210674981034397706)

wooden tendon
#

I can't get that one test to work

pine egret
#

you grab the map, make modifications, then save to NBT

#

if this map is expected to have non-NBT enchantments, then grabing it, modifying it, and saving it leads to non-NBT enchants getting dumped into NBT and doubling up their levels

lean anchor
#

No, ItemLike is a parent

#

It encompasses stuff like tags, stacks, item, etc

elder swallow
#

Wait ItemStack is ItemLike??

pine egret
#

ItemLike was never stacks before

#

It was blocks and items

elder swallow
#

Yeaj

pine egret
#

tags also never fit that framework

boreal flint
#

itemstack being itemlike makes a lot of sense

pine egret
#

you sure you are not thinking the ingredient internal matcher?

boreal flint
#

and will cut down on my overloads in datagen lol

pine egret
#

to be clear, I am not sure ItemStack is ItemLike

reef parcel
#

I don't think that's what was meant by the original comment

boreal flint
#

poop

pine egret
#

the message above just implied it might be so I was asking

reef parcel
#

There are too many times that itemlike and itemstack are sibling overloads

boreal flint
#

yep

pine egret
#

you do lose a lot of semantic meaning if ItemStack is ItemLike as it ignores count and NBT in the methods

boreal flint
#

it also just.. makes sense that it could be an itemlike lol

boreal flint
pine egret
#

thats my point

#

if a method just accepts itemlike and stack works, you might think it considers NBT/count when it does not

#

I just did not understand why java might not understand that ItemLike[] is not ItemStack[] unless inheritance is involved

reef parcel
#

Funny var args

boreal flint
pine egret
#

my point is not can here, its clarity

boreal flint
#

eh I guess

pine egret
#

supposing an overload does not exist, but you think it does

stiff galleon
#

you can't store an array of type ItemStack[] in a field of type ItemLike[] because then itemLikeArray[n] = block would be invalid

you can't store an array of type ItemLike[] in a field of type ItemStack[] because then itemstack = itemStackArray[n] would be invalid

pine egret
#

e.g. Ingredient static creation methods by default work on subclasses

boreal flint
#

my question is

#

is there any situation in which nbt/count would matter for an object that only takes an itemlike?

#

like even if you think it matters

#

if the receiving method only cares about the item

#

does it really matter?

pine egret
#

depends on the object

boreal flint
#

well no, cus if they're only taking the item anyway

#

what use is the nbt/count

pine egret
#

the extension is not just going to affect vanilla, it also will affect mods if its done

boreal flint
#

I'm aware

#

I'm posing the question as a general one lol

summer furnace
#

I would agree there, anyone doing itemlike instanceof ItemStack stack would be a breach of the code contract

boreal flint
#

I can't see any situation in which the confusion would even matter

pine egret
#

I have plenty of systems where I don't specifically support stacks but you might think they could exist

#

notably when it comes to predicates, I don't always want a size or NBT predicate, but you might infer one exists if the method works with a stack

boreal flint
#

that feels like that only applies because ItemStack isn't ItemLike already

#

once people were familiar with the fact that ItemStack is ItemLike, that would be more or less moot

#

shrug

stray bay
#

you get - i think it's a specialized runtime exception specific to this case rather than a CastClassException - in the element assignment but the narrow type array goes in the wide type array variable fine

#

ArrayStoreException

#

tags also have never [and unlike ItemStacks, can never] implement ItemLike - items and blocks implement it, and so do neo block and item specific deferred holders

restive raft
#

@elder swallow I believe this is in your wheelhouse...?

elder swallow
#

Yes I know

#

I haven't decided what to do with it yet, since we can't even add data components to preserve vanilla compat

blazing valve
elder swallow
#

Yeah no it's not expected to pass

#

But what do I even do about FluidHandlerItemSimple

#

It can't directly write to NBT anymore

#

Oh well I have an idea

blazing valve
#

You can just write to components instead?

#

I don't see the problem πŸ˜„

elder swallow
#

Yes but I can't register them in NeoForge itself

blazing valve
#

Well, a) why can't you πŸ˜› b) assuming you don't, you define the data-class for the component and let the user of FluidHandlerItemStackSimple pass in the ComponentType<YourClass>

slow prism
#

a) synced reg

elder swallow
#

I'll just make getFluid abstract

blazing valve
#

And setFluid

blazing valve
slow prism
#

fuuuuck that

true jacinth
#

Could do some shenanigans with the vanilla packet filter

elder swallow
#

we can do the milk thing

fallen igloo
slow prism
#

if we do the milk thing we need a better system

fallen igloo
elder swallow
#

that's probably not a better system πŸ˜›

stray bay
#

is it actually a problem to have a data component registered on one side that is never used (are they synced by numeric id or something?)

#

i haven't seen the data components, are they an actual registry or some other system? could we register it when FluidHandlerItemStackSimple is classloaded?

#

[which is at least likely to be during item registration, and almost certainly no later]

fallen igloo
short cove
#

yall think we're getting a pre today

quiet condor
#

are you thinking that?

short cove
#

im hoping

wooden tendon
fallen igloo
wooden tendon
#

ForgeFeature

#

It is for example used for GL Versions and Java versions

fallen igloo
#

thinkies we could move the milk fluid and all NF component types to use that

digital drum
#

snapshot alarm

foggy steeple
#

snapshot snooze

digital drum
foggy steeple
#

Joke

digital drum
#

should I ping mods

foggy steeple
#

No, they will get to it when they get to it

digital drum
#

ok

kind sable
#

is there a new snapsot?

kind sable
#

yeah

#

no article either and the bot didn't say anything either

dapper hornet
#

JAVA 21!

kind sable
#

now there is

#

<@&1067092163520909374>

fallen patrol
#

Oh boy, here we go, java 21..

mental fox
#

Rip mixin.

#

I think. I'm no professional.

solar zephyr
#

java21 breaks mixins?

elder swallow
#

Wtf

mental fox
#

Java19 does.

fallen patrol
#

wonder how badly this fucks the decompiler harold

elder swallow
#

Java 21???

magic sierra
mental fox
#

I heard somewhere it doesn't work. Maybe that's either changed or was never true.

elder swallow
#

Might have to bump ASM

fallen patrol
#

Given people are already running NF on J21, I don't think there is any real issue.

dapper hornet
#

I have a feeling 1.20.5 might not happen and we go straight to 1.21

mental fox
#

Java19 broke forge mixins. Saw it people having that issue running servers on the forums all of the time.

plucky brook
#

screm destructuring

mental fox
spiral radish
dapper hornet
#

mojang be syncing mc releases with java releases

elder swallow
#

We'll have to update snowblower I think

fallen igloo
fallen patrol
quiet condor
elder swallow
#

She also said "change of plans" in fabricord hehe

dapper hornet
fallen igloo
#

screm MOJANG

foggy steeple
plucky brook
foggy steeple
#

Loophole wording

clear bane
#

Wait, was J21 not planned for...
1.21???

clear bane
#

Were we lied to harold

dapper hornet
plucky brook
#

gestures at trident

quiet condor
fallen igloo
mental fox
dapper hornet
foggy steeple
quiet condor
summer furnace
fallen igloo
solar zephyr
#

this is for 1.21

summer furnace
#

yes, they may choose to bump the preview features out of preview

#

and release as 1.21

solar zephyr
#

look at the bottom of the snapshot page

plucky brook
#

thonkies I do wonder who still plays on a 32 bit system

summer furnace
foggy steeple
summer furnace
foggy steeple
#

Inb4 snapshots lasts for a whole year before full release

fallen igloo
summer furnace
#

yeah so, anyone on rpi3b+ will have to upgrade or keep playing an old version ;P

plucky brook
#

thonkies I actually don't remember what J18+ added besides record destructuring

elder swallow
#

Virtual threads

summer furnace
#

non-preview foreign function is 22 right?

elder swallow
#

Yes

mental fox
plucky brook
median wasp
#

Match in switch statements is huge

#

One of the biggest J21 features imo

elder swallow
#

We also have sequenced collections

plucky brook
#

Is the main() thing still preview?

median wasp
#

Not to mention getLast and getFirst on many collections

median wasp
elder swallow
#

Also, code snippets in javadocs!

plucky brook
#

And the _ one?

median wasp
#

That's out of preview in 22, preview in 21

plucky brook
#

Ah well

median wasp
#

Iirc

#

Yeah

mental fox
summer furnace
#

I mean they can, they just need a build of java21 for 32bit ARM, and lwjgl natives for 32bit arm

plucky brook
summer furnace
#

wait server, no need for natives then

mental fox
#

I mean, I assume the java21 64 bit change would also pertain to servers.

#

Idk much about server architecture though.

fallen nymph
#

Doesn't the Raspberry Pi come with it's own MC version?

mental fox
edgy arrow
mental fox
#

I just amended my message.

edgy arrow
#

yeah i saw just as i sent it lol

mental fox
#

And I also know that you can mod the game to re-enable the disabled features.

median wasp
# plucky brook The `when` stuff?

That's Kotlin, but pretty much yes. Java basically has the when (x) { from Kotlin now (not the when {, though, as that's just a glorified if-else-if chain)

plucky brook
#

I meant case Integer i when i > 0 ->

fallen igloo
#

yes

plucky brook
#

Nice

digital drum
#

finally j21 is here

digital drum
magic sierra
clear bane
#

I guess Mojang was sick of us asking /s

digital drum
#

πŸ‘€

twin elk
# elder swallow Virtual threads

Do they have some immediate use? Cause in general threading is a pain when not done well, especially in places mc isn't prepared for it...

clear bane
#

I have a feeling that Mojang has worked with them, over the course of the dev time of J21, and have moved things to them

#

(I assume)

summer furnace
#

virtual threads are not actually threads, you have to think of them in a different way

foggy steeple
#

Devs and misleading names shipit

plucky brook
#

I also haven't really understood what virtual threads are and what they accomplish, but I also didn't really look into it

summer furnace
#

short version is, they are coroutines

#

they automatically suspend during blocking I/O

#

letting another task run meanwhile

#

but they don't do preemptive multitasking

#

switching between tasks is much faster than switching threads

#

but you can't predict how long it will take

prisma locust
#

snowman is broken?

digital drum
#

I dont personally think this is worth updating to

spiral radish
prisma locust
#

maty bumped srgutils though thonk

reef parcel
restive raft
#

IT BEGINS

restive raft
restive raft
#

where's the nearest Mojangsta? i need to redeem a hug ticket

plucky brook
#

Did you play Little Inferno?

restive raft
#

no, but I did have a lot of MC crashes in the past

plucky brook
#

Ah, fair enough, forgot those existed

short cove
#

Is updating a huge task or were they too busy with the April fools snapshot to do anything else

#

Very small snapshot

#

I thought maybe only a few people were working on April fools

#

But it's a lot so perhaps they all did

foggy steeple
#

April fools was a technical showcase of their new systems. Also helps them see where limitations are and issues (imo)

reef parcel
#

The snapshots after April fools are generally rather small

blazing valve
fallen igloo
#

What is the next lts after 21

blazing valve
#

I think it's year based and as such not decided yet?

digital drum
fallen igloo
#

Yea

digital drum
#

should be j20....5?

#

j25

blazing valve
#

i vaguely remember it being every 2 years, but they didn't keep that for 11 either, so who knows

digital drum
#

Oracle intends to make future LTS releases every two years meaning the next planned LTS release is Java 25 in September 2025

digital drum
reef parcel
#

Which means a quick port :p

fallen igloo
#

who disabled the auto build for neoform?

blazing valve
#

What is jammer and where is that even coming from πŸ€”

#

There's just a straight up download from Maven (why is that not a dependency hmm) but I can't find the source fo rit

blazing valve
#

That needs an ASM update apparently 9.1->9.5

magic sierra
#

Note : 1.20.5 is abandoned

#

It's confirmed

fallen igloo
#

where?

open kindle
#

that is Bedrock tho

#

Bedrock versioning is not related to Java versioning as far as I know

magic sierra
#

This is the first version named 1.21

fallen igloo
#

there is no mention of 1.20.5 being abandoned

blazing valve
#

Hmmmmm. @wooden tendon Is it intentional that if Jammer fails, it still exits with exit code 0? Should I PR a System.exit(1) there?

fallen igloo
#

it just says 1.21 features

wooden tendon
#

No that is not intentional

blazing valve
#

Okay, I'll include a System.exit(1) there in a PR. I was surprised by that

wooden tendon
#

In what way is it doing that?

blazing valve
#
[main] ERROR com.ldtteam.jam.neoform.JammerRuntime - An error occurred while running the jammer.
java.lang.IllegalArgumentException: Unsupported class file major version 65
wooden tendon
#

Ahh right

#

ASM

blazing valve
#

I am updating ASM to 9.5 r/n. I was just surprised by the Neoform update.gradle still building successfully πŸ˜…

digital drum
#

oh yea this looks disgusting

#

I can't articulate why

#

but its disgusting

median wasp
#

You need VF snapshots to get J21 features

#

VF 1.9.3 does not support J21 properly

#

Enum switches inside the same source tree appear to not use the lazy inner class indirection anymore, which would break decompilers resugaring switch-on-enum unless they support the new way of doing it

fallen igloo
digital drum
#

oh ok

true jacinth
#

Yeah that looks like decompiler artifacts, its what the enum switch compiles down to

dapper hornet
#

what is VF ? is it VineFlower ? What does it do ?

open kindle
#

the decompiler we use

magic sierra
#

also

fallen igloo
#

that is also not a real confirmation
only if someone with the problem causer role here would say it explicitly or a mojang employee would tweet it

blazing valve
#

Do we care?

#

Well, we obviously care...

#

But does it currently matter much, I mean

dapper hornet
#

why are mojang people the problem causer. shouldnt that be other way around lol?

fallen igloo
#

no they cause the problems for us

reef parcel
# magic sierra

counter-point, gegy edited her message stating the likelihood of j21 in 1.20.5, which still mentions 1.20.5

plucky brook
radiant oracle
#

I'm using snowblower-2.0.17, but it keeps crashing with: "java.lang.NumberFormatException: For input string: "24w14potato""

blazing valve
#

Hm is it normal that Vineflower generates so many this arguments to anonymous class constructors, or is that new?

radiant oracle
#

I saw that they updated SRGUtils to fix the problem, but it doesn't seem to work. It worked until last week

misty crow
#

It worked until last week because the april fools snapshot didn't exist last week. All the april fools snapshots need to be hard-coded because of their basically unparsable version string

misty crow
#

Yes. Theoretically the srgutils bump should have fixed it

radiant oracle
#

It seems like no

#

I also checked that I got the latest version

blazing valve
#

I am trying to do it in the neoform project but oof πŸ˜„

radiant oracle
#

Ok it looks like I'm using srgutils from minecraftforge. Why?

fallen igloo
blazing valve
#

Ah. Well. We are patching the bytecode to patch in the parameters as far as I understand. No idea if that might (or not) cause this

wooden tinsel
#

Not super familiar with all the ins and outs of the API, but would this j21 feature maybe be used in the future for something like how events are passed?

https://openjdk.org/jeps/446

blazing valve
#

It's a preview, so no

wooden tinsel
#

it is the scoped values deal

#

ah

#

makes sense

plucky brook
#

If mojang updates to a version where that's no longer in preview, who knows Β―_(ツ)_/Β―

fallen igloo
#

I know... if they don't add some syntactic sugar for it, nope

wooden tinsel
#

So basically even if it wasn't a preview it is a bit too verbose then?

median wasp
#

Probably 25 at the latest

fallen igloo
wooden tinsel
#

My java experience is...less than the rest of you all who work on neoforge to say the least lol, so I was not aware

#

The question was also mostly just curiosity and wondering whether the tradeoff would be worth it, which sounds like a resounding no because of the verbosity

radiant oracle
blazing valve
#

What does that even do

restive raft
restive raft
#

the way it works though is a task which runs prior to build, iirc
and it seems Maty missed that when he updated SrgUtils

#

and it seems Maty missed quite a bit more

#

ah no

#

wait

#

eh, i'll think of this later
just woke up, so thinking's a bit of a slog

radiant oracle
restive raft
#

yes, that should work

#

try the license task before and after the change

#

(make sure you don't commit any change to logback.xml)

radiant oracle
#

Ok done, but I need CI maintainer approval

slow prism
#

I'm fixing it rn

restive raft
#

go poke that PR too, Maty

#

i'll leave you to it thinkies

slow prism
#

poking the PR is called duplicated conflicting work, the proper fix is to not pull mcf srgutils

restive raft
#

see, and this is why I ask you to poke the PR thinkies

slow prism
#

sigh is ART still pulling mcf

#

yes it is, aaagh

#

or uh @blazing valve can you do me a favour and poke that pr (bump major too)

blazing valve
#

what exactly do you mean by "poke"

slow prism
#

merge

blazing valve
#

It's running checks

#

BTW, on Neoform, what do I do to analyze this πŸ€”

> Task :24w14a:testDecompileServerHotSpot22Compare FAILED
Jar Contents did not match: 
  net/minecraft/world/level/storage/loot/functions/SetAttributesFunction.java
blazing valve
#

@slow prism Maven central publishing failed

  • What went wrong:
    Execution failed for task ':closeSonatypeStagingRepository'.

Staging repository is still transitioning after defined time. Consider its increment. StagingRepository(id=net***-1042, state=open, transitioning=true)

#

Otherwise it seems like it did publish 2.0.0 successfully. What do I do about this now πŸ˜…

stiff galleon
#

it changed from not planned to planned? thinkies

misty crow
#

It happened today, the latest snapshot is using J21

stiff galleon
median wasp
#

Oh, sorry for pinging

rigid walrus
#

91 compile errors for the client side

elder swallow
#

Is vineflower doing fine?

#

You might have to bump it to a snapshot version

blazing valve
#

I saw a lot of new SomeClass(this) {...anonymous overridden methods...} that didn't seem to occur in j17

rigid walrus
#

For NeoForm the decompiler output needs to stay the same and vineflower only publishes snapshots under a single snapshot version

elder swallow
#

Sigh

blazing valve
#

It seemed slightly annoying but still not a large problem to fix

elder swallow
#

Time to fork it?

blazing valve
#

in patches, I mean

azure sparrow
#

saying things on the internet was a mistake 1.20.5 is still planned πŸ˜›

#

if it were to be skipped you wouldn’t hear it from me in a random discord πŸ˜„

azure sparrow
#

this must mean minecraft 2

fallen igloo
boreal flint
#

goddamnit gegy

#

I know we wanted java21 ASAP

#

but this ruins the perfect opportunity of java21 for mc 1.21

#

now we can never have peace

naive hound
#

just round the version lol

rigid walrus
#

And 91 compile errors need fixing

azure sparrow
summer furnace
#

minecraft not having the same release cadence as java, smh :P

rigid walrus
#

this snapshot probably also has the highest new compile errors compared to patch updates

elder swallow
#

Probably the decompiler's fault though

naive hound
boreal flint
#

from players maybe

azure sparrow
#

no new content until valhalla

#

😈

restive raft
#

i mean, Java releases on a 6 month cycle

blazing valve
#

Is there a repo for panama-based lwjgl4 yet?

shut wraith
#

Java 21 for the new snapshot? That's amazing!

restive raft
#

I, for one, am ecstatic about sequenced collections and the code snippet doctag

#

moreso the latter for all the docs. all of it

#

gone are the days of <pre>{@code ...}</pre>

shut wraith
#

21 has switch pattern matching, right?

reef parcel
#

yep

shut wraith
#

Ah thank goodness

#

Unnamed patterns/variables are still preview though?

#

But those compile out so I should be able to just turn that on in dev

#

Ooh and virtual threads, nice

slow prism
#

that's not how previews work

#

all of your classes will require the runtime to have previews enabled

shut wraith
slow prism
#

it's a generic requirement

#

also no

#

it generates previously invalid bytecode

#

the lvt entry has a blank name

#

which is invalid until the preview is promoted

restive raft
#

preview features change the version of the class file

analog ledge
#

illegally... yortfuckinhaw

#

some ASM can fix that

restive raft
shut wraith
#

Wait why does that go in the LVT at all. Okay I need to poke how this actually compiles down more

slow prism
#

I remember stumbling into that when making camelot use preview j21

shut wraith
#

Ah wait try-with-resources, that's why it needs to be in a local still

blazing valve
#
SubscribedTask(DataFetcher.Task<T> var1, Consumer<T> p_239959_, Consumer p_239960_) {
    this.task = p_239959_;
    this.output = p_239960_;
}
#

The decompiler produces this weird artifact now πŸ€”

#

I am really confused, is it possible our parameter renaming loses some info now?

#

It essentially shifted the parameters off by 1 and repeated the last one

#

The correct code would be:

SubscribedTask(DataFetcher.Task<T> p_239959_, Consumer<T> p_239960_) {
    this.task = p_239959_;
    this.output = p_239960_;
}
#

Here's a real weird version of that:

public OverlaySmeltingRecipeButton(int var1, int p_100262_, RecipeHolder<?> p_100263_, boolean p_301104_, boolean p_100265_) {
    super(p_100262_, p_100263_, p_301104_, p_100265_);
}
[...]
new OverlayRecipeComponent.OverlaySmeltingRecipeButton((int)this, j1, k1, (boolean)recipeholder, flag1)
median wasp
median wasp
#

I think most things that are behind preview probably aren't checked

#

Can confirm that most things that require preview do indeed appear to not be checked

blazing valve
#

testCompile and testDecompile pass but I don't really know what these do...

errant lion
#

I have a theory, Mojang has 2 teams

#

Well perhaps one team for most of a specific version, and when one version gets close to finishing (1.20.5) they split into 2 to speed along that and other (1.21)

#

Perhaps

#

Not unheard of in game studios

#

Coffee stain studio actually did that

fallen igloo
#

so is the current neoform usable or should we wait until jas is done with the VF fixes

elder swallow
#

We should likely fork and republish VF

rigid walrus
#

1.10.0 is planned to release sometime soon

fallen igloo
#

tech we can wait those couple of days jas already said she is nearly done with it (probably just a timezone issue now)

elder swallow
#

Yes it's fine if it's a couple of days

#

The last release was months ago, and we already discussed forking VF a few weeks ago; if things finally start moving again I'm fine with waiting for the release

fallen igloo
slow prism
#

should add that server to the invite list

rigid walrus
#

There is already a neoform version using 1.9.3 for 24w14a

dry stumpBOT
#

Trick with name vineflower added!

#

Trick promoted!

rigid walrus
dry stumpBOT
#

[Jump to referenced message](#builds message) in #builds

Version

24w14a-20240403.231702

Build Branch

1.20.5-dev

Minecraft Version

24w14a

fallen igloo
#

eh I think we should wait for 1.10 to update to the next snapshot

#

since this one has a lot more manual patching

elder swallow
#

That's not really relevant for neoforge though?

#

We can update to a new neoform later on

wooden tendon
#

Yeah

#

In general

#

It might cause some rejects

#

Due to changes in the neoform patches

fallen igloo
#

yep it could mess with the neoforge patches

elder swallow
#

I don't really care tbh, we can wait a few days

summer furnace
#

it just needs to be coordinated when it happens

fallen igloo
#

I'd do it as soon as coeh bumps the VF version which should be when jas publishes the new version

fallen igloo
#

it's time for VF 1.10.0

#

and coeh is asleep

#

screm timezones

rigid walrus
#

And maven central is down

slow prism
#

lol

median wasp
#

Their publish also failed, probably for that reason

#

Though I can access Central fine, so it's probably back

rigid walrus
median wasp
#

Ah

rigid walrus
#

vineflower 1.10.0 has been released

rigid walrus
#

vineflower also has a plugin api now

dry stumpBOT
#

[Jump to referenced message](#builds message) in #builds

Version

24w14a-20240404.210202

Build Branch

1.20.5-dev

Minecraft Version

24w14a

rigid walrus
#

@fallen igloo

fallen igloo
#

tech I think you f*ed up list time you squashed

#

you squashed more than the kits commits

#

screm idk how to restore the history without doing the rebases on main again

elder swallow
#

Why would I have fucked up?

#

And no, we can't keep the history

fallen igloo
#

because we can't squash commits that were made via github PRs

elder swallow
#

But yes I made a few small changes in the squashed commit for some reason

#

Of course we can

#

Just do an interactive rebase and squash everything

#

Then update the time and message of the first commit

#

Maybe need to add a few authors too

#

And what's this talk of history?

fallen igloo
#

we loose the commit messages and thus the links to the PRs

#

it's not an issue but a best practice thing

elder swallow
#

It doesn't matter

#

Adding links to the PRs would be useless noise

#

Most of the PRs are simple fixes

fallen igloo
#

we need to bump asm in AT

elder swallow
#

Hehe yeah

#

Dewit

fallen igloo
#

(we are also still using mcf AT so someone has to change that after the ASM bump)

elder swallow
#

That someone has to be you

#

Probably bump to latest

fallen igloo
#

I'm not touching neoform

rigid walrus
#

accesstransformers is neogradle

fallen igloo
#

screm I have to touch NG again

#

gets the 3m pole

wooden tendon
#

What?

#

AT is a tool

#

You update the tool

#

Then bump it in NG

blazing valve
#

We really need to fix our tests /sigh

wooden tendon
#

I already got them all working

#

πŸ˜›

#

I am fixing something important

wooden tendon
#

But broke injection

elder swallow
#

Did we not repackage AT?

#

Don't we have to change the package somewhere??

#

And we really need to stop with xxx+ version crap

blazing valve
#

It's not great, I had the same thought

elder swallow
wooden tendon
#

We are not depending on AT

#

We are just invoking the tool

elder swallow
#

Yeah so the main class is specified in the manifest ok

fallen igloo
#

did we remove the fatjar in our AT fork? @slow prism

elder swallow
#

AT version is 10.0.+...

fallen igloo
elder swallow
#

I know, I'm not blaming you

#

It's just something we need to fix

fallen igloo
#

@wooden tendon the NG version with the bumped AT is broken because there is no AT fatjar, is that a problem in AT or NG?

rigid walrus
#

probably with AT

fallen igloo
slow prism
#

cause you're looking at the wrong thing

fallen igloo
#

??

#

that is where NG tries to get the fatjar from

slow prism
#

well it's the wrong artifact

fallen igloo
#

what's the correct one?

rigid walrus
fallen igloo
#

can we disable the

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
[12:03:50] [main/INFO]: Access Transformer processor running version null
[12:03:50] [main/INFO]: Command line arguments [--inJar, C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\steps\rename\output.jar, --outJar, C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\steps\applyUserAccessTransformer\output.jar, --atFile, C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\accesstransformers\User\accesstransformer.cfg]
[12:03:50] [main/INFO]: Reading from C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\steps\rename\output.jar
[12:03:50] [main/INFO]: Writing to C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\steps\applyUserAccessTransformer\output.jar
[12:03:50] [main/INFO]: Transformer file C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\accesstransformers\User\accesstransformer.cfg
[12:03:50] [main/WARN]: Found existing output jar C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\steps\applyUserAccessTransformer\output.jar, overwriting
[12:04:04] [main/INFO]: JAR transformation complete C:\Users\georg\Documents\modding\NeoForged-Porting\projects\neoforge\build\neoForm\neoFormJoined24w13a-20240328.090800\steps\applyUserAccessTransformer\output.jar
``` logging for the AT task
fallen igloo
#

A LOT of rejects

#

66 reject files

#

I'm starting at the bottom

elder swallow
#

How are there so many

rigid walrus
#

changes in the decompiler

elder swallow
fallen igloo
#

yea --variable => variable-- is the most obvious

naive hound
#

wouldn't that change create the wrong behavior under certain conditions?

summer furnace
#

only if it's used inside an expression

#

a(++x) vs a(x++)

#

if it's used standalone or like for(;;x++) it doesn't matter

#

(but eg, while(x-- > 0) does)

naive hound
#

so i guess it comes down to whether VF makes that distinction and just defaults to x++/x-- for non-expressions since it doesn't matter, but hopefully preserves the syntax for applicable expressions

summer furnace
#

thing is, there's often more than one way to interpret the instructions.
say you find ... using pseudo-assembly not actual bytecode ```
INC x
PUSH x
INVOKE a

you can interpret this in three ways:
1. `++x; a(x);`
2. `x++; a(x);`
3. `a(++x);`
elder swallow
#

I suppose that most rejects are quite trivial then?

fallen igloo
#

why does this even exist?

++++ REJECTED HUNK: 2
@@ -59,20 +59,6 @@
         }
     }
 
-    private static boolean isSticky(BlockState p_155938_) {
-        return p_155938_.is(Blocks.SLIME_BLOCK) || p_155938_.is(Blocks.HONEY_BLOCK);
-    }
-
-    private static boolean canStickToEachOther(BlockState p_155940_, BlockState p_155941_) {
-        if (p_155940_.is(Blocks.HONEY_BLOCK) && p_155941_.is(Blocks.SLIME_BLOCK)) {
-            return false;
-        } else if (p_155940_.is(Blocks.SLIME_BLOCK) && p_155941_.is(Blocks.HONEY_BLOCK)) {
-            return false;
-        } else {
-            return isSticky(p_155940_) || isSticky(p_155941_);
-        }
-    }
-
     private boolean addBlockLine(BlockPos p_60434_, Direction p_60435_) {
         BlockState blockstate = this.level.getBlockState(p_60434_);
         if (blockstate.isAir()) {
++++ END HUNK
fallen igloo
#

yes but that is not patching anything in or replacing functionality it is just removing 2 private static methods

elder swallow
#

They should probably be marked as deprecated instead

fallen igloo
#

they are private so you can't even access them without AT

blazing valve
#

Are we adding a method of the same name in a Superinterface?

#

So removing the private will now invoke the super instead

wooden tendon
#

They are static

#

I am willing to bet tehre are none static equivalents somewhere

wooden tendon
#

Hmm

#

Weird why were the statics removed then?

#

I guess to force people to use the none static ones

blazing valve
#

If the same class internally used isSticky it now goes up the inheritance chain instead

#

Oh wait πŸ€” I am mobile impaired hehe

fallen igloo
blazing valve
#

The call sites are qualified?

wild pine
frail hatch
#

Could be one pre mojmap one post. But also could be for whether it can pull other blocks vs whether other blocks can pull it or something. I vaguely remember there being some way to specify both

maiden prairie
#

assuming we are discussing current manifest data, then latest snapshot = 24w14a and latest release = 1.20.4

then, running this code gives a variable of release = 24w14a and snapshot = 24w13a, which seems entirely wrong. but it still "works" by comparing release times and picks the right thing

then, if we simulate with old manifest data when 1.20.4 was released, we have latest snapshot = 1.20.4-rc1 and latest release = 1.20.4
then, the code gives release = 1.20.4-rc1 and snapshot = 1.20.4

#

so in summary, the code works but only by accident :P

#

and in fact if wanting to provide specific mc versions through a config file, probably is prone to breaking?

#

I was just looking into this to try and run snowblower for the april fools version

fallen igloo
#

sooo is this still an issue since we are using mojmaps at runtime?

/**
 * Used to mark a recipe that shape matters so that the recipe
 * book and auto crafting picks the correct shape.
 * Note: These methods can't be named 'getHeight' or 'getWidth' due to obfusication issues.
 */
public interface IShapedRecipe<T extends Container> extends Recipe<T> {
    int getRecipeWidth();

    int getRecipeHeight();
}
blazing valve
#

Shouldn't be

fallen igloo
#

ok did it

true jacinth
#

The previous issue was that using the same name would mean the compilation would succeed but the override would be absent at runtime

fallen igloo
#

ok 33 reject files left

fallen igloo
#

only client and entity stuff left

fallen igloo
#

ToDo:
Tadpole.java.patch.rej
WitherBoss.java.patch.rej
Hoglin.java.patch.rej

maiden prairie
#

I guess 24w14a porting is already in progress, but I reran snowman with the newer snowblower version w/ fixed srgutils, so it also has 24w14a for viewing purposes

blazing valve
#

Just out of curiosity, @fallen igloo I'd go into Kits, check out the branch and work through re-applying the rejected hunks?

#

And then delete a rejected file after reapplying it?

#

I'll just give that a try. There's a first for everything heh

fallen igloo
#

I can show you, I'm in voice

blazing valve
#

Oooh you are still at it. nevermind then πŸ˜„

#

I thought your TODO list was to say you were going to take a break

summer furnace
#

StopHoldingItemIfNoLongerAdmiring is such a silly class name lol

fallen igloo
blazing valve
#

I already liked AbstractPiglina lot....

fallen igloo
#

I'm doing bottom to top

blazing valve
#

Alright, I'll go from top to bottom then

fallen igloo
#

come into voice so you can see what I'm doing

blazing valve
#

What does re-running genPatches do?

#

Since they don't seem to be part of your commits

fallen igloo
#

nah I'm not gening patches yet

blazing valve
#

It looked like you were running the task

fallen igloo
#

nope that button is commit

blazing valve
#

@fallen igloo Tadpole

fallen igloo
blazing valve
#

We probably need to check if there are new uses of RULE_MOBGRIEFING

#

Since we seem to be replacing those with net.neoforged.neoforge.event.EventHooks.getMobGriefingEvent(this.level(), this)

fallen igloo
#

yep

blazing valve
#

@fallen igloo Done with Hoglin, so I think we're caught up

fallen igloo
#

yep you rebase, then push so I can have everything too

blazing valve
#

Done

fallen igloo
#

I'm generating the patches

blazing valve
#

So I see two uses of pLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) that we already forgot in 1.20.4 (PowderSnow being destroyed by mobs on fire, it seems, and pitcher crop being destroyed by ravagers)

fallen igloo
#

yea there is also a new gamerule that we probably need to treat the same way (the projectile break block one)

blazing valve
#

We can do that outside of Kits though, I assume

fallen igloo
#

probably

fallen igloo
#

there are compile errors in base... HOW?

blazing valve
#

I don't have any in base

rigid walrus
fallen igloo
#

ok I had a dirty state after checking out kits, that compile error was a removed class

fallen igloo
#

we are compiling

blazing valve
#

There wre some minor issues in neoforge itself, did you fix those? I wasn't so sure about the attributes, heh

#

*in successfully applied patches, to be precise

fallen igloo
#

(existing world)

#

(new world)

blazing valve
#

So now that it compiles and launches, is that the point at which it gets moved back into the port-branch on NF proper? What's the process for that?

maiden prairie
# fallen igloo WTF

? just looks like a patch failure that duplicated lines, don't remember the technical term (if there is one)

elder swallow
fallen igloo
#

I want a workflow for that @slow prism

elder swallow
#

It's non trivial though

#

Just learn to use git πŸ˜›

fallen igloo
#

It is easy to fuck up and annoying (no matter if you use git in the console or via a tool)

blazing valve
#

Do you copy the port branch in the NF repo from the previous snapshot and then MR from Kits or just push it ?

blazing valve
#

I can remove the sources and squash, but I can't actually push it to NF

slow prism
#

sighs

#

just apply for neo maintainer

blazing valve
#

I pushed 24w14a-squashed to kits that has the squashed source-free port that would be suitable for ports/24w14a upstream

#

Yeah I probably should πŸ˜„

slow prism
blazing valve
#

I am bad at filling out forms. But we'll see how this goes .D

maiden prairie
#

lol

fallen igloo
#

targeting the wrong commits, forgetting commits, forgetting to remove sources

restive raft
#

sounds like a skill issue to me

#

./jk

fallen igloo
maiden prairie
# fallen igloo targeting the wrong commits, forgetting commits, forgetting to remove sources

I find it hard to miss or forget commits. At least when I use intellij's view, I don't think it's that bad. We should have a clear/consistent commit msg for where a new snapshot started (or you can tell by just using the fork point).

My recommendation would be:

  • make a commit deleting all sources / rejects/ whatever
  • set the branch filter to the branch you're on for ease of use
  • select the starting commit
  • hold shift and select the latest commit you just made > right click it > squash commits
#

I don't see why we couldn't automate this either (with human review of course)

#

but it doesn't really necessitate automation

elder swallow
#

I usually first gather the list of committers, then I do an interactive rebase, push the squashed commit to Kits, and if it looks good I push it to NeoForge

blazing valve
#

pre-receive hooks are Github Enterprise only, right?

#

Yeah looks like it

slow prism
#

what are those

#

oh I see, custom rules

#

but why

blazing valve
#

Well if you had those, you'd install a rule on the NF repo that fully prevents anyone from pushing projects/**/*.java πŸ˜›

#

Anyway, can someone check 24w14a-squashed and copy it to port/24w14a on NF?

slow prism
#

ah metadata rules only work on the commiter

#

unfortunate

elder swallow
wild pine
#

24w14a is failing to run clients for me in userdev

Exception in thread "main" java.lang.module.ResolutionException: Module io.netty.common reads more than one module named org.objectweb.asm

cloned the branch, published to local maven
bumped versions in my mod and attempted to run data gen after import

slow prism
#

someone should rebase the port branch..

elder swallow
#

I'll rebase soonℒ️

blazing valve
#

Hm so I tried my hand at it. So far so good. It now causes patch rejects on setup which I don't find surprising.
What I do find surprising however is that it doesn't produce a half-patched projects/neoforge/src/ directory to which I could apply the rejects by hand πŸ€”

blazing valve
#

A ha! setup -Pupdating=true. Also, I broke the patch file so bad, I get a "Patch engine failure" πŸ˜„

elder swallow
#

So the 24w14a port is broken right now? Not sure I follow

blazing valve
#

You mean w.r.t. Apex comment? Maybe

#

Or mine? I am just trying my hand at rebasing πŸ˜›

elder swallow
#

Oh, well any patch conflict needs to be resolved by accepting the porting branch, then redoing the patch after the merge

blazing valve
#

Okay, I was about to ask what your strategy for resolving those would be

#

Because I tried manually fixing up the patch file πŸ˜…

elder swallow
#

I typically open a list of conflicting files in my browser and redo them one by one

elder swallow
blazing valve
#

Now I provoked Patcher to throw an IndexOutOfBounds exception lol

#

Well it does for some parts of it πŸ˜›

#

I probably would have been done already if I just saved the files that had conflicts for later lol. like you said

blazing valve
#

Hm, TBH it'd be nice if diffpatch didn't outright crash on malformed hunks. if it wrote those to rejects "normally" this would be faster to do πŸ˜„

#

Trivial conflicts due to the ingredient isEmpty optimization and the burn-time changes

elder swallow
#

You broke my author sorting πŸ˜„

#

Doesn't matter anyway

blazing valve
#

You had author sorting?

#

πŸ˜„

#

I can change the commit message no problemo, but what sorting did you actually apply

elder swallow
#

I mean that they were sorted by name in the commit message πŸ˜›

#

Just so it wouldn't look as random

blazing valve
#

Okay let me fix that then

#

Done

#

Well, but the case of co-authored-by doesn't match. I'll also fix that 😩

#

Alright... now

maiden prairie
#

and you of course have to update the hunks to have the right # of lines for both the src and patched version. space lines are common and included in both counts and - lines go in the - count and same for +

blazing valve
#

Yup the trailing spaces caused the "Patch engine failure"

#

I did try updating the hunk line count and that worked for some hunks. But I gave up when Patcher threw an index out of bounds exception πŸ˜„

wild pine
#

24w14a implemented a new TooltipContext class inside of Item
(it allows holder, server/level tick rate and map data lookups)
and replaced basically all usages of Player inside of tooltip item methods (appendHoverText) with this new context class
could this context also be passed to ItemTooltipEvent to keep inline with the vanilla tooltip usages

elder swallow
#

Yes

digital drum
#

what happened to DyeableLeatherItem in the snapshots?

wild pine
#

it become a item component and item tag now
tag used to know which items are dyeable, component holds the dyed color and whether or not to show the "dyed" tooltip text

digital drum
#

got it

wild pine
#

yeah its much better, only rly need to tag your items as minecraft:dyeable
and register a item color provider if your texture is tinted based in specific tint indices

blazing valve
#

Alright, force-pushed the rebased port/24w14a

#

Oh and ofcourse new commits just came in πŸ˜„

restive raft
#

are we going to keep doing this branch/PR-per-snapshot? thinkies

blazing valve
#

No idea, I am just going off of what was there before

restive raft
#

i was wondering if we could make a long-running 'next-version' branch for each MC release instead

blazing valve
#

I am assuming we'll clean up later, at the moment it does help identify squash/rebase mistakes

#

between snapshots, I mean

fallen igloo
#

my idea was to have a port/<next-release> branch but tech made port/<snapshot> the pattern

restive raft
#

let's break the pattern thinkies

fallen igloo
#

yea down with the system ✊ /s

elder swallow
#

I like to preserve some form of history

#

We should just publish to the snapshot maven anyway. It's stupid to use a PR for CI and publishing

#

But I'm too lazy to actually try to do it ;P