Skip to content

Commit

Permalink
Fixes and updates for mixins and mods
Browse files Browse the repository at this point in the history
- Most of the mods got updated to the newest versions (Sorry AdvancedRocketry and GeographiCraft, you're not very special).
- Organized modsupport mixins to different directories for quicker and easier changes later (Plus too many fixes to begin with).
- Included fixes from JEIDsIntegration with permission from BobbyTables (JEIDsI creator, thanks for the help).
- Made Mixins work on servers.......cause apparently we're idiots and missed this somehow.
- Also made mixins modsupport meta file be alphabetized........cause A E S T H E T I C S

So most mod support related bugs should be fixed, except pregen (Still have no idea why this is causing an issue), other bugs will be looked into over the next few months.
  • Loading branch information
ZombieHDGaming committed Apr 17, 2019
1 parent 98836b0 commit 7c8af94
Show file tree
Hide file tree
Showing 27 changed files with 339 additions and 59 deletions.
20 changes: 13 additions & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,27 @@ dependencies {
exclude module: "commons-io"
}
compileOnly "2555:531:BiomesOPlenty-1.12.2-7.0.1.2384-universal@jar"
compileOnly "2561:393:twilightforest-1.12.2-3.7.424-universal@jar"
compileOnly "2569:273:Thaumcraft-1.12.2-6.1.BETA16@jar"
compileOnly "2686:476:twilightforest-1.12.2-3.9.888-universal@jar"
compileOnly "2629:23:Thaumcraft-1.12.2-6.1.BETA26@jar"
compileOnly "2691:339:AbyssalCraft-1.12.2-1.9.6@jar"
compileOnly "2509:208:Creeping+Nether-2.0@jar"
compileOnly "2655:432:Creeping+Nether-2.2.2@jar"
compileOnly "2497:541:GeographiCraft-1.12-0.8.9b@jar"
compileOnly "2581:550:mystcraft-1.12.2-0.13.4.05@jar"
compileOnly "2699:673:mystcraft-1.12.2-0.13.7.03@jar"
compileOnly "2575:801:AdvancedRocketry-1.12.2-1.4.0-88-universal@jar"
compileOnly "2460:570:worldedit-forge-mc1.12-6.1.8-dist@jar"
compileOnly "2498:312:journeymap-1.12.2-5.5.2@jar"
compileOnly "2655:56:worldedit-forge-mc1.12.2-6.1.10-SNAPSHOT-dist@jar"
compileOnly "2682:920:journeymap-1.12.2-5.5.4@jar"
compileOnly "2683:823:Bookshelf-1.12.2-2.3.577@jar"
compileOnly "2691:93:CyclopsCore-1.12.2-1.1.1@jar"
compileOnly "2678:374:extrautils2-1.12-1.9.9@jar"
compileOnly "2683:667:TheBetweenlands-3.4.6-universal@jar"
compileOnly "2692:524:TofuCraftReload-0.0.2.1@jar"
compileOnly "2636:492:tropicraft-MC1.12.2-7.1.8.105@jar"
}

def travisBuildNumber = System.getenv("TRAVIS_BUILD_NUMBER")
def versionSuffix = travisBuildNumber != null ? travisBuildNumber : "SNAPSHOT"

version "1.0.2-$versionSuffix"
version "1.0.3-$versionSuffix"
group "org.dimdev.jeid"
archivesBaseName = "JustEnoughIDs"

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/dimdev/jeid/ASMException.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class ASMException extends RuntimeException {
private static final long serialVersionUID = -8581611883691404427L;

public ASMException(String message) {
super("MaxPotionIDExtender - Class transformation error\n"+message);
super("JustEnoughIDs - Class transformation error\n"+message);
}

public ASMException(String message, ClassNode node) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/dimdev/jeid/JEID.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public void postInit(FMLPostInitializationEvent e) {
public static class PotionTest extends Potion {

private static final Random r = new Random();
private String nm = "";
private String nm;

protected PotionTest(int id) {
super(false, 0xFFFFFF & r.nextInt(Integer.MAX_VALUE));
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.abyssalcraft;

import com.shinoow.abyssalcraft.common.network.PacketDispatcher;
import com.shinoow.abyssalcraft.common.network.client.CleansingRitualMessage;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.dimdev.jeid.mixin.modsupport.abyssalcraft;

import com.shinoow.abyssalcraft.common.network.client.CleansingRitualMessage;
import com.shinoow.abyssalcraft.common.util.BiomeUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.relauncher.Side;
import org.spongepowered.asm.mixin.*;

@Pseudo
@Mixin(CleansingRitualMessage.class)
public class MixinCleansingRitualMessage {
@Shadow private int x;
@Shadow private int z;
@Shadow private int biomeID;
@Shadow private boolean batched;

/**
* @reason This exists to revert changes made by JEID
* @author Shinoow
*/
@Final
@Overwrite(remap = false)
public void process(EntityPlayer player, Side side) {
BiomeUtil.updateBiome(player.world, new BlockPos(x, 0, z), biomeID, false);

if(x % 14 == 0 || z % 14 == 0 || !batched)
Minecraft.getMinecraft().renderGlobal.markBlockRangeForRenderUpdate(x - 7, 0, z - 7, x + 7, 255, z + 7);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.advancedrocketry;

import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.biomesoplenty;

import biomesoplenty.common.command.BOPCommand;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.biomesoplenty;

import biomesoplenty.common.init.ModBiomes;
import net.minecraft.world.biome.Biome;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.dimdev.jeid.mixin.modsupport.bookshelf;

import net.darkhax.bookshelf.lib.Constants;
import net.darkhax.bookshelf.util.WorldUtils;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.Chunk;
import org.dimdev.jeid.INewChunk;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Pseudo;

import java.util.Arrays;

@Pseudo
@Mixin(WorldUtils.class)
public abstract class MixinWorldUtils {
@Overwrite(remap = false)
public static void setBiomes(World world, BlockPos pos, Biome biome) {
try {
final Chunk chunk = world.getChunk(pos);
final int[] biomes = ((INewChunk) chunk).getIntBiomeArray();
Arrays.fill(biomes, Biome.getIdForBiome(biome));

WorldUtils.updateNearbyChunks(world, chunk, true, true);
} catch (Exception e) {
Constants.LOG.warn(e, "Unable to set biome for Pos: {}, Biome: {}", pos.toString(), biome.getRegistryName());
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.creepingnether;

import com.cutievirus.creepingnether.entity.EntityPortal;
import net.minecraft.util.math.BlockPos;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.dimdev.jeid.mixin.modsupport.cyclopscore;

import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import org.cyclops.cyclopscore.helper.WorldHelpers;
import org.dimdev.jeid.INewChunk;
import org.dimdev.jeid.network.BiomeChangeMessage;
import org.dimdev.jeid.network.MessageManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Pseudo;

@Pseudo
@Mixin(WorldHelpers.class)
public class MixinWorldHelpers {
@Overwrite
public static void setBiome(World world, BlockPos pos, Biome biome) {
Chunk chunk = world.getChunk(pos);
((INewChunk) chunk).getIntBiomeArray()[(pos.getZ() & 0xF) << 4 | pos.getX() & 0xF] = Biome.getIdForBiome(biome);
chunk.markDirty();
if (!world.isRemote) {
MessageManager.CHANNEL.sendToAllAround(
new BiomeChangeMessage(pos.getX(), pos.getZ(), Biome.getIdForBiome(biome)),
new NetworkRegistry.TargetPoint(world.provider.getDimension(), pos.getX(), 128.0D, pos.getZ(), 128.0D)
);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.dimdev.jeid.mixin.modsupport.extrautils2;

import com.rwtema.extrautils2.biome.BiomeManip;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import org.dimdev.jeid.INewChunk;
import org.dimdev.jeid.network.BiomeChangeMessage;
import org.dimdev.jeid.network.MessageManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Pseudo;

@Pseudo
@Mixin(BiomeManip.class)
public class MixinBiomeManip {
@Overwrite
public static void setBiome(World world, Biome biome, BlockPos pos) {
Chunk chunk = world.getChunk(pos);
((INewChunk) chunk).getIntBiomeArray()[(pos.getZ() & 0xF) << 4 | pos.getX() & 0xF] = Biome.getIdForBiome(biome);
chunk.markDirty();
if (!world.isRemote) {
MessageManager.CHANNEL.sendToAllAround(
new BiomeChangeMessage(pos.getX(), pos.getZ(), Biome.getIdForBiome(biome)),
new NetworkRegistry.TargetPoint(world.provider.getDimension(), pos.getX(), 128.0D, pos.getZ(), 128.0D)
);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.geographicraft;

import climateControl.DimensionManager;
import net.minecraft.init.Biomes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.journeymap;

import journeymap.client.model.ChunkMD;
import net.minecraft.util.math.BlockPos;
Expand All @@ -7,10 +7,12 @@
import net.minecraft.world.chunk.Chunk;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.Shadow;

import javax.annotation.Nullable;

@Pseudo
@Mixin(ChunkMD.class)
public abstract class MixinChunkMD {
@Shadow public abstract World getWorld();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.mystcraft;

import com.xcompwiz.mystcraft.symbol.symbols.SymbolFloatingIslands;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.Chunk;
import org.dimdev.jeid.INewChunk;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.Shadow;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

@Pseudo
@Mixin(SymbolFloatingIslands.BiomeReplacer.class)
public class MixinBiomeReplacer {
@Shadow private HashMap<List<Integer>, boolean[]> chunks;
Expand All @@ -26,7 +28,7 @@ public void finalizeChunk(Chunk chunk, int chunkX, int chunkZ) {

for(int coords = 0; coords < modified.length; ++coords) {
if (modified[coords]) {
biomes[coords] = Biome.getIdForBiome(biome) & 255;
biomes[coords] = Biome.getIdForBiome(biome);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.dimdev.jeid.mixin.modsupport;
package org.dimdev.jeid.mixin.modsupport.thaumcraft;

import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.dimdev.jeid.mixin.modsupport.thebetweenlands;

import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.chunk.Chunk;
import org.dimdev.jeid.INewChunk;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import thebetweenlands.common.block.terrain.BlockSpreadingDeath;

@Pseudo
@Mixin(BlockSpreadingDeath.class)
public class MixinBlockSpreadingDeath {
@Inject(method = "convertBiome", at = @At("HEAD"), cancellable = true, remap = false)
private void convertBiomes(World world, BlockPos pos, Biome biome, CallbackInfo ci) {
Chunk chunk = world.getChunk(pos);
((INewChunk) chunk).getIntBiomeArray()[(pos.getZ() & 15) << 4 | pos.getX() & 15] = Biome.getIdForBiome(biome);
chunk.markDirty();
ci.cancel();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.dimdev.jeid.mixin.modsupport.thebetweenlands;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import thebetweenlands.common.world.gen.layer.GenLayerVoronoiZoomInstanced;

@Pseudo
@Mixin(GenLayerVoronoiZoomInstanced.class)
public abstract class MixinGenLayerVoronoiZoomInstanced {
@ModifyConstant(method = "func_75904_a", constant = @Constant(intValue = 255), remap = false)
private int getBitMask(int oldValue) {
return 0xFFFFFFFF;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.dimdev.jeid.mixin.modsupport.tofucraft;

import cn.mcmod.tofucraft.world.gen.layer.GenLayerRiverMix;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

@Pseudo
@Mixin(GenLayerRiverMix.class)
public class MixinGenLayerRiverMix {
@ModifyConstant(method = "func_75904_a", constant = @Constant(intValue = 255), remap = false)
private int getBitMask(int oldValue) {
return 0xFFFFFFFF;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.dimdev.jeid.mixin.modsupport.tofucraft;

import cn.mcmod.tofucraft.world.gen.layer.GenLayerTofuVoronoiZoom;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

@Pseudo
@Mixin(GenLayerTofuVoronoiZoom.class)
public class MixinGenLayerTofuVoronoiZoom {
@ModifyConstant(method = "func_75904_a", constant = @Constant(intValue = 255), remap = false)
private int getBitMask(int oldValue) {
return 0xFFFFFFFF;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.dimdev.jeid.mixin.modsupport.tropicraft;

import net.tropicraft.core.common.worldgen.genlayer.GenLayerTropiVoronoiZoom;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Pseudo;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

@Pseudo
@Mixin(GenLayerTropiVoronoiZoom.class)
public class MixinGenLayerTropiVoronoiZoom {
@ModifyConstant(method = "func_75904_a", constant = @Constant(intValue = 255), remap = false)
private int getBitMask(int oldValue) {
return 0xFFFFFFFF;
}
}
Loading

0 comments on commit 7c8af94

Please sign in to comment.