66 lines
3.5 KiB
Diff
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/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java
|
|
index 929ccc5cf475a5b3d19e44d8d6b324e1d647b5d1..dde09a19916798afabe28902636a2ced642017a5 100644
|
|
--- a/src/main/java/dev/etil/mirai/MiraiConfig.java
|
|
+++ b/src/main/java/dev/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
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
index 33cb9a669fed30509d2737898dbd15ce16193da4..d1a6a21bfe93882e23a0bad742abd6fedcac29d0 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
|
@@ -619,7 +619,7 @@ public class ServerPlayer extends Player {
|
|
|
|
@Override
|
|
protected void onInsideBlock(BlockState state) {
|
|
- CriteriaTriggers.ENTER_BLOCK.trigger(this, state);
|
|
+ if (dev.etil.mirai.MiraiConfig.criterionTriggerEnterBlock) CriteriaTriggers.ENTER_BLOCK.trigger(this, state); // Mirai
|
|
}
|
|
|
|
@Override
|
|
@@ -665,7 +665,7 @@ public class ServerPlayer extends Player {
|
|
}
|
|
}
|
|
|
|
- CriteriaTriggers.TICK.trigger(this);
|
|
+ if (dev.etil.mirai.MiraiConfig.criterionTriggerTick) CriteriaTriggers.TICK.trigger(this); // Mirai
|
|
if (this.levitationStartPos != null) {
|
|
CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime);
|
|
}
|
|
@@ -741,9 +741,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 (dev.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) {
|