Yarn: يجب أن يكون NoiseChunkGenerator في net.minecraft.world.gen

تم إنشاؤها على ١٣ فبراير ٢٠٢١  ·  16تعليقات  ·  مصدر: 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')

بينما أعتقد أن حزمة NoiseChunkGenerator أفضل حاليًا ، فإن تشغيل Minecraft في بيئة تطوير يتسبب في هذا الانهيار.

bug discussion refactor toolchain

التعليق الأكثر فائدة

أود أن أجادل بالعكس ، نظرًا لأننا نصلح السلوك في كلتا الحالتين ، فلا توجد ميزة للتعيينات الأسوأ لمجرد أن Mojang يستخدم بنية حزمة معينة. ليس أقلها أنك لست بحاجة حتى إلى أن تجعل أداة Loader كل شيء علنيًا في وقت تشغيل dev بعد الآن ، يمكن لـ Tiny Remapper القيام بذلك مباشرة في الأماكن التي تحتاجها.

ال 16 كومينتر

حسنًا ، يبدو أن مؤشر رؤية الحزمة من اللغز قد توقف عن العمل لفترة طويلة

أشك في أن الفهرس يعمل ولكن واجهة سطر الأوامر تعطلت. بحاجة للتأكد.

لقد بدأت بالفعل في النظر في تحسين مدقق التعيينات وإصلاحه. سيكون من الجيد محاولة التخلص من هذه القضايا. لكن لا يمكننا ضمان ذلك

تبين أنه لم يتم كسر تعيينات الشيكات. كان هذا هو الذي كسر:
https://github.com/FabricMC/yarn/blame/21w06a/build.gradle#L396
يجب أن تستخدم جرة وسيطة

وتعيينات الشيكات هذه لم تنجح أبدًا منذ التحديث الوسيط قبل عامين!



انظر إلى النتائج الحالية:

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

أوتش ، هذا كثير جدًا هناك. يمكننا فقط اتخاذ موقف عدم الاهتمام لصالح تعيينات أفضل؟ يستحق المناقشة

إيمو سوف نصلحه فقط. لكن من المحتمل أن أقوم بتصحيح هذه المهمة لتعمل مثل javadoc (لا يفشل javadoc إذا كانت أخطاء doclint). لذلك يمكننا على الأرجح اكتشاف استثناء الحالة غير القانوني الذي تم طرحه وطباعة رسالة الخطأ فقط ، أو نفشل فقط عندما لا نكون على ci

المقتطف ذو الصلة:

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

إذا نظرنا إلى الوراء ، ربما كان من الأفضل كشف بعض الأشياء من العبوة اليسرى خاصة أو محمية.

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

إنها تلميح بالتأكيد ، لكن التوافق مع التعيينات الداخلية لـ Mojang لم يكن هدفًا أبدًا.

إذا كانت الفصول الدراسية مثل Screen ، ProjectileEntity إلخ (فصول تشبه واجهة برمجة التطبيقات العامة ذات حركة مرور عالية) تحتوي على حزمة أشياء خاصة محجوزة لأقرانها ، أعتقد في كلتا الحالتين أن التعديل سيسعى إلى فتح الوصول لأن واجهات برمجة التطبيقات الخاصة بهم مثل الطبيعة. لكن في معظم الحالات الأخرى التي نراها هنا ، أود أن أقول إن الاحتفاظ بها في نفس الحزمة أكثر فائدة إلى حد ما.

يجب أن نحافظ IMO على أصدقاء الحزمة الخاصة معًا في نفس الحزم. قد يؤدي ذلك إلى تعيينات أسوأ في بعض الأماكن ، لكنها أيضًا أكثر صحة من حيث السلوك.

تبرز بعض الأشياء المثيرة للاهتمام. على سبيل المثال ، في تلك الرسالة أعلاه ، تقول ThrownEntity يجب أن تكون في نفس الحزمة مثل ProjectileEntity ، ومع ذلك لا أرى السبب ؛ على الرغم من أن ThrownEntity تستخدم طريقة واحدة محمية من ProjectileEntity في بناء lambda (والتي عادة ما يولدها javac afaik طريقة جسر) حتى لو كان مصنع lambda meta الخاص بـ jdk قادرًا على التعامل مع ذلك تمامًا. ما عليك سوى وضع تذكير لنفسي للتحقق مما إذا كان فهرس رؤية الحزمة من اللغز يحتاج إلى تحديث.

تبين أن هذا ذكي بما فيه الكفاية ، مُنشئ ProjectileEntity عبارة عن حزمة خاصة. لهذا...
لذا يبدو أن التحذيرات الواردة من مؤشر الرؤية صالحة تمامًا ، على سبيل المثال عندما لا يولد javac طرقًا للجسر. الآن نحن بحاجة إلى المضي قدمًا لإصلاح تلك المشكلات ...

أود أن أجادل بالعكس ، نظرًا لأننا نصلح السلوك في كلتا الحالتين ، فلا توجد ميزة للتعيينات الأسوأ لمجرد أن Mojang يستخدم بنية حزمة معينة. ليس أقلها أنك لست بحاجة حتى إلى أن تجعل أداة Loader كل شيء علنيًا في وقت تشغيل dev بعد الآن ، يمكن لـ Tiny Remapper القيام بذلك مباشرة في الأماكن التي تحتاجها.

أتفق مع Chocohead ، فأنا لا أؤيد نقل الفصول الدراسية لمجرد احترام هيكل حزمة Mojang. نحتاج إلى إصلاح المشكلات في مكان آخر في سلسلة الأدوات

أود أن أجادل بالعكس ، نظرًا لأننا نصلح السلوك في كلتا الحالتين ، فلا توجد ميزة للتعيينات الأسوأ لمجرد أن Mojang يستخدم بنية حزمة معينة. ليس أقلها أنك لست بحاجة حتى إلى أن تجعل أداة Loader كل شيء علنيًا في وقت تشغيل dev بعد الآن ، يمكن لـ Tiny Remapper القيام بذلك مباشرة في الأماكن التي تحتاجها.

حسنًا ، لذلك نحتاج إلى الإعلان عن رغبتنا في إصلاح الوصول بدلاً من ذلك على https://github.com/FabricMC/fabric-loom/blob/57c9a8f3209121f22e84b8b01b64f1093256f1d3/src/main/java/net/fabricmc/loom/configuration/providers /MinecraftMappedProvider.java#L129 -L136 و https://github.com/FabricMC/yarn/blob/629b96e84a8c7fcd44f87c63cbcf923000bfdf38/build.gradle#L826 -L830

يُعد اقتراح إعادة بناء النول جيدًا حيث يمكننا بالفعل استخدام النول المنفصل لتقليل الكود المكرر بين الغزل والنول

إغلاق هذا الآن.

بالنسبة للأشخاص الذين يتساءلون ، فإن الحل دائمًا هو تشغيل البرطمان / الرمز الثانوي المعين (الغزل) من خلال محمل النسيج. يتضمن ذلك استدعاء مولدات البيانات من بيئة تطوير التعديلات الخاصة بك!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

copygirl picture copygirl  ·  6تعليقات

enbrain picture enbrain  ·  4تعليقات

asiekierka picture asiekierka  ·  3تعليقات

quat1024 picture quat1024  ·  3تعليقات

Sollace picture Sollace  ·  5تعليقات