Skip to content

Commit 403fd36

Browse files
authored
fix(fabric): world isLoaded throws method not found (#2372)
fix(fabric): world name is always 'world'
1 parent e386b93 commit 403fd36

File tree

4 files changed

+21
-12
lines changed

4 files changed

+21
-12
lines changed

fabric/src/main/java/ac/grim/grimac/platform/fabric/entity/AbstractFabricGrimEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public boolean eject() {
3838

3939
@Override
4040
public PlatformWorld getWorld() {
41-
return (PlatformWorld) entity.level;
41+
return this.entity.level;
4242
}
4343

4444
@Override

fabric/src/main/java/ac/grim/grimac/platform/fabric/mixins/ServerLevelMixin.java renamed to fabric/src/main/java/ac/grim/grimac/platform/fabric/mixins/LevelMixin.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,22 @@
44
import ac.grim.grimac.platform.api.world.PlatformWorld;
55
import ac.grim.grimac.platform.fabric.GrimACFabricLoaderPlugin;
66
import com.github.retrooper.packetevents.protocol.world.states.WrappedBlockState;
7+
import net.minecraft.core.BlockPos;
8+
import net.minecraft.resources.ResourceKey;
9+
import net.minecraft.world.level.Level;
10+
import net.minecraft.world.level.LevelAccessor;
11+
import net.minecraft.world.level.block.Block;
712
import org.jetbrains.annotations.Nullable;
813
import org.spongepowered.asm.mixin.*;
914

1015
import java.util.UUID;
11-
import net.minecraft.core.BlockPos;
12-
import net.minecraft.server.level.ServerLevel;
13-
import net.minecraft.world.level.LevelAccessor;
14-
import net.minecraft.world.level.block.Block;
15-
import net.minecraft.world.level.storage.ServerLevelData;
1616

17-
@Mixin(ServerLevel.class)
17+
@Mixin(Level.class)
1818
@Implements(@Interface(iface = PlatformWorld.class, prefix = "grimac$"))
19-
abstract class ServerLevelMixin implements LevelAccessor {
20-
@Shadow public @Final ServerLevelData serverLevelData;
19+
abstract class LevelMixin implements LevelAccessor {
20+
21+
@Shadow
22+
public abstract ResourceKey<Level> dimension();
2123

2224
public boolean grimac$isChunkLoaded(int chunkX, int chunkZ) {
2325
return hasChunk(chunkX, chunkZ);
@@ -30,7 +32,7 @@ abstract class ServerLevelMixin implements LevelAccessor {
3032
}
3133

3234
public String grimac$getName() {
33-
return serverLevelData.getLevelName();
35+
return this.dimension().location().toString();
3436
}
3537

3638
public @Nullable UUID grimac$getUID() {
@@ -42,6 +44,6 @@ abstract class ServerLevelMixin implements LevelAccessor {
4244
}
4345

4446
public boolean grimac$isLoaded() {
45-
return GrimACFabricLoaderPlugin.FABRIC_SERVER.getLevel(getLevel().dimension()) != null;
47+
return GrimACFabricLoaderPlugin.FABRIC_SERVER.getLevel(this.dimension()) != null;
4648
}
4749
}

fabric/src/main/resources/fabric.mod.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
"mixins": [
2121
"grimac.mixins.json"
2222
],
23+
"custom": {
24+
"loom:injected_interfaces": {
25+
"net/minecraft/world/level/Level": [
26+
"ac/grim/grimac/platform/api/world/PlatformWorld"
27+
]
28+
}
29+
},
2330
"accessWidener": "grimac.accesswidener",
2431
"depends": {
2532
"fabricloader": "\u003e\u003d0.16",

fabric/src/main/resources/grimac.mixins.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"compatibilityLevel": "JAVA_17",
66
"mixins": [
77
"LevelChunkMixin",
8-
"ServerLevelMixin",
8+
"LevelMixin",
99
"ServerPlayerMixin"
1010
],
1111
"injectors": {

0 commit comments

Comments
 (0)