Files
MiraiMC/patches/server/0096-Configurable-criterion-triggers.patch
2022-02-14 17:37:45 +01:00

63 lines
3.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Mykyta Komarnytskyy <nkomarn@hotmail.com>
Date: Sat, 24 Oct 2020 21:08:17 -0500
Subject: [PATCH] Configurable criterion triggers
This patch adds toggles for three criterion triggers that are called every tick. These can be very unnecessary, and especially in the case of CriterionTriggerEnterBlock, quite heavy.
Original code by YatopiaMC, licensed under MIT
You can find the original code on https://github.com/YatopiaMC/Yatopia
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 0eddb9829788ab7c9bf72805bc46a24152c4a7a1..665374434b58fe55cea27a2a9c4fee864a6e4c73 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -607,7 +607,7 @@ public class ServerPlayer extends Player {
@Override
protected void onInsideBlock(BlockState state) {
- CriteriaTriggers.ENTER_BLOCK.trigger(this, state);
+ if (wtf.etil.mirai.MiraiConfig.criterionTriggerEnterBlock) { CriteriaTriggers.ENTER_BLOCK.trigger(this, state); } // Mirai
}
@Override
@@ -653,7 +653,7 @@ public class ServerPlayer extends Player {
}
}
- CriteriaTriggers.TICK.trigger(this);
+ if (wtf.etil.mirai.MiraiConfig.criterionTriggerTick) { CriteriaTriggers.TICK.trigger(this); } // Mirai
if (this.levitationStartPos != null) {
CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime);
}
@@ -729,9 +729,7 @@ public class ServerPlayer extends Player {
this.connection.send(new ClientboundSetExperiencePacket(this.experienceProgress, this.totalExperience, this.experienceLevel));
}
- if (this.tickCount % 20 == 0) {
- CriteriaTriggers.LOCATION.trigger(this);
- }
+ if (wtf.etil.mirai.MiraiConfig.criterionTriggerLocation && this.tickCount % 20 == 0) { CriteriaTriggers.LOCATION.trigger(this); } // Mirai
// CraftBukkit start - initialize oldLevel and fire PlayerLevelChangeEvent
if (this.oldLevel == -1) {
diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java
index 1ba057cbd0ec23cd7ef3d3d1c7685f44cfe34eec..86cc31add10259a248b6044d1bcfb0a9a6bac9c6 100644
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
+++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java
@@ -247,4 +247,13 @@ public class MiraiConfig {
riskyMathRoundOpt = getBoolean("use-risky-mathround-opt", riskyMathRoundOpt);
}
+ public static boolean criterionTriggerEnterBlock = true;
+ public static boolean criterionTriggerTick = true;
+ public static boolean criterionTriggerLocation = true;
+ private static void criterionTriggers() {
+ criterionTriggerEnterBlock = getBoolean("criterion-trigger.enter-block", criterionTriggerEnterBlock);
+ criterionTriggerTick = getBoolean("criterion-trigger.tick", criterionTriggerTick);
+ criterionTriggerLocation = getBoolean("criterion-trigger.location", criterionTriggerLocation);
+ }
+
}
\ No newline at end of file