Apply and test optimizations

This commit is contained in:
IzzelAliz 2021-07-31 13:36:09 +08:00
parent 81b2f211b8
commit 2fdfa68fac
10 changed files with 45 additions and 30 deletions

View File

@ -0,0 +1,17 @@
package io.izzel.arclight.common.mixin.optimization.dfu;
import com.mojang.datafixers.DSL;
import com.mojang.datafixers.types.Type;
import net.minecraft.world.level.block.entity.BlockEntityType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(BlockEntityType.class)
public class BlockEntityTypeMixin_DFU {
@Redirect(method = "register", at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;fetchChoiceType(Lcom/mojang/datafixers/DSL$TypeReference;Ljava/lang/String;)Lcom/mojang/datafixers/types/Type;"))
private static Type<?> arclight$noDfu(DSL.TypeReference p_137457_, String p_137458_) {
return null;
}
}

View File

@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(value = CraftMagicNumbers.class, remap = false)
public class CraftMagicNumbersMixin {
public class CraftMagicNumbersMixin_DFU {
@Inject(method = "checkSupported", at = @At("HEAD"))
private void arclight$dfuDisabled(PluginDescriptionFile pdf, CallbackInfo ci) throws InvalidPluginException {

View File

@ -1,20 +0,0 @@
package io.izzel.arclight.common.mixin.optimization.dfu;
import com.mojang.datafixers.DSL;
import com.mojang.datafixers.DataFixerUpper;
import com.mojang.serialization.Dynamic;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
@Mixin(value = DataFixerUpper.class, remap = false)
public abstract class DataFixerUpperMixin {
/**
* @author IzzelAliz
* @reason
*/
@Overwrite
public <T> Dynamic<T> update(DSL.TypeReference type, Dynamic<T> input, int version, int newVersion) {
return input;
}
}

View File

@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(DataFixers.class)
public class DataFixesManagerMixin {
public class DataFixesManagerMixin_DFU {
@Inject(method = "createFixerUpper", cancellable = true, at = @At("HEAD"))
private static void arclight$disableDfu(CallbackInfoReturnable<DataFixer> cir) {

View File

@ -0,0 +1,15 @@
package io.izzel.arclight.common.mixin.optimization.dfu;
import net.minecraft.world.entity.EntityType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(EntityType.Builder.class)
public class EntityType_BuilderMixin_DFU {
@Redirect(method = "build", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/EntityType$Builder;serialize:Z"))
private boolean arclight$noDfu(EntityType.Builder<?> builder) {
return false;
}
}

View File

@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(MinecraftServer.class)
public abstract class MinecraftServerMixin {
public abstract class MinecraftServerMixin_DFU {
@Inject(method = "convertFromRegionFormatIfNeeded", cancellable = true, at = @At("HEAD"))
private static void arclight$skipConvert(LevelStorageSource.LevelStorageAccess levelSave, CallbackInfo ci) {

View File

@ -2,6 +2,7 @@ package io.izzel.arclight.common.mixin.optimization.general.activationrange.enti
import io.izzel.arclight.common.mixin.optimization.general.activationrange.EntityMixin_ActivationRange;
import net.minecraft.world.entity.projectile.FireworkRocketEntity;
import org.bukkit.craftbukkit.v.event.CraftEventFactory;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@ -19,7 +20,9 @@ public abstract class FireworkRocketEntityMixin_ActivationRange extends EntityMi
super.inactiveTick();
++this.life;
if (!this.level.isClientSide && this.life > this.lifetime) {
this.explode();
if (!CraftEventFactory.callFireworkExplodeEvent((FireworkRocketEntity)(Object) this).isCancelled()) {
this.explode();
}
}
}
}

View File

@ -15,10 +15,10 @@ public abstract class VillagerEntityMixin_ActivationRange extends EntityMixin_Ac
@Override
public void inactiveTick() {
super.inactiveTick();
if (((WorldBridge) this.level).bridge$spigotConfig().tickInactiveVillagers
&& ((Villager) (Object) this).isEffectiveAi()) {
this.customServerAiStep();
}
super.inactiveTick();
}
}

View File

@ -20,7 +20,6 @@ public class ArclightConnector implements IMixinConnector {
Mixins.addConfiguration("mixins.arclight.forge.json");
Mixins.addConfiguration("mixins.arclight.api.json");
LOGGER.info("mixin-load.core");
if (true) return;
Mixins.addConfiguration("mixins.arclight.impl.forge.optimization.json");
if (ArclightConfig.spec().getOptimization().isRemoveStream()) {
Mixins.addConfiguration("mixins.arclight.impl.forge.optimization.stream.json");

View File

@ -5,9 +5,10 @@
"refmap": "mixins.arclight.refmap.json",
"compatibilityLevel": "JAVA_11",
"mixins": [
"CraftMagicNumbersMixin",
"DataFixerUpperMixin",
"DataFixesManagerMixin",
"MinecraftServerMixin"
"BlockEntityTypeMixin_DFU",
"CraftMagicNumbersMixin_DFU",
"DataFixesManagerMixin_DFU",
"EntityType_BuilderMixin_DFU",
"MinecraftServerMixin_DFU"
]
}