63 lines
3.2 KiB
Diff
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
|