Test
This commit is contained in:
		| @@ -11,15 +11,19 @@ import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; | ||||
| import systems.brn.server_storage.blockentities.StorageBlockEntity; | ||||
| import systems.brn.server_storage.blocks.HardDriveContainerBlock; | ||||
| import systems.brn.server_storage.blocks.StorageBlock; | ||||
| import systems.brn.server_storage.items.HardDriveContainerBlockItem; | ||||
| import systems.brn.server_storage.items.HardDriveItem; | ||||
| import systems.brn.server_storage.items.StorageBlockItem; | ||||
| import systems.brn.server_storage.items.SimpleBlockItem; | ||||
| import systems.brn.server_storage.items.SimpleItem; | ||||
| import systems.brn.server_storage.items.TieredItem; | ||||
|  | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
|  | ||||
| public class ServerStorage implements ModInitializer { | ||||
|     public static final List<String> tiers = Arrays.asList("iron", "golden", "diamond", "netherite"); | ||||
|  | ||||
|     public static final String MOD_ID = "serverstorage"; | ||||
|  | ||||
|     public static final String STORAGE_MODEL_ID = "storage"; | ||||
|     public static final String HARD_DRIVE_MODEL_ID = "drive"; | ||||
|     public static final String HARD_DRIVE_CONTAINER_BLOCK_MODEL_ID = "drive_container"; | ||||
|  | ||||
|     public static BlockEntityType<HardDriveContainerBlockEntity> HARD_DRIVE_CONTAINER_BLOCK_ENTITY; | ||||
| @@ -40,12 +44,15 @@ public class ServerStorage implements ModInitializer { | ||||
|     public void onInitialize() | ||||
|     { | ||||
|         StorageBlock.register(); | ||||
|         StorageBlockItem.register(); | ||||
|         SimpleBlockItem.register(STORAGE_BLOCK); | ||||
|  | ||||
|         HardDriveContainerBlock.register(); | ||||
|         HardDriveContainerBlockItem.register(); | ||||
|         SimpleBlockItem.register(HARD_DRIVE_CONTAINER_BLOCK); | ||||
|  | ||||
|         HardDriveItem.register(); | ||||
|         TieredItem.register("drive"); | ||||
|         TieredItem.register("head"); | ||||
|         TieredItem.register("platter"); | ||||
|         SimpleItem.register("drive_casing"); | ||||
|  | ||||
|         PolymerResourcePackUtils.addModAssets(MOD_ID); | ||||
|         PolymerResourcePackUtils.markAsRequired(); | ||||
|   | ||||
| @@ -31,6 +31,7 @@ import org.jetbrains.annotations.Nullable; | ||||
| import systems.brn.server_storage.ServerStorage; | ||||
| import systems.brn.server_storage.blockentities.HardDriveContainerBlockEntity; | ||||
| import systems.brn.server_storage.blockentities.StorageBlockEntity; | ||||
| import systems.brn.server_storage.screens.DriveScreen; | ||||
| import systems.brn.server_storage.screens.StorageScreen; | ||||
|  | ||||
| import java.util.List; | ||||
| @@ -56,7 +57,7 @@ public class HardDriveContainerBlock extends Block implements PolymerTexturedBlo | ||||
|     } | ||||
|  | ||||
|     public static void register() { | ||||
|         var modId = id(STORAGE_MODEL_ID); | ||||
|         var modId = id(HARD_DRIVE_CONTAINER_BLOCK_MODEL_ID); | ||||
|         HARD_DRIVE_CONTAINER_BLOCK = Registry.register(Registries.BLOCK, modId, | ||||
|                 new HardDriveContainerBlock(Settings.copy(Blocks.WHITE_WOOL), BlockModelType.FULL_BLOCK, ServerStorage.HARD_DRIVE_CONTAINER_BLOCK_MODEL_ID)); | ||||
|         UseBlockCallback.EVENT.register(HardDriveContainerBlock::onUse); | ||||
| @@ -77,21 +78,9 @@ public class HardDriveContainerBlock extends Block implements PolymerTexturedBlo | ||||
|         if (block instanceof HardDriveContainerBlock) { | ||||
|             if (!world.isClient && !player.isSpectator()) { | ||||
|                 if (!player.isSneaking()) { | ||||
|                     StorageScreen storageScreen = new StorageScreen((ServerPlayerEntity) player, pos, null); | ||||
|                     storageScreen.open(); | ||||
|                     DriveScreen driveScreen = new DriveScreen((ServerPlayerEntity) player, pos); | ||||
|                     driveScreen.open(); | ||||
|  | ||||
|                 } else if (player.getStackInHand(hand).getItem() == Items.WRITTEN_BOOK) { | ||||
|                     ItemStack book = player.getStackInHand(hand); | ||||
|                     StorageBlockEntity storageBlockEntity = (StorageBlockEntity) world.getBlockEntity(pos); | ||||
|                     assert storageBlockEntity != null; | ||||
|                     List<RawFilteredPair<Text>> generatedContent = generateBookContent(storageBlockEntity.chests.inventory); | ||||
|                     book.set(DataComponentTypes.WRITTEN_BOOK_CONTENT, new WrittenBookContentComponent( | ||||
|                             RawFilteredPair.of("Item Listing"), | ||||
|                             player.getGameProfile().getName(), | ||||
|                             0, | ||||
|                             generatedContent, | ||||
|                             false | ||||
|                     )); | ||||
|                 } else { | ||||
|                     return ActionResult.PASS; | ||||
|                 } | ||||
| @@ -104,6 +93,6 @@ public class HardDriveContainerBlock extends Block implements PolymerTexturedBlo | ||||
|     @Nullable | ||||
|     @Override | ||||
|     public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { | ||||
|         return new StorageBlockEntity(pos, state); | ||||
|         return new HardDriveContainerBlockEntity(pos, state); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -4,11 +4,9 @@ import eu.pb4.polymer.blocks.api.BlockModelType; | ||||
| import eu.pb4.polymer.blocks.api.PolymerBlockModel; | ||||
| import eu.pb4.polymer.blocks.api.PolymerBlockResourceUtils; | ||||
| import eu.pb4.polymer.blocks.api.PolymerTexturedBlock; | ||||
| import eu.pb4.polymer.core.api.block.PolymerBlockUtils; | ||||
| import net.fabricmc.fabric.api.event.player.UseBlockCallback; | ||||
| import net.minecraft.block.*; | ||||
| import net.minecraft.block.entity.BlockEntity; | ||||
| import net.minecraft.block.entity.BlockEntityType; | ||||
| import net.minecraft.component.DataComponentTypes; | ||||
| import net.minecraft.component.type.WrittenBookContentComponent; | ||||
| import net.minecraft.entity.player.PlayerEntity; | ||||
| @@ -51,13 +49,6 @@ public class StorageBlock extends Block implements PolymerTexturedBlock, BlockEn | ||||
|         STORAGE_BLOCK = Registry.register(Registries.BLOCK, modId, | ||||
|                 new StorageBlock(AbstractBlock.Settings.copy(Blocks.WHITE_WOOL), BlockModelType.FULL_BLOCK, ServerStorage.STORAGE_MODEL_ID)); | ||||
|         UseBlockCallback.EVENT.register(StorageBlock::onUse); | ||||
|  | ||||
|         STORAGE_BLOCK_ENTITY = Registry.register( | ||||
|                 Registries.BLOCK_ENTITY_TYPE, | ||||
|                 modId, | ||||
|                 BlockEntityType.Builder.create(StorageBlockEntity::new, STORAGE_BLOCK).build(null) | ||||
|         ); | ||||
|         PolymerBlockUtils.registerBlockEntity(STORAGE_BLOCK_ENTITY); | ||||
|     } | ||||
|  | ||||
|     private static ActionResult onUse(PlayerEntity player, World world, Hand hand, BlockHitResult hitResult) { | ||||
|   | ||||
| @@ -15,10 +15,10 @@ import systems.brn.server_storage.ServerStorage; | ||||
| 
 | ||||
| import static systems.brn.server_storage.ServerStorage.*; | ||||
| 
 | ||||
| public class HardDriveContainerBlockItem extends BlockItem implements PolymerItem { | ||||
| public class SimpleBlockItem extends BlockItem implements PolymerItem { | ||||
|     private final PolymerModelData polymerModel; | ||||
| 
 | ||||
|     public HardDriveContainerBlockItem(Item.Settings settings, Block block, Identifier identifier) { | ||||
|     public SimpleBlockItem(Item.Settings settings, Block block, Identifier identifier) { | ||||
|         super(block, settings); | ||||
|         this.polymerModel = PolymerResourcePackUtils.requestModel(Items.BARRIER, identifier); | ||||
|     } | ||||
| @@ -33,9 +33,9 @@ public class HardDriveContainerBlockItem extends BlockItem implements PolymerIte | ||||
|         return this.polymerModel.value(); | ||||
|     } | ||||
| 
 | ||||
|     public static void register() { | ||||
|         Identifier identifier= id(ServerStorage.HARD_DRIVE_CONTAINER_BLOCK_MODEL_ID); | ||||
|         Item item = Registry.register(Registries.ITEM, identifier, new HardDriveContainerBlockItem(new Item.Settings(), HARD_DRIVE_CONTAINER_BLOCK, identifier)); | ||||
|     public static void register(Block block) { | ||||
|         Identifier identifier = id(block.getRegistryEntry().registryKey().getValue().getPath()); | ||||
|         Item item = Registry.register(Registries.ITEM, identifier, new SimpleBlockItem(new Item.Settings(), block, identifier)); | ||||
|         ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(content -> content.add(item)); | ||||
|     } | ||||
| } | ||||
| @@ -13,14 +13,14 @@ import net.minecraft.registry.Registry; | ||||
| import net.minecraft.server.network.ServerPlayerEntity; | ||||
| import net.minecraft.util.Identifier; | ||||
| import org.jetbrains.annotations.Nullable; | ||||
| import systems.brn.server_storage.ServerStorage; | ||||
| 
 | ||||
| import static systems.brn.server_storage.ServerStorage.id; | ||||
| import static systems.brn.server_storage.ServerStorage.tiers; | ||||
| 
 | ||||
| public class HardDriveItem extends Item implements PolymerItem { | ||||
| public class SimpleItem extends Item implements PolymerItem { | ||||
|     private final PolymerModelData polymerModel; | ||||
| 
 | ||||
|     public HardDriveItem(Settings settings, Identifier identifier) { | ||||
|     public SimpleItem(Settings settings, Identifier identifier) { | ||||
|         super(settings); | ||||
|         this.polymerModel = PolymerResourcePackUtils.requestModel(Items.BARRIER, identifier); | ||||
|     } | ||||
| @@ -35,9 +35,9 @@ public class HardDriveItem extends Item implements PolymerItem { | ||||
|         return this.polymerModel.value(); | ||||
|     } | ||||
| 
 | ||||
|     public static void register() { | ||||
|         Identifier identifier = id(ServerStorage.HARD_DRIVE_MODEL_ID); | ||||
|         Item item = Registry.register(Registries.ITEM, identifier, new HardDriveItem(new Settings(), identifier)); | ||||
|     public static void register(String name) { | ||||
|         Identifier identifier = id(name); | ||||
|         Item item = Registry.register(Registries.ITEM, identifier, new SimpleItem(new Settings(), identifier)); | ||||
|         ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(content -> content.add(item)); | ||||
|     } | ||||
| } | ||||
| @@ -1,42 +0,0 @@ | ||||
| package systems.brn.server_storage.items; | ||||
|  | ||||
| import eu.pb4.polymer.core.api.item.PolymerItem; | ||||
| import eu.pb4.polymer.resourcepack.api.PolymerModelData; | ||||
| import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; | ||||
| import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; | ||||
| import net.minecraft.block.Block; | ||||
| import net.minecraft.item.*; | ||||
| import net.minecraft.registry.Registries; | ||||
| import net.minecraft.registry.Registry; | ||||
| import net.minecraft.server.network.ServerPlayerEntity; | ||||
| import net.minecraft.util.Identifier; | ||||
| import org.jetbrains.annotations.Nullable; | ||||
| import systems.brn.server_storage.ServerStorage; | ||||
|  | ||||
| import static systems.brn.server_storage.ServerStorage.STORAGE_BLOCK; | ||||
| import static systems.brn.server_storage.ServerStorage.id; | ||||
|  | ||||
| public class StorageBlockItem extends BlockItem implements PolymerItem { | ||||
|     private final PolymerModelData polymerModel; | ||||
|  | ||||
|     public StorageBlockItem(Settings settings, Block block, Identifier identifier) { | ||||
|         super(block, settings); | ||||
|         this.polymerModel = PolymerResourcePackUtils.requestModel(Items.BARRIER, identifier); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity player) { | ||||
|         return this.polymerModel.item(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int getPolymerCustomModelData(ItemStack itemStack, @Nullable ServerPlayerEntity player) { | ||||
|         return this.polymerModel.value(); | ||||
|     } | ||||
|  | ||||
|     public static void register() { | ||||
|         Identifier identifier = id(ServerStorage.STORAGE_MODEL_ID); | ||||
|         Item item = Registry.register(Registries.ITEM, identifier, new StorageBlockItem(new Item.Settings(), STORAGE_BLOCK, identifier)); | ||||
|         ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register(content -> content.add(item)); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,31 @@ | ||||
| package systems.brn.server_storage.items; | ||||
|  | ||||
| import eu.pb4.polymer.core.api.item.PolymerItem; | ||||
| import eu.pb4.polymer.resourcepack.api.PolymerModelData; | ||||
| import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils; | ||||
| import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; | ||||
| import net.minecraft.item.Item; | ||||
| import net.minecraft.item.ItemGroups; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import net.minecraft.item.Items; | ||||
| import net.minecraft.registry.Registries; | ||||
| import net.minecraft.registry.Registry; | ||||
| import net.minecraft.server.network.ServerPlayerEntity; | ||||
| import net.minecraft.util.Identifier; | ||||
| import org.jetbrains.annotations.Nullable; | ||||
|  | ||||
| import static systems.brn.server_storage.ServerStorage.id; | ||||
| import static systems.brn.server_storage.ServerStorage.tiers; | ||||
|  | ||||
| public class TieredItem extends SimpleItem implements PolymerItem { | ||||
|  | ||||
|     public TieredItem(Item.Settings settings, Identifier identifier) { | ||||
|         super(settings, identifier); | ||||
|     } | ||||
|  | ||||
|     public static void register(String name) { | ||||
|         for (String tier : tiers) { | ||||
|             SimpleItem.register(tier + "_" + name); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,14 @@ | ||||
| package systems.brn.server_storage.screens; | ||||
|  | ||||
| import eu.pb4.sgui.api.gui.SimpleGui; | ||||
| import net.minecraft.screen.ScreenHandlerType; | ||||
| import net.minecraft.server.network.ServerPlayerEntity; | ||||
| import net.minecraft.util.math.BlockPos; | ||||
|  | ||||
| public class DriveScreen extends SimpleGui { | ||||
|     BlockPos pos; | ||||
|     public DriveScreen(ServerPlayerEntity player, BlockPos pos) { | ||||
|         super(ScreenHandlerType.HOPPER, player, false); | ||||
|         this.pos = pos; | ||||
|     } | ||||
| } | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 414 B | 
| @@ -1,5 +1,23 @@ | ||||
| { | ||||
|   "block.serverstorage.storage": "Chest storage controller", | ||||
|   "block.serverstorage.drive": "Hard drive", | ||||
|   "block.serverstorage.drive_container": "Hard drive container" | ||||
|   "block.serverstorage.storage": "Networked storage interface", | ||||
|  | ||||
|   "block.serverstorage.drive_container": "Hard drive container", | ||||
|  | ||||
|   "item.serverstorage.drive_casing": "Hard drive casing", | ||||
|  | ||||
|   "item.serverstorage.iron_drive": "Iron hard drive", | ||||
|   "item.serverstorage.iron_head": "Iron hard drive head", | ||||
|   "item.serverstorage.iron_platter": "Iron hard drive platter", | ||||
|  | ||||
|   "item.serverstorage.golden_drive": "Golden hard drive", | ||||
|   "item.serverstorage.golden_head": "Golden hard drive head", | ||||
|   "item.serverstorage.golden_platter": "Golden hard drive platter", | ||||
|  | ||||
|   "item.serverstorage.diamond_drive": "Diamond hard drive", | ||||
|   "item.serverstorage.diamond_head": "Diamond hard drive head", | ||||
|   "item.serverstorage.diamond_platter": "Diamond hard drive platter", | ||||
|  | ||||
|   "item.serverstorage.netherite_drive": "Netherite hard drive", | ||||
|   "item.serverstorage.netherite_head": "Netherite hard drive head", | ||||
|   "item.serverstorage.netherite_platter": "Netherite hard drive platter" | ||||
| } | ||||
| @@ -0,0 +1,7 @@ | ||||
| { | ||||
|   "parent": "block/orientable_vertical", | ||||
|   "textures": { | ||||
|     "front": "serverstorage:block/drive_container_front", | ||||
|     "side": "serverstorage:block/drive_container_side" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,12 @@ | ||||
| { | ||||
|   "parent": "block/orientable_with_bottom", | ||||
|   "textures": { | ||||
|     "front": "serverstorage:block/controller_front", | ||||
|     "side": "serverstorage:block/controller_left", | ||||
|     "top": "serverstorage:block/controller_top", | ||||
|     "bottom": "serverstorage:block/controller_bottom", | ||||
|     "east": "serverstorage:block/controller_right", | ||||
|     "south": "serverstorage:block/controller_back", | ||||
|     "west": "serverstorage:block/controller_left" | ||||
|   } | ||||
| } | ||||
| @@ -1,6 +0,0 @@ | ||||
| { | ||||
|   "parent": "block/cube_all", | ||||
|   "textures": { | ||||
|     "all": "serverstorage:block/drive_container" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/drive_diamond" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/head_diamond" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/platter_diamond" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/drive_casing" | ||||
|   } | ||||
| } | ||||
| @@ -1,3 +1,3 @@ | ||||
| { | ||||
|   "parent": "storage:block/drive_container" | ||||
|   "parent": "serverstorage:block/drive_container" | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/drive_gold" | ||||
|   } | ||||
| } | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "minecraft:item/drive" | ||||
|     "layer0": "serverstorage:item/head_gold" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/platter_gold" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/drive_iron" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/head_iron" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/platter_iron" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/drive_netherite" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/head_netherite" | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "parent": "minecraft:item/handheld", | ||||
|   "textures": { | ||||
|     "layer0": "serverstorage:item/platter_netherite" | ||||
|   } | ||||
| } | ||||
| @@ -1,3 +1,3 @@ | ||||
| { | ||||
|   "parent": "storage:block/storage" | ||||
|   "parent": "serverstorage:block/storage" | ||||
| } | ||||
| @@ -1,6 +0,0 @@ | ||||
| { | ||||
|   "parent": "block/cube_all", | ||||
|   "textures": { | ||||
|     "all": "serverstorage:block/storage" | ||||
|   } | ||||
| } | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 293 B | 
| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "type": "minecraft:block", | ||||
|   "pools": [ | ||||
|     { | ||||
|       "rolls": 1, | ||||
|       "entries": [ | ||||
|         { | ||||
|           "type": "minecraft:item", | ||||
|           "name": "serverstorage:drive_container" | ||||
|         } | ||||
|       ], | ||||
|       "conditions": [ | ||||
|         { | ||||
|           "condition": "minecraft:survives_explosion" | ||||
|         } | ||||
|       ] | ||||
|     } | ||||
|   ] | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shapeless", | ||||
|   "category": "misc", | ||||
|   "ingredients": [ | ||||
|     { | ||||
|       "item": "serverstorage:diamond_head" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:diamond_platter" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:drive_casing" | ||||
|     } | ||||
|   ], | ||||
|   "result": { | ||||
|     "id": "serverstorage:diamond_drive", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "#  ", | ||||
|     "## ", | ||||
|     " ##" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:diamond" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:diamond_head", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "###", | ||||
|     "# #", | ||||
|     "###" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:diamond" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:diamond_platter", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,24 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "IRI", | ||||
|     "IPI", | ||||
|     "IRI" | ||||
|   ], | ||||
|   "key": { | ||||
|     "I": { | ||||
|       "item": "minecraft:iron_ingot" | ||||
|     }, | ||||
|     "R": { | ||||
|       "item": "minecraft:redstone" | ||||
|     }, | ||||
|     "P": { | ||||
|       "item": "minecraft:paper" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:drive_casing", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,27 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "IDR", | ||||
|     "DCD", | ||||
|     "RDI" | ||||
|   ], | ||||
|   "key": { | ||||
|     "D": { | ||||
|       "item": "minecraft:diamond" | ||||
|     }, | ||||
|     "R": { | ||||
|       "item": "minecraft:redstone" | ||||
|     }, | ||||
|     "C": { | ||||
|       "item": "minecraft:chest" | ||||
|     }, | ||||
|     "I": { | ||||
|       "item": "minecraft:iron_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:drive_container", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shapeless", | ||||
|   "category": "misc", | ||||
|   "ingredients": [ | ||||
|     { | ||||
|       "item": "serverstorage:golden_head" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:golden_platter" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:drive_casing" | ||||
|     } | ||||
|   ], | ||||
|   "result": { | ||||
|     "id": "serverstorage:golden_drive", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "#  ", | ||||
|     "## ", | ||||
|     " ##" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:gold_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:golden_head", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "###", | ||||
|     "# #", | ||||
|     "###" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:gold_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:golden_platter", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shapeless", | ||||
|   "category": "misc", | ||||
|   "ingredients": [ | ||||
|     { | ||||
|       "item": "serverstorage:iron_head" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:iron_platter" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:drive_casing" | ||||
|     } | ||||
|   ], | ||||
|   "result": { | ||||
|     "id": "serverstorage:iron_drive", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
							
								
								
									
										18
									
								
								src/main/resources/data/serverstorage/recipes/iron_head.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/main/resources/data/serverstorage/recipes/iron_head.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "#  ", | ||||
|     "## ", | ||||
|     " ##" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:iron_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:iron_head", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "###", | ||||
|     "# #", | ||||
|     "###" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:iron_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:iron_platter", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shapeless", | ||||
|   "category": "misc", | ||||
|   "ingredients": [ | ||||
|     { | ||||
|       "item": "serverstorage:netherite_head" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:netherite_platter" | ||||
|     }, | ||||
|     { | ||||
|       "item": "serverstorage:drive_casing" | ||||
|     } | ||||
|   ], | ||||
|   "result": { | ||||
|     "id": "serverstorage:netherite_drive", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "#  ", | ||||
|     "## ", | ||||
|     " ##" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:netherite_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:netherite_head", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,18 @@ | ||||
| { | ||||
|   "type": "minecraft:crafting_shaped", | ||||
|   "category": "misc", | ||||
|   "pattern": [ | ||||
|     "###", | ||||
|     "# #", | ||||
|     "###" | ||||
|   ], | ||||
|   "key": { | ||||
|     "#": { | ||||
|       "item": "minecraft:netherite_ingot" | ||||
|     } | ||||
|   }, | ||||
|   "result": { | ||||
|     "id": "serverstorage:netherite_platter", | ||||
|     "count": 1 | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user