Allow JEPB and JEResources to use integrated server resources

This commit is contained in:
embeddedt 2023-03-01 14:50:44 -05:00
parent b9050368bc
commit cc79bf7274
5 changed files with 46 additions and 0 deletions

View File

@ -91,6 +91,9 @@ dependencies {
modCompileOnly("curse.maven:refinedstorage-243076:${refined_storage_version}")
modImplementation("dev.latvian.mods:kubejs-forge:${kubejs_version}")
modImplementation("curse.maven:jeresources-240630:3545538")
modImplementation("curse.maven:jepb-437558:3172880")
modImplementation("curse.maven:babel-436964:3196072")
}
tasks.withType(JavaCompile) {

View File

@ -21,6 +21,7 @@ public class ModernFixEarlyConfig {
this.addMixinRule("feature.measure_time", true);
this.addMixinRule("feature.reduce_loading_screen_freezes", false);
this.addMixinRule("perf.fast_registry_validation", true);
this.addMixinRule("perf.use_integrated_resources", true);
this.addMixinRule("perf.remove_biome_temperature_cache", true);
this.addMixinRule("perf.resourcepacks", true);
this.addMixinRule("perf.reduce_blockstate_cache_rebuilds", true);

View File

@ -0,0 +1,20 @@
package org.embeddedt.modernfix.mixin.perf.use_integrated_resources;
import jeresources.util.LootTableHelper;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.Level;
import net.minecraftforge.fml.server.ServerLifecycleHooks;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(LootTableHelper.class)
public class LootTableHelperMixin {
@Redirect(method = "getManager(Lnet/minecraft/world/level/Level;)Lnet/minecraft/world/level/storage/loot/LootTables;", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getServer()Lnet/minecraft/server/MinecraftServer;"))
private static MinecraftServer useIntegrated(Level level) {
MinecraftServer server = level.getServer();
if(server != null)
return server;
return ServerLifecycleHooks.getCurrentServer();
}
}

View File

@ -0,0 +1,20 @@
package org.embeddedt.modernfix.mixin.perf.use_integrated_resources;
import com.thenatekirby.jepb.plugin.PiglinBarteringRecipeBuilder;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.Level;
import net.minecraftforge.fml.server.ServerLifecycleHooks;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(PiglinBarteringRecipeBuilder.class)
public class PiglinBarteringRecipeBuilderMixin {
@Redirect(method = "getManager(Lnet/minecraft/world/level/Level;)Lnet/minecraft/world/level/storage/loot/LootTables;", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getServer()Lnet/minecraft/server/MinecraftServer;"))
private static MinecraftServer useIntegrated(Level level) {
MinecraftServer server = level.getServer();
if(server != null)
return server;
return ServerLifecycleHooks.getCurrentServer();
}
}

View File

@ -92,6 +92,8 @@
"bugfix.packet_leak.SCustomPayloadPlayPacketMixin",
"perf.reuse_datapacks.MinecraftMixin",
"perf.reuse_datapacks.MinecraftServerMixin",
"perf.use_integrated_resources.LootTableHelperMixin",
"perf.use_integrated_resources.PiglinBarteringRecipeBuilderMixin",
"perf.faster_singleplayer_load.MinecraftServerMixin"
],
"injectors": {