PlanetTeamSpeakk/DevLogin

macOS compatibility

Closed this issue · 9 comments

H4kt commented

I've ran into an issue while attempting to use this mod on macOS. Before that I was developing on my desktop running Windows 11 and everything seemed fine. However once I switched to my MacBook I've noticed that the game is stuck at pre-init phase. I assume that a Microsoft login notification should have poped up but it did not.

Environment:
Amazon Corretto JDK 17.0.3
Fabric 0.47.8+1.18.2
Fabric Kotlin 1.7.4+kotlin.1.6.21
Fabric Loom 0.11
DevLogin 2.0

Run args:
--msa --width <w> --height -<h>

Logs:

12:56:06 AM: Executing task 'runClient'...


> Configure project :
Fabric Loom: 0.11.34

> Task :compileKotlin UP-TO-DATE
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :generateDLIConfig
> Task :generateLog4jConfig
> Task :generateRemapClasspath
> Task :configureLaunch
> Task :downloadAssets
> Task :extractNatives UP-TO-DATE
> Task :configureClientLaunch

> Task :runClient
[00:56:08] [main/INFO] (FabricLoader/GameProvider) Loading Minecraft 1.18.2 with Fabric Loader 0.13.3
[00:56:08] [main/INFO] (FabricLoader) Loading 49 mods:
	- devlogin 2.0
	- fabric 0.47.8+1.18.2
	- fabric-api-base 0.4.3+d7c144a8d2
	- fabric-api-lookup-api-v1 1.5.6+d7c144a8d2
	- fabric-biome-api-v1 8.0.1+2873dd57d2
	- fabric-blockrenderlayer-v1 1.1.11+3ac43d95d2
	- fabric-command-api-v1 1.1.8+d7c144a8d2
	- fabric-commands-v0 0.2.7+b4f4f6cdd2
	- fabric-containers-v0 0.1.20+d7c144a8d2
	- fabric-content-registries-v0 3.0.0+d82b9392d2
	- fabric-crash-report-info-v1 0.1.10+3ac43d95d2
	- fabric-data-generation-api-v1 2.0.4+ebd24f87d2
	- fabric-dimensions-v1 2.1.16+25407454d2
	- fabric-entity-events-v1 1.4.7+d7c144a8d2
	- fabric-events-interaction-v0 0.4.18+d7c144a8d2
	- fabric-events-lifecycle-v0 0.2.12+d7c144a8d2
	- fabric-game-rule-api-v1 1.0.12+d7c144a8d2
	- fabric-gametest-api-v1 1.0.13+25407454d2
	- fabric-item-api-v1 1.3.2+691a79b5d2
	- fabric-item-groups-v0 0.3.8+3ac43d95d2
	- fabric-key-binding-api-v1 1.0.11+54e5b2ecd2
	- fabric-keybindings-v0 0.2.9+b4f4f6cdd2
	- fabric-language-kotlin 1.7.4+kotlin.1.6.21
	- fabric-lifecycle-events-v1 2.0.1+25407454d2
	- fabric-loot-tables-v1 1.0.10+d7c144a8d2
	- fabric-mining-level-api-v1 2.0.2+d1027f7dd2
	- fabric-models-v0 0.3.5+d7c144a8d2
	- fabric-networking-api-v1 1.0.20+d882b915d2
	- fabric-networking-v0 0.3.7+b4f4f6cdd2
	- fabric-object-builder-api-v1 2.0.1+d882b915d2
	- fabric-particles-v1 0.2.11+526dc1acd2
	- fabric-registry-sync-v0 0.9.5+55dca1a4d2
	- fabric-renderer-api-v1 0.4.12+d882b915d2
	- fabric-renderer-indigo 0.4.16+d8c7b9aed2
	- fabric-renderer-registries-v1 3.2.10+b4f4f6cdd2
	- fabric-rendering-data-attachment-v1 0.3.6+d7c144a8d2
	- fabric-rendering-fluids-v1 2.0.1+54e5b2ecd2
	- fabric-rendering-v0 1.1.12+b4f4f6cdd2
	- fabric-rendering-v1 1.10.6+54e5b2ecd2
	- fabric-resource-conditions-api-v1 2.0.1+d1027f7dd2
	- fabric-resource-loader-v0 0.4.16+55dca1a4d2
	- fabric-screen-api-v1 1.0.9+d882b915d2
	- fabric-screen-handler-api-v1 1.1.13+d7c144a8d2
	- fabric-textures-v0 1.0.11+3ac43d95d2
	- fabric-transfer-api-v1 1.5.12+d882b915d2
	- fabricloader 0.13.3
	- ic_unofficial 1.0.0
	- java 17
	- minecraft 1.18.2
[00:56:08] [main/INFO] (FabricLoader/Mixin) SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/Users/h4kt/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.11.2+mixin.0.8.5/f4ae569d559b5e3244b67321945261d83ff7ad8e/sponge-mixin-0.11.2+mixin.0.8.5.jar Service=Knot/Fabric Env=CLIENT
[00:56:08] [main/INFO] (FabricLoader/Mixin) Loaded Fabric development mappings for mixin remapper!
[00:56:08] [main/INFO] (FabricLoader/Mixin) Compatibility level set to JAVA_16
[00:56:08] [main/INFO] (FabricLoader/Mixin) Compatibility level set to JAVA_17
Completely ignored arguments: []
[00:56:14] [main/WARN] (FabricLoader/Mixin) @Inject(@At("INVOKE")) Shift.BY=3 on fabric-lifecycle-events-v1.mixins.json:client.WorldChunkMixin::handler$zgi000$onLoadBlockEntity exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning.

That sure is inconvenient, but it's very hard for me to debug as I don't own any Apple devices and setting up a VM with MacOS is very hard to do.

Could definitely be because of the popup, perhaps you could try to login on another device and copy the file containing the tokens.
The file in question is DevLoginCache.json which is stored in the run directory.

I'll make add a command line option that'll disable dialogs and rather have the code printed to the console instead.
If the dialog is indeed the issue, which I assume it is because idk what else it could be, that should suffice as a fix.

H4kt commented

it's very hard for me to debug as I don't own any Apple devices

After a quick debug it seems like we are getting stuck here

it's very hard for me to debug as I don't own any Apple devices

After a quick debug it seems like we are getting stuck here

That seems to imply there's no Default Look & Feel on mac, could you have it log the UIManager.getSystemLookAndFeelClassName() call (or use a breakpoint) and see what that points to?

H4kt commented

could you have it log

It actually points to Metal which is correct
javax.swing.plaf.metal.MetalLookAndFeel

Then I do not know what happened either, I'll probably just add a check to see if the OS is Mac and if so, just skip the look and feel.

RAV64 commented

I have this same issue with MBP m1.

RAV64 commented

Found the way around it by forcing the nogui option