Files
MiraiMC/patches/server/0104-Configurable-criterion-triggers.patch
2022-01-16 18:31:47 +01:00

61 lines
3.0 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 c0301008fecdae18ade4c05115a60f965f9b89cd..570e1002c30599268e6f27d0a609054ed7c3643c 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -608,6 +608,7 @@ public class ServerPlayer extends Player {
@Override
protected void onInsideBlock(BlockState state) {
+ if (wtf.etil.mirai.MiraiConfig.criterionTriggerEnterBlock) // Mirai
CriteriaTriggers.ENTER_BLOCK.trigger(this, state);
}
@@ -653,8 +654,7 @@ public class ServerPlayer extends Player {
this.setCamera(this);
}
}
-
- 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);
}
@@ -730,7 +730,7 @@ public class ServerPlayer extends Player {
this.connection.send(new ClientboundSetExperiencePacket(this.experienceProgress, this.totalExperience, this.experienceLevel));
}
- if (this.tickCount % 20 == 0) {
+ if (wtf.etil.mirai.MiraiConfig.criterionTriggerLocation && this.tickCount % 20 == 0) { // Mirai
CriteriaTriggers.LOCATION.trigger(this);
}
diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java
index 90cf922c8df669ac80451d64b376918dece09dc9..f327714292019eb0a401eef06f67a3562d6baab0 100644
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
+++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java
@@ -252,4 +252,13 @@ public class MiraiConfig {
vectorizedPerlinNoise = getBoolean("use-vectorized-perlin-noise", vectorizedPerlinNoise);
}
+ 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