#1.21 Snapshots
1 messages · Page 4 of 1
does it say the same for the Snowman triggers
no
well actually
no idea
it didn't fail the neoform one
the snowman one it didn't get to
is your repo scope not including gmcdeps and snowman
that PAT is a classic one with repo scope
and I did add the Bots team to the Snowman repo, and iirc the GMCDeps one too
...screm
ok let's see if it works now
New version detected: 1.21-pre4.
Likely resources, we filter out a lot of stuff that changes constantly due to version bumps
snowman has started
ah yes, that would make sense, i also filter out the png/nbt files during decomp
makes viewing in github easier as its not loading all those files
also saved a bit of carbon yay
yes
2 endpoints
one for patch notes and one for the version
Yep, --exclude "**.nbt" --exclude "**.png" are the current excludes we pass in on the Action
New version detected: 1.21-pre4.
lol what
why does it still think that's latest
ah i think i know why
yeah i know, the order stored got messed up
eh it's fine
it's only an issue in testing
anyway @hard ivy after all i don't think you broke anything 
the only changes i've did was to include the if-modified-since header correctly (doesn't affect this) and renamed that yaml to yml
the cache bust was probably made it smart again
Play Subnautia
laptop not powerful enough, I believe

maybe
No primer changes, just bug fixes
can IJ migrations turn new ResourceLocation into ResourceLocation#parse
didn't someone already create a regex for that?
Don't think so
Jokes on y’all, I just have a MainModclass.id(path) function anyway
So minimal changes for me

When new laptop?
next month
Regex! Regex! Regex!
no u
That one should be powerful enough
boop
well, my only use is games, so the proprietary ones do the job, but I can see the issue
gonna put in my guess for RC1 as <t:1718024400:f>
noted
Was gonna say, is mcp still a thing?
And even if it was, it isn’t something mojang releases
there are forks afaik, but yeah, nothing anybody should use and definitely not from mojang
well yes, either that, mcp mappings or mojmaps (for some reason)
Providing mcp is not conducive to the security of the Java edition. Please stop providing mcp to the community.
how much you wanna bet this person downloaded a malicious mod, googled "how do mods work", and put the first thing that came up into the report
not us though, we're different
true :p
I as well include you in that statement/s
I'm not a good programmer, but I play one on TV
This is also the first thing they've done on Mojira
thanks for the inspiration, got a tiny little bit of writing out of it.
Five men are in a room, arguing.
One sighs, tired of each of them refusing to concede. "Everyone in this room is an idiot," he says, calmly, but loud enough for the rest to hear.
Offended, one of the other men straightens up and throws him a hateful glance. "How arrogant, to presume yourself superior to us!"
He pinches his nose, seeing the others nodding in agreement. "I believe, Sir, that you have proven my point."
only one reject on Kits going from pre2->pre4
What should we do with GetEnchantmentLevelEvent, it's basically impossible to retrieve enchantments on items without a RegistryAccess now, and the event doesn't provide one
can it get one from the firing site?
its only fired upon enchantment level retrieval
Which I imagine always has RA context
IItemStackExtension.getAllEnchantments would need to take an RA
It probably should
alright
The way mojang is going something like 80% of the methods in the game are going to need an RA param, lol
Heh, it's used in ItemEnchantmentsPredicate which doesn't have RegistryAccess context 
How does it work at all then?
Wouldn't it be unable to resolve the enchantments without the RA?
It probably has holders already or something
the EnchantmentPredicate objects appear to have HolderSets inside
I suppose one option is for everyone to pre-resolve their holders, but not sure how that works with the client/server having separate registry accesses... do they also have separate Holder objects?
Presumably, yes; at least by instance equality
Theoretically everything has to be done by name (holder or key) anyway
Like what? If Mojang did do that, it would piss off the modding community 
If anyone thinks that the mappings have the slightest thing to do with security they are clueless
in an ideal world, only serialisation/deserialisation paths should need it. all references to dynamic content should exist in data too
But this is not an ideal world 🙂
You’re an ideal world!
we're 103 commits oudated on kits
that's an annoying rebase
that'll have to happen after a squash
this is the part where I become conveniently unavailable
I'd volunteer if I wasn't neck deep in Elephant excrement
Elephant what now?

ohhh
i'm trying to update some tests and see if the new ng update works so i can squash, push to public, and then do the painful rebase
Quote #1834 added: #1233004919322054678 message
okay GetEnchantmentLevelEvent is a bit of a problem
to modify the enchantments you need their holders
and to do that you need a reg access
our own events now require modders to statically get levels
@late sentinel 
christ how do you patch a holderlookup for datagen
like the block lookup for an itemtag generator or something else?
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: ========= 102 GAME TESTS COMPLETE IN 13.57 s ======================
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: 6 required tests failed :(
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: - levelSensitiveLight
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: - glm_dungeonLootTest
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: - glm_wheatSeedReplacerTest
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: - conditionalOverlay
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: - packOverlay
[17:27:09] [Server thread/INFO] [minecraft/GameTestServer]: - strictNBTIngredient
progress!
the tests don't crash
hey @vapid gale want some fun with the light engine?
[18:00:31] [Server thread/INFO] [minecraft/GameTestServer]: ========= 102 GAME TESTS COMPLETE IN 16.79 s ======================
[18:00:31] [Server thread/INFO] [minecraft/GameTestServer]: 3 required tests failed :(
[18:00:31] [Server thread/INFO] [minecraft/GameTestServer]: - glm_dungeonLootTest
[18:00:31] [Server thread/INFO] [minecraft/GameTestServer]: - conditionalOverlay
[18:00:31] [Server thread/INFO] [minecraft/GameTestServer]: - strictNBTIngredient
actually, both the glm and ingredient ones have since been changed
so uhm
squash, push, fun time?
They had partial mappings for their server
pdbs are debug symbols for executables
The comments make my brain hurt.
They make binary patching and creating hooks a lot easier
lmao
theyre crying over losing mappings
somebody tell them that java went years without them
they dont even have to start from scratch
they just have to determine new ones
the java community still actively chooses to use its own mappings sometimes, eg fabric with yarn
ah I was wrong, kits isn't 107 commits behind, it's 107 ahead lol
squash in progress
damn it that's a failed squash what the heck
wait no it's fine
gh desktop was reporting mc source files being the squash
isn't this with fixed jst?..
oh I see I think I know why
Is the only context where the RA is unavailable the enchantment predicate?
getEnchantmentLevel has no registry access param
Is that our method or the vanilla onw
the vanilla one
am i safe to say first /s 

I would already start to port my 160+ mods if I had access
laptop battery is dying so i'll post here a few things to do before pushing to publi c(i'll get to doing them in a couple of hours if no one does)
-
SessionSearchTrees fields & Key need an AT
-
BlockModel#bakeFaceAT,ServerPlayer#RespawnPosAngle,SwordItem#createToolPropertiesis making public AT to private -
patch back
ServerStatusctor -
MushroomCow,SnowGolemtag check for shears (check all patched shears stuff, since there's a tag in vanilla now) -
restore
Boggedpatch
we will make a port branch when we can
there also seem to be some jetbrains Nullable to javax Nullable changes in patches
those don't matter, but just noting them 
with that said, laptop battery ded
yeah i was just playing around testing various things locally and wondered if i could publish to maven local
it published and got curious how much of my mods i could port.. turned out to be everything xD
changing ATs in neo takes 40 seconds now
yay jst
skipping that decomp does so much for porting
idk why incremental recomp is still so slow
depends on scale
if you have big classes incremental is worth it
if you have tonnes of small ones
it's meh
but javac is still slow, so not inovking it is better than invoking it
wdym, does it spend most of the time computing the graph of what to rebuild?
Is neo's userdev recomp actually incremental now? Last I remember it wasn't doing proper incremental recomp due to some other input changing
well yeah when there's 5000 files it will definitely take a while
it is yes
we're talking neodev tho
which has native gradle comp cause all classes are in the same srcset
Right, should be incremental by default
On errors? Looks like you want whatever eclipse's wacky compiler is
Hmm. Does javac pay attention if you @SuppressWarning a package-info.java file? Can you do that?
well it won't help us even if it worked
or hmm
are we the ones generating the package-infos for MC
although at the same time, that shuts up the IDE too
which is bad™️
i only want the javac build warnings to warn just code that's actually ours
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated and will be removed in a future release ugh
why does this appear 8 times now
no thanks
javac plugin? /j
maty doing actual (porting) work 👀
is it just me or did we have a lot of new faces this porting round
compared to the normal crew

you and apex? lol
yeah i did some work more towards the very start
not pushed much since then,
gradle stuffs got borked and i dont know much gradle rly, so didnt wanna touch stuff and potentially bork it even more
god what is the recipe test code
it's a graph? 

the strict component ingredient test doesn't work and i have no idea why
you can rebase the branch on the latest commit
I can do that, yes. Everything pushed?
I just realised I merged shadows pr after the rebase not before lol
yes
it's all on port/1.21
Ok
also for the record, I disabled 2 ingredient tests with the crafters, something was really fucky with both the ingredients and the crafters
Ok, I ported the block drop event (that took me longer than I'd like to admit) and will force-push the port-branch now
Sorry for another force push to the port branch @fiery galleon 😅
Had to fix this patch issue.
yay it got a
now
for the blockTagIngredient test data gen needs to be rerun
somebody lost the keybind patches
@crystal umbra with the new shears tag, we can't keep patching out the shear code in entity#interact
@white pond how did you rebase, why did you remove the silktouchlevel and fortunelevel params from the extension method
Hm?
Be more specific, which method
IBlockExtension#getExpDrop
WDYM remove? the 1.21 way was passing it through that EnchantmentUtil thing
Check the comparision between before and after the rebase: https://github.com/neoforged/NeoForge/compare/9565597a6133c60eeb86ebac3325bed89c063781..b6429b3e1968e1acd76e1ed74ab6ee350c5c238a
Specifically, this was 1.21 before rebasing... note what is passed to EnchantmentHelper:
oh right, all the enchantment component stuff
But as I said, this really took me longer than I had hoped since it interacted with a bunch of stuff changed in 1.21 heh
But Shadows PR of the actual event didn't add those two params to getExpDrop, so I didn't keep them in the rebase either:
https://github.com/neoforged/NeoForge/commit/ef52a013d85b1b713904f80c121bf061e9596079#diff-09f61acff7451e91d7cc165e3359e1a6d23e9757efc2a569f9727c869c06a70bR349
you fix a test and 2 more break
great
well, i'll leave the ingredient stuff for later
it's a mess
Tool action and then perhaps have cases like machines do the capture drops part themselves (would still need the patch to mooshrooms probably to make them support capture drops in how they drop things)? Idk, my mind is in a really really bad spot right now so I probably won’t be able to help or provide more than that
Fix your formatting and it is good to go IMHO
hmm failing test
Also that
do you want me to wrap the setActiveContainer in the try finally too
Did you rerun the data gen for tests?
yes
Wdym.just make sure it's reset to null even in case of exceptions
rerunning the test data gen moves the data/neotests_block_tag_ingredient/recipes/block_tag.json to data/neotests_block_tag_ingredient/recipe/block_tag.json file location for me
huh, I'll try again
think i just found a saving bug in 1.21
loaded up a world, closed the window and game is hung at a black screen seemingly trying to save
also seemingly hangs when saving and qutting to main menu
how long did you wait
it often takes a minute or two for me
good 5 mins or so i belive

in dev env?
If so, it's a known bug
yeah in userdev, it just sits at either black screen (if closed window) or "saving" screen (if quit to main menu)
Hm why would this work in neodev but not userdev?
It's just a bug in Minecraft's “Offline” mode.
is there a mojira for that?
Yes and what is the actual bug? Why does it not happen in NeoDev? 🤔
¯_(ツ)_/¯
can confirm, bug is in userdev and not neodev
(just tried saving world in my rendertype pr, worked perfectly fine)
The bug report is invalid... um...
The bug report that seems to be the same is MC-265543
@agile canyon Btw the RL constructor is private, not protected
It was protected when you initially wrote that, but it's private now
The ResourceLocation is final and its constructor is private. There are alternatives depending on your usecase:
I changed that? Where are you looking
@digital scaffold
Yeah, the heading
are cheats working for anyone else in 21.0, when creating a new world?
any world i create always has them disabled, have to open to lan to enable cheats
even if i set world to creative and cheats enabled, i spawn in creative but cant use cheaty commands
world list shows cheats as enabled but loading the world they are not
even looking into nbt data via nbt-edit shows them enabled too
seems to be caused by DevLogin and is also happening on 20.6
my authed account cant use commands for what ever reason but normal neo Dev account can
unless the effect cures PR is merged by tomorrow ( ssshhh @vapid gale @late sentinel @primal spade reach a conclusion 😛), i'll start work on the 1.21 blog post, it'll have to be a bit longer than just "what did 1.21 change" since it should mention the important and impactful changes since 1.20.1 in a centralised place for modders skipping versions
You mean blog post right?
yeah 1.20.1 -> 1.21 sounds important, even if it doesn't affect most of us
I think you can just link our other posts for previous changes
They already try to limit themselves to essential information
yeah, and a few PRs that didn't get a blog post (like the event result )
Yeah I had event results in mind as well, good idea
what happened to QuadBakingVertexConsumer.Buffered?
[Reference to](#1233004919322054678 message) #1233004919322054678 [➤ ](#1233004919322054678 message)With VertexConsumer not having an endVertex() method anymore, the current implementation of QuadBakingVertexConsumer with the automatic "quad export" to a consumer when the fourth vertex is completed doesn't seem feasible anymore. All current uses of it use the buffered sub class (which is IMO a more sensible approach anyway). I'm considering removing the buffered subclass and making the primary implementation act as "buffered" instead. Any objections?
what happened to overlayCoords??
That was renamed in vanilla
setUv1() or setOverlay() depending on what you pass in. All of this is mentioned in the pinned primer
Gone, vertices are "auto-terminated" now
This is getting very deep into modder support territory now
Could you be more specific 😄
I'll take a screenshot
wait... maybe it's also a bug in 1.20.6
ok, it's also broken with 1.20.6
RC today?
who knows
likely, if not today then tomorrow
they'd want at least a couple days before the final release
I hope so. i picked a time that I hope i'm the guesser for
i wonder if they'll "fix" the issue with how their change to fire protection and blast protection basically makes the enchantments useless
meaning people will ignore those enchantments even more and will just get plain old Protection
New version detected: 1.21-rc1.
<@&1067092163520909374> 1.21-rc1
they heard you
checked the manifest in my browser, and voila
@austere ocean aight, who's getting the guesser role
(if you're willing to crunch the numbers)
I love how we have so many indicators of new releases
#builds #neoforge #minecraft-updates (twice), this channel
alright, I'm introducing a 10s delay before running the NeoForm check action
why
because for NeoForm, it ran the action, but the action didn't see the updated manifest
hmm, thonk
so either I make it run it twice, or I delay it
or I run it twice and delay it
delightfully devilish, Seymour sciwhiz
hmmmm
btw maty, do you know of a way to make it run a node twice without actually duplicating the node
use a loop?

i have no idea how to use the loop
so I'm duplicating the node for now, and leave it to you to poke it
No interesting code changes in the primer
no they heard PhoenixSC :P
:3 13 changed files
I want to kick all the nbt files that pump up the changes
What tool are you using again?
VanillaGradle + IDEA diff
uuuugh I was asleep
need to set an alarm for friday
gimme a minute
Isn't there a filter on IJ diff, you should be able to set it to something like !**/*.nbt?
There is, but I need to set it up each time, so I've just gone with the infinite scroll approach
take yer time, the role can be passed off in due time 
excluding png changes (which we don't care about) and the whole lot of noise from structure versions being bumped is worth it imo
We might actually wanna add that via GradleMinecraftDependencies since NeoForm now requires these
So we could do a workflow->workflow dispatch or just do a ~1m delay?
I'd just do a slightly longer delay

Codecs do be 
ah the generic
god i hate rebasing patches
there, squashed and rebased 1.21rc1 is done 
now no more squash
can finally do actual changes 
@fickle atlas you managed to get yourself into a porting commit 

i volunteer someone to fix the sizedingredient test
i also want to propose the removal of getenchantmentlevelevent considering that to be able to get an enchantment(holder) one would need a registry which is not available in stack#getEnchantmentLevel calls
that, or we continue the route of ugly patching to not provide mutable enchantment data and then add some other system on top that uses resourcekeys and somehow is compatible with the vanilla holder methods and contracts
my guess was 20min before the alarm. not sure if anyone else guessed closer
Well... People can always grab the current server's RA
It's ugly but it seems possible™️
I wonder if it could be grabbed using some item component trickery
I primarily defer to @late sentinel for enchantment stuff, but isn't the level event mostly used for faking/amplification?
doesn't help on the client
Well then they can grab the clients 
Just leave it there for now, I'll figure out what to do with it once the initial porting is done
why was FMLJavaModLodingContext removed?
Because its a hack
did anyone really use it for anything other than getting the event bus anyways?
The mod bus is now accessible via 1) mod ctor injection or 2) ModContainer
right, which negated the need for FMLJavaModLoadingContext for most users.
Precisely
@unreal timber did you make a bet? I can't seem to find one :p
#1233004919322054678 message
[Reference to](#1233004919322054678 message) #1233004919322054678 [➤ ](#1233004919322054678 message)gonna put in my guess for RC1 as <t:1718024400:f>
ah, I'm blind
caltinor wins this week 
gonna ask that people ping me with their bets in the future, since I apparently cannot read :p
putting my bets on a release on June 13th
you'll both have to specify a date and time :p
If we were to get an RC2, it would have to be tomorrow, with activity in #mojira sometime today
(If they wanted to do rc2 in the morning tomorrow, though they could go for a late window)
But bh, I dont see rc2 happening unless a major bug occurs and needs fixing.
For the most part, everything that would be queued now is going towards 1.21.1, which they already confirmed they have internally.
how close can we get to the release time on the 13th. that'll be a close race i bet since we aren't guessing date really
I feel like the snapshot guesser thing could easily be a bot command to set your guess then when the snapshot releases a webhook to post the winner.
I'd probably place my guess two hours after yours, since that puts it closer to the end of the release window rather then earlier.
Referencing this, but for the 13th
next snapshot (1.21.1) <t:1718803500:F>
yeah, I might make a website or something for it lmao
or a PR to camelot
:3c
doing this for funny
dyou think sci would let me add a webhook
has anyone seen this before?
happens when loading a 1.20.5 pre world, could be my fault™️
yes
you can check #maintenance-talk xfact commented on it
we need to change the loot tables event
fortunately it doesn't crash
it just logs
👍
how does oauth work 
I got it working :p
does anyone want to have a quick look at this PR? https://github.com/neoforged/NeoForge/pull/1087
Hm having that allocation there sucks
you're saying we could cache it in the CraftingInput?
Hard to say, but my gut says this will be called a lot
that's already checked earlier in the recipe
Oh it's too generic to know if something is empty or not blergh
ah ingredientCount() is the non-empty item count or what?
yes
then use that as the capacity arg to the arraylist
nailing down the particulars of the betting system is proving to be difficult
I think I should not include a field for what the next release will be, since we have no way of knowing
@hard ivy what happens if two people place the same bet :3c
do they both get the role

ideally, there aren't duplicates
but if there are, then i'm torn on either giving it to both, or tossing a coin to decide
I wasn't going to keep the bets hidden, since they're not hidden in Discord
either way the system will only tell us who won (or perhaps send a message here if I can get a webhook :3), it's up to yall to assign the roles
so it's a Problem For Future Sci™️
future sci™️ indeed 
yes, this system is really just a fancy spreadsheet; but it's an opportunity for me to mess with mongodb some more, and I love doing that
well, "love"
it's a learning experience every time
i'll add a minute's delay between running GDepsMC and NeoForm, and consider a more webhook-controlled workflow in the (near?) future
It's something to look out for in case NeoForm fails on check and says it can't find minecraft-dependencies
but I also noticed it's possible it doesn't even need to access it at all
since it just declares a transitive dep and never uses it itself. not sure
I think the implementation will look something like:
- have a "release" model with a nullable date field
- have a "bet" model which has a parent user and a release
when a release happens we find the single release model with a null date, fill the date in, find the closest bet and mark it as the winner, and create a new release model for the next one
neat
mhm, assuming we never end up with two release models with a null date :3
I'm sure it'll be fine

shocking: it has turned out to be more complicated than that
what might make more sense is having the bets have a nullable release field instead
yeah that means I can query for every bet with that field as null
progress!
@jagged stag I think we can solve our GetEnchantmentLevelEvent with DeferredHolder
Even though you cannot create a "real" holder against the RA, you can create something that is equivalent to one for the purposes of messing with the map
Since everything boils down to the ResourceKey
alternatively
you can just exploit loopholes™️ to pull the RA out of any of the Holder.Reference objects containing an Enchantment
Let me poke around with the debugger
If my assumptions are right, we can just expose the underlying HolderOwner<T> from Holder.Reference<T>, and downcast to its real implementation, RegistryLookup<T>
Since RegistryLookup<T> has Optional<Holder.Reference<T>> get(ResourceKey<T> p_255624_), we're basically done
would adding a leaderboard be a good idea 
ngl storing Holder-backed data (i.e. ItemEnchantments) on an itemstack seems like memory leak hell
Since the holder captures a reference to the HolderOwner, which is going to be a RegistryLookup with a captured reference to the Registry
Nonsense like this is why the registries should just be statically accessible
I have to deal with timezones
of course. of course. of c


memory usage intensifies
that's going to be a major problem for packdevs running /reload if you're right
also how does that even function correctly after the registry is reloaded
Badly, I presume
I thought the entire premise of holders was to not do this
Since it will not have a way to retroactively update the enchantments
This is why in my own system my DynamicHolder is managed by the registry and will be forcefully unbound on reload
mojang has hit the same wall
Based on my experience, if you setup a data enchantment, apply it to an item, and then change it and reload, the original will persist on that already created stack
the solution is obvious
send Shadows to Mojang to fix the problem /jk
I thought holders did this by themselves
I am learning that holders were a lie
Unless there's a new version of Holder that is basically what my DynamicHolder is... I doubt it
It might work
but that would require that mojang calls bindKey / bindValue with null (the params are not @Nullable)
to un-bind the Holder.Reference<T>'s
Which... yeah it doesn't do that
So yes, this problem will be quite evident 
(and the memory leaks)
does mojang recreate the registry or just empty it and repopulate it?
yeah then we're in trouble
My registry system was done with static registries that empty on reload instead of being recreated
because I encountered this exact problem
I don't really see how you could rectify it while recreating the registries from scratch without adding a bunch of extra transitional logic
See RegistryDataLoader.load for where it rebuilds all of them
List<RegistryDataLoader.Loader<?>> list = p_321856_.stream()
.map(p_321410_ -> p_321410_.create(Lifecycle.stable(), map))
.collect(Collectors.toUnmodifiableList());
makes a new one for each key
Iirc rebinds on reload but if no longer exists doesn’t unbind
bet = datetime.fromisoformat(form["time"]).replace(tzinfo=ZoneInfo(form["timezone"])).astimezone(UTC).replace(tzinfo=None)


hooray, placing bets seems to work :D
now I just need to do all the other stuff
tomorrow, though; it's almost midnight here
no altering bets, submission ends 1 hour before the first guessed time or at the start of mojang working hours, whichever is later
wait, so if I guessed that it releases in an hour I can lock submissions? :p
#modder-1․21․1-support message who broke?
[Reference to](#modder-1․21․1-support message) #modder-1․21․1-support [➤ ](#modder-1․21․1-support message)SessionSearchTrees.Key() is not public
latest NG
huh do I need to update or do we need to update in neo
Does your DB store when the entry was submitted? The oldest guess could win in that case.
well we could just make it illegal to submit the same time as someone else... also timezones are a thing what timezone is it using?
Removes deprecated 1.21 members:
updates FML
removes fallback for data maps: compostables, vibration frequencies, parrot immitations
remove ItemHandlerHelper deprecations
it does, actually
right, idk about the locking thing though
the db stores everything in UTC, but the page has code for displaying everything in the user's timezone (and includes a drop-down to change what timezone that is)
wait
when was it asked to make that 
since I would have given a shot at it 
just make a new DB table with the wins
nobody asked, I just went and did it :p
like, UI
I've already got the DB stuff sorted
just a new page with a table, and then make it infinitely long 
or add pagination, but that is hell

I think I'll have a "last game" thing on the main page and a separate history page with every game
Agreed, make it a leaderboard for who has the most correct guesses, or overall accuracy percentage
the annoying part is that I can't test the system until a release actually happens, and I am one hundred percent sure it'll immediately explode in my face
Why not just make a fake one to test it out?
Also true, Im surprised as well that Mojang chose not do do an RC2 today either
I expected them to at least have 1-2 major bug fixes left on their list, but it seems not
I'm going to, but I'm sure even after that it'll still fail somehow
¯_(ツ)_/¯
that's Just The Way It Is
I wonder how fast I can make one, with Laravel 

I think this was a good use of my time :3
Mixin prepare for mod neotests failed preparing InterfaceTestMixin in neotests.mixins.json: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException The specified mixin 'net.neoforged.neoforge.debug.mixin.InterfaceTestMixin' was not found org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException: The specified mixin 'net.neoforged.neoforge.debug.mixin.InterfaceTestMixin' was not found
has anyone encountered that?
four bets, very nice
Does it link with @mighty prawn, or does someone have to manually set the role?
Also 502
try again lol, I just restarted it to fix a bug
no linking
yet
Mine is the furthest from now, wow
considering that 1.21 is confirmed for the 13th I'm a little surprised :p
I'm betting that we won't get an RC tomorrow
perhaps, but since we know 1.21 will happen on the 13th your bet will be moot anyway
what I'm saying is that you threw away a perfectly good bet lol
Oh for some reason I wasn't thinking non snapshots counted
Idk why I thought that
"snapshot bets" may be a slightly misleading name lol
congrats to caltinor for starting a thing :p
all bets are logged in perpetuity, so in the future I could add a leaderboard or smth
aw. no recognition lol
the real thanks goes to you for whipping this whole thing up. major kudos
happy to do it 
you'll just have to win again, I suppose
firefox is blocking the Discord images because they're 'tracking content'
pfft
I'm on FF too and they load fine, I guess your settings are a bit more aggressive lol
maybe just a tad more aggressive
Inb4 ginger added tracking pixels and such
no takesies backsies! :3
alright, time to call Mojang and ask them to release MC 1.21 way earlier /jk
problem causers ping in 3
Its pretty much guaranteed we won't see another RC or any type of release tomorrow.
Only way it can happen is if #mojira updates sometime tonight, which would cut things insanely close.
@austere ocean please change the display format for the times to something non americans understand (24h clock)
or a toggle, although I do expect everyone here to understand 24h time
I hope everyone understands 12h time too
Well mostly, but 12 still confuses me
12 format or the hour 12?
"I expect you to here at 11!"
11 in the morning? for a sleep party?
wow, thats 
Yeah, that's also a problem
Dunno, we have 24h time but always use 12h in conversation
Sure, but there I don't have to know if it's AM or PM and the 12 is not a problem
AM "After midnight"
and PM "past midnight"
I confuse them, always
no matter how many times I google it
you confuse them because you're using the wrong abbreviations
after and past are the same thing
AM means 'ante meridian', and PM means 'post meridian'
the A in AM stands for ante
'ante' meaning "before" and 'post' meaning "after"
and 'meridian' meaning "noon"
so AM = ante meridian = before noon
and PM = post meridian = after noon
err, meridiem, meaning "mid day"
(like how "carpe diem" means "seize the day")
i'd like to say it's not that difficult, but I am aware that where I live, AM/PM is still the common notation
I mean... if I used it more, sure, I would remembe
I only needs it like once a year to remember (or more like once every few months)
not even our support ticket system uses it
next thing you will say is that we need to use imperial here as well /s
@austere ocean does the website use the version manifest?
it's supposed to do that automatically depending on your locale, I'll investigate
Which often doesn't match the system settings I think. It's just what's standard for the locale
For example, I use yyyy-mm-dd date, but things often show mm/dd/yyyy because of my locale
well, I happen to like 12-hour time, so I'm not changing it for everyone
what I can probably do is add an persistent override switch
beside the timezone? 
yeah (which also doesn't persist, I need to fix that too)
more code in the spaghetti pile!
(if only Laravel had a easy to use function to just convert between timezones
)
my deep dark secret is that the backend is a single 500-line file named app.py which also controls the rest of my website 
also, btw, just as a smol addendum to this game of ours: bets informed by insider information (like, say, if one were a Mojangsta) shan't be counted 
that will probably never trigger, but best to head that off 
I don't think the permissions I'm requesting for oauth allow me to see what roles someone has in this server
I hope you are joking....
if not....
you will get all the
one day
but I watch the bets, so if a problem causer happens to make one I'll. reprimand them I guess
can I ask you to strike bets from people manually? 
nah, just poke me and I'll poke them with a finger-wag and also a 
I'm not, but it was already too late for me to avoid 
no wonder it took you so long to make it /s /j
can you remove my bet because I didn't understand the rules
oops ping
no :3
I will only anneal bets if they're illicit (sock, problem causer)
sounds fine to me
the sanctity of the joke must be upheld
My bet is also messed up from what I meant because I made it in the wrong timezone
(now I wonder if I can crash your DM by generating a few thousand discord accounts, and using that nice link of yours /s /j)
Though that mistake will actually make my bet closer to the actual answer
I haven't seen any activity in #mojira so I guess no rc2 today and straight to release tomorrow 
@austere ocean Suggestion: add an option to sort by time bet on (since it's currently only time bet placed)
🧦?
I was just about to ask "why no release today giga?"
but then I remembered it was the 13th it should be released.... 
sockpuppets
alt accounts operated by the same person but pretending to be different people
like a sockpuppet 
bold of you to assume I'm sorting at all :p
I'll see what I can do
it's already storing a few million entries, a bit more won't hurt :3
(for a different project, I just use the same database software for all my stuff)
chat-archive> db.message.countDocuments()
57839612
sorry, did I say a few million?
i feel like if someone like Gegy made a bet it would literally break the internet with everyone online going wild about the "leak"
bold of you to assume it would ever escape these hallowed halls
they should, but make it ridiculous like sometime next year
Ah
I was thinking about that too. like just to troll
28.07.2461 23:58
like if they made a bet today that the next release would be a week from tomorrow. and everyone thinks 1.21 is delayed a week
oh wow. that's quite a few bets. nice!
including at least one duplicate
i'm half-tempted to announce it in #project-talk 

I'm fairly sure I set up the win checker so it prioritizes older bets? let me check
it would be super funny for everyone except me if I made a mistake and it selects the wrong winner
surprise it's random!
...I think I'm going to look over the win checker again
bets = sorted([i async for i in engine.find(SBBet, SBBet.release == None, sort=SBBet.created.asc())], key=lambda bet: abs(bet.bet - releasedAt).total_seconds())
winner = bets[0] if len(bets) else None
that looks about right 
ah yes 

ok, I should do some actual work again
:3c
yeah that looks good. ||list comprehension still hurts my brain tho||
the listcomp is because find returns an asynchronous iterator
and there's no other way to consume those, they don't work with list
in Kotlin this would look something like engine.find(SBBet::class, { it.release == null }, Sort.by("created").ascending()).sortBy { Duration.between(it.bet, releasedAt).getSeconds().absoluteValue }.singleOrNull()
oh, it's super common in python because it's powerful. it's just one of those things i don't find intuitive to read. If I worked more with python on the regular it might click, but for now...
yeah, my point is that in this specific case it's not actually doing anything except consuming the iterator
because apparently we weren't worthy of an alist() method :p
which backend framework did you use?
neat. I've dabled in Flask and Django, but haven't heard of Quart
its API is basically Flask with a little bit of await
it's made by the same developers and I think uses a lot of parts of Flask internally
I prefer Django personally
Because it has a builtin database ORM with migrations and such
people underestimate using databases for large data storage
Certainly better and more space efficient than 100 megabyte JSON files
it's got funky math
but..but..SQL is scary. how will i edit my data? /s
is Excel a database
SQL is easy
Manifold actually has a fancy inline sql query interpreter
It's as cursed as the rest of manifold, but still cool
No Excel isn't, although it can be used as if it was in certain scenarios /integrates with actual DBs
https://github.com/manifold-systems/manifold/blob/master/manifold-deps-parent/manifold-sql/readme.md
Manifold is great, wish it wasn't paid
It isn't?
It will also make people that dislike lombok explode 
You can definitely use excel at a database. It'll just give up after 10,000 rows :p /s
It used to be the plugin had a nag dialog but would work without payment, now they just removed the whole payment side
Oh
That is actually excellent
Time to make a manifold mod that can hotload dark java
Ooh new logo
I think it was Platin who did some work on getting Manifold's Jailbreak working with reobf (and found a bug with shorts), although now we have runtime mojmap that isn't needed anymore
I also regularly shilled manifold
cause I haven't done it in a while

I just use Kotlin tbh
Unit Expressions are also great
Extension Methods and the no more Checked Exceptions are just so useful
https://github.com/manifold-systems/manifold/tree/master/manifold-deps-parent/manifold-exceptions
You can define custom units like F and U
I made a px unit for rendering code
5px = 1 / 16 * 5
Yeah Manifold is pretty neat
I don't want to force contributors to my stuff to use IntelliJ, so I can't use Manifold
Time to make LDTC a manifold mod

infact, I think I am going to test it out again when I'll make my DE energy core mod
Do we have a 1.21 working prerelease for NF yet
simply don't use SQL 
mongodb forever
The PR branch should work afaik?
Use SQL DBs through Django's ORM
yeah 
This is the first java community that doesn't react to manifold like a vampire being confronted with a silver cross

we love cursed stuff 
Cursed or not, if it's useful it's useful
I'm the one whose implemented ?. in javac
wow! this is just Kotlin
java developers will literally implement kotlin in java instead of using kotlin
:p
It's actually Gosu
Kotlin hurts my brain when I look at it
It's as if someone took the sentence "JavaScript (sometimes shortened to just java)" seriously
try looking at it instead of looking like it? 
The Author of Gosu realised that getting Java devs to change to a new language wasn't the way forward, so instead ported the improvements they made from their own language to just a javac plugin
Gosu existed pre Kotlin iirc
this is a declaration of war 
Well iirc manifold is just a massive preprocessor, is it not
It's not
It is mostly syntax sugar overtop javac + some runtime components but I wouldn't call it a preprocessor
Huh
That reminds me, I wanted to look into their properties system
All my homies hate getter setters
Ah yes, 2002 for the inital GScript which morphed into Gosu arround 2010.
Kotlin was released arround 2011
It looks like something halfway between kotlin and groovy honestly
it does have a preprocessor tho
it's very cursed
Yep, I never actually really found a use for it, theres a few things I can think of but doing it this way would be just cursed
Saying that when I literally just made a preprocessor for a language because 
Manifold's jailbreak is what inspired OpenSesame, originally
Well, there is the one multi version mod, that uses something like that to have all the code in the same file for some fucking reason
...but then I found even more cursed stuff I could do with OpenSesame, and here I am
I have also just realised this is the 1.21 thread
for some reason I thought we were in squirrels
there are no accidents
check on squirrels
arranged marriage
I think I will stay here
so anyway I don't think we're getting an rc today
I tried 1.21 snapshot with neoforge 21.0.0-alpha.1.21-rc1.20240610.155935(pullrequest version)
and success for my mod.... but Trial Chamber's loot table seems empty
any errors loading loot tables?
let's me see
nope. not have error. Instead I can open with spectator mode even not open yet
so the loot table value has been lost, then
but if you already opened that chest in creative
then that's done
make sure it's a chest you didn't open yet
Wasn’t there some talk of LootTable issues?
It's already empty when I open first
oh wait
It's 1.21 rc1(non modded) in game too
sorry my misunderstand
dunno the loot seems fine right now. (the netherite armor was spawned in in creative)
oh this chest is empty 
huh now all the chests are empty 

are they really that full?
is it normal?

If some chests are empty in the trial chambers, that's normal.
is that seriously a naturally spawning trident in a trial chamber chest/barrel?
timezone selections now persist
can someone give me the resourcelocation regexes for find and replace
to note them in the blog post
amused that giga made the same bet I did lmao
god fucking damnit, why did it do 12th 
to give everyone a fighting chance lol

At least it didn't mark it as the 14th xD
I'm still half-expecting to possibly screw it up from timezone differences haha
nah, everything's stored in UTC and the frontend handles timezones
so as long as you didn't select the wrong timezone, your bet is as it appears
does anyone have the link explaining how to use the 1.21 snapshots to build in dev?
I thought i found the PR but it's draft and the description was erased
The info is in the comment from the neoforged-pr-publishing bot on https://github.com/neoforged/NeoForge/pull/1076
ah. didn't notice the collapsible section. 
wait, should I have used server nicks?
do the scopes I request even allow me to read server nicks??
who knows
reminder bets close in a few minutes (office hours start at mojang)
I thought of BN "before noon" for AM and AN "after noon" for PM

DayTimeEvent.Pre and DayTimeEvent.Post
NoonEvent 
judging by the timestamp floating around in the MC discord either ginger or sci will win today's bet
hmmm
I can't win because I had the wrong AM/PM 
Was about to say...
I might've won had I had the right day
<t:1718296200:t>
Will it be on 1.21 release? Half hour later? We don't know!
maybe its 10 but that person is gonna review it
or is that a dev?
It's a Minecraft employer
oh
also do you guys think there will be a ton of bugs since there was only 1 RC
Why would the amount of RC have any relation to the bugginess of full release?
Well, if they were doing an RC every day, that would probably indicate the code is spaghetti nightmare and extra buggy and likely not all fixed. Low amount of rcs likely means the game is in a stable state to Mojang
"Too buggy, won't fix before releasing"
ah ok
they likely just did tree changes again /s
Can't wait for the .1 change that revamps everything internal about the game
Minecraft 1.21.1 will fix trial chamber generation
and remove herobrine

(they don't actually, I never implemented this)
woops, ping
but we can all say that the bets close ig
oh yknow I should add a display for bets which are already wrong
when do I get to say the phrase "all bets are off" /jk
I'm gonna go ahead and add this (or I'll try to)
1.21?
any minute...
just imagine we get rc2
done, that's a lot of red
I think we're certainly getting 1.21.1 tomorrow
probably should change the styling to something easier on the eyes
which is? 
tomorrow for me is about 2 hours from now 
gotta love timezones
and it's not actually that accurate either, since the time comparison is absolute
they wouldn't they would release and make a hotfix on monday
and we all know only Siths deal in absolutes
or friday
removed
at some point after the farthest bet :p
might be interesting to make a graph of when it actually releases vs when we all thought it would release
I'm bad at graphs, but I can probably make a way to download the bets as json or something
I don't see why Minecraft 1.21 should have a hotfix.
It shouldn’t but it likely will
why?
Minecraft's been needing a lot of hotfixes lately
I think most of the recent versions have had a hotfix soonish afterwards?
rule #1 of software deployment: as soon as it reaches the public, people find random shit none of the testers thoght to try
1.20.2 is the last one I can think of that didn't need one
Before that it was 1.19.4
That's rule 2 actually
they always find some bug that needs fixing asap after release
Rule 1 is "If it works, don't touch it, don't even look at it"
and rule 3 is: don't publish on friday
this is why I'm worried about the betting site :p
it's worked great so far
"great" except that it shows 12hr time despite having my pc (and phone) set to 24hr time :P
but the backend is duct tape and popsicle sticks and I don't trust it to not explode when the release happens
Thursday's not much better
that's a skill issue on your browser's part, my time formatting respects locale :p
Rule 4 is don't touch rendering
locale != time choice
if I can figure out how I'll add an override switch later
A lot of things don't offer an API for this unfortunately
Rule 4 doesn't exist for me
the library was supposed to handle it for me 
yeah that's one of the things that annoy me
I love 3D Graphics
I have the same issue with dates
I will rework rendering as many times as I can
stupid humans and their inconsistent preferences
Mojang are not aware of this rule



Nvm.. could just call new Type myself... 


