Spaces:
Build error
Build error
package net.minecraft.client.telemetry; | |
import java.time.Duration; | |
import java.util.UUID; | |
import javax.annotation.Nullable; | |
import net.minecraft.advancements.AdvancementHolder; | |
import net.minecraft.client.telemetry.events.PerformanceMetricsEvent; | |
import net.minecraft.client.telemetry.events.WorldLoadEvent; | |
import net.minecraft.client.telemetry.events.WorldLoadTimesEvent; | |
import net.minecraft.client.telemetry.events.WorldUnloadEvent; | |
import net.minecraft.resources.ResourceLocation; | |
import net.minecraft.world.level.GameType; | |
import net.minecraft.world.level.Level; | |
import net.minecraftforge.api.distmarker.Dist; | |
import net.minecraftforge.api.distmarker.OnlyIn; | |
public class WorldSessionTelemetryManager { | |
private final UUID worldSessionId = UUID.randomUUID(); | |
private final TelemetryEventSender eventSender; | |
private final WorldLoadEvent worldLoadEvent; | |
private final WorldUnloadEvent worldUnloadEvent = new WorldUnloadEvent(); | |
private final PerformanceMetricsEvent performanceMetricsEvent; | |
private final WorldLoadTimesEvent worldLoadTimesEvent; | |
public WorldSessionTelemetryManager(TelemetryEventSender p_286529_, boolean p_286429_, Duration p_286727_, String p_286633_) { | |
this.worldLoadEvent = new WorldLoadEvent(p_286633_); | |
this.performanceMetricsEvent = new PerformanceMetricsEvent(); | |
this.worldLoadTimesEvent = new WorldLoadTimesEvent(p_286429_, p_286727_); | |
this.eventSender = p_286529_.decorate(p_261981_ -> { | |
this.worldLoadEvent.addProperties(p_261981_); | |
p_261981_.put(TelemetryProperty.WORLD_SESSION_ID, this.worldSessionId); | |
}); | |
} | |
public void tick() { | |
this.performanceMetricsEvent.tick(this.eventSender); | |
} | |
public void onPlayerInfoReceived(GameType p_261768_, boolean p_261669_) { | |
this.worldLoadEvent.setGameMode(p_261768_, p_261669_); | |
this.worldUnloadEvent.onPlayerInfoReceived(); | |
this.worldSessionStart(); | |
} | |
public void onServerBrandReceived(String p_261520_) { | |
this.worldLoadEvent.setServerBrand(p_261520_); | |
this.worldSessionStart(); | |
} | |
public void setTime(long p_261878_) { | |
this.worldUnloadEvent.setTime(p_261878_); | |
} | |
public void worldSessionStart() { | |
if (this.worldLoadEvent.send(this.eventSender)) { | |
this.worldLoadTimesEvent.send(this.eventSender); | |
this.performanceMetricsEvent.start(); | |
} | |
} | |
public void onDisconnect() { | |
this.worldLoadEvent.send(this.eventSender); | |
this.performanceMetricsEvent.stop(); | |
this.worldUnloadEvent.send(this.eventSender); | |
} | |
public void onAdvancementDone(Level p_286825_, AdvancementHolder p_298119_) { | |
ResourceLocation resourcelocation = p_298119_.id(); | |
if (p_298119_.value().sendsTelemetryEvent() && "minecraft".equals(resourcelocation.getNamespace())) { | |
long i = p_286825_.getGameTime(); | |
this.eventSender.send(TelemetryEventType.ADVANCEMENT_MADE, p_286184_ -> { | |
p_286184_.put(TelemetryProperty.ADVANCEMENT_ID, resourcelocation.toString()); | |
p_286184_.put(TelemetryProperty.ADVANCEMENT_GAME_TIME, i); | |
}); | |
} | |
} | |
} |