Path: blob/1.21.x/src/main/java/net/minecraftforge/client/event/RegisterPresetEditorsEvent.java
7161 views
/*1* Copyright (c) Forge Development LLC and contributors2* SPDX-License-Identifier: LGPL-2.1-only3*/45package net.minecraftforge.client.event;67import java.util.Map;89import net.minecraftforge.eventbus.api.bus.BusGroup;10import net.minecraftforge.eventbus.api.bus.EventBus;11import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing;12import org.apache.logging.log4j.LogManager;13import org.apache.logging.log4j.Logger;14import org.jetbrains.annotations.ApiStatus;1516import net.minecraft.client.gui.screens.worldselection.PresetEditor;17import net.minecraft.resources.ResourceKey;18import net.minecraft.world.level.levelgen.presets.WorldPreset;19import net.minecraftforge.fml.LogicalSide;20import net.minecraftforge.fml.ModLoadingContext;21import net.minecraftforge.fml.event.IModBusEvent;22import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;2324/**25* <p>Event for registering {@link PresetEditor} screen factories for world presets.</p>26*27* <p>This event is fired on the {@linkplain FMLJavaModLoadingContext#getModEventBus() mod-specific event bus},28* only on the {@linkplain LogicalSide#CLIENT logical client}.</p>29*/30public final class RegisterPresetEditorsEvent implements SelfDestructing, IModBusEvent {31public static EventBus<RegisterPresetEditorsEvent> getBus(BusGroup modBusGroup) {32return IModBusEvent.getBus(modBusGroup, RegisterPresetEditorsEvent.class);33}3435private static final Logger LOGGER = LogManager.getLogger();3637private final Map<ResourceKey<WorldPreset>, PresetEditor> editors;3839@ApiStatus.Internal40public RegisterPresetEditorsEvent(Map<ResourceKey<WorldPreset>, PresetEditor> editors) {41this.editors = editors;42}4344/**45* Registers a PresetEditor for a given world preset key.46*/47public void register(ResourceKey<WorldPreset> key, PresetEditor editor) {48PresetEditor old = this.editors.put(key, editor);49if (old != null) {50LOGGER.debug("PresetEditor {} overridden by mod {}", key.location(), ModLoadingContext.get().getActiveNamespace());51}52}53}545556