Yarn: NoiseChunkGenerator sollte sich in net.minecraft.world.gen befinden

Erstellt am 13. Feb. 2021  ·  16Kommentare  ·  Quelle: FabricMC/yarn

java.lang.IllegalAccessError: class net.minecraft.world.gen.chunk.NoiseChunkGenerator tried to access protected method 'double net.minecraft.world.gen.StructureWeightSampler.getWeight(int, int, int)' (net.minecraft.world.gen.chunk.NoiseChunkGenerator and net.minecraft.world.gen.StructureWeightSampler are in unnamed module of loader 'app')

Während ich denke, dass das Paket für NoiseChunkGenerator derzeit besser ist, verursacht das Ausführen von Minecraft in einer Entwicklungsumgebung diesen Absturz.

bug discussion refactor toolchain

Hilfreichster Kommentar

Ich würde das Gegenteil argumentieren, da wir das Verhalten so oder so korrigieren, dass schlechtere Zuordnungen keinen Vorteil haben, nur weil Mojang zufällig eine bestimmte Paketstruktur verwendet. Nicht zuletzt, dass Sie nicht einmal mehr Loader benötigen, um beim Dev Runtime Hack alles öffentlich zu machen. Tiny Remapper kann dies direkt an den Stellen tun, an denen es benötigt wird.

Alle 16 Kommentare

Hmm, anscheinend funktioniert der Paketsichtbarkeitsindex von rätsel lange nicht mehr

Ich bezweifle, dass der Index funktioniert, aber die Befehlszeilenschnittstelle ist defekt. Muss geprüft werden.

Ich habe angefangen, den Zuordnungsvalidator zu verbessern und zu reparieren. Wäre schön zu versuchen, diese Probleme loszuwerden. Aber wir können es nicht garantieren

Es stellte sich heraus, dass Scheckzuordnungen nie gebrochen wurden. Es war das, was brach:
https://github.com/FabricMC/yarn/blame/21w06a/build.gradle#L396
Sollte ein Zwischenglas verwenden

Und diese Check-Mappings haben seit dem Zwischen-Update vor 2 Jahren nie mehr funktioniert!



Schauen Sie sich die aktuellen Ergebnisse an:

ERROR: Must be in one package:
net/minecraft/client/gui/screen/ConnectScreen
net/minecraft/client/gui/screen/ConnectScreen$1
net/minecraft/client/gui/screen/CustomizeBuffetLevelScreen
net/minecraft/client/gui/screen/CustomizeBuffetLevelScreen$1
net/minecraft/client/gui/screen/CustomizeBuffetLevelScreen$BuffetBiomesListWidget
net/minecraft/client/gui/screen/CustomizeBuffetLevelScreen$BuffetBiomesListWidget$BuffetBiomeItem
net/minecraft/client/gui/screen/CustomizeFlatLevelScreen
net/minecraft/client/gui/screen/CustomizeFlatLevelScreen$1
net/minecraft/client/gui/screen/CustomizeFlatLevelScreen$SuperflatLayersListWidget
net/minecraft/client/gui/screen/CustomizeFlatLevelScreen$SuperflatLayersListWidget$SuperflatLayerItem
net/minecraft/client/gui/screen/DialogScreen
net/minecraft/client/gui/screen/DialogScreen$ChoiceButton
net/minecraft/client/gui/screen/PresetsScreen
net/minecraft/client/gui/screen/PresetsScreen$SuperflatPreset
net/minecraft/client/gui/screen/PresetsScreen$SuperflatPresetsListWidget
net/minecraft/client/gui/screen/PresetsScreen$SuperflatPresetsListWidget$SuperflatPresetEntry
net/minecraft/client/gui/screen/Screen
net/minecraft/client/gui/screen/option/LanguageOptionsScreen
net/minecraft/client/gui/screen/option/LanguageOptionsScreen$LanguageSelectionListWidget
net/minecraft/client/gui/screen/option/LanguageOptionsScreen$LanguageSelectionListWidget$LanguageEntry
net/minecraft/client/gui/screen/option/VideoOptionsScreen
ERROR: Must be in one package:
net/minecraft/world/gen/feature/DripstoneClusterFeature
net/minecraft/world/gen/feature/LargeDripstoneFeature
net/minecraft/world/gen/feature/LargeDripstoneFeature$1
net/minecraft/world/gen/feature/LargeDripstoneFeature$DripstoneGenerator
net/minecraft/world/gen/feature/LargeDripstoneFeature$WindModifier
net/minecraft/world/gen/feature/SmallDripstoneFeature
net/minecraft/world/gen/feature/util/DripstoneHelper
ERROR: Must be in one package:
net/minecraft/client/util/math/AffineTransformation
net/minecraft/client/util/math/Vector4f
net/minecraft/util/math/DirectionTransformation
net/minecraft/util/math/DirectionTransformation$1
net/minecraft/util/math/Matrix3f
net/minecraft/util/math/Matrix4f
net/minecraft/util/math/Vec3f
ERROR: Must be in one package:
net/minecraft/util/dynamic/RegistryElementCodec
net/minecraft/util/dynamic/RegistryOps
net/minecraft/util/dynamic/RegistryOps$1
net/minecraft/util/dynamic/RegistryOps$EntryLoader
net/minecraft/util/dynamic/RegistryOps$EntryLoader$1
net/minecraft/util/dynamic/RegistryOps$EntryLoader$Impl
net/minecraft/util/dynamic/RegistryOps$ValueHolder
net/minecraft/util/dynamic/RegistryReadingOps
net/minecraft/util/registry/RegistryLookupCodec
ERROR: Must be in one package:
net/minecraft/world/gen/AquiferSampler
net/minecraft/world/gen/StructureWeightSampler
net/minecraft/world/gen/chunk/ChunkGeneratorSettings
net/minecraft/world/gen/chunk/NoiseChunkGenerator
ERROR: Must be in one package:
net/minecraft/world/chunk/EntityChunkDataAccess
net/minecraft/world/storage/RegionBasedStorage
net/minecraft/world/storage/SerializingRegionBasedStorage
net/minecraft/world/storage/StorageIoWorker
net/minecraft/world/storage/StorageIoWorker$Priority
net/minecraft/world/storage/StorageIoWorker$Result
net/minecraft/world/storage/VersionedChunkStorage
ERROR: Must be in one package:
net/minecraft/entity/EyeOfEnderEntity
net/minecraft/entity/projectile/ExplosiveProjectileEntity
net/minecraft/entity/projectile/FireworkRocketEntity
net/minecraft/entity/projectile/FishingBobberEntity
net/minecraft/entity/projectile/FishingBobberEntity$1
net/minecraft/entity/projectile/FishingBobberEntity$PositionType
net/minecraft/entity/projectile/FishingBobberEntity$State
net/minecraft/entity/projectile/LlamaSpitEntity
net/minecraft/entity/projectile/PersistentProjectileEntity
net/minecraft/entity/projectile/PersistentProjectileEntity$PickupPermission
net/minecraft/entity/projectile/ProjectileEntity
net/minecraft/entity/projectile/ShulkerBulletEntity
net/minecraft/entity/projectile/thrown/ThrownEntity
ERROR: Must be in one package:
net/minecraft/client/Keyboard
net/minecraft/client/Keyboard$1
net/minecraft/client/MinecraftClient
net/minecraft/client/MinecraftClient$1
net/minecraft/client/MinecraftClient$IntegratedResourceManager
net/minecraft/client/MinecraftClient$WorldLoadAction
net/minecraft/client/Mouse
net/minecraft/client/option/FullscreenOption
net/minecraft/client/option/Option
net/minecraft/client/option/Option$1
ERROR: Must be in one package:
net/minecraft/entity/ai/brain/task/AdmireItemTask
net/minecraft/entity/ai/brain/task/HuntFinishTask
net/minecraft/entity/ai/brain/task/HuntHoglinTask
net/minecraft/entity/ai/brain/task/RemoveOffHandItemTask
net/minecraft/entity/mob/AbstractPiglinEntity
net/minecraft/entity/mob/PiglinBrain
net/minecraft/entity/mob/PiglinBruteBrain
net/minecraft/entity/mob/PiglinBruteEntity
net/minecraft/entity/mob/PiglinEntity
ERROR: Must be in one package:
net/minecraft/client/gui/screen/world/CreateWorldScreen
net/minecraft/client/gui/screen/world/CreateWorldScreen$1
net/minecraft/client/gui/screen/world/CreateWorldScreen$Mode
net/minecraft/client/gui/screen/world/CreateWorldScreen$WorldCreationException
net/minecraft/client/gui/screen/world/MoreOptionsDialog
net/minecraft/client/world/GeneratorType
net/minecraft/client/world/GeneratorType$1
net/minecraft/client/world/GeneratorType$2
net/minecraft/client/world/GeneratorType$3
net/minecraft/client/world/GeneratorType$4
net/minecraft/client/world/GeneratorType$5
net/minecraft/client/world/GeneratorType$6
net/minecraft/client/world/GeneratorType$7
net/minecraft/client/world/GeneratorType$8
net/minecraft/client/world/GeneratorType$ScreenProvider
ERROR: Must be in one package:
net/minecraft/client/model/ModelCuboidData
net/minecraft/client/model/ModelPartBuilder
net/minecraft/client/util/math/Dilation
ERROR: Must be in one package:
net/minecraft/screen/ScreenHandler
net/minecraft/screen/slot/Slot
ERROR: Must be in one package:
net/minecraft/screen/AbstractFurnaceScreenHandler
net/minecraft/screen/slot/FurnaceFuelSlot

Autsch, das ist ziemlich viel da. Wir könnten einfach die Haltung einnehmen, uns nicht für bessere Zuordnungen zu interessieren? Es lohnt sich zu diskutieren

Imo werden wir es einfach beheben. Aber ich werde diese Aufgabe wahrscheinlich patchen, um wie Javadoc zu funktionieren (unser Javadoc schlägt nicht fehl, wenn die Doclint-Fehler auftreten). Wir können also wahrscheinlich die ausgelöste illegale Statusausnahme abfangen und einfach die Fehlermeldung ausdrucken oder nur dann fehlschlagen, wenn wir nicht auf ci sind

Verwandte Snippet:

ERROR: Must be in one package:
net/minecraft/world/gen/AquiferSampler
net/minecraft/world/gen/StructureWeightSampler
net/minecraft/world/gen/chunk/ChunkGeneratorSettings
net/minecraft/world/gen/chunk/NoiseChunkGenerator

Rückblickend wäre es wahrscheinlich besser, einige Dinge freizulegen, als das Paket privat oder geschützt zu lassen.

Von https://github.com/FabricMC/yarn/issues/128#issuecomment -254043872:

Sie sind sicher ein Hinweis, aber die Kompatibilität mit Mojangs internen Zuordnungen war nie ein Ziel.

Wenn Klassen wie Screen , ProjectileEntity etc (öffentliche API-ähnliche Klassen mit hohem Datenverkehr) private Pakete für Gleichaltrige reserviert haben, werden Mods in beiden Fällen versuchen, den Zugriff zu öffnen, weil ihre API -ähnliche Natur. Aber in den meisten anderen Fällen, die wir hier sehen, würde ich sagen, dass es irgendwie vorteilhafter ist, sie im selben Paket zu halten.

IMO sollten wir die paketprivaten Freunde in den gleichen Paketen zusammenhalten. Es kann an einigen Stellen zu schlechteren Zuordnungen führen, aber sie sind auch in Bezug auf das Verhalten korrekter.

Ein paar interessante Dinge fallen auf. In der obigen Nachricht heißt es beispielsweise, dass sich ThrownEntity im selben Paket wie ProjectileEntity befinden muss, aber ich verstehe nicht, warum; ThrownEntity verwendet jedoch eine geschützte Methode von ProjectileEntity in seiner Lambda-Konstruktion (für die javac afaik normalerweise eine Bridge-Methode generiert), selbst wenn die Lambda-Meta-Factory von jdk dies vollständig verarbeiten kann. Ich erinnere mich nur daran, ob der Paketsichtbarkeitsindex von enigma aktualisiert werden muss.

Es stellt sich heraus, dass der Konstruktor von ProjectileEntity ein Paket privat ist. Deshalb...
Die Warnungen aus dem Sichtbarkeitsindex scheinen also alle gültig zu sein, z. B. wenn javac keine Bridge-Methoden generiert. Jetzt müssen wir weitermachen, um diese Probleme zu beheben ...

Ich würde das Gegenteil argumentieren, da wir das Verhalten so oder so korrigieren, dass schlechtere Zuordnungen keinen Vorteil haben, nur weil Mojang zufällig eine bestimmte Paketstruktur verwendet. Nicht zuletzt, dass Sie nicht einmal mehr Loader benötigen, um beim Dev Runtime Hack alles öffentlich zu machen. Tiny Remapper kann dies direkt an den Stellen tun, an denen es benötigt wird.

Ich stimme Chocohead zu, ich bin nicht dafür, Klassen zu verschieben, nur um Mojangs Paketstruktur zu respektieren. Wir müssen die Probleme an anderer Stelle in der Toolchain beheben

Ich würde das Gegenteil argumentieren, da wir das Verhalten so oder so korrigieren, dass schlechtere Zuordnungen keinen Vorteil haben, nur weil Mojang zufällig eine bestimmte Paketstruktur verwendet. Nicht zuletzt, dass Sie nicht einmal mehr Loader benötigen, um beim Dev Runtime Hack alles öffentlich zu machen. Tiny Remapper kann dies direkt an den Stellen tun, an denen es benötigt wird.

Hmm, wir müssen also erklären, dass wir den Zugriff stattdessen unter https://github.com/FabricMC/fabric-loom/blob/57c9a8f3209121f22e84b8b01b64f1093256f1d3/src/main/java/net/fabricmc/loom/craft/konfigurieren möchten https://github.com/FabricMC/yarn/blob/629b96e84a8c7fcd44f87c63cbcf923000bfdf38/build.gradle#L826 -L830

Der Vorschlag für einen Webmaschinen-Refactor ist gut, dass wir tatsächlich einen geteilten Webstuhl verwenden können, um doppelten Code zwischen Garn und Webstuhl zu reduzieren

Schließen Sie dies jetzt.

Für Leute, die sich fragen, besteht die Lösung immer darin, den benannten (Garn) zugeordneten Glas- / Bytecode durch den Fabric Loader zu führen. Dies beinhaltet das Aufrufen von Datengeneratoren aus dem Dev Env Ihrer Mods!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Awakened-Redstone picture Awakened-Redstone  ·  4Kommentare

ChloeDawn picture ChloeDawn  ·  5Kommentare

ChloeDawn picture ChloeDawn  ·  6Kommentare

Bixilon picture Bixilon  ·  5Kommentare

Boundarybreaker picture Boundarybreaker  ·  3Kommentare