Update fabric version for 1.16

This commit is contained in:
Blue (Lukas Rieger) 2020-08-03 15:38:28 +02:00
parent c6d28c318b
commit 42b70271a6
5 changed files with 22 additions and 28 deletions

View File

@ -9,10 +9,10 @@ configurations {
} }
dependencies { dependencies {
minecraft "com.mojang:minecraft:1.15.2" minecraft "com.mojang:minecraft:1.16.1"
mappings "net.fabricmc:yarn:1.15.2+build.15:v2" mappings "net.fabricmc:yarn:1.16.1+build.21:v2"
modImplementation "net.fabricmc:fabric-loader:0.8.2+build.194" modImplementation "net.fabricmc:fabric-loader:0.9.0+build.204"
modImplementation "net.fabricmc.fabric-api:fabric-api:0.5.1+build.294-1.15" modImplementation "net.fabricmc.fabric-api:fabric-api:0.16.2+build.385-1.16.1"
shadowInclude (project(':BlueMapCommon')) { shadowInclude (project(':BlueMapCommon')) {
//exclude dependencies provided by fabric //exclude dependencies provided by fabric
@ -50,7 +50,7 @@ shadowJar {
} }
task ramappedShadowJar(type: RemapJarTask) { task ramappedShadowJar(type: RemapJarTask) {
destinationDir = file '../build/unsupported' destinationDir = file '../build/release'
dependsOn tasks.shadowJar dependsOn tasks.shadowJar
input = tasks.shadowJar.archivePath input = tasks.shadowJar.archivePath
addNestedDependencies = true addNestedDependencies = true

View File

@ -20,11 +20,11 @@
import de.bluecolored.bluemap.core.logger.Logger; import de.bluecolored.bluemap.core.logger.Logger;
import de.bluecolored.bluemap.core.resourcepack.ParseResourceException; import de.bluecolored.bluemap.core.resourcepack.ParseResourceException;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.event.server.ServerStartCallback; import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
import net.fabricmc.fabric.api.event.server.ServerStopCallback; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.registry.CommandRegistry;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.world.dimension.DimensionType;
public class FabricMod implements ModInitializer, ServerInterface { public class FabricMod implements ModInitializer, ServerInterface {
@ -57,11 +57,11 @@ public UUID load(ServerWorld key) throws Exception {
public void onInitialize() { public void onInitialize() {
//register commands //register commands
CommandRegistry.INSTANCE.register(true, dispatcher -> { CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
new Commands<>(pluginInstance, dispatcher, fabricSource -> new FabricCommandSource(this, pluginInstance, fabricSource)); new Commands<>(pluginInstance, dispatcher, fabricSource -> new FabricCommandSource(this, pluginInstance, fabricSource));
}); });
ServerStartCallback.EVENT.register((MinecraftServer server) -> { ServerLifecycleEvents.SERVER_STARTED.register((MinecraftServer server) -> {
new Thread(()->{ new Thread(()->{
Logger.global.logInfo("Loading BlueMap..."); Logger.global.logInfo("Loading BlueMap...");
@ -74,7 +74,7 @@ public void onInitialize() {
}).start(); }).start();
}); });
ServerStopCallback.EVENT.register((MinecraftServer server) -> { ServerLifecycleEvents.SERVER_STOPPING.register((MinecraftServer server) -> {
pluginInstance.unload(); pluginInstance.unload();
Logger.global.logInfo("BlueMap unloaded!"); Logger.global.logInfo("BlueMap unloaded!");
}); });
@ -114,7 +114,11 @@ public UUID getUUIDForWorld(ServerWorld world) throws IOException {
} }
private UUID loadUUIDForWorld(ServerWorld world) throws IOException { private UUID loadUUIDForWorld(ServerWorld world) throws IOException {
File dimensionDir = world.getDimension().getType().getSaveDirectory(world.getSaveHandler().getWorldDir()); MinecraftServer server = world.getServer();
String worldName = server.getSaveProperties().getLevelName();
File worldFolder = new File(world.getServer().getRunDirectory(), worldName);
File dimensionFolder = DimensionType.getSaveDirectory(world.getRegistryKey(), worldFolder);
File dimensionDir = dimensionFolder.getCanonicalFile();
return getUUIDForWorld(dimensionDir); return getUUIDForWorld(dimensionDir);
} }

View File

@ -1,8 +1,6 @@
package de.bluecolored.bluemap.fabric.mixin; package de.bluecolored.bluemap.fabric.mixin;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@ -10,23 +8,16 @@
import com.flowpowered.math.vector.Vector2i; import com.flowpowered.math.vector.Vector2i;
import de.bluecolored.bluemap.fabric.events.ChunkFinalizeCallback; import de.bluecolored.bluemap.fabric.events.ChunkFinalizeCallback;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.world.ChunkRegion; import net.minecraft.world.ChunkRegion;
import net.minecraft.world.IWorld; import net.minecraft.world.gen.StructureAccessor;
import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.chunk.ChunkGenerator;
@Mixin(ChunkGenerator.class) @Mixin(ChunkGenerator.class)
public class MixinChunkGenerator { public class MixinChunkGenerator {
@Shadow
@Final
protected IWorld world;
@Inject(at = @At("RETURN"), method = "generateFeatures") @Inject(at = @At("RETURN"), method = "generateFeatures")
public void generateFeatures(ChunkRegion region, CallbackInfo ci) { public void generateFeatures(ChunkRegion region, StructureAccessor accessor, CallbackInfo ci) {
if (world instanceof ServerWorld) { ChunkFinalizeCallback.EVENT.invoker().onChunkFinalized(region.getWorld(), new Vector2i(region.getCenterChunkX(), region.getCenterChunkZ()));
ChunkFinalizeCallback.EVENT.invoker().onChunkFinalized((ServerWorld) world, new Vector2i(region.getCenterChunkX(), region.getCenterChunkZ()));
}
} }
} }

View File

@ -8,13 +8,12 @@
import de.bluecolored.bluemap.fabric.events.WorldSaveCallback; import de.bluecolored.bluemap.fabric.events.WorldSaveCallback;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.ProgressListener; import net.minecraft.util.ProgressListener;
import net.minecraft.world.SessionLockException;
@Mixin(ServerWorld.class) @Mixin(ServerWorld.class)
public abstract class MixinServerWorld { public abstract class MixinServerWorld {
@Inject(at = @At("RETURN"), method = "save") @Inject(at = @At("RETURN"), method = "save")
public void save(ProgressListener progressListener, boolean flush, boolean bl, CallbackInfo ci) throws SessionLockException { public void save(ProgressListener progressListener, boolean flush, boolean bl, CallbackInfo ci) {
WorldSaveCallback.EVENT.invoker().onWorldSaved((ServerWorld) (Object) this); WorldSaveCallback.EVENT.invoker().onWorldSaved((ServerWorld) (Object) this);
} }

View File

@ -27,9 +27,9 @@
], ],
"depends": { "depends": {
"fabricloader": ">=0.7.4", "fabricloader": ">=0.9.0",
"fabric": "*", "fabric": "*",
"minecraft": "1.15.x" "minecraft": "1.16.x"
}, },
"suggests": {} "suggests": {}
} }