Giter Club home page Giter Club logo

yarn's People

Contributors

asiekierka avatar bleachdev avatar blucobalt avatar boogiemonster1o1 avatar copygirl avatar darkevilmac avatar darkhax avatar gegy avatar grayray75 avatar hydos avatar iamgreaser avatar jamierocks avatar jamieswhiteshirt avatar juuxel avatar liach avatar magik6k avatar maxpowa avatar mezz avatar modmuss50 avatar nedelosk avatar neuneinser avatar pyrofab avatar runemoro avatar shadowfacts avatar shedaniel avatar sollace avatar squiddev avatar thecatcore avatar yanisbft avatar zeichenreihe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

yarn's Issues

Some questions

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

Incorrect method name : shutdown should be called tick

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

Server Crash Caused By New Mappings

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:

FIELD field_26614 cache Lcom/google/common/cache/LoadingCache;
METHOD method_28401 reload ()V
METHOD method_28403 getLootTable (Lnet/minecraft/class_4523;)Lnet/minecraft/class_5515;
ARG 1 identifier
CLASS class_5522
METHOD load loadLootTable (Ljava/lang/Object;)Ljava/lang/Object;
ARG 1 path

.

.

Inner class mappings are broken on pre-1.8 versions

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.

Example (1.7.10)

class_1253$class_1254 is mapped as MineshaftPieces$MineshaftCorridor...

CLASS class_1254 MineshaftCorridor

But in 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

Example (1.8.9)

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 it

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.

Biome#buildSurface -> decorate

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

Enabling Darcula Hides All Enigma Icons

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).

There is no Blaze3d in < 1.15

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...

Error when cloning on windows

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'

OverworldChunkGenerator; SetBaseBiomesLayer

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

genSources doesn't work on build.422+

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.

Incorrect mapping name : getServerWorld should be called getWorld

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.

classMap -> renderers

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

Javadoc fails to generate

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

getMaxDamage

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.