minecraft {
version = project.mcVersion
- mappings = 'snapshot_20180908'
+ mappings = 'snapshot_20190227'
runDir = 'run'
tweakClass = 'com.irtimaled.bbor.launch.ClientTweaker'
makeObfSourceJar = false
name=bbor
buildVersion=1.0.14
# leave a space to reduce merge conflicts on version change
-mcVersion=1.13
+mcVersion=1.13.2
ServerRunner.run("@MC_VERSION@", Arrays.asList(args).subList(1, args.length));
} else {
Installer.install("@VERSION@", "@MC_VERSION@");
-
}
}
}
x = entityPlayer.lastTickPosX + (entityPlayer.posX - entityPlayer.lastTickPosX) * partialTicks;
y = entityPlayer.lastTickPosY + (entityPlayer.posY - entityPlayer.lastTickPosY) * partialTicks;
z = entityPlayer.lastTickPosZ + (entityPlayer.posZ - entityPlayer.lastTickPosZ) * partialTicks;
- dimensionId = entityPlayer.dimension;
+ dimensionId = entityPlayer.dimension.getId();
}
static void setActiveY() {
private void addControl(IRenderableControl control) {
this.controls.add(control);
- TypeHelper.doIfType(control, IGuiEventListener.class, this.eventListeners::add);
+ TypeHelper.doIfType(control, IGuiEventListener.class, this.children::add);
}
private void addTabs(String... labels) {
import com.irtimaled.bbor.common.models.Coords;
import net.minecraft.client.Minecraft;
import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.registry.IRegistry;
import net.minecraft.world.biome.Biome;
public class BiomeBorderHelper {
public static int getBiomeId(int x, int y, int z) {
BlockPos pos = new BlockPos(x, y, z);
Biome biome = Minecraft.getInstance().world.getBiome(pos);
- return Biome.getIdForBiome(biome);
+ return IRegistry.BIOME.getId(biome);
}
}
public static void render(float partialTicks, EntityPlayerSP player) {
PlayerCoords.setPlayerPosition(partialTicks, player);
- EventBus.publish(new Render(player.dimension));
+ EventBus.publish(new Render(player.dimension.getId()));
}
public static boolean interceptChatMessage(String message) {
BlockPos pos = new BlockPos(x, y, z);
Biome biome = world.getBiome(pos);
return biome.getSpawningChance() > 0 &&
- !biome.getSpawnableList(EnumCreatureType.MONSTER).isEmpty() &&
+ !biome.getSpawns(EnumCreatureType.MONSTER).isEmpty() &&
isSpawnable(pos, world);
}
import net.minecraft.world.chunk.Chunk;
import java.io.File;
+import java.util.Collection;
public class CommonInterop {
public static void init() {
EventBus.publish(new ChunkLoaded(chunk));
}
- public static void loadWorlds(WorldServer[] worlds) {
+ public static void loadWorlds(Collection<WorldServer> worlds) {
for (WorldServer world : worlds) {
loadWorld(world);
}
private final Consumer<Packet<?>> packetConsumer;
public ServerPlayer(EntityPlayerMP player) {
- this.dimensionId = player.dimension;
+ this.dimensionId = player.dimension.getId();
this.packetConsumer = player.connection::sendPacket;
}
import com.irtimaled.bbor.client.interop.ClientInterop;
import net.minecraft.client.Minecraft;
-import net.minecraft.client.renderer.EntityRenderer;
+import net.minecraft.client.renderer.GameRenderer;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-@Mixin(EntityRenderer.class)
+@Mixin(GameRenderer.class)
public class MixinEntityRenderer {
@Shadow
@Final
import com.irtimaled.bbor.common.interop.CommonInterop;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.WorldServer;
+import net.minecraft.world.dimension.DimensionType;
+import org.spongepowered.asm.mixin.Final;
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import java.util.Map;
+
@Mixin(MinecraftServer.class)
public class MixinMinecraftServer {
@Shadow
- public WorldServer[] worlds;
+ @Final
+ private Map<DimensionType, WorldServer> worlds;
@Inject(method = "initialWorldChunkLoad", at = @At("HEAD"))
private void initialWorldChunkLoad(CallbackInfo ci) {
- CommonInterop.loadWorlds(worlds);
+ CommonInterop.loadWorlds(worlds.values());
}
@Inject(method = "tick", at = @At("RETURN"))
private static final ThrowableConsumer<URL> addURL;
static {
- VANILLA_SERVER_JARS.put("1.13", "https://launcher.mojang.com/v1/objects/d0caafb8438ebd206f99930cfaecfa6c9a13dca0/server.jar");
+ VANILLA_SERVER_JARS.put("1.13.2", "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar");
try {
Method method = URLClassLoader.class