From 1e78ecbc746ec64e5c8494dca45bdf26b87695b9 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 2 Oct 2018 14:35:16 +0100 Subject: [PATCH 1/5] Initial 1.13.1 compile fixes, does NOT load into the game --- build.gradle | 3 +- .../rift/listener/ChunkGeneratorReplacer.java | 1 - .../dimdev/rift/listener/MessageAdder.java | 2 +- .../rift/mixin/hook/MixinDimensionType.java | 2 +- .../rift/mixin/hook/MixinMinecraftServer.java | 38 ++++++++----------- .../rift/mixin/hook/MixinTileEntityType.java | 4 +- .../java/org/dimdev/rift/network/Message.java | 2 +- .../dimdev/rift/util/ArmorMaterialImpl.java | 4 +- 8 files changed, 25 insertions(+), 31 deletions(-) diff --git a/build.gradle b/build.gradle index 5df21f1..3d79265 100644 --- a/build.gradle +++ b/build.gradle @@ -33,6 +33,7 @@ repositories { maven { url 'https://libraries.minecraft.net/' } maven { url 'https://www.dimdev.org/maven/' } maven { url = 'https://repo.spongepowered.org/maven/' } + mavenLocal() } dependencies { @@ -43,7 +44,7 @@ dependencies { } minecraft { - version = '1.13' + version = '1.13.1' mappings = 'snapshot_20180908' runDir = 'run' tweakClass = 'org.dimdev.riftloader.launch.RiftLoaderClientTweaker' diff --git a/src/main/java/org/dimdev/rift/listener/ChunkGeneratorReplacer.java b/src/main/java/org/dimdev/rift/listener/ChunkGeneratorReplacer.java index 10f0f4c..1c1e3ef 100644 --- a/src/main/java/org/dimdev/rift/listener/ChunkGeneratorReplacer.java +++ b/src/main/java/org/dimdev/rift/listener/ChunkGeneratorReplacer.java @@ -5,7 +5,6 @@ import net.minecraft.world.gen.ChunkGeneratorType; import net.minecraft.world.gen.IChunkGenSettings; import net.minecraft.world.gen.IChunkGenerator; -import net.minecraft.world.gen.IChunkGeneratorFactory; import javax.annotation.Nullable; import java.util.function.Supplier; diff --git a/src/main/java/org/dimdev/rift/listener/MessageAdder.java b/src/main/java/org/dimdev/rift/listener/MessageAdder.java index 5e2e092..2f5d6a8 100644 --- a/src/main/java/org/dimdev/rift/listener/MessageAdder.java +++ b/src/main/java/org/dimdev/rift/listener/MessageAdder.java @@ -5,5 +5,5 @@ import org.dimdev.rift.network.Message; public interface MessageAdder { - void registerMessages(RegistryNamespaced> registry); + void registerMessages(RegistryNamespaced> registry); } diff --git a/src/main/java/org/dimdev/rift/mixin/hook/MixinDimensionType.java b/src/main/java/org/dimdev/rift/mixin/hook/MixinDimensionType.java index efd1860..4ab47a1 100644 --- a/src/main/java/org/dimdev/rift/mixin/hook/MixinDimensionType.java +++ b/src/main/java/org/dimdev/rift/mixin/hook/MixinDimensionType.java @@ -14,7 +14,7 @@ public class MixinDimensionType { private static HashMap dimensionTypes = new HashMap<>(); static { - for (DimensionType dimensionType : DimensionType.values()) { + for (DimensionType dimensionType : DimensionType.func_212681_b()) { dimensionTypes.put(dimensionType.getId(), dimensionType); } diff --git a/src/main/java/org/dimdev/rift/mixin/hook/MixinMinecraftServer.java b/src/main/java/org/dimdev/rift/mixin/hook/MixinMinecraftServer.java index 3ed6aa7..b918ce5 100644 --- a/src/main/java/org/dimdev/rift/mixin/hook/MixinMinecraftServer.java +++ b/src/main/java/org/dimdev/rift/mixin/hook/MixinMinecraftServer.java @@ -15,6 +15,7 @@ import net.minecraft.world.storage.ISaveFormat; import net.minecraft.world.storage.ISaveHandler; import net.minecraft.world.storage.WorldInfo; +import net.minecraft.world.storage.WorldSavedDataStorage; import org.dimdev.rift.listener.DataPackFinderAdder; import org.dimdev.rift.listener.ServerTickable; import org.dimdev.riftloader.RiftLoader; @@ -33,14 +34,15 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Consumer; @Mixin(MinecraftServer.class) public abstract class MixinMinecraftServer { @Shadow @Final private ResourcePackList resourcePacks; @Shadow @Final public Profiler profiler; @Shadow public abstract void convertMapIfNeeded(String p_convertMapIfNeeded_1_); - @Shadow public WorldServer[] worlds; - @Shadow public long[][] timeOfLastDimensionTick; + @Shadow public Map worlds; + @Shadow public Map timeOfLastDimensionTick; @Shadow public abstract ISaveFormat getActiveAnvilConverter(); @Shadow public abstract void setResourcePackFromWorld(String p_setResourcePackFromWorld_1_, ISaveHandler p_setResourcePackFromWorld_2_); @Shadow public abstract String getFolderName(); @@ -49,7 +51,6 @@ public abstract class MixinMinecraftServer { @Shadow public abstract boolean canStructuresSpawn(); @Shadow public abstract boolean isHardcore(); @Shadow public abstract void func_195560_a(File p_195560_1_, WorldInfo p_195560_2_); - @Shadow public abstract void initialWorldChunkLoad(); @Shadow public abstract void setDifficultyForAllWorlds(EnumDifficulty p_setDifficultyForAllWorlds_1_); @Shadow public abstract CustomBossEvents getCustomBossEvents(); @Shadow public abstract PlayerList getPlayerList(); @@ -101,9 +102,9 @@ public void loadAllWorlds(String saveName, String worldName, long seed, WorldTyp func_195560_a(saveHandler.getWorldDirectory(), worldInfo); // Create overworld - WorldServer overworld = isDemo() ? new WorldServerDemo((MinecraftServer) (Object) this, saveHandler, worldInfo, 0, profiler) - : new WorldServer((MinecraftServer) (Object) this, saveHandler, worldInfo, 0, profiler); - overworld.init(); + WorldServer overworld = isDemo() ? new WorldServerDemo((MinecraftServer) (Object) this, saveHandler, new WorldSavedDataStorage(saveHandler), worldInfo, DimensionType.OVERWORLD, profiler) + : new WorldServer((MinecraftServer) (Object) this, saveHandler, new WorldSavedDataStorage(saveHandler), worldInfo, DimensionType.OVERWORLD, profiler); + overworld.func_212251_i__(); overworld.initialize(worldSettings); overworld.addEventListener(new ServerWorldEventHandler((MinecraftServer) (Object) this, overworld)); @@ -132,8 +133,8 @@ public void loadAllWorlds(String saveName, String worldName, long seed, WorldTyp for (DimensionType dimensionType : dimensionTypes) { dimensionIdToWorldIndex.put(dimensionType.getId(), worldList.size()); dimensionTypeToWorldIndex.put(dimensionType, worldList.size()); - WorldServerMulti world = new WorldServerMulti((MinecraftServer) (Object) this, saveHandler, dimensionType.getId(), overworld, profiler); - world.init(); + WorldServerMulti world = new WorldServerMulti((MinecraftServer) (Object) this, saveHandler, dimensionType, overworld, profiler); + world.func_212251_i__(); world.addEventListener(new ServerWorldEventHandler((MinecraftServer) (Object) this, world)); if (!isSinglePlayer()) { world.getWorldInfo().setGameType(getGameType()); @@ -143,10 +144,13 @@ public void loadAllWorlds(String saveName, String worldName, long seed, WorldTyp } // Initialize other things - worlds = worldList.toArray(new WorldServer[0]); - timeOfLastDimensionTick = new long[worlds.length][100]; + worlds = new HashMap<>(); + worldList.forEach(worldServer -> worlds.put(worldServer.dimension.getType(), worldServer)); - getPlayerList().setPlayerManager(worlds); + timeOfLastDimensionTick = new HashMap<>(); + worldList.forEach(worldServer -> timeOfLastDimensionTick.put(worldServer.dimension.getType(), new long[100])); + + getPlayerList().func_212504_a(worlds.get(DimensionType.OVERWORLD)); if (worldInfo.getCustomBossEvents() != null) { getCustomBossEvents().read(worldInfo.getCustomBossEvents()); } @@ -154,8 +158,6 @@ public void loadAllWorlds(String saveName, String worldName, long seed, WorldTyp if (overworld.getWorldInfo().getDifficulty() == null) { setDifficultyForAllWorlds(getInitialDifficulty()); } - - // initialWorldChunkLoad(); } protected WorldSettings getWorldSettings(@Nullable WorldInfo worldInfo, long seed, WorldType worldType, JsonElement generatorOptions) { @@ -178,14 +180,4 @@ protected WorldSettings getWorldSettings(@Nullable WorldInfo worldInfo, long see protected EnumDifficulty getInitialDifficulty() { return getDifficulty(); } - - @Overwrite - public WorldServer getWorld(DimensionType dimensionType) { - return worlds[dimensionTypeToWorldIndex.get(dimensionType)]; - } - - @Overwrite - public WorldServer getWorld(int dimensionId) { - return worlds[dimensionIdToWorldIndex.get(dimensionId)]; - } } diff --git a/src/main/java/org/dimdev/rift/mixin/hook/MixinTileEntityType.java b/src/main/java/org/dimdev/rift/mixin/hook/MixinTileEntityType.java index 0c152bd..3b0b163 100644 --- a/src/main/java/org/dimdev/rift/mixin/hook/MixinTileEntityType.java +++ b/src/main/java/org/dimdev/rift/mixin/hook/MixinTileEntityType.java @@ -7,6 +7,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.datafix.DataFixesManager; import net.minecraft.util.datafix.TypeReferences; +import net.minecraft.util.registry.IRegistry; import net.minecraft.util.registry.RegistryNamespaced; import org.apache.logging.log4j.Logger; import org.dimdev.rift.listener.TileEntityTypeAdder; @@ -22,7 +23,6 @@ @Mixin(TileEntityType.class) public abstract class MixinTileEntityType { @Shadow @Final private static Logger LOGGER; - @Shadow @Final public static RegistryNamespaced> REGISTRY; @Overwrite public static TileEntityType registerTileEntityType(String id, TileEntityType.Builder builder) { @@ -35,7 +35,7 @@ public static TileEntityType registerTileEntityType(St } TileEntityType tileEntityType = builder.build(dataFixerType); - REGISTRY.put(new ResourceLocation(id), tileEntityType); + IRegistry.field_212626_o.put(new ResourceLocation(id), tileEntityType); return tileEntityType; } diff --git a/src/main/java/org/dimdev/rift/network/Message.java b/src/main/java/org/dimdev/rift/network/Message.java index 04222e1..0b2ae20 100644 --- a/src/main/java/org/dimdev/rift/network/Message.java +++ b/src/main/java/org/dimdev/rift/network/Message.java @@ -19,7 +19,7 @@ import java.util.function.Predicate; public abstract class Message { - public static final RegistryNamespaced> REGISTRY = new RegistryNamespaced<>(); + public static final RegistryNamespaced> REGISTRY = new RegistryNamespaced<>(); public abstract void write(PacketBuffer buffer); diff --git a/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java b/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java index ecab276..6dc7905 100644 --- a/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java +++ b/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java @@ -30,7 +30,9 @@ public ArmorMaterialImpl(String name, int maxDamageFactor, int[] damageReduction @Override public int getDurability(EntityEquipmentSlot slot) { - return ArmorMaterial.MAX_DAMAGE_ARRAY[slot.getIndex()] * maxDamageFactor; + return 0; + //TODO at + // return ArmorMaterial.MAX_DAMAGE_ARRAY[slot.getIndex()] * maxDamageFactor; } @Override From 1b889d9e32704be042acac818c2e48b583c40458 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 2 Oct 2018 14:47:10 +0100 Subject: [PATCH 2/5] Fix crash when loading the world --- src/main/java/org/dimdev/rift/listener/MessageAdder.java | 5 ++--- .../dimdev/rift/mixin/hook/MixinNetHandlerPlayServer.java | 4 ++++ .../rift/mixin/hook/client/MixinNetHandlerPlayClient.java | 4 ++++ src/main/java/org/dimdev/rift/network/Message.java | 3 ++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/dimdev/rift/listener/MessageAdder.java b/src/main/java/org/dimdev/rift/listener/MessageAdder.java index 2f5d6a8..6fe81e0 100644 --- a/src/main/java/org/dimdev/rift/listener/MessageAdder.java +++ b/src/main/java/org/dimdev/rift/listener/MessageAdder.java @@ -1,9 +1,8 @@ package org.dimdev.rift.listener; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.RegistryNamespaced; +import net.minecraft.util.registry.IRegistry; import org.dimdev.rift.network.Message; public interface MessageAdder { - void registerMessages(RegistryNamespaced> registry); + void registerMessages(IRegistry> registry); } diff --git a/src/main/java/org/dimdev/rift/mixin/hook/MixinNetHandlerPlayServer.java b/src/main/java/org/dimdev/rift/mixin/hook/MixinNetHandlerPlayServer.java index c5d029e..90e6f07 100644 --- a/src/main/java/org/dimdev/rift/mixin/hook/MixinNetHandlerPlayServer.java +++ b/src/main/java/org/dimdev/rift/mixin/hook/MixinNetHandlerPlayServer.java @@ -37,6 +37,10 @@ private void handleModCustomPayload(CPacketCustomPayload packet, CallbackInfo ci } } + if(Message.REGISTRY.isEmpty()){ + return; + } + Class messageClass = Message.REGISTRY.get(channelName); if (messageClass != null) { try { diff --git a/src/main/java/org/dimdev/rift/mixin/hook/client/MixinNetHandlerPlayClient.java b/src/main/java/org/dimdev/rift/mixin/hook/client/MixinNetHandlerPlayClient.java index d185b6c..5f7ff4e 100644 --- a/src/main/java/org/dimdev/rift/mixin/hook/client/MixinNetHandlerPlayClient.java +++ b/src/main/java/org/dimdev/rift/mixin/hook/client/MixinNetHandlerPlayClient.java @@ -55,6 +55,10 @@ private void handleModCustomPayload(SPacketCustomPayload packet, CallbackInfo ci } } + if(Message.REGISTRY.isEmpty()){ + return; + } + Class messageClass = Message.REGISTRY.get(channelName); if (messageClass != null) { try { diff --git a/src/main/java/org/dimdev/rift/network/Message.java b/src/main/java/org/dimdev/rift/network/Message.java index 0b2ae20..82e7e10 100644 --- a/src/main/java/org/dimdev/rift/network/Message.java +++ b/src/main/java/org/dimdev/rift/network/Message.java @@ -13,13 +13,14 @@ import net.minecraft.network.play.server.SPacketCustomPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.registry.IRegistry; import net.minecraft.util.registry.RegistryNamespaced; import net.minecraft.world.WorldServer; import java.util.function.Predicate; public abstract class Message { - public static final RegistryNamespaced> REGISTRY = new RegistryNamespaced<>(); + public static final IRegistry> REGISTRY = IRegistry.func_212610_a("message", new RegistryNamespaced()); public abstract void write(PacketBuffer buffer); From fad4dfdab3333caa9a770b8ea3a563383870c5d3 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 2 Oct 2018 14:48:29 +0100 Subject: [PATCH 3/5] Fix TODO --- src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java b/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java index 6dc7905..b9dcb75 100644 --- a/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java +++ b/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java @@ -30,9 +30,7 @@ public ArmorMaterialImpl(String name, int maxDamageFactor, int[] damageReduction @Override public int getDurability(EntityEquipmentSlot slot) { - return 0; - //TODO at - // return ArmorMaterial.MAX_DAMAGE_ARRAY[slot.getIndex()] * maxDamageFactor; + return getDurability(slot) * maxDamageFactor; } @Override From 99f8cfa3978001f0923c33fc0d9b79832543598e Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 2 Oct 2018 14:55:51 +0100 Subject: [PATCH 4/5] Fix ArmorMaterialImpl --- src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java | 2 +- src/main/resources/access_transformations.at | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java b/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java index b9dcb75..ecab276 100644 --- a/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java +++ b/src/main/java/org/dimdev/rift/util/ArmorMaterialImpl.java @@ -30,7 +30,7 @@ public ArmorMaterialImpl(String name, int maxDamageFactor, int[] damageReduction @Override public int getDurability(EntityEquipmentSlot slot) { - return getDurability(slot) * maxDamageFactor; + return ArmorMaterial.MAX_DAMAGE_ARRAY[slot.getIndex()] * maxDamageFactor; } @Override diff --git a/src/main/resources/access_transformations.at b/src/main/resources/access_transformations.at index aabb8ef..4503949 100644 --- a/src/main/resources/access_transformations.at +++ b/src/main/resources/access_transformations.at @@ -31,4 +31,4 @@ public class bms$a # net.minecraft.world.gen.ChunkGeneratorType$Settings public class bmu # net.minecraft.world.chunk.ChunkStatus public method bwp b (Ljava/lang/Class;Ljava/lang/String;)V registerStructure # net.minecraft.world.gen.feature.structure.StructureIO/registerStructure public method bwp a (Ljava/lang/Class;Ljava/lang/String;)V # net.minecraft.world.gen.feature.structure.StructureIO/registerStructure -public field aqz g [I # net.minecraft.item.ArmorMaterial/MAX_DAMAGE_ARRAY +public field arc g [I # net.minecraft.item.ArmorMaterial/MAX_DAMAGE_ARRAY From d2d26ceda25e11d199c27a59519cc6e22c3e9d06 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 2 Oct 2018 15:00:47 +0100 Subject: [PATCH 5/5] Added RegistryUtil.createRegistry that adds takes a ResourceLocation --- src/main/java/org/dimdev/rift/network/Message.java | 3 ++- .../java/org/dimdev/rift/util/RegistryUtil.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/dimdev/rift/util/RegistryUtil.java diff --git a/src/main/java/org/dimdev/rift/network/Message.java b/src/main/java/org/dimdev/rift/network/Message.java index 82e7e10..0e46455 100644 --- a/src/main/java/org/dimdev/rift/network/Message.java +++ b/src/main/java/org/dimdev/rift/network/Message.java @@ -16,11 +16,12 @@ import net.minecraft.util.registry.IRegistry; import net.minecraft.util.registry.RegistryNamespaced; import net.minecraft.world.WorldServer; +import org.dimdev.rift.util.RegistryUtil; import java.util.function.Predicate; public abstract class Message { - public static final IRegistry> REGISTRY = IRegistry.func_212610_a("message", new RegistryNamespaced()); + public static final IRegistry> REGISTRY = RegistryUtil.createRegistry(new ResourceLocation("rift", "message"), new RegistryNamespaced()); public abstract void write(PacketBuffer buffer); diff --git a/src/main/java/org/dimdev/rift/util/RegistryUtil.java b/src/main/java/org/dimdev/rift/util/RegistryUtil.java new file mode 100644 index 0000000..c9a1db7 --- /dev/null +++ b/src/main/java/org/dimdev/rift/util/RegistryUtil.java @@ -0,0 +1,13 @@ +package org.dimdev.rift.util; + +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.registry.IRegistry; + +public class RegistryUtil { + + public static IRegistry createRegistry(ResourceLocation resourceLocation, IRegistry registry) { + IRegistry.field_212617_f.put(resourceLocation, registry); + return registry; + } + +}