26 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.telemetry;
 | |
| 
 | |
| import com.mojang.authlib.minecraft.TelemetryEvent;
 | |
| import com.mojang.authlib.minecraft.TelemetrySession;
 | |
| import com.mojang.serialization.Codec;
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public record TelemetryEventInstance(TelemetryEventType type, TelemetryPropertyMap properties) {
 | |
| 	public static final Codec<TelemetryEventInstance> CODEC = TelemetryEventType.CODEC.dispatchStable(TelemetryEventInstance::type, TelemetryEventType::codec);
 | |
| 
 | |
| 	public TelemetryEventInstance(TelemetryEventType type, TelemetryPropertyMap properties) {
 | |
| 		properties.propertySet().forEach(telemetryProperty -> {
 | |
| 			if (!telemetryEventType.contains(telemetryProperty)) {
 | |
| 				throw new IllegalArgumentException("Property '" + telemetryProperty.id() + "' not expected for event: '" + telemetryEventType.id() + "'");
 | |
| 			}
 | |
| 		});
 | |
| 		this.type = type;
 | |
| 		this.properties = properties;
 | |
| 	}
 | |
| 
 | |
| 	public TelemetryEvent export(TelemetrySession session) {
 | |
| 		return this.type.export(session, this.properties);
 | |
| 	}
 | |
| }
 |