legacy-fabric / yarn Goto Github PK
View Code? Open in Web Editor NEWMapping Minecraft 1.14 Snapshots - 1.3. Discord >> https://legacyfabric.net/discord
License: Creative Commons Zero v1.0 Universal
Mapping Minecraft 1.14 Snapshots - 1.3. Discord >> https://legacyfabric.net/discord
License: Creative Commons Zero v1.0 Universal
So, first of all: Thank you for the project. I am completely focusing on 1.13.2 here (are there mappings for 1.13.1 and 1.13?). I will probably use it for 1.12.2 in the future.
How do I get the yarn mappings? I am checking https://meta.legacyfabric.net/v2/versions/yarn and getting a build id of +build.451
, so I assume the url needs to be https://repo.legacyfabric.net/repository/legacyfabric/net/fabricmc/yarn/1.13.2+build.451/yarn-1.13.2+build.451-v2.jar, but I only get resources under https://repo.legacyfabric.net/repository/legacyfabric/net%2Ffabricmc%2Fyarn%2F1.13.2%2Bbuild.202206171821%2Fyarn-1.13.2%2Bbuild.202206171821-v2.jar.
The second thing is: Why are there only -old
intermediary mappings for 1.13.2, see https://repo.legacyfabric.net/#browse/browse:legacyfabric:net%2Ffabricmc%2Fintermediary-old%2F1.13.2. I need the current ones for https://repo.legacyfabric.net/#browse/browse:legacyfabric:net%2Ffabricmc%2Fintermediary%2F1.13.2. The old ones do map, but they are completely wrong.
Thanks for any future help!
Moritz
Should be CommandExecutor
as it executes commands
Enum constants don't have names even though their names are literally right next to them
Type
Method
Describe where the element is
net/minecraft/server/MinecraftServer.shutdown
Description of the element
The method ticks the server
Expected name
tick
Additional Context
The method ticks the server, and thus shouldn't be called shutdown
The crash produces this error:
com.google.common.util.concurrent.ExecutionError: java.lang.AbstractMethodError: Receiver class net.minecraft.data.server.LootTablesProvider$class_5522 does not define or inherit an implementation of the resolved method 'abstract java.lang.Object load(java.lang.Object)' of abstract class com.google.common.cache.CacheLoader.
Likely due to a change in this section (lines 4, 5, 8, 9, 10), made in #118:
Names of the classes
every class thta has three numbers in its name
Additional Context
i need it. u need it. v need it
The net/fabricmc/yarn/maven-metadata.xml file still lists the deleted versions "1.12.2+build.local" and "1.6.4+build.local".
.
On 1.7.10 (and I assume any previous versions), inner classes use intermediary names despite there existing yarn mappings for them. This is ostensibly because the tooling assumes official inner class names start with <parent_name>$
, which is only true starting from 1.8.
class_1253$class_1254
is mapped as MineshaftPieces$MineshaftCorridor
...
minecraft-merged-named.jar
after importing the example mod, the intermediary name is used, and the class is not an inner class:
StructurePieceManager.registerPiece(class_1254.class, "MSCorridor");
Examining mappings.tiny
in the Gradle cache (~/.gradle/caches/fabric-loom/1.7.10/net.legacyfabric.yarn.1_7_10.1.7.10+build.458-v2/mappings.tiny
), we can see the following weirdness:
c asy net/minecraft/class_1254 net/minecraft/structure/class_1254
The class is missing the yarn name. And later in the file, the class appears again, this time with the intermediary name where the official name should be:
c net/minecraft/class_1253$class_1254 net/minecraft/class_1253$class_1254 net/minecraft/structure/MineshaftPieces$MineshaftCorridor
The class is also treated like a non-inner class in the intermediary mapping:
CLASS asy net/minecraft/class_1254
Let's compare this with 1.8.9, which works correctly.
StructurePieceManager.registerPiece(MineshaftCorridor.class, "MSCorridor");
In mappings.tiny
, there is only a single class containing class_1254
in its name:
c aqg$a net/minecraft/class_1253$class_1254 net/minecraft/structure/MineshaftPieces$MineshaftCorridor
We can see that its official name contains the parent class's name before a $
character. This is aqg
for reference:
c aqg net/minecraft/class_1253 net/minecraft/structure/MineshaftPieces
Intermediary also correctly shows the class as an inner class:
CLASS aqg$a net/minecraft/class_1253$class_1254
Fixing this will possibly require changes in Enigma, since it ignores what comes before $
in yarn names, and establishes the parent class relationship by checking the name that comes before the $
in the official name (which, in 1.7.10's case, does not exist). I wasn't able to fix the issue by manually changing the intermediary mapping to CLASS asy net/minecraft/class_1253$class_1254
for this reason.
Type
Class / Field / Method / Parameter
Describe where the element is
Biome#buildSurface
Description of the element
literally runs the decorate method of the biome decorator
Expected name
Biome#decorate
Additional Context
bad
When Enigma's theme is switched to Darcula, the icons in all of the menus disappear except for class/interface icons (found when expanding namespace folders).
Most blocks just have the field_xyz name
Names of the classes
container becomes screenhandler
Additional Context
yarn parity
Type
Package
Describe where the element is
com.mojang.blaze3d.platform
Description of the element
Contains GlStateManager and AdvancedOpenGlManager
Expected name
net.minecraft.client.gl.plaform
Additional Context
Blaze3d was introduced in 1.15 not 1.8...
PS C:\git-projs\5-11-2022> git clone https://github.com/Legacy-Fabric/yarn
Cloning into 'yarn'...
remote: Enumerating objects: 175423, done.
remote: Counting objects: 100% (5571/5571), done.
remote: Compressing objects: 100% (3405/3405), done.
remote: Total 175423 (delta 2154), reused 5163 (delta 2030), pack-reused 169852Receiving objects: 100% (175423/175423), Receiving objects: 100% (175423/175423), 24.25 MiB | 15.33 MiB/s, done.
Resolving deltas: 100% (110585/110585), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
'mappings/net/minecraft/block/dispenser/EGGDispenserBehavior.mapping'
'mappings/net/minecraft/block/dispenser/EggDispenserBehavior.mapping'
'mappings/net/minecraft/block/dispenser/SnowBallDispenserBehavior.mapping'
'mappings/net/minecraft/block/dispenser/SnowballDispenserBehavior.mapping'
'mappings/net/minecraft/item/itemgroup/RedStoneItemGroup.mapping'
'mappings/net/minecraft/item/itemgroup/RedstoneItemGroup.mapping'
'mappings/net/minecraft/network/packet/s2c/play/ExperienceBarUpdateS2CPacket.mapping'
'mappings/net/minecraft/network/packet/s2c/play/ExperiencebarUpdateS2CPacket.mapping'
Since merging #118, Yarn has published a build called 1.12.2+build.local
, which should only happen when the publishToMavenLocal
task is run. Never during any other task.
The only ways to build are ./gradlew yarn
and yarn.bat
There should be two more
Some methods/fields may be protected or package-private, which can cause visibility issues if classes are not put into the right package
Name(s) of the class(es)
net/minecraft/item/Item
Names of the classes
OverworldChunkGenerator is the only unmapped ChunkProvider. (at least in api)
The method with lots of maths is the populateNoise
method (shapeChunk is better tho imo)
The method which has strongholds and dungeons and stuff is generateFeatures
class_601 is SetBaseBiomesLayer
Layer.method_1829 is sample
or sampleArea
(modern layers do one sample at a time and yarn uses sample
for those, but the old 1.8.9 ones do multiple "samples" at the same time in an area)
class_604.method_1825 allocates an int array of the specified size
Biome.field_405 is id
or rawId
Layer.method_1827 is nextInt
Additional Context
yes
should be SpawnGroup
as it is only used for spawn limits or whatever you call it
Most items just have the field_xyz name
Running gradlew genSources
(in the example mod) on yarn build.422+ (since the buildscript update)
It fails with the following error:
Execution failed for task ':unpickJar'.
> Could not resolve all files for configuration ':unpick'.
> Could not find net.legacyfabric.unpick:unpick-cli:2.3.0.
After some investigation I have found that in /unpick-definitions/unpick.json
the wrong unpickgroup packagename is specified:
"unpickGroup": "net.legacyfabric.unpick",
after correcting it to:
"unpickGroup": "net.fabricmc.unpick",
It successfully resolved it, but then I got a new error:
Exception in thread "main" daomephsta.unpick.constantmappers.datadriven.parser.UnpickSyntaxException: Line 1: Missing version
This is caused by missing data from 2 yarn files (from the resulting build):
yarn-v2.jar\extras\definitions.unpick
yarn-mergedv2.jar\extras\definitions.unpick
In fabric's yarn it works completely fine.
After looking more into it, trying ways to fix it, I still have no idea why no data is written into
the definitions.unpick
files.
This can happen a lot, especially with primitive datatype fields and parameters
Type
Method
Describe where the element is
net/minecraft/util/HopperProvider.getServerWorld
Description of the element
The element is a method in an interface, which returns a World
Expected name
getServer
Additional Context
The interface HopperProvider is implemented in two classes : HopperBlockEntity and HopperMinecartEntity. In HopperMinecartEntity, there is no issue since the method is in the class itself and just returns this.world, however, HopperBlockEntity, i assume at least, uses the method getWorld, which is present in BlockEntity. This results in the method being, by default, inaccessible, and thus, whenever a mixin into HopperBlockEntity is created, if a method under the name getServerWorld isn't created, then the mod will simply crash.
Type
Field
Describe where the element is
EntityRenderRegistry.classMap
Type: Map<? extends Entity, EntityRenderer<? extends Entity>>
Description of the element
stores renderers
Expected name
renderers
Log:
> Task :downloadVersionsManifest
:downloading minecraft versions manifest
> Task :downloadMcLibs
:downloading minecraft libraries
> Task :downloadIntermediary
Download https://github.com/Legacy-Fabric/Legacy-Intermediaries/raw/master/mappings/1.8.9.tiny
> Task :downloadMcJars
:downloading minecraft jars
> Task :mergeJars
:merging jars
> Task :mapIntermediaryJar
:mapping minecraft to intermediary
> Task :buildYarnTiny
:generating tiny mappings
> Task :invertIntermediary
:building inverted intermediary
Loading mapping file...
Rewriting mappings...
Done!
> Task :mergeTiny
:merging yarn and intermediary
Reading 1.8.9-intermediary-inverted.tiny
Reading yarn-mappings.tiny
Processing...
Done!
:reordering merged intermediary
Loading mapping file...
Rewriting mappings...
Done!
> Task :buildTinyWithEnum
:seeking auto-mappable fields
Found 1045 interesting names.
> Task :mapNamedJar
:mapping minecraft to named
> Task :genFakeSource FAILED
FAILURE: Build failed with an exception.
* Where:
Build file '/Volumes/FILES/curst/build.gradle' line: 690
* What went wrong:
Execution failed for task ':genFakeSource'.
> not a valid name: true
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 42s
13 actionable tasks: 13 executed
Method
getMaxDamage inside ItemStack. also in Item has the same problem
gets the max size of a stack
getMaxDamage is the proper name or something similar
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.