This repository has been archived by the owner on Sep 23, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 47
/
0071-Configurable-criterion-triggers.patch
62 lines (53 loc) · 3.23 KB
/
0071-Configurable-criterion-triggers.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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 f5aca2054dcad52301b9b99e44fbd3723aabdad7..f120e10679d38f3db22315f16a00622ab7601c2a 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -613,7 +613,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
@@ -659,7 +659,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);
}
@@ -735,9 +735,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 4ef25b6203371b9c22275e1015ea75d870acf8da..4ace3c19551ea1cc5079d0570f5f0e70f1cae6a5 100644
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
+++ b/src/main/java/wtf/etil/mirai/MiraiConfig.java
@@ -244,4 +244,13 @@ public class MiraiConfig {
serverMetrics = getBoolean("enable-server-metrics", serverMetrics);
}
+ 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