[Fix] EndStoneSmelterMenu Whisperer Menu initialized in Client-Only Code. Crashing Servers when players open Whisperer Screen (#38)
This commit is contained in:
parent
d3507b212e
commit
930dcbd4ee
5 changed files with 37 additions and 15 deletions
|
@ -34,6 +34,7 @@ public class BetterEnd implements ModInitializer {
|
|||
WorldConfig.registerModCache(MOD_ID);
|
||||
EndPortals.loadPortals();
|
||||
EndSounds.register();
|
||||
EndMenuTypes.ensureStaticallyLoaded();
|
||||
EndBlockEntities.register();
|
||||
EndPoiTypes.register();
|
||||
EndFeatures.register();
|
||||
|
|
|
@ -3,8 +3,6 @@ package org.betterx.betterend.client;
|
|||
import org.betterx.bclib.BCLib;
|
||||
import org.betterx.bclib.util.TranslationHelper;
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.blocks.EndStoneSmelter;
|
||||
import org.betterx.betterend.client.gui.EndStoneSmelterMenu;
|
||||
import org.betterx.betterend.client.render.BetterEndSkyRenderer;
|
||||
import org.betterx.betterend.events.ItemTooltipCallback;
|
||||
import org.betterx.betterend.interfaces.MultiModelItem;
|
||||
|
@ -17,20 +15,13 @@ import net.minecraft.network.chat.Component;
|
|||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.inventory.MenuType;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry;
|
||||
import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry;
|
||||
|
||||
public class BetterEndClient implements ClientModInitializer {
|
||||
public final static MenuType<EndStoneSmelterMenu> HANDLER_TYPE = ScreenHandlerRegistry.registerSimple(
|
||||
BetterEnd.makeID(EndStoneSmelter.ID),
|
||||
EndStoneSmelterMenu::new
|
||||
);
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
EndBlockEntityRenders.register();
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package org.betterx.betterend.client.gui;
|
||||
|
||||
import org.betterx.betterend.blocks.entities.EndStoneSmelterBlockEntity;
|
||||
import org.betterx.betterend.client.BetterEndClient;
|
||||
import org.betterx.betterend.client.gui.slot.SmelterFuelSlot;
|
||||
import org.betterx.betterend.client.gui.slot.SmelterOutputSlot;
|
||||
import org.betterx.betterend.recipe.builders.AlloyingRecipe;
|
||||
import org.betterx.betterend.registry.EndMenuTypes;
|
||||
|
||||
import net.minecraft.world.Container;
|
||||
import net.minecraft.world.SimpleContainer;
|
||||
|
@ -48,7 +48,7 @@ public class EndStoneSmelterMenu extends RecipeBookMenu<Container> {
|
|||
Container inventory,
|
||||
ContainerData propertyDelegate
|
||||
) {
|
||||
super(BetterEndClient.HANDLER_TYPE, syncId);
|
||||
super(EndMenuTypes.END_STONE_SMELTER, syncId);
|
||||
this.inventory = inventory;
|
||||
this.propertyDelegate = propertyDelegate;
|
||||
this.world = playerInventory.player.level;
|
||||
|
@ -71,7 +71,7 @@ public class EndStoneSmelterMenu extends RecipeBookMenu<Container> {
|
|||
|
||||
@Override
|
||||
public MenuType<?> getType() {
|
||||
return BetterEndClient.HANDLER_TYPE;
|
||||
return EndMenuTypes.END_STONE_SMELTER;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
package org.betterx.betterend.registry;
|
||||
|
||||
import org.betterx.betterend.BetterEnd;
|
||||
import org.betterx.betterend.blocks.EndStoneSmelter;
|
||||
import org.betterx.betterend.client.gui.EndStoneSmelterMenu;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.inventory.MenuType;
|
||||
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
public class EndMenuTypes {
|
||||
public final static MenuType<EndStoneSmelterMenu> END_STONE_SMELTER = registerSimple(
|
||||
BetterEnd.makeID(EndStoneSmelter.ID),
|
||||
EndStoneSmelterMenu::new
|
||||
);
|
||||
|
||||
static <T extends AbstractContainerMenu> MenuType<T> registerSimple(
|
||||
ResourceLocation id,
|
||||
BiFunction<Integer, Inventory, T> factory
|
||||
) {
|
||||
MenuType<T> type = new MenuType<>((syncId, inventory) -> factory.apply(syncId, inventory));
|
||||
return Registry.register(Registry.MENU, id, type);
|
||||
}
|
||||
|
||||
public final static void ensureStaticallyLoaded() {
|
||||
}
|
||||
}
|
|
@ -1,12 +1,11 @@
|
|||
package org.betterx.betterend.registry;
|
||||
|
||||
import org.betterx.betterend.client.BetterEndClient;
|
||||
import org.betterx.betterend.client.gui.EndStoneSmelterScreen;
|
||||
|
||||
import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
|
||||
import net.minecraft.client.gui.screens.MenuScreens;
|
||||
|
||||
public class EndScreens {
|
||||
public static void register() {
|
||||
ScreenRegistry.register(BetterEndClient.HANDLER_TYPE, EndStoneSmelterScreen::new);
|
||||
MenuScreens.register(EndMenuTypes.END_STONE_SMELTER, EndStoneSmelterScreen::new);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue