72 lines
2.7 KiB
Java
72 lines
2.7 KiB
Java
package net.minecraft.client.telemetry.events;
|
|
|
|
import javax.annotation.Nullable;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.multiplayer.ServerData;
|
|
import net.minecraft.client.telemetry.TelemetryEventSender;
|
|
import net.minecraft.client.telemetry.TelemetryEventType;
|
|
import net.minecraft.client.telemetry.TelemetryProperty;
|
|
import net.minecraft.client.telemetry.TelemetryPropertyMap;
|
|
import net.minecraft.world.level.GameType;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
|
public class WorldLoadEvent {
|
|
private boolean eventSent;
|
|
@Nullable
|
|
private TelemetryProperty.GameMode gameMode;
|
|
@Nullable
|
|
private String serverBrand;
|
|
@Nullable
|
|
private final String minigameName;
|
|
|
|
public WorldLoadEvent(@Nullable String p_286661_) {
|
|
this.minigameName = p_286661_;
|
|
}
|
|
|
|
public void addProperties(TelemetryPropertyMap.Builder p_261869_) {
|
|
if (this.serverBrand != null) {
|
|
p_261869_.put(TelemetryProperty.SERVER_MODDED, !this.serverBrand.equals("vanilla"));
|
|
}
|
|
|
|
p_261869_.put(TelemetryProperty.SERVER_TYPE, this.getServerType());
|
|
}
|
|
|
|
private TelemetryProperty.ServerType getServerType() {
|
|
ServerData serverdata = Minecraft.getInstance().getCurrentServer();
|
|
if (serverdata != null && serverdata.isRealm()) {
|
|
return TelemetryProperty.ServerType.REALM;
|
|
} else {
|
|
return Minecraft.getInstance().hasSingleplayerServer() ? TelemetryProperty.ServerType.LOCAL : TelemetryProperty.ServerType.OTHER;
|
|
}
|
|
}
|
|
|
|
public boolean send(TelemetryEventSender p_263325_) {
|
|
if (!this.eventSent && this.gameMode != null && this.serverBrand != null) {
|
|
this.eventSent = true;
|
|
p_263325_.send(TelemetryEventType.WORLD_LOADED, p_286185_ -> {
|
|
p_286185_.put(TelemetryProperty.GAME_MODE, this.gameMode);
|
|
if (this.minigameName != null) {
|
|
p_286185_.put(TelemetryProperty.REALMS_MAP_CONTENT, this.minigameName);
|
|
}
|
|
});
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public void setGameMode(GameType p_261852_, boolean p_261831_) {
|
|
this.gameMode = switch (p_261852_) {
|
|
case SURVIVAL -> p_261831_ ? TelemetryProperty.GameMode.HARDCORE : TelemetryProperty.GameMode.SURVIVAL;
|
|
case CREATIVE -> TelemetryProperty.GameMode.CREATIVE;
|
|
case ADVENTURE -> TelemetryProperty.GameMode.ADVENTURE;
|
|
case SPECTATOR -> TelemetryProperty.GameMode.SPECTATOR;
|
|
};
|
|
}
|
|
|
|
public void setServerBrand(String p_261964_) {
|
|
this.serverBrand = p_261964_;
|
|
}
|
|
} |