Move Client Side only code to the correct classes to prevent server crashes
This commit is contained in:
@@ -2,20 +2,25 @@ package me.hypherionmc.craterlib.client;
|
||||
|
||||
import me.hypherionmc.craterlib.api.rendering.CustomRenderType;
|
||||
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
||||
import me.hypherionmc.craterlib.network.CraterPacket;
|
||||
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
|
||||
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
|
||||
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.ItemBlockRenderTypes;
|
||||
import net.minecraft.client.renderer.item.ItemProperties;
|
||||
import net.minecraft.network.Connection;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.fml.loading.FMLEnvironment;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* @author HypherionSA
|
||||
@@ -23,24 +28,7 @@ import java.util.function.Supplier;
|
||||
*/
|
||||
public class ForgeClientHelper implements LibClientHelper {
|
||||
|
||||
@Override
|
||||
public CreativeModeTab tabBuilder(String modid, String tabid, Supplier<ItemStack> icon, String backgroundSuf) {
|
||||
CreativeModeTab tab = new CreativeModeTab(modid + "." + tabid) {
|
||||
@Override
|
||||
public ItemStack makeIcon() {
|
||||
if (icon != null) {
|
||||
return icon.get();
|
||||
} else {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (backgroundSuf != null && !backgroundSuf.isEmpty()) {
|
||||
tab.setBackgroundSuffix(backgroundSuf);
|
||||
}
|
||||
return tab;
|
||||
}
|
||||
public ForgeClientHelper() {}
|
||||
|
||||
@Override
|
||||
public void registerItemProperty(BlockItemDyable item, String property) {
|
||||
@@ -57,4 +45,30 @@ public class ForgeClientHelper implements LibClientHelper {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Minecraft getClientInstance() {
|
||||
return Minecraft.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getClientPlayer() {
|
||||
return Minecraft.getInstance().player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Level getClientLevel() {
|
||||
return Minecraft.getInstance().level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection getClientConnection() {
|
||||
Objects.requireNonNull(Minecraft.getInstance().getConnection(), "Cannot send packets when not in game!");
|
||||
return Minecraft.getInstance().getConnection().getConnection();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerClientReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory) {
|
||||
// UNUSED
|
||||
}
|
||||
}
|
||||
|
@@ -4,27 +4,25 @@ import me.hypherionmc.craterlib.network.CraterNetworkHandler;
|
||||
import me.hypherionmc.craterlib.network.CraterPacket;
|
||||
import me.hypherionmc.craterlib.network.ForgeNetworkHandler;
|
||||
import me.hypherionmc.craterlib.platform.services.LibCommonHelper;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.Connection;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.MenuProvider;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.inventory.MenuType;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.common.extensions.IForgeMenuType;
|
||||
import net.minecraftforge.network.NetworkHooks;
|
||||
import net.minecraftforge.server.ServerLifecycleHooks;
|
||||
import org.apache.commons.lang3.function.TriFunction;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author HypherionSA
|
||||
@@ -32,42 +30,18 @@ import java.util.function.Function;
|
||||
*/
|
||||
public class ForgeCommonHelper implements LibCommonHelper {
|
||||
|
||||
public ForgeCommonHelper() {}
|
||||
|
||||
@Override
|
||||
public CraterNetworkHandler createPacketHandler(String modid) {
|
||||
return ForgeNetworkHandler.of(modid, true, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Minecraft getClientInstance() {
|
||||
return Minecraft.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getClientPlayer() {
|
||||
return Minecraft.getInstance().player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Level getClientLevel() {
|
||||
return Minecraft.getInstance().level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection getClientConnection() {
|
||||
Objects.requireNonNull(Minecraft.getInstance().getConnection(), "Cannot send packets when not in game!");
|
||||
return Minecraft.getInstance().getConnection().getConnection();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MinecraftServer getMCServer() {
|
||||
return ServerLifecycleHooks.getCurrentServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerClientReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory) {
|
||||
// UNUSED
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerServerReceiver(ResourceLocation channelName, Function<FriendlyByteBuf, CraterPacket<?>> factory) {
|
||||
// UNUSED
|
||||
@@ -86,4 +60,23 @@ public class ForgeCommonHelper implements LibCommonHelper {
|
||||
public <T extends AbstractContainerMenu> MenuType<T> createMenuType(TriFunction<Integer, Inventory, FriendlyByteBuf, T> constructor) {
|
||||
return IForgeMenuType.create(constructor::apply);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CreativeModeTab tabBuilder(String modid, String tabid, Supplier<ItemStack> icon, String backgroundSuf) {
|
||||
CreativeModeTab tab = new CreativeModeTab(modid + "." + tabid) {
|
||||
@Override
|
||||
public ItemStack makeIcon() {
|
||||
if (icon != null) {
|
||||
return icon.get();
|
||||
} else {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (backgroundSuf != null && !backgroundSuf.isEmpty()) {
|
||||
tab.setBackgroundSuffix(backgroundSuf);
|
||||
}
|
||||
return tab;
|
||||
}
|
||||
}
|
||||
|
@@ -4,7 +4,6 @@ import me.hypherionmc.craterlib.platform.services.Environment;
|
||||
import me.hypherionmc.craterlib.platform.services.ILoaderHelper;
|
||||
import net.minecraft.SharedConstants;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.ModList;
|
||||
import net.minecraftforge.fml.loading.FMLLoader;
|
||||
import net.minecraftforge.fml.loading.FMLPaths;
|
||||
@@ -17,6 +16,8 @@ import java.io.File;
|
||||
*/
|
||||
public class ForgeLoaderHelper implements ILoaderHelper {
|
||||
|
||||
public ForgeLoaderHelper() {}
|
||||
|
||||
@Override
|
||||
public boolean isFabric() {
|
||||
return false;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package me.hypherionmc.craterlib.network;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import me.hypherionmc.craterlib.platform.Platform;
|
||||
import me.hypherionmc.craterlib.platform.ClientPlatform;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
@@ -64,7 +64,7 @@ public class ForgeNetworkHandler implements CraterNetworkHandler {
|
||||
context.enqueueWork(() -> {
|
||||
Player player;
|
||||
if (packetDirection == PacketDirection.TO_CLIENT) {
|
||||
player = Platform.COMMON_HELPER.getClientPlayer();
|
||||
player = ClientPlatform.CLIENT_HELPER.getClientPlayer();
|
||||
} else {
|
||||
player = context.getSender();
|
||||
}
|
||||
|
Reference in New Issue
Block a user