#1.21 Snapshots
1 messages · Page 2 of 1
could technically automate the bot creating a porting thread if one doesn't exist
but threads owned by bots are bad™️
And there's no ownership transfer I don't think

sooo neoform?
Should I take a look?
i mean there's not really any rush to update
well, just overwrote my module metadata changes to neoform by switching to 1.21-dev and clicking "force checkout" a little too quickly 
i suppose I might as well do it now
Did they do anything interesting with DFU? Saw the major version was bumped, but GH commits don't reveal anything major
the way the DataFixerUpper instance is created changed in a breaking way, that's why
Ah
Just looking at the commit messages was not enough I see... I should know better by now
@light arrow neoform is 24w19b-20240510.192321
@light arrow 24w19b-20240510.193815 for the one that works with ecj
We should add an ECJ compile check to the workflow /sigh
mojira is busy....
hmmmm
but they are not "that" busy
so it is obvious that we are gonna get that new feature that they have been working on so obviously
or something else entirely
Developers working on datapacks haven't fixed any bugs
I hope it's a 3D mace
inb4 component blocks
or entity rework after I grump'd at a bunch of people doing Gander/moddev stuff, lol
think they'll move block properties to components?
yet another data component type registry
In theory block entities don't need to exist. Any block state that doesn't have its default components can't just be shoved into a Map<BlockPos, DataComponentPatch> (except they'd do Long2ObjecrMap<DataComponentPatch>, but you get my point)
That's what I'm hoping happens - the concept of block entities dies
You just have blocks and renderers
or would they 
Huh
to be fair this map probably hasn't been touched in 10 years aside from 1.20.5 moving to a fastutil object map
They use shorts in networking
The second one could easily just be a set of BlockPos
First one.. probably a component set
weirdly the second one is different in 1.20.6
protected final Map<BlockPos, CompoundTag> pendingBlockEntities = Maps.newHashMap();
protected final Map<BlockPos, BlockEntity> blockEntities = new Object2ObjectOpenHashMap<>();
sniped
Which class is this again?
the first one likely isn't hot
ChunkAccess


Well I can confirm the first map is present as a HashMap of block pos to tile entity in 1.2.5
https://bugs.mojang.com/browse/MC-6431 It's good that a bug report that was created in 2013 is finally fixed.
ohh, do players not get "respawned" anymore?
iirc that was because the exit portal calls PlayerList#respawn (which destroys the ServerPlayer and creates a new one, ask me how I know
)
imagine if Mojang was sneakily prepping for another dimension
and this got in the way
Next snapshot for Wednesday or Friday?
I think Wednesday
I don't think Friday will be a regular thing
Though they could do Friday to line it up with the 15 year anniversary
Old person /j
then there is special handling for that, because the Nether portal also replaces the ServerPlayer
does it?
oh, I just realised I only ever tested that part on a Fabric server, so I'm not 100% sure if it's a vanilla thing..
Is there a reason for that call?
It has so many side effects
What is the purpose of calling it
ask Mojang 
Notch
Notch did that one
Could be for lore purposes lol
I watched a theory video and it talked about the end being death or a dream
lol
So the fact that the player "respawns" upon exit is interesting
lore so deep they buried it in the guts of the game as an implementation detail
if you mean the thing they teased with the recipe abstraction... I hope so
iirc it's because the first time you leave the end, you don't exist in the world while you're watching the credits
you also appear at your bed rather than any other defined location
I'm curious how they fixed that
hopefully no last minute issues delaying it this time
unless they permanently move to fridays
`"yeah uhhh... my new pc also crashed, which had the changelogs on it again.... we really need to make a better solution for this....."

we're froggin
castor is the new frog
Capybara
hmmmm
sounds like they are adding something [REDACTED]
kingbdogz posted the frog it's happening
oh lawd it happenin
Aether in Minecraft??
did anyone post a teaser?
data driven mob effects, bet
nope
you'd think they would tangle themselves up in trying to get the Aether name
I think it's gonna be brewing recipes as real recipes
please 🙏
please
gah, ping
they already did the base for it by abstracting recipes away from containers
what is that beaver even eating
The new update will be a ConcurrentModificationException
cantaloupe
aww
cute frog
it looks more like a squash to me
Blinding effect updated
I see work terrorized you
Genius idea to modify an HTTPClient’s default header every time for an api call and then concurrently call the api a bunch of times
Now have to unravel that
@hard ivy sound the alarm
<@&1067092163520909374>
24w20a
https://www.minecraft.net/en-us/article/minecraft-snapshot-24w20a
Snow:
https://github.com/neoforged/Snowman/commit/0363d63c6be596b9e9d9e156cefe2d0ebaf82cab
Custom set base attributes are now kept when respawning
Oh thank god
New version detected: 24w20a.
Indeed
IT BEGINS
Lmao I set up an automation on my laptop while I was in a lecture since I was interested in firing order, but Instead it triggered when I was walking between lectures lol
no potion recipes this week it seems
they lowered the volume of pistons 
Boring snapshot this week
lots o' fixes
Peter was quicker
We must be getting close to 1.21
or they're still churning content behind closed doors 
nah, big ones can still happen
no look 2 messages above peters
i almost got it.. XD
then why is it posting twice 
Interesting, alot of the RenderSystem#assert* lines have been removed
Ah, that's because the game thread has been removed from RenderSystem
hey gegy will the potion recipe rework be in 1.21 or are you just doing the ground work now and the full thing later?
why is the snowman commit from 2h ago?
is this some time zone thing?
So I guess that was a failed experiment?
the commit time is based on the manifest -- I forget which of the two dates
ahh cool
releaseTime, it seems
looks like a bunch of rendering thread related changes...
Probably
hmmm
hmmm Potion.CODEC and MobEffect.CODEC are a thing now... maybe part of the preparation
"THE PREPARATION"
IT BEGINS
ugh they changed equipment slot again
Among other things, 24w20a includes a buff to the amount of Redstone Dust dropped by Witches, as well as a long requested change to make Piston sounds a tad more pleasing to the ear.
some people will be very happy about that
looks in the direction of TangoTek, Etho, Docm77, et al.
more redstone!
Wow, that is one underwhelming snapshot
A drop table change, a sound change and some json codec changes
Which basically holds the partial tick
It's basically the Timer class, except in interface form
this reminds me of a puzzle of when we had that slight issue because the pause partial tick wasn't being passed down properly when paused 
So there is no purpose to it other than to abstract something holding the partial tick?

If I wouldn't know any better, this feels like something added specificially to break essentially everything rendering related
nah, that wouldn't break anything rendering related
ah
I think that won't matter too much, since most rendering doesn't distinguish from (actual) partial tick vs paused partial tick
(and indeed, GameRenderer iirc the class used to be called with this.paused ? this.pausePartialTick : partialTick, because of how insignificant the difference was for rendering)
Well this will be annoying for my multiversion mod
Though if the game is frozen, everything will still freeze
But you can also get the delta ticks and realtime ticks
Dimension stuff seems to have changed a bit
But still roughly the same
PortalInfo is no more
updated Credits 
They broke the Minecraft demo timer X)
eyy, the Head of Franchise Player Ecosystem got promoted to Chief Operating Officer 
Funny, I just recently read something about overmanagement and unnecessairy positions in management
And that title was an example
lol

(they existed in the same position before the update, the entry just got shifted up one)
smh, missing comma
the last snapshot was on friday of course this one is tiny :p
bug report! bug report! /jk
God, all these changes make me not look foward to 1.21 releasing
I will need to rewrite so much shit
just due to refactoring and datafication
So far there's been so few changes compared to, like 1.20.2-1.20.6
Or do you mean from 1.20.1?
hmmmmm
I wonder how many people have actually seen the credits in full...
I shall endeavor to be one of them
Yeah
Ah pain
...after I finish checking the changes to the JSON
The 1.20 updates are pretty minimal, but 1.20.x -> 1.21 is going to be a nightmare
1.20.2, 1.20.4, and 1.20.6 were all huge
Well so far 1.20.6 -> 1.21 is really light
the snapshot cycle also just started lmao
So far they haven't completely rewritten much of anything
ey, they expanded the credits section on quality assessment
Enchantments, and those are just the start
Light???
Compared to rewriting advancements, items, and networking, yes
wait, they might've just moved it
Easy mode: 1.20 -> 1.20.1
Normal mode: 1.18.1 -> 1.18.2
Hard mode: 1.20.4 -> 1.20.5
They also did advancement reworks on 2/3 of those versions
Each advancement rework took me like 6 hours (or more) to port
And that's just from the advancements
When updating patches consists of deleting 2 files and running a couple of gradle tasks
Although tbf my mod is very advancement heavy
For my most popular mod, however, 1.20.4 -> 1.20.5 was actually the easiest I've had in a while
Most of the stuff I had to do was Java 21 related
However, as hard as rewriting makes porting, I'm glad they're rewriting stuff
Ah yes, when dividing by 0, the answer is always 0
finally, we have solved math
After some recent irregularities in our Snapshot schedule (public holidays, we're looking at you!) we're back to shipping on a Wednesday!
haha good joke
what rendering changes?
I mean CC is just screwed multiple ways (and will need basically a full rewrite for 1.21) but Gander uses a bunch of stuff related to partial ticks
I imagine the timing and GameRenderer stuff is just a start
It's pretty much just the partial ticks
They also removed some thread checking stuff in Blaze3D, but I think that's it
Once Mojang starts looking at an area of code, they usually clean up the surrounding areas
So I won't be surprised if some more internal rendering stuff happens
it is coincidence that code here has changed for unrelated reasons - I don’t think we ever said that’s happening
he is just really hopeful for potion rework lol
same way I want painting positions spawned from structure nbt files fixed
or per-structure piece autowaterlogging from world's water toggle
subtle 😉
or me wanting a 3d mace with actual spikes gathered from elder guardians
data driven horns and music disks
level class composition instead of overriding like 100 methods from interface trees tho
rip noisy piston machines
Etho, near his doors and sorting machines: "Finally, inner peace"
I reuse the piston sound effects for a few of my mechanical blocks, gonna need to remember which blocks use those and make sure they still sound fine
Oh that's nothing. https://youtu.be/zGDDKYSEz_Q
In this video we shine a spotlight into the darkness that is the souls of WaveTech members, as they exploit innocent hoppers for their own personal gain. Watch as I liberate thousands of hoppers from their wrath, and join me in my campaign for change in the wider technical community.
WaveTech discord: https://discord.gg/SR6q7sC
My own discord: ...
Is there some rule that Mojang can't pull these things from mods because that's a very simple fix that's been done like 10 times
I'm suprised it still exists
finally, another use for fishing

For those who don't get it... that recipe is a joke about the new sound sounding like a fish on land
There is a new sound? oh
something fishy that mojang did
they made pistons sound like a wet rag, or a fish that has jumped out of the water and is slapping around on the floor
Would a #air tag be useful?
for mods
No
air is not an adjustable concept
Either a block is air at the code level or it is not
Use isAir check in code
Blocks have that method that modded blocks can override
It also has consequences too in vanilla where chunk sections of only isAir true blocks will get all the blocks erased and converted to vanilla AIR block
neither are stairs technically and those have a block tag that's used in a structure processor for some reason [ask me how i know]
But also consider, what use case would an air tag provide that isAir can’t cover?
They aren’t something you can craft either
why do you know 
err. how
he said "ask me how", not "ask me why"
/j
There’s some structure processors that uses block tags for knowing how to rot blocks
i had a datagen error and it put air in the tag, so minecraft crashed whenever it tried to generate the structure
might end up being #allows_frost_walker_below
yeah
the hilarious thing is there's no reason to use a tag since it's clearly only designed to run on structures that only contain stone brick stairs
since it'd replace any stairs with mossy stone brick stairs or slabs
Or they don’t
They tend not to do anything about the air stuff
or they just adjust the blockstate predicate lol
They can switch to having the predicate in json just check directly for air, cave air, and void air
No tags at all
yeah
maybe they'll fix worldgen so cave air doesn't end up in the final world
void air is pretty niche for this, who puts water at the build limit and tries to walk on top of it
I wish they would put actual info on the world loading screen
I remember one time I replaced void air under the world with water
Terraria's world creation screen is awesome
Well they do put a lot compared to what they used to
It's not a worldgen screen, it's a loading screen
but there's always ways to improve
yes, but
that could be changed
They literally show how the loading is going
especially for worlds that are being newly created
Each step of chunk loading is color coded
It represents the chunk status
Each "pixel" is a chunk, and that pixel's color is the chunk status, yeah
ok and what does it actually mean
because currently I imagine 99% of users just go "haha funny colors"
(I do, at least)
These are the statuses
whenever chunk generation changes we get bug reports about this thing looking different
Worldgen steps
😅
I'm not opposed to it existing, I just think that it could use some sort of explanation
somewhere
maybe that already exists and I just didn't see it
to be fair at this point it is kind of iconic, it’s not infrequent that you see someone talking about world generation and show a picture of this screen haha
I'm not saying change it, I'm saying explain it
CubicChunks has a legend, but I don't see that fitting in the base game, as it's rather technical info that most people would just be confused by
The wiki explains it
oh but I also agree this screen is not useful haha
Right at the top: https://minecraft.wiki/w/Loading_world_screen
beautiful
Someone should abuse worldgen to make the load screen be a square map image of the world like the third pic
Or play Bad Apple (sorry I had to say it)
new mod idea: Minesweeper In The World Loading Screen
hmm mixin to rickroll via that screen 
Anyway Mojang has bigger things to focus on. Like next April fools update
gotta have stakes, or what’s the fun!
If you blow it up, all spawn chunks get deleted
if you fail, world is deleted
I mean, Mojang could do a minesweeper update for April fools where you mine a block and all surrounding connected non mine blocks up to 10 radius gets a number overlay for surrounding mines. So it’ll be 3D minesweeper with high amounts of mines.
Mine a mine block and get a charged creeper explosion

that would actually be funny 
I'm unsure how you would do that with blocks you can't see 
you wouldn't
You would just mine very carefully
fair enough
To reveal them and see their numbers
but let's just stop giving them ideas
that never works
don't let your memes be dreams
I was working on exactly this last night lmao
going great
do a rickroll next (hmm might be funny as an april fools joke for neoforge)
it' a snapshot day!
Wetpistonday

I really hope they finally do the big change
like comon Mojang you have teased it enought
yeah, you mean the [redacted] change you wanted for months?
[redacted] is not [redacted]
and bit big either
[redacted] is big however, but that will be released when [redacted] happens
The BLOCK_TYPE registry being used?
the data-driven future ✨
brewing recipes 
Will never happen
they even abstracted recipes away from using container... I can literally write a few recipe types for it on the latest snapshot (the biggest problem for neo is the vanilla compat)
it's also the most upvoted suggestion in the java-datapack channel on the feedback discord (currently 58)
You can trivially hook up a data loader for additional brewing recipes, what you cannot trivially do is name all the vanilla recipes and make them datapack-removable
Placebo already ships a data loader for new brewing recipes / mixes
all I want, is a renderer made in Vulkan
AND, something called haskell support
(ok last one is a joke)
I did in my PR using an in-memory datapack
that won't happen before 1.24
wgpu in Minecraft Java
If I had to guess they are having their sprint ceremony currently
Then they will decide to do a release
Post the frogs
And press the button
I can imagine them on a standup call each saying shit like:
"I sliced more lime" or "I fried more frys"
Then someone says "I made the whole engine multi threaded" and everyone is like "boo boo sit down"
Yeah they are for sure sitting and watching the project lead drag the Jira tickets in to the done column

I think they finished the standup and are having lunch now
Wonder what the food situation is there
😛
Do they have a cafeteria?
do they go out as a group to the local Chinese food shop?
Do they have free coffee in the office?
etc etc etc these are the omportnat questions!!
why don't you go to Sweden and see for yourself?
Because I'm at work as well and just finished my lunch break after my sprint closing meeting
then stop using discord silly
and fix work stuff

then go to sweden and see if they have a cafeteria
MC-67 is fixed
wow a 2 digit bug 👀
Yeap

wow
i wonder how they fixed it
It's an old bug
we know
that is the more reason to ask how they fixed it
because it likely became a feature for many 
Does this bug fix break farms or not?
it breaks portal based jockey sorters
it does not :p
there are two mixins involved: one overrides the loading screen chunk statuses to play the video and one forces the singleplayer server to never finish loading so the screen stays up
the code is disgusting tho
lots of global state involved
There may be a lot of changes in this new snapshot, I hope.
I'm thinking they redid entity networking or entity data, due to all the changes
stream codecs for entity info? 
I do wonder...
what cursed stuff they have planned for later...
I do hope some massive cursed things
they sell cannons on the internet?
of course
delivery must suck
...it's the internet
holy fuck google
it's WORSE than that for me
I searched explicitly cannon -canon to skip the photo cameras
XML datapacks
AND IT CHOSE TO SHOW ME A CATALAN WIKIPEDIA PAGE ABOUT A TV SERIES
someones new to the internet
search hard/long enough you will find anything
not their fault that you searched on their name 😛

and a brand's website
LITERALLY SEARCHED AN ENGLISH WORD GIVE ME RESULTS ABOUT THE ENGLISH WORD
I tried "cannon", and then EXPLICITLY told it not to include "canon"
no I did not f*ing mean "canon"
searching cannon AS IN THE WEAPON does work 
the camera is searched more
so it assumes a typo most of the time
hence why we Dutch use kanon

Get in, Finn
yes it works like that but you shouldn't need to do that
no correction!
tbh, I might have one... within 10km of me
need a bot that watches their Twitter feeds to detect posts containing frogs
or.. OR... just listen for manifest changes
borinf
the problem with the practical solution is that it can't comedically fail and begin hallucinating non-existent snapshots
how much do you wanna pay for their API 
https://developer.x.com/en/docs/twitter-api/getting-started/about-twitter-api
since you can't read them 
bluesky better
write only is free wtf memelon
by a lot
And it costs $100 per month to use the api to read posts
and nobody know what scraping is /s
user access is limited to 10k tweets a day I think
but we are getting off topic here
good luck
Elon made it bloody hard
on topic again
no frogs, no post

don;t be sad
when you are working, they will release it 
they have been doing that to me for a few weeks now 
my body hasn't been working for months
Friday snapshot...?
I can never remember when it releases
about an hour from now, iirc
hmmm maybe if we used the domino index near the mojang offices we could see if they are in a crunch or not?
where's my manifest tab
just go to their office, and ask
Last week was 1h earlier
"hi, I'm from the Neoforge discord and I wanted to ask when the next snapshot's releasing"
fax an image of a frog
it was for dpeter
since why would domino give us data
the mental image amuses me
afaict the closest Domino's to Mojang's Stockholm offices is 8km away
there's one 1km away from their Redmond office, tho :p
it's closed, darn
what other food could they be ordering??
no clue
we must know more about the diet of the employees!!
aww man now i want a dominos
just ping the problem causers, ez /s/s/s/s/s
as if they aren't always watching us 
don't tempt me!
Oh yeah, today is snapshot day
What do y’all think, are we finally getting datadriven items? Or just more fixes and minimal changes
I'm betting entity data going through stream codecs, or similar work
holding out hope for data-driven mob effects
!donttemptme
also, I could just do it
I did the original finnderp after all
do note, I am obligated to include Cpw in the ping as well
the closest to their office is a mcdonalds
but is it open
yes
soobway
that one employee that takes the food from their home: 👋
<@&1067092163520909374>
https://www.minecraft.net/en-us/article/minecraft-snapshot-24w21a
oop
New version detected: 24w21a.
AYYY
piston sounds reverted
Pause menu now can include a list of links provided by server
data-driven jukeboxes
silly bot, i already beat you to it xD
It seems we cooked a bit too hard with the new Piston sounds last week, which is why we're reverting back to the old sounds again
Shaders
IT BEGINS
custom server crash report details?!
and
Added @n entity selector, selecting the nearest entity
This functions as @e[sort=nearest,limit=1]
Additional requirements may still be provided; for example: @n[type=pig] will select the closest Pig
...and there it is
WUH
Oh man, @n will be NICE
JUKEBOX SONG REGISTRY
It’s probably like to allow custom buttons by servers in the pause menu, like hypizel
Proudly sponsored by <insert hosting provider here>
nice
holy hell
SHADERS!

SHADERS
The blend block in core shader definitions has been removed, as it was not used
The position_color_tex shader has been removed, replaced with the pre-existing position_tex_color
The glint_direct shader has been removed, replaced with the pre-existing glint shader
The armor_glint shader has been removed, as it was unused
i already know what i want to use that for
/gander watch @n xD follow around the nearest entity
air: All blocks that resemble air
Instead, attribute modifiers are now uniquely identified by a namespaced ID, similar to other resources```
Thank fucking god
The server links features nice
@red sigil they fixed it
hmm yes, this air here is made out of air
That allows servers to define links like Discord servers and various other things directly in the game now, and not just through chat, which is fantastic!
Everything is becoming data driven which is better
still no datadriven items tho…
imma go make a "link-blocker mod"
Or entity models…
give them time
damn
They’ve had over 9 years
So, I was kinda close on entity data - there WERE changes
Just not full streams I guess
and they are making more and more things data driven
doesn't mean they need to care for us to do it next week or next version
Block Tags
air: All blocks that resemble air
wasnt there a pr recently to add this which got turned down?
and mojang just did it themsleves
Time to fire that PR back up lol
I am still salty about those datadriven entity models thing being a bust
#AntiAirPr
Air is air
24w21a
Links:
https://www.minecraft.net/en-us/article/minecraft-snapshot-24w21a
Snow:
https://github.com/neoforged/Snowman/commit/8185dd13cb5b03466e0e0a07b7f85e1a938b87b0
24w21b
https://www.minecraft.net/en-us/article/minecraft-snapshot-24w21b
It's like Christmas
https://github.com/neoforged/Snowman/commit/182495bc46fa2d717cefec06d21a58b44d8916dc
NeoForm: 24w21b-20240522.183735
https://github.com/neoforged/Kits/compare/2298129fe57e...7636f98cc887
late /s
now awaiting the datapacks to tag diamond block as air or something
They first created datapacks 5 years ago
dimension_padding is nice, but Mojang pls, plsplspls add a way to get optimal structure spawn requirements... Gander would be so nice at that point
oh, so you can make anything playable in a jukebox now :3c
as in any item
inserts diamond
inserts d... no
now we just need data-driven noteblock instruments :3
and even show has already fallen
plays mining diamonds song
someone bonk finn
too late -- bonk
-pickaxe- [Don't Mine At Night] starts playing
creeper? aw man
can't blame me for your having a horny mind, Sci 😛
what a sentence
Turns bedrock into air
this will require some number of changes to CC: Tweaked
It seems we cooked a bit too hard with the new Piston sounds last week, which is why we're reverting back to the old sounds again
Lowered volume of original sounds to address initial feedback of Pistons being too loud
smh they couldn't come up with a new sound that was quieter but didn't sound like slapping spaghetti
🍝
but they listened
it's in their code too
Looks like they removed ResourceLocation constructors (or rather made them private)
oh god
Static factories go brrrr
RIP every mod ever
but.. why
wuh
Wait
pin this
New witty comments
no because ModelResourceLocation extends RL iirc
show class code fo resourcelocations
MeshData 👀
where's the diff
well, I should have access to these diffs but idk where to look lol
They have different witty comments for different types of error reports (so there's ones for crashes, ones for network errors, etc)
?!
ATs go brrr
quick, update the wiki!
the second link here tele
private 
yeah, because minecraft source code
fair enough
Profiler witty comments
you would call ResourceLocation.fromNamespaceAndPath(<string1>,<string2>) now.
ew
RIP every mod ever
there's a few other static methods. The goal was to remove the ambiguous constructors and make you explicitly state how to parse the strings
Imagine ResourceLocation.namespaced

For me:
You just decompile the game on the previous snapshot, create a Git repo in the directory and commit the code, then decompile the new version and commit that, then push the repo to a private GitHub repository, and check the diff
Or don't push it and read the diff in IntelliJ
You don't even need to push
Yeah same
easy as that 
shame I'm not at my desktop right now
mojang heard we all like breaking changes so much that they now make ResourceLocation constructors no longer public. So you to use these static methods:
ResourceLocation.fromNamespaceAndPath(<namespace>, <path>)
ResourceLocation.parse(<stringWithColon>)
ResourceLocation.parse(<string>, <separator>)
ResourceLocation.withDefaultNamespace(<path>)
ResourceLocation.tryParse(<stringWithColon>)
ResourceLocation.tryBuild(<namespace>, <path>)
calling it now that some mods will just AT the constructors
I mean, that is clearer, gotta give them that
so many changed files this week, github cant load them all
fromNamespaceAndPath 

only the 2 string constructor exists now. The single string one is gone
Pin this please
It's so long
oh god the vertex rendering APIs have taken damage
Well mine only says 7200, so I think yours is wrong
perhaps you're including resources?
Sometimes some files fail to decompile
my one guess
So is Ocelot
hmmm
thank you @hard ivy
which buffer?
Which can make the diff very large because the whole file changed (it's often Blocks or Items that OOM)
ok, so rendering buffer
Mojang why
at first glance they seem to have implemented optimizations somewhat along the lines of what sodium is doing to the bufferbuilder

Why must you make us suffer like this
vertexconsumer calls now do a direct memory write into native memory
at least some of them

Also, I'd like to complain about why they just renamed all the VertexConsumer methods with add* or set*
I think I might have to update AutoAFKFish, and I never have to update that...
Also, I can see you ResourceLocation#withDefaultNamespace
addVertex pushes a new vertex, setThing changes the property "thing" of that particular vertex
gander -> 🗑️
Block Tags
air: All blocks that resemble air
nothing better than massive internal changes
so yeah any code that used a vertexconsumer probably requires some refactoring at the very least
Will need xfact and embeddedt's help for making sure I understand all the rendering changes for the primer
Currently skipping for now since it's a hassle
someone did, yes
Lolo did iirc
Mojang smiled kindly upon them 
Yeap

how and why. ANd why wont they fix the freaking chunk section air issue
Wait, stats are in the achievement package. How have I never noticed this?
Hmm, looks like attribute modifiers are now a ResourceLocation rather than a uuid plus name
Probably for the FrostWalker fix?
Yep
It's in the changelog
Maybe the compiler didn't emit a pop for some reason?
Which would be weird, since javac implements expression lambdas at the AST level, as part of desugaring
Can you show the class?
ahhh thanks git, i totally didnt want to read this diff
eated it
I can't show the class, I haven't gotten there yet
Ok, the vertex changes seem to be a lot simpler than I thought they would be
Shaders on the other hand can go burn in a hole for a bit
what changed w/ shaders?
Bunch of things I haven't looked into yet since I'm putting it off until the end of the primer
oh lord
fuuuuuuck
they moved the chunk meshing loop into another class, whoever does kits will have to have fun moving that patch around
RenderChunkRegion no longer uses multidimensional arrays to store the cloned chunks
@white pond @half plaza
it might be worth starting on kits at this point tbh
kits?
well we need to wait for neoform
Well a bit of it could actually be removed. Mth.clamp for example, since we now have Math.clamp
NeoForge without patch
the private porting repo with the mc sources
it would be illegal if it were public
is that so? I will potentially enjoy using it in Gander at some point
Apex and I are already chatting >.>
ooh she got a knife *silently backs away*
I'd send a friend request to DM, but you aren't accepting them 
👀
how many of you work on gander now lol
looks to be three
ResourceLocation#parse?
when are you joining their cadre, embedded
yeah thats one of the static methods pinned here
but anyone using the one string constructor now can't just AT their way through
it might be faster to ask who isn't
they have to split up their string and AT to use thw two string constructor or switch to the static methods
They really should just switch to the static methods though
why AT when you can search&replace
good luck convincing modders to do so lol
🤨
new ResourceLocation -> ResourceLocation.parse or whatever the other one is
We aren't that lazy. At least most of us aren't
not lazy, the main issue is people trying REALLY HARD to make their mod cross-version
brb making a regex to do it
and people being lazy
I call mine loc
I'll switch
mine is location
so SnowyWeaponry.loc("thingy")
i like comparing names
ResourceLocation.withDefaultNamespace
public static ResourceLocation location(String path)
{
return new ResourceLocation(MODID, path);
}
SW.l("thingy")
shorter isnt always better
especially with ide autocomplete
Well they could've called it ResourceLocation.minecraft
I have an extension method on ResourceLocation for this 
You can't have an RL with escaped quotes
embed, give me an example input line and what it should transform to. I can make you a regex
true
that makes this trivial
sec
that's too short 
that would autocomplete on your IDE
in intellij, find new ResourceLocation\((".*")\) and replace with ResourceLocation.parse($1)
ez
hmmm, the fix version is Future Update rather than iirc Future Hotfix 
need no wait?
ah, this captures two-param as well, whoops
\"(?:[^\\\"]|\\.)*\"
well, that would replace new ResourceLocation("test", "test") with ResourceLocation.parse("test", "test") if I'm not mistaken
this is my usual regex for basic string parsing
isn't there some sort of structural find and replace
.*?
embeddedt: https://regex101.com/r/p7yyzd/1
neat
looks at Comby
in practice, though
it's more likely you do new ResourceLocation(variable) or even an expression
so parsing only a string would have only very limited usefulness :P
good point
I feel bad for whoever had to write these out
you can generate them 
why is baby in there twice
Because they apparently had had two modifiers for that
the capitalization of the hex digits is inconsistent 
still waiting for neoform... where is the neoform team
if i knew how to run it i would, i think i have access
that just means they weren't generated by the same tool
Yeah, there's hundreds of tools to generate UUIDs
what, you're telling me the Mojang devs can't mentally generate random UUID4s?
if you do, you should get help /s
yeah, when I was a baby I was bitten by a radioactive PRNG
New version detected: 24w21b.
because Maty /s
smh respecting the ratelimits
#1812
rate limits aren't limits, more like... suggestions
- Ginger (ping please!) (Ginger)
did you just self quote?
what the hell did they do to the screen blit shader
I fetched my own quote :p
excellent question
sure... but I can't find that message anywhere in this server...
so... please don't self quote
wait you didn't
q
[Reference to](#1233004919322054678 message) #1233004919322054678 [➤ ](#1233004919322054678 message)Added quote #1812.
I hate discord search
:3c
yeah i quoted that
the trick is to search for the quote number :p
like, changing the fragment shader I get; but the VERTEX shader change????
well ignore what I said then XD
All the structures change every snapshot, no matter the size
Because their DV increases
I will be awaiting your televised apology
wait
you are not @twilit slate 

Nice hotfix
I guess it KINDA makes sense, but still, it's REALLY weird
2 snaps on one day?! Damn
its almost 19:00 for them
24w21c: "oops sorry we forgot to mention that we made items data-driven"

maybe removing the matrix & color multiplication has a small benefit to FPS?
I don't really speak shader very well
😛
Yes also dpeter99 is in a lot of pain so excuse me for not finishing the update fast enough
then go sleep or see doctor
On the agenda already
I doubt it, but maybe avoiding the two uniform uploads per blit helps somehow?
I'm still reading the a diff 🙃
three copies of the snapshot name lol
something about the branding I think
There's AFAIK only two places where they DO this in the entire codebase
Updated the pinned post
who reads the pins anyway 
Isn't it a public static final constant in there?
interesting how they added a window platform helper method
Shut up...
I find I useful to find the links.
Also would be more useful if we had neoform version strings to post as well
so when they release a snapshot they need to bump:
- the hardcoded name string in
DetectedVersion - the
WORLD_VERSIONconstant - the deprecated
VERSION_STRINGconstant SNAPSHOT_NETWORK_PROTOCOL_VERSION- the return value of
getProtocolVersion(), which I guess is entirely different from that other constant - the hardcoded name string in
ReportEnvironment
better not forget one!
they prob use shared constants everywhere and decomp is removing that ref
I assume automation plays a role there
wdym
I'd hope so
for chunk rendering they issue a uniform upload for every subchunk
i'm talking about the screen blit shader, they changed it for seemingly no reason
ah
Probably only the constant is the one that needs updating
Remember javac inlines constants
they only blit to screen twice using that shader, ever
It inlines static final constants, yes
one is the main blit to screen, the other is the entity outlines
It also inlines final constants that are locals
good, they're not that crazy
I was ready to accept that that was just how it was, though 
I wouldn't be suprised if some of the others get filled in by some Gradle plugin
wait, MeshData.indexBuffer()????
They're starting to used indexed rendering holy smokes
this should mean entity rendering is a LOT faster
wait no I misremembered
I was thinking of instanced rendering 
yeah I just saw in and have a huge headache because of work so my brain autocompleted to instanced
it's a chance when it happens
<@&1242898841586372638> we want to start kits from todays b snapshot please fix neoform
whose idea was that role
mine and sci did it
Accidentally ran the check workflow for 24w21a instead of 24w21b
#builds message
[Jump to referenced message](#builds message) in #builds
24w21b-20240522.183735
1.21-dev
24w21b
Oh just came back. Anything interesting?
chunk stitching got extracted to itss own class, apperantly
Ok, take your primer: https://gist.github.com/ChampionAsh5357/d895a7b1a34341e19c80870720f9880f
88 reject files
ah we should wait for the event refactor
this is a way better diff than snowman (1.20.6 -> 24w21b) https://github.com/neoforged/Kits/compare/2298129fe57e...7636f98cc887
MeshData, interesting
Waiting for Mojang to outgrow their int/enum-based GameEvent system...
what's the process for coordinating working on those
depends on how much it is
@light arrow are you working on it, or can I pick it up?
I really shouldn't but I could do some mindless work right now 😛
i wouldnt mind helping out (porting is one of the reasons i applied for maintainer afterall)
if someone wouldnt mind sitting in vc with me
talk me through the porting process and stuff so that im not doing stuff wrong
publish the experimental gradle plugin?
as tech said actually working on them only makes sense when the event refactor is in
yeah yeah i know
yeah gonna stop right at the start and do the gradle plugin instead 😄
BufferBuilder seems interesting
they seem to be building right into off-heap memory now
yes
and I think they got rid of a bunch of indirection in the old implementation that slowed it down
VertexBufferWriter 🦀 ?
no, pretty sure it will still be needed for fast delegation from wrapper VertexConsumers
but the custom VC currently put in front of BufferBuilder to do direct writes into off-heap memory is now redundant
I just wish they would stop with the weird naming of shit
just call it materials
Not render layer, state shards, shader shards...
I might just have a look at that CommonHooks/EventHooks cleanup 
you should have a look at the event refactor first if you have free time 😛
that's the neat part, I don't
at least not until this weekend
but yeah, I might just do that
#DamagePipelinePRMergeWhen 
I wish everything that they did as an Enum that can change, net.minecraft.world.item.component.FireworkExplosion.Shape for example, an Object instead, and hooked it up to a registry
Or atleast use Interfaces?
IShape 
Where's the second parse arg come from?
Don’t know, I thought I removed it
I’ll deal with it when I’m back in front of a computer
And fixed
https://bugs.mojang.com/browse/MC-170907 What caused this bug?
The description tells you
a mistake
it's just cumulative error
the game has two kinds of position updates, absolute and relative
The same thing that happens on planes all the time
the relative updates assume that the client's copy of the value is correct
but when you don't sync the absolute value at the right times, it can drift away
in this case
when an entity is out of tracking distance (invisible to the client), the game isn't sending updates
so the values drift more and more
https://x.com/gegybeans/status/1793931106548604934 well who is Bob?
this guy, ofc
Probably the person who manages their ci/cd setup




Gander and CC, noooo


