mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-01 20:52:12 -07:00
Use mapped names for sensor and behavior timings/config (#6228)
This commit is contained in:
@@ -372,19 +372,23 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ return rootClassName + ".java";
|
+ return rootClassName + ".java";
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private record ClassMapping(
|
+ public record ClassMapping(
|
||||||
+ String obfName,
|
+ String obfName,
|
||||||
+ String mojangName,
|
+ String mojangName,
|
||||||
+ Map<Pair<String, String>, MethodMapping> methodMappings
|
+ Map<Pair<String, String>, MethodMapping> methodMappings
|
||||||
+ ) {
|
+ ) {
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private record MethodMapping(
|
+ public record MethodMapping(
|
||||||
+ String obfName,
|
+ String obfName,
|
||||||
+ String mojangName,
|
+ String mojangName,
|
||||||
+ String descriptor
|
+ String descriptor
|
||||||
+ ) {
|
+ ) {
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ public @Nullable Map<String, ClassMapping> mappings() {
|
||||||
|
+ return mappings;
|
||||||
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/TraceUtil.java b/src/main/java/io/papermc/paper/util/TraceUtil.java
|
diff --git a/src/main/java/io/papermc/paper/util/TraceUtil.java b/src/main/java/io/papermc/paper/util/TraceUtil.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
@@ -59,8 +59,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
+ private Table<String, String, Integer> sensorTickRates;
|
+ private Table<String, String, Integer> sensorTickRates;
|
||||||
+ private Table<String, String, Integer> behaviorTickRates;
|
+ private Table<String, String, Integer> behaviorTickRates;
|
||||||
+ private void tickRates() {
|
+ private void tickRates() {
|
||||||
+ config.addDefault("world-settings.default.tick-rates.sensor.villager.secondaryplaces", 40);
|
+ config.addDefault("world-settings.default.tick-rates.sensor.villager.secondarypoisensor", 40);
|
||||||
+ config.addDefault("world-settings.default.tick-rates.behavior.villager.positionvalidate", 20);
|
+ config.addDefault("world-settings.default.tick-rates.behavior.villager.validatenearbypoi", -1); // Example
|
||||||
+ log("Tick rates:");
|
+ log("Tick rates:");
|
||||||
+ sensorTickRates = loadTickRates("sensor");
|
+ sensorTickRates = loadTickRates("sensor");
|
||||||
+ behaviorTickRates = loadTickRates("behavior");
|
+ behaviorTickRates = loadTickRates("behavior");
|
||||||
@@ -130,12 +130,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
this.maxDuration = maxRunTime;
|
this.maxDuration = maxRunTime;
|
||||||
this.entryCondition = requiredMemoryState;
|
this.entryCondition = requiredMemoryState;
|
||||||
+ // Paper start - configurable behavior tick rate and timings
|
+ // Paper start - configurable behavior tick rate and timings
|
||||||
+ String key = getClass().getName().startsWith("net.minecraft.") ? getClass().getSimpleName() : getClass().getName();
|
+ Map<String, io.papermc.paper.util.StacktraceDeobfuscator.ClassMapping> mappings = io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.mappings();
|
||||||
+ key = key.toLowerCase(java.util.Locale.ROOT);
|
+ String key;
|
||||||
+ if (key.startsWith("behavior")) {
|
+ if (mappings != null) {
|
||||||
+ key = key.substring("behavior".length());
|
+ key = mappings.get(getClass().getName()).mojangName();
|
||||||
|
+ int lastSeparator = key.lastIndexOf('.');
|
||||||
|
+ if (lastSeparator != -1) {
|
||||||
|
+ key = key.substring(lastSeparator + 1);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ key = getClass().getSimpleName();
|
||||||
+ }
|
+ }
|
||||||
+ this.configKey = key;
|
+ this.configKey = key.toLowerCase(java.util.Locale.ROOT);
|
||||||
+ this.timing = co.aikar.timings.MinecraftTimings.getBehaviorTimings(configKey);
|
+ this.timing = co.aikar.timings.MinecraftTimings.getBehaviorTimings(configKey);
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
}
|
}
|
||||||
@@ -190,12 +196,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
|
|
||||||
public Sensor(int senseInterval) {
|
public Sensor(int senseInterval) {
|
||||||
+ // Paper start - configurable sensor tick rate and timings
|
+ // Paper start - configurable sensor tick rate and timings
|
||||||
+ String key = getClass().getName().startsWith("net.minecraft.") ? getClass().getSimpleName() : getClass().getName();
|
+ java.util.Map<String, io.papermc.paper.util.StacktraceDeobfuscator.ClassMapping> mappings = io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.mappings();
|
||||||
+ key = key.toLowerCase(java.util.Locale.ROOT);
|
+ String key;
|
||||||
+ if (key.startsWith("sensor")) {
|
+ if (mappings != null) {
|
||||||
+ key = key.substring("sensor".length());
|
+ key = mappings.get(getClass().getName()).mojangName();
|
||||||
|
+ int lastSeparator = key.lastIndexOf('.');
|
||||||
|
+ if (lastSeparator != -1) {
|
||||||
|
+ key = key.substring(lastSeparator + 1);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
+ key = getClass().getSimpleName();
|
||||||
+ }
|
+ }
|
||||||
+ this.configKey = key;
|
+ this.configKey = key.toLowerCase(java.util.Locale.ROOT);
|
||||||
+ this.timing = co.aikar.timings.MinecraftTimings.getSensorTimings(configKey);
|
+ this.timing = co.aikar.timings.MinecraftTimings.getSensorTimings(configKey);
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
this.scanRate = senseInterval;
|
this.scanRate = senseInterval;
|
||||||
|
Reference in New Issue
Block a user