Files
MiraiMC/patches/server/0066-Configurable-criterion-triggers.patch
2022-08-23 10:36:35 +02:00

66 lines
3.5 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 e52256415e2776f41d107cbf39a73708d6e0d506..4d705dc5294bb07b0ce34c68d1c4bbf33bb84848 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -615,7 +615,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
@@ -661,7 +661,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);
}
@@ -737,9 +737,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, fire PlayerLevelChangeEvent, and tick client-sided world border
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 7339e70f8182209e6274c7f1f1f3558adcaa2cfa..c12ab155bdd4a1bad7bb428ecddc20a7999f91f5 100644
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
+++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java
@@ -209,4 +209,16 @@ public class MiraiConfig {
"Disabling it can save MSPT, especially with quite a lot of enchantment tables.");
}
+ public static boolean criterionTriggerEnterBlock;
+ public static boolean criterionTriggerTick;
+ public static boolean criterionTriggerLocation;
+ private static void criterionTriggers() {
+ criterionTriggerEnterBlock = getBoolean("criterion-trigger.enter-block", true,
+ "Whether or not server should listen to block enter triggers.");
+ criterionTriggerTick = getBoolean("criterion-trigger.tick", true,
+ "Whether or not server should listen to tick triggers.");
+ criterionTriggerLocation = getBoolean("criterion-trigger.location", true,
+ "Whether or not server should listen to location triggers.");
+ }
+
}
\ No newline at end of file