Fix naming and add gamerules

This commit is contained in:
Bruno Rybársky 2024-07-06 16:55:54 +02:00
parent 773cb102e3
commit 6cd7c83bb5
31 changed files with 158 additions and 156 deletions

@ -11,11 +11,11 @@ loader_version=0.15.11
fabric_version=0.100.4+1.21 fabric_version=0.100.4+1.21
# Mod Properties # Mod Properties
mod_version=3.0.7 mod_version=3.0.8
maven_group=systems.brn maven_group=systems.brn
archives_base_name=Server_storage archives_base_name=Serverstorage
# Dependencies # Dependencies
polymer_version=0.9.2+1.21 polymer_version=0.9.4+1.21
server_translations_api_version=2.3.1+1.21-pre2 server_translations_api_version=2.3.1+1.21-pre2
servergui_version=1.6.0+1.21 servergui_version=1.6.0+1.21

@ -1,15 +0,0 @@
package systems.brn.server_storage.lib;
import net.minecraft.item.ItemStack;
import net.minecraft.recipe.CraftingRecipe;
import net.minecraft.recipe.RecipeEntry;
import java.util.HashMap;
public class MyCraftingRecipe {
HashMap<ItemStack, Integer> inputs = new HashMap<>();
HashMap<ItemStack, Integer> outputs = new HashMap<>();
MyCraftingRecipe(RecipeEntry<CraftingRecipe> recipeEntry) {
recipeEntry.value().getIngredients();
}
}

@ -1,4 +1,4 @@
package systems.brn.server_storage; package systems.brn.serverstorage;
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
@ -9,16 +9,16 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemGroups; import net.minecraft.item.ItemGroups;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.world.GameRules; import net.minecraft.world.GameRules;
import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; import systems.brn.serverstorage.blockentities.HardDriveContainerBlockEntity;
import systems.brn.server_storage.blockentities.InventoryInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.InventoryInterfaceBlockEntity;
import systems.brn.server_storage.blockentities.StorageInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.StorageInterfaceBlockEntity;
import systems.brn.server_storage.blocks.BusConnectorBlock; import systems.brn.serverstorage.blocks.BusConnectorBlock;
import systems.brn.server_storage.blocks.HardDriveContainerBlock; import systems.brn.serverstorage.blocks.HardDriveContainerBlock;
import systems.brn.server_storage.blocks.InventoryInterfaceBlock; import systems.brn.serverstorage.blocks.InventoryInterfaceBlock;
import systems.brn.server_storage.blocks.StorageInterfaceBlock; import systems.brn.serverstorage.blocks.StorageInterfaceBlock;
import systems.brn.server_storage.items.HardDriveItem; import systems.brn.serverstorage.items.HardDriveItem;
import systems.brn.server_storage.items.SimpleBlockItem; import systems.brn.serverstorage.items.SimpleBlockItem;
import systems.brn.server_storage.items.SimpleItem; import systems.brn.serverstorage.items.SimpleItem;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -44,6 +44,15 @@ public class ServerStorage implements ModInitializer {
public static InventoryInterfaceBlock INVENTORY_INTERFACE_BLOCK; public static InventoryInterfaceBlock INVENTORY_INTERFACE_BLOCK;
public static BlockEntityType<InventoryInterfaceBlockEntity> INVENTORY_INTERFACE_BLOCK_ENTITY; public static BlockEntityType<InventoryInterfaceBlockEntity> INVENTORY_INTERFACE_BLOCK_ENTITY;
public static final GameRules.Key<GameRules.BooleanRule> ServerStorage_Crafting_Enable =
GameRuleRegistry.register("serverstoragecraftingmodule", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
public static final GameRules.Key<GameRules.BooleanRule> ServerStorage_Terminal_Enable =
GameRuleRegistry.register("serverstorageterminalmodule", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
public static final GameRules.Key<GameRules.BooleanRule> ServerStorage_Interface_Enable =
GameRuleRegistry.register("serverstorageinterfacemodule", GameRules.Category.MISC, GameRuleFactory.createBooleanRule(true));
public static Item DRIVE_CASING; public static Item DRIVE_CASING;
public static Item CPU; public static Item CPU;

@ -1,4 +1,4 @@
package systems.brn.server_storage.blockentities; package systems.brn.serverstorage.blockentities;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.block.entity.LootableContainerBlockEntity;
@ -11,14 +11,14 @@ import net.minecraft.screen.ScreenHandler;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.collection.DefaultedList;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import systems.brn.server_storage.items.HardDrive; import systems.brn.serverstorage.items.HardDrive;
import systems.brn.server_storage.lib.StorageNetwork; import systems.brn.serverstorage.lib.StorageNetwork;
import systems.brn.server_storage.screenhandlers.DriveContainerScreenHandler; import systems.brn.serverstorage.screenhandlers.DriveContainerScreenHandler;
import java.util.ArrayList; import java.util.ArrayList;
import static systems.brn.server_storage.ServerStorage.DRIVES; import static systems.brn.serverstorage.ServerStorage.DRIVES;
import static systems.brn.server_storage.ServerStorage.HARD_DRIVE_CONTAINER_BLOCK_ENTITY; import static systems.brn.serverstorage.ServerStorage.HARD_DRIVE_CONTAINER_BLOCK_ENTITY;
public class HardDriveContainerBlockEntity extends LootableContainerBlockEntity { public class HardDriveContainerBlockEntity extends LootableContainerBlockEntity {
public DefaultedList<ItemStack> inventory; public DefaultedList<ItemStack> inventory;

@ -1,4 +1,4 @@
package systems.brn.server_storage.blockentities; package systems.brn.serverstorage.blockentities;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
@ -10,17 +10,18 @@ import net.minecraft.state.property.EnumProperty;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.world.World; import net.minecraft.world.World;
import systems.brn.server_storage.lib.ConnectionType; import systems.brn.serverstorage.lib.ConnectionType;
import systems.brn.server_storage.lib.StorageNetwork; import systems.brn.serverstorage.lib.StorageNetwork;
import systems.brn.server_storage.screens.SettingsScreen; import systems.brn.serverstorage.screens.SettingsScreen;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static systems.brn.server_storage.ServerStorage.INVENTORY_INTERFACE_BLOCK_ENTITY; import static systems.brn.serverstorage.ServerStorage.INVENTORY_INTERFACE_BLOCK_ENTITY;
import static systems.brn.server_storage.blocks.ConnectedBlock.getPropertyForDirection; import static systems.brn.serverstorage.ServerStorage.ServerStorage_Interface_Enable;
import static systems.brn.server_storage.lib.StorageOperations.*; import static systems.brn.serverstorage.blocks.ConnectedBlock.getPropertyForDirection;
import static systems.brn.serverstorage.lib.StorageOperations.*;
public class InventoryInterfaceBlockEntity extends BlockEntity { public class InventoryInterfaceBlockEntity extends BlockEntity {
@ -106,7 +107,7 @@ public class InventoryInterfaceBlockEntity extends BlockEntity {
} }
public int processIncoming(ItemStack stack, int count) { public int processIncoming(ItemStack stack, int count) {
if (world != null && isOutput && filterItem(stack.getItem(), query)) { if (world != null && world.getGameRules().getBoolean(ServerStorage_Interface_Enable) && isOutput && filterItem(stack.getItem(), query)) {
BlockPos targetedPos = pos.offset(direction); BlockPos targetedPos = pos.offset(direction);
BlockEntity targetedBlockEntity = world.getBlockEntity(targetedPos); BlockEntity targetedBlockEntity = world.getBlockEntity(targetedPos);
EnumProperty<ConnectionType> connectionType = getPropertyForDirection(direction); EnumProperty<ConnectionType> connectionType = getPropertyForDirection(direction);
@ -122,7 +123,10 @@ public class InventoryInterfaceBlockEntity extends BlockEntity {
return count; return count;
} }
public static <T extends BlockEntity> void tick(World world, BlockPos blockPos, BlockState state, T t) { public static <T extends BlockEntity> void tick(World world, BlockPos blockPos, BlockState ignoredState, T ignoredt) {
if (!world.getGameRules().getBoolean(ServerStorage_Interface_Enable)){
return;
}
InventoryInterfaceBlockEntity blockEntity = (InventoryInterfaceBlockEntity) world.getBlockEntity(blockPos); InventoryInterfaceBlockEntity blockEntity = (InventoryInterfaceBlockEntity) world.getBlockEntity(blockPos);
if (blockEntity != null) { if (blockEntity != null) {
if (blockEntity.tickCounter == 0) { if (blockEntity.tickCounter == 0) {

@ -1,17 +1,17 @@
package systems.brn.server_storage.blockentities; package systems.brn.serverstorage.blockentities;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtCompound;
import net.minecraft.registry.RegistryWrapper; import net.minecraft.registry.RegistryWrapper;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import systems.brn.server_storage.lib.StorageNetwork; import systems.brn.serverstorage.lib.StorageNetwork;
import systems.brn.server_storage.screens.CraftingScreen; import systems.brn.serverstorage.screens.CraftingScreen;
import systems.brn.server_storage.screens.StorageScreen; import systems.brn.serverstorage.screens.StorageScreen;
import java.util.ArrayList; import java.util.ArrayList;
import static systems.brn.server_storage.ServerStorage.STORAGE_INTERFACE_BLOCK_ENTITY; import static systems.brn.serverstorage.ServerStorage.STORAGE_INTERFACE_BLOCK_ENTITY;
public class StorageInterfaceBlockEntity extends BlockEntity { public class StorageInterfaceBlockEntity extends BlockEntity {

@ -1,4 +1,4 @@
package systems.brn.server_storage.blocks; package systems.brn.serverstorage.blocks;
import eu.pb4.polymer.blocks.api.BlockModelType; import eu.pb4.polymer.blocks.api.BlockModelType;
import eu.pb4.polymer.blocks.api.PolymerBlockModel; import eu.pb4.polymer.blocks.api.PolymerBlockModel;
@ -9,7 +9,7 @@ import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry; import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import static systems.brn.server_storage.ServerStorage.*; import static systems.brn.serverstorage.ServerStorage.*;
public class BusConnectorBlock extends ConnectedBlock implements PolymerTexturedBlock { public class BusConnectorBlock extends ConnectedBlock implements PolymerTexturedBlock {
final Identifier identifier; final Identifier identifier;

@ -1,4 +1,4 @@
package systems.brn.server_storage.blocks; package systems.brn.serverstorage.blocks;
import eu.pb4.polymer.core.api.block.SimplePolymerBlock; import eu.pb4.polymer.core.api.block.SimplePolymerBlock;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -12,7 +12,7 @@ import net.minecraft.state.property.EnumProperty;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.world.World; import net.minecraft.world.World;
import systems.brn.server_storage.lib.ConnectionType; import systems.brn.serverstorage.lib.ConnectionType;
public class ConnectedBlock extends SimplePolymerBlock { public class ConnectedBlock extends SimplePolymerBlock {

@ -1,4 +1,4 @@
package systems.brn.server_storage.blocks; package systems.brn.serverstorage.blocks;
import eu.pb4.polymer.blocks.api.BlockModelType; import eu.pb4.polymer.blocks.api.BlockModelType;
import eu.pb4.polymer.blocks.api.PolymerBlockModel; import eu.pb4.polymer.blocks.api.PolymerBlockModel;
@ -24,10 +24,10 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.world.World; import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; import systems.brn.serverstorage.blockentities.HardDriveContainerBlockEntity;
import systems.brn.server_storage.lib.StorageNetwork; import systems.brn.serverstorage.lib.StorageNetwork;
import static systems.brn.server_storage.ServerStorage.*; import static systems.brn.serverstorage.ServerStorage.*;
public class HardDriveContainerBlock extends ConnectedBlock implements PolymerTexturedBlock, BlockEntityProvider { public class HardDriveContainerBlock extends ConnectedBlock implements PolymerTexturedBlock, BlockEntityProvider {

@ -1,4 +1,4 @@
package systems.brn.server_storage.blocks; package systems.brn.serverstorage.blocks;
import eu.pb4.polymer.blocks.api.BlockModelType; import eu.pb4.polymer.blocks.api.BlockModelType;
import eu.pb4.polymer.blocks.api.PolymerBlockModel; import eu.pb4.polymer.blocks.api.PolymerBlockModel;
@ -30,13 +30,13 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.world.World; import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import systems.brn.server_storage.blockentities.InventoryInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.InventoryInterfaceBlockEntity;
import systems.brn.server_storage.lib.PagedGui; import systems.brn.serverstorage.lib.PagedGui;
import systems.brn.server_storage.screens.SearchScreen; import systems.brn.serverstorage.screens.SearchScreen;
import systems.brn.server_storage.screens.SettingsScreen; import systems.brn.serverstorage.screens.SettingsScreen;
import static systems.brn.server_storage.ServerStorage.*; import static systems.brn.serverstorage.ServerStorage.*;
import static systems.brn.server_storage.lib.PagedGui.*; import static systems.brn.serverstorage.lib.PagedGui.*;
public class InventoryInterfaceBlock extends ConnectedBlock implements PolymerTexturedBlock, BlockEntityProvider { public class InventoryInterfaceBlock extends ConnectedBlock implements PolymerTexturedBlock, BlockEntityProvider {
final Identifier identifier; final Identifier identifier;
@ -150,6 +150,10 @@ public class InventoryInterfaceBlock extends ConnectedBlock implements PolymerTe
Block block = state.getBlock(); Block block = state.getBlock();
if (block instanceof InventoryInterfaceBlock) { if (block instanceof InventoryInterfaceBlock) {
if (!world.getGameRules().getBoolean(ServerStorage_Interface_Enable)){
playerEntity.sendMessage(Text.translatable("message.serverstorage.block_disabled"), true);
return ActionResult.PASS;
}
BlockEntity tempBlockEntity = world.getBlockEntity(pos); BlockEntity tempBlockEntity = world.getBlockEntity(pos);
if (tempBlockEntity instanceof InventoryInterfaceBlockEntity blockEntity) { if (tempBlockEntity instanceof InventoryInterfaceBlockEntity blockEntity) {
if (!world.isClient && !playerEntity.isSpectator()) { if (!world.isClient && !playerEntity.isSpectator()) {

@ -1,4 +1,4 @@
package systems.brn.server_storage.blocks; package systems.brn.serverstorage.blocks;
import eu.pb4.polymer.blocks.api.BlockModelType; import eu.pb4.polymer.blocks.api.BlockModelType;
import eu.pb4.polymer.blocks.api.PolymerBlockModel; import eu.pb4.polymer.blocks.api.PolymerBlockModel;
@ -30,13 +30,13 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.world.World; import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import systems.brn.server_storage.blockentities.StorageInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.StorageInterfaceBlockEntity;
import systems.brn.server_storage.screens.StorageScreen; import systems.brn.serverstorage.screens.StorageScreen;
import java.util.List; import java.util.List;
import static systems.brn.server_storage.ServerStorage.*; import static systems.brn.serverstorage.ServerStorage.*;
import static systems.brn.server_storage.lib.Util.generateBookContent; import static systems.brn.serverstorage.lib.Util.generateBookContent;
public class StorageInterfaceBlock extends ConnectedBlock implements PolymerTexturedBlock, BlockEntityProvider { public class StorageInterfaceBlock extends ConnectedBlock implements PolymerTexturedBlock, BlockEntityProvider {
final Identifier identifier; final Identifier identifier;
@ -86,6 +86,10 @@ public class StorageInterfaceBlock extends ConnectedBlock implements PolymerText
Block block = state.getBlock(); Block block = state.getBlock();
if (block instanceof StorageInterfaceBlock) { if (block instanceof StorageInterfaceBlock) {
if (!world.getGameRules().getBoolean(ServerStorage_Terminal_Enable)){
player.sendMessage(Text.translatable("message.serverstorage.block_disabled"), true);
return ActionResult.PASS;
}
if (!world.isClient && !player.isSpectator()) { if (!world.isClient && !player.isSpectator()) {
if (!player.isSneaking()) { if (!player.isSneaking()) {
StorageScreen storageScreen = new StorageScreen((ServerPlayerEntity) player, pos, null); StorageScreen storageScreen = new StorageScreen((ServerPlayerEntity) player, pos, null);

@ -1,4 +1,4 @@
package systems.brn.server_storage.items; package systems.brn.serverstorage.items;
import net.minecraft.component.DataComponentTypes; import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.LoreComponent; import net.minecraft.component.type.LoreComponent;
@ -7,12 +7,12 @@ import net.minecraft.item.Items;
import net.minecraft.text.Style; import net.minecraft.text.Style;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; import systems.brn.serverstorage.blockentities.HardDriveContainerBlockEntity;
import java.util.*; import java.util.*;
import static systems.brn.server_storage.lib.DriveComponents.*; import static systems.brn.serverstorage.lib.DriveComponents.*;
import static systems.brn.server_storage.lib.StorageOperations.canCombine; import static systems.brn.serverstorage.lib.StorageOperations.canCombine;
public class HardDrive { public class HardDrive {
private ItemStack driveStack; private ItemStack driveStack;

@ -1,4 +1,4 @@
package systems.brn.server_storage.items; package systems.brn.serverstorage.items;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -6,13 +6,13 @@ import net.minecraft.item.ItemGroups;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry; import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import systems.brn.server_storage.lib.DriveComponents; import systems.brn.serverstorage.lib.DriveComponents;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import static systems.brn.server_storage.ServerStorage.id; import static systems.brn.serverstorage.ServerStorage.id;
public class HardDriveItem extends SimpleItem { public class HardDriveItem extends SimpleItem {
public HardDriveItem(Settings settings, Identifier identifier) { public HardDriveItem(Settings settings, Identifier identifier) {

@ -1,4 +1,4 @@
package systems.brn.server_storage.items; package systems.brn.serverstorage.items;
import eu.pb4.polymer.core.api.item.PolymerBlockItem; import eu.pb4.polymer.core.api.item.PolymerBlockItem;
import eu.pb4.polymer.core.api.item.PolymerItem; import eu.pb4.polymer.core.api.item.PolymerItem;
@ -16,7 +16,7 @@ import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import static systems.brn.server_storage.ServerStorage.id; import static systems.brn.serverstorage.ServerStorage.id;
public class SimpleBlockItem extends PolymerBlockItem implements PolymerItem { public class SimpleBlockItem extends PolymerBlockItem implements PolymerItem {
private final PolymerModelData polymerModel; private final PolymerModelData polymerModel;

@ -1,4 +1,4 @@
package systems.brn.server_storage.items; package systems.brn.serverstorage.items;
import eu.pb4.polymer.core.api.item.PolymerItem; import eu.pb4.polymer.core.api.item.PolymerItem;
import eu.pb4.polymer.core.api.item.SimplePolymerItem; import eu.pb4.polymer.core.api.item.SimplePolymerItem;
@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static systems.brn.server_storage.ServerStorage.id; import static systems.brn.serverstorage.ServerStorage.id;
public class SimpleItem extends SimplePolymerItem implements PolymerItem { public class SimpleItem extends SimplePolymerItem implements PolymerItem {
private final PolymerModelData polymerModel; private final PolymerModelData polymerModel;

@ -1,4 +1,4 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import net.minecraft.util.StringIdentifiable; import net.minecraft.util.StringIdentifiable;

@ -1,4 +1,4 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -9,12 +9,12 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static systems.brn.server_storage.lib.Util.addCountToLore; import static systems.brn.serverstorage.lib.Util.addCountToLore;
public class CraftingEntry { public class CraftingEntry {
public final ArrayList<ItemStack> outputStacks; public final ArrayList<ItemStack> outputStacks;
public final RecipeEntry<CraftingRecipe> recipeEntry; public final RecipeEntry<CraftingRecipe> recipeEntry;
public final ArrayList<MyCraftingRecipe> myCraftingRecipeEntries; public final ArrayList<RecipeEntry<CraftingRecipe>> myCraftingRecipeEntries;
public CraftingEntry(ItemStack itemStack, RecipeEntry<CraftingRecipe> recipeEntry, HashMap<ItemStack, Integer> inputs, Integer maxCount) { public CraftingEntry(ItemStack itemStack, RecipeEntry<CraftingRecipe> recipeEntry, HashMap<ItemStack, Integer> inputs, Integer maxCount) {
ArrayList<ItemStack> tempOutputStacks = new ArrayList<>(); ArrayList<ItemStack> tempOutputStacks = new ArrayList<>();

@ -1,4 +1,4 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder; import com.mojang.serialization.codecs.RecordCodecBuilder;

@ -1,11 +1,11 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import net.minecraft.inventory.Inventory; import net.minecraft.inventory.Inventory;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.Slot;
import static systems.brn.server_storage.ServerStorage.DRIVES; import static systems.brn.serverstorage.ServerStorage.DRIVES;
public class HardDriveSlot extends Slot { public class HardDriveSlot extends Slot {
public HardDriveSlot(Inventory inventory, int index, int x, int y) { public HardDriveSlot(Inventory inventory, int index, int x, int y) {

@ -1,4 +1,4 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import eu.pb4.sgui.api.elements.GuiElement; import eu.pb4.sgui.api.elements.GuiElement;
import eu.pb4.sgui.api.elements.GuiElementBuilder; import eu.pb4.sgui.api.elements.GuiElementBuilder;
@ -31,11 +31,8 @@ public abstract class PagedGui extends SimpleGui {
public static final String GUI_A = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGU0MTc0ODEyMTYyNmYyMmFlMTZhNGM2NjRjNzMwMWE5ZjhlYTU5MWJmNGQyOTg4ODk1NzY4MmE5ZmRhZiJ9fX0="; public static final String GUI_A = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGU0MTc0ODEyMTYyNmYyMmFlMTZhNGM2NjRjNzMwMWE5ZjhlYTU5MWJmNGQyOTg4ODk1NzY4MmE5ZmRhZiJ9fX0=";
public static final String GUI_1 = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2E1MTZmYmFlMTYwNThmMjUxYWVmOWE2OGQzMDc4NTQ5ZjQ4ZjZkNWI2ODNmMTljZjVhMTc0NTIxN2Q3MmNjIn19fQ=="; public static final String GUI_1 = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2E1MTZmYmFlMTYwNThmMjUxYWVmOWE2OGQzMDc4NTQ5ZjQ4ZjZkNWI2ODNmMTljZjVhMTc0NTIxN2Q3MmNjIn19fQ==";
public static final String GUI_STORE_ALL = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWFkNmM4MWY4OTlhNzg1ZWNmMjZiZTFkYzQ4ZWFlMmJjZmU3NzdhODYyMzkwZjU3ODVlOTViZDgzYmQxNGQifX19"; public static final String GUI_STORE_ALL = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWFkNmM4MWY4OTlhNzg1ZWNmMjZiZTFkYzQ4ZWFlMmJjZmU3NzdhODYyMzkwZjU3ODVlOTViZDgzYmQxNGQifX19";
public static final String GUI_CONTAINERS = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2EzYzhjNmQzYWFhOTYzNjNkNGJlZjI1NzhmMTAyNDc4MWVhMTRlOWQ4NWE5ZGNmYzA5MzU4NDdhNmZiNWM4ZCJ9fX0=";
public static final String GUI_SETTINGS = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTRkNDliYWU5NWM3OTBjM2IxZmY1YjJmMDEwNTJhNzE0ZDYxODU0ODFkNWIxYzg1OTMwYjNmOTlkMjMyMTY3NCJ9fX0="; public static final String GUI_SETTINGS = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTRkNDliYWU5NWM3OTBjM2IxZmY1YjJmMDEwNTJhNzE0ZDYxODU0ODFkNWIxYzg1OTMwYjNmOTlkMjMyMTY3NCJ9fX0=";
public static final String GUI_CRAFTING = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWQyYzBjZWRmYzMyZTNiZWVlOTU1Y2FiZDY2ZmQ0ZDc2NWVlZGEzYWRjYzg0YmM0NTFjOWZkYmVjZjNjYjdjMiJ9fX0="; public static final String GUI_CRAFTING = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWQyYzBjZWRmYzMyZTNiZWVlOTU1Y2FiZDY2ZmQ0ZDc2NWVlZGEzYWRjYzg0YmM0NTFjOWZkYmVjZjNjYjdjMiJ9fX0=";
public static final String GUI_AUTOSUCK_OFF = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOGViODFlZjg5MDIzNzk2NTBiYTc5ZjQ1NzIzZDZiOWM4ODgzODhhMDBmYzRlMTkyZjM0NTRmZTE5Mzg4MmVlMSJ9fX0=";
public static final String GUI_AUTOSUCK_ON = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMThjNDQzYWRhNmUzOWZjYTgzN2EwMzgzYjBhNWUzZTU1NDc3M2I5NjYwYzQ4NzNmNTkxMDMyZGJlOWFkY2RmOCJ9fX0=";
public static final String GUI_SIDE_NORTH = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGEyMjFlNGY5NmJlZTYyNjE3NTIzOTZhMzI2NWZmYTRkZWRmOGZmNDgzOWFiZDE0ZjQ5ZWRlZTFlNTMwOTIifX19"; public static final String GUI_SIDE_NORTH = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGEyMjFlNGY5NmJlZTYyNjE3NTIzOTZhMzI2NWZmYTRkZWRmOGZmNDgzOWFiZDE0ZjQ5ZWRlZTFlNTMwOTIifX19";
public static final String GUI_SIDE_SOUTH = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDcxMDEzODQxNjUyODg4OTgxNTU0OGI0NjIzZDI4ZDg2YmJiYWU1NjE5ZDY5Y2Q5ZGJjNWFkNmI0Mzc0NCJ9fX0="; public static final String GUI_SIDE_SOUTH = "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDcxMDEzODQxNjUyODg4OTgxNTU0OGI0NjIzZDI4ZDg2YmJiYWU1NjE5ZDY5Y2Q5ZGJjNWFkNmI0Mzc0NCJ9fX0=";
@ -114,10 +111,6 @@ public abstract class PagedGui extends SimpleGui {
} }
} }
protected int getPage() {
return this.page;
}
protected abstract int getPageAmount(); protected abstract int getPageAmount();
protected abstract DisplayElement getElement(int id); protected abstract DisplayElement getElement(int id);

@ -1,4 +1,4 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
@ -7,21 +7,20 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.world.World; import net.minecraft.world.World;
import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; import systems.brn.serverstorage.blockentities.HardDriveContainerBlockEntity;
import systems.brn.server_storage.blockentities.InventoryInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.InventoryInterfaceBlockEntity;
import systems.brn.server_storage.blockentities.StorageInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.StorageInterfaceBlockEntity;
import systems.brn.server_storage.blocks.BusConnectorBlock; import systems.brn.serverstorage.blocks.BusConnectorBlock;
import systems.brn.server_storage.blocks.HardDriveContainerBlock; import systems.brn.serverstorage.blocks.HardDriveContainerBlock;
import systems.brn.server_storage.blocks.InventoryInterfaceBlock; import systems.brn.serverstorage.blocks.InventoryInterfaceBlock;
import systems.brn.server_storage.blocks.StorageInterfaceBlock; import systems.brn.serverstorage.blocks.StorageInterfaceBlock;
import systems.brn.server_storage.items.HardDrive; import systems.brn.serverstorage.items.HardDrive;
import java.security.KeyStore;
import java.util.*; import java.util.*;
import static systems.brn.server_storage.ServerStorage.DRIVES; import static systems.brn.serverstorage.ServerStorage.DRIVES;
import static systems.brn.server_storage.blocks.BusConnectorBlock.*; import static systems.brn.serverstorage.blocks.BusConnectorBlock.*;
import static systems.brn.server_storage.lib.StorageOperations.*; import static systems.brn.serverstorage.lib.StorageOperations.*;
public class StorageNetwork { public class StorageNetwork {
public List<HardDriveContainerBlockEntity> driveContainers; public List<HardDriveContainerBlockEntity> driveContainers;
@ -33,8 +32,8 @@ public class StorageNetwork {
public final World world; public final World world;
public final BlockPos startPos; public final BlockPos startPos;
public boolean sortAlphabetically = false; public boolean sortAlphabetically;
public String searchString = ""; public String searchString;
public int driveContainerCount; public int driveContainerCount;
public int drivesCount; public int drivesCount;

@ -1,4 +1,4 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.Inventory; import net.minecraft.inventory.Inventory;

@ -1,10 +1,9 @@
package systems.brn.server_storage.lib; package systems.brn.serverstorage.lib;
import net.minecraft.component.DataComponentTypes; import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.LoreComponent; import net.minecraft.component.type.LoreComponent;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.recipe.*; import net.minecraft.recipe.*;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.text.RawFilteredPair; import net.minecraft.text.RawFilteredPair;

@ -1,4 +1,4 @@
package systems.brn.server_storage.screenhandlers; package systems.brn.serverstorage.screenhandlers;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.PlayerInventory;
@ -7,8 +7,8 @@ import net.minecraft.item.ItemStack;
import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.ScreenHandler;
import net.minecraft.screen.ScreenHandlerType; import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.Slot;
import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; import systems.brn.serverstorage.blockentities.HardDriveContainerBlockEntity;
import systems.brn.server_storage.lib.StorageNetwork; import systems.brn.serverstorage.lib.HardDriveSlot;
public class DriveContainerScreenHandler extends ScreenHandler { public class DriveContainerScreenHandler extends ScreenHandler {
private final Inventory inventory; private final Inventory inventory;
@ -25,7 +25,7 @@ public class DriveContainerScreenHandler extends ScreenHandler {
int j; int j;
for (j = 0; j < 5; ++j) { for (j = 0; j < 5; ++j) {
this.addSlot(new Slot(inventory, j, 44 + j * 18, 20)); this.addSlot(new HardDriveSlot(inventory, j, 44 + j * 18, 20));
} }
for (j = 0; j < 3; ++j) { for (j = 0; j < 3; ++j) {

@ -1,4 +1,4 @@
package systems.brn.server_storage.screens; package systems.brn.serverstorage.screens;
import eu.pb4.sgui.api.elements.GuiElementBuilder; import eu.pb4.sgui.api.elements.GuiElementBuilder;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
@ -9,17 +9,17 @@ import net.minecraft.recipe.CraftingRecipe;
import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.Ingredient;
import net.minecraft.recipe.RecipeEntry; import net.minecraft.recipe.RecipeEntry;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import systems.brn.server_storage.blockentities.StorageInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.StorageInterfaceBlockEntity;
import systems.brn.server_storage.lib.CraftingEntry; import systems.brn.serverstorage.lib.CraftingEntry;
import systems.brn.server_storage.lib.PagedGui; import systems.brn.serverstorage.lib.PagedGui;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import static systems.brn.server_storage.lib.StorageOperations.*; import static systems.brn.serverstorage.lib.StorageOperations.*;
import static systems.brn.server_storage.lib.Util.getCraftableRecipes; import static systems.brn.serverstorage.lib.Util.getCraftableRecipes;
public class CraftingScreen extends PagedGui { public class CraftingScreen extends PagedGui {
private final StorageScreen storageScreen; private final StorageScreen storageScreen;
@ -51,7 +51,7 @@ public class CraftingScreen extends PagedGui {
ArrayList<DisplayElement> recipes = new ArrayList<>(); ArrayList<DisplayElement> recipes = new ArrayList<>();
for (CraftingEntry craftingEntry : craftingEntries) { for (CraftingEntry craftingEntry : craftingEntries) {
ItemStack stackWithCount = craftingEntry.outputStacks.get(0).copy(); ItemStack stackWithCount = craftingEntry.outputStacks.getFirst().copy();
if (stackWithCount.getCount() > stackWithCount.getMaxCount()) { if (stackWithCount.getCount() > stackWithCount.getMaxCount()) {
stackWithCount.setCount(stackWithCount.getMaxCount()); stackWithCount.setCount(stackWithCount.getMaxCount());
} }

@ -1,8 +1,8 @@
package systems.brn.server_storage.screens; package systems.brn.serverstorage.screens;
import eu.pb4.sgui.api.gui.AnvilInputGui; import eu.pb4.sgui.api.gui.AnvilInputGui;
import eu.pb4.sgui.api.gui.SimpleGui; import eu.pb4.sgui.api.gui.SimpleGui;
import systems.brn.server_storage.blockentities.InventoryInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.InventoryInterfaceBlockEntity;
public class SearchScreen extends AnvilInputGui { public class SearchScreen extends AnvilInputGui {

@ -1,4 +1,4 @@
package systems.brn.server_storage.screens; package systems.brn.serverstorage.screens;
import eu.pb4.sgui.api.elements.GuiElementBuilder; import eu.pb4.sgui.api.elements.GuiElementBuilder;
import eu.pb4.sgui.api.gui.SimpleGui; import eu.pb4.sgui.api.gui.SimpleGui;
@ -8,8 +8,8 @@ import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import systems.brn.server_storage.blockentities.InventoryInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.InventoryInterfaceBlockEntity;
import systems.brn.server_storage.lib.PagedGui; import systems.brn.serverstorage.lib.PagedGui;
import java.util.ArrayList; import java.util.ArrayList;
@ -37,10 +37,6 @@ public class SettingsScreen extends PagedGui {
this(parentScreen, parentScreen.getPlayer(), parentScreen.blockEntity); this(parentScreen, parentScreen.getPlayer(), parentScreen.blockEntity);
} }
public SettingsScreen(SimpleGui parentScreen, BlockEntity blockEntity) {
this(parentScreen, parentScreen.getPlayer(), blockEntity);
}
public SettingsScreen(ServerPlayerEntity player, BlockEntity blockEntity) { public SettingsScreen(ServerPlayerEntity player, BlockEntity blockEntity) {
this(null, player, blockEntity); this(null, player, blockEntity);
} }

@ -1,4 +1,4 @@
package systems.brn.server_storage.screens; package systems.brn.serverstorage.screens;
import eu.pb4.sgui.api.ClickType; import eu.pb4.sgui.api.ClickType;
import eu.pb4.sgui.api.elements.GuiElementBuilder; import eu.pb4.sgui.api.elements.GuiElementBuilder;
@ -11,13 +11,15 @@ import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import systems.brn.server_storage.blockentities.StorageInterfaceBlockEntity; import systems.brn.serverstorage.blockentities.StorageInterfaceBlockEntity;
import systems.brn.server_storage.lib.PagedGui; import systems.brn.serverstorage.lib.PagedGui;
import static systems.brn.server_storage.lib.StorageOperations.*; import static systems.brn.serverstorage.ServerStorage.ServerStorage_Crafting_Enable;
import static systems.brn.server_storage.lib.Util.addCountToLore; import static systems.brn.serverstorage.lib.StorageOperations.*;
import static systems.brn.server_storage.lib.Util.removeCountFromLore; import static systems.brn.serverstorage.lib.Util.addCountToLore;
import static systems.brn.serverstorage.lib.Util.removeCountFromLore;
public class StorageScreen extends PagedGui { public class StorageScreen extends PagedGui {
private final ServerPlayerEntity player; private final ServerPlayerEntity player;
@ -200,18 +202,23 @@ public class StorageScreen extends PagedGui {
@Override @Override
protected DisplayElement crafting() { protected DisplayElement crafting() {
return DisplayElement.of( World world = blockEntity.getWorld();
new GuiElementBuilder(Items.PLAYER_HEAD) if (world != null && world.getGameRules().getBoolean(ServerStorage_Crafting_Enable)) {
.setName(Text.translatable("container.crafting").formatted(Formatting.WHITE)) return DisplayElement.of(
.hideDefaultTooltip().noDefaults() new GuiElementBuilder(Items.PLAYER_HEAD)
.setSkullOwner(GUI_CRAFTING) .setName(Text.translatable("container.crafting").formatted(Formatting.WHITE))
.setCallback((x, y, z) -> { .hideDefaultTooltip().noDefaults()
playClickSound(player); .setSkullOwner(GUI_CRAFTING)
CraftingScreen craftingScreen = new CraftingScreen(this); .setCallback((x, y, z) -> {
playClickSound(getPlayer()); playClickSound(player);
craftingScreen.open(); CraftingScreen craftingScreen = new CraftingScreen(this);
}) playClickSound(getPlayer());
); craftingScreen.open();
})
);
} else {
return DisplayElement.filler();
}
} }
public void doSearch(String query) { public void doSearch(String query) {

@ -55,5 +55,7 @@
"gui.serverstorage.direction_west": "West", "gui.serverstorage.direction_west": "West",
"gui.serverstorage.direction_east": "East", "gui.serverstorage.direction_east": "East",
"gui.serverstorage.direction_up": "Up", "gui.serverstorage.direction_up": "Up",
"gui.serverstorage.direction_down": "Down" "gui.serverstorage.direction_down": "Down",
"message.serverstorage.block_disabled": "This block was disabled in a gamerule, contact admins"
} }

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 414 B

@ -1,19 +1,19 @@
{ {
"schemaVersion": 1, "schemaVersion": 1,
"id": "server_storage", "id": "serverstorage",
"version": "${version}", "version": "${version}",
"name": "Server storage", "name": "Server storage",
"description": "", "description": "",
"authors": [], "authors": [],
"contact": { "contact": {
"repo": "https://git.brn.systems/BRNSystems/Server storageatencryptor" "repo": "https://git.brn.systems/BRNSystems/Server storage"
}, },
"license": "MIT", "license": "MIT",
"icon": "assets/icon.png", "icon": "assets/serverstorage/textures/icon.png",
"environment": "*", "environment": "*",
"entrypoints": { "entrypoints": {
"main": [ "main": [
"systems.brn.server_storage.ServerStorage" "systems.brn.serverstorage.ServerStorage"
] ]
}, },
"depends": { "depends": {