Jump to content

RoggyMan01

Members
  • Posts

    25
  • Joined

  • Last visited

RoggyMan01's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. So I'm trying to make an ore generate in the end, and the veins are generating in huge sizes which are not desired. The first screenshot refers to a test where I set the max vein size to 3, and the second screenshot when I set it to 1. Screenshots public class ModOreGeneration { public static void generateOres(final BiomeLoadingEvent event){ for(OreType ore: OreType.values()){ OreFeatureConfig oreFeatureConfig = new OreFeatureConfig( new BlockMatchRuleTest(Blocks.END_STONE), ore.getBlock().get().defaultBlockState(), ore.getMaxHeight() ); ConfiguredPlacement<TopSolidRangeConfig> configuredPlacement = Placement.RANGE.configured( new TopSolidRangeConfig(ore.getMinHeight(),ore.getMinHeight(), ore.getMaxHeight()) ); ConfiguredFeature<?,?> oreFeature = registerOreFeature(ore, oreFeatureConfig,configuredPlacement); event.getGeneration().addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, oreFeature); } } private static ConfiguredFeature<?,?> registerOreFeature(OreType ore, OreFeatureConfig oreFeatureConfig, ConfiguredPlacement configuredPlacement){ return Registry.register(WorldGenRegistries.CONFIGURED_FEATURE, ore.getBlock().get().getRegistryName(), Feature.ORE.configured(oreFeatureConfig).decorated(configuredPlacement).squared().count(ore.getMaxVeinSize())); } } public enum OreType { RUMBANITE(Lazy.of(ModBlocks.RUMBANITE_ORE),1,15,40); private final Lazy<Block> block; private final int maxVeinSize; private final int minHeight; private final int maxHeight; OreType(Lazy<Block> block, int maxVeinSize, int minHeight, int maxHeight) { this.block = block; this.maxVeinSize = maxVeinSize; this.minHeight = minHeight; this.maxHeight = maxHeight; } public Lazy<Block> getBlock() { return block; } public int getMaxVeinSize() { return maxVeinSize; } public int getMinHeight() { return minHeight; } public int getMaxHeight() { return maxHeight; } public static OreType get(Block block){ for(OreType ore : values()){ if(block == ore.block){ return ore; } } return null; } }
  2. I've recently done some refactoring due to my first mod being very unorganized in terms of folders and file locations, and when I try to run the mod to see if I've done something wrong I get this error: Mod has failed to load correctly (java.lang.StackOverflowError: null) java.lang.StackOverflowError: null at net.roggyman01.rumbamod.blocks.ModBlocks.register(ModBlocks.java:51) ~[?:?] The log seems to be pointing at my modBlocks register method public static void register(IEventBus eventBus){ register(eventBus); //Line 51 } Could someone help me out?
  3. public void onRemove(BlockState state, World world, BlockPos pos, BlockState blockState, boolean b) { if (!state.is(blockState.getBlock())) { TileEntity tileentity = world.getBlockEntity(pos); if (tileentity instanceof ITickableTileEntity) { InventoryHelper.dropContents(world, pos, (ITickableTileEntity) tileentity); world.updateNeighbourForOutputSignal(pos, this); } super.onRemove(state, world, pos, blockState, b); } } Does this look good then?
  4. No, it implements ITickableTileEntity I know basic java, but I'm new to forge developing
  5. So should it be ... ? if (tileentity instanceof IItemHandler) {
  6. public class BasicGemFusionBenchTile extends TileEntity implements ITickableTileEntity { private final ItemStackHandler itemHandler = createHandler(); private final LazyOptional<IItemHandler> handler = LazyOptional.of(() -> itemHandler); public BasicGemFusionBenchTile(TileEntityType<?> tileEntityTypeIn) { super(tileEntityTypeIn); } public BasicGemFusionBenchTile() { this(ModTileEntities.BASIC_GEM_FUSION_BENCH_TILE.get()); } @Override public void load(BlockState state, CompoundNBT nbt) { itemHandler.deserializeNBT(nbt.getCompound("inv")); super.load(state, nbt); } @Override public CompoundNBT save(CompoundNBT compound) { compound.put("inv", itemHandler.serializeNBT()); return super.save(compound); } private ItemStackHandler createHandler(){ return new ItemStackHandler(4){ @Override protected void onContentsChanged(int slot){ setChanged(); } @Override public boolean isItemValid(int slot, @Nonnull ItemStack stack) { switch (slot){ case 0: return stack.getItem().is(ModTags.Items.PRIMITIVE_GEMS); case 1: return stack.getItem().is(ModTags.Items.PRIMITIVE_GEMS); case 2: return stack.getItem() == Items.BLAZE_POWDER; case 3: return stack.getItem() == ModItems.PERIDOT.get() || stack.getItem() == ModItems.SUGILITE.get()|| stack.getItem() == ModItems.AMBER.get(); default: return false; } } @Nonnull @Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { if (!isItemValid(slot,stack)){ return stack; } return super.insertItem(slot, stack, simulate); } }; } @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) { if(cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return handler.cast(); } return super.getCapability(cap, side); } public void craft(){ Inventory inv = new Inventory(itemHandler.getSlots()); for (int i = 0; i < itemHandler.getSlots(); i++) { inv.setItem(i, itemHandler.getStackInSlot(i)); } Optional<BasicGemFusionBenchRecipe> recipe = level.getRecipeManager() .getRecipeFor(ModRecipeTypes.FUSION_RECIPE, inv, level); recipe.ifPresent(iRecipe ->{ ItemStack output = iRecipe.getResultItem(); craftTheItem(output); setChanged(); }); } private void craftTheItem(ItemStack output) { itemHandler.extractItem(0,1,false); itemHandler.extractItem(1,1,false); itemHandler.extractItem(2,1,false); //blaze powder itemHandler.insertItem(3,output,false); //result } @Override public void tick() { if(level.isClientSide()){ return; } craft(); } }
  7. I'm experimenting with tile entities, and checked the vanilla source code to see examples for making a block tile entity drop its contents on break, I'm using this method, any ideas why it isn't working? public void onRemove(BlockState state, World world, BlockPos pos, BlockState blockState, boolean b) { if (!state.is(blockState.getBlock())) { TileEntity tileentity = world.getBlockEntity(pos); if (tileentity instanceof IInventory) { InventoryHelper.dropContents(world, pos, (IInventory) tileentity); world.updateNeighbourForOutputSignal(pos, this); } super.onRemove(state, world, pos, blockState, b); } }
  8. I got it working just fine, thank you for your help!
  9. I can't find any recent information about that, how do I do that?
  10. Tried it in a new world, now it works, thank you. But when I try to shift+click items in and out of the bench, it crashes once again
  11. java.lang.RuntimeException: Slot 2 not in valid range - [0,2) at net.minecraftforge.items.ItemStackHandler.validateSlotIndex(ItemStackHandler.java:221) ~[forge:?] {re:classloading} at net.minecraftforge.items.ItemStackHandler.getStackInSlot(ItemStackHandler.java:73) ~[forge:?] {re:classloading} at net.minecraftforge.items.SlotItemHandler.getItem(SlotItemHandler.java:54) ~[forge:?] {re:classloading} at net.minecraft.inventory.container.Container.getItems(Container.java:112) ~[forge:?] {re:classloading} at net.minecraft.inventory.container.Container.addSlotListener(Container.java:98) ~[forge:?] {re:classloading} at net.minecraftforge.fml.network.NetworkHooks.openGui(NetworkHooks.java:232) ~[forge:?] {re:classloading} at net.minecraftforge.fml.network.NetworkHooks.openGui(NetworkHooks.java:192) ~[forge:?] {re:classloading} at net.roggyman.forceofgems.block.custom.BasicGemFusionBenchBlock.use(BasicGemFusionBenchBlock.java:46) ~[?:?] {re:classloading} at net.minecraft.block.AbstractBlock$AbstractBlockState.use(AbstractBlock.java:640) ~[forge:?] {re:classloading} at net.minecraft.server.management.PlayerInteractionManager.useItemOn(PlayerInteractionManager.java:338) ~[forge:?] {re:classloading} at net.minecraft.network.play.ServerPlayNetHandler.handleUseItemOn(ServerPlayNetHandler.java:958) ~[forge:?] {re:classloading} at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.handle(CPlayerTryUseItemOnBlockPacket.java:36) ~[forge:?] {re:classloading} at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.handle(CPlayerTryUseItemOnBlockPacket.java:12) ~[forge:?] {re:classloading} at net.minecraft.network.PacketThreadUtil.lambda$ensureRunningOnSameThread$0(PacketThreadUtil.java:19) ~[forge:?] {re:classloading} at net.minecraft.util.concurrent.TickDelayedTask.run(TickDelayedTask.java:17) ~[forge:?] {re:classloading} at net.minecraft.util.concurrent.ThreadTaskExecutor.doRunTask(ThreadTaskExecutor.java:136) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.util.concurrent.RecursiveEventLoop.doRunTask(RecursiveEventLoop.java:22) ~[forge:?] {re:classloading} at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:734) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:159) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.util.concurrent.ThreadTaskExecutor.pollTask(ThreadTaskExecutor.java:109) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:717) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:711) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.util.concurrent.ThreadTaskExecutor.managedBlock(ThreadTaskExecutor.java:119) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:697) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:646) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202] {} [10:43:30] [Server thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID 5a43420c-a45c-405d-83b9-787646112246 [10:43:30] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception net.minecraft.crash.ReportedException: Ticking entity at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:855) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:787) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.tickServer(IntegratedServer.java:78) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:642) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202] {} Caused by: java.lang.RuntimeException: Slot 2 not in valid range - [0,2) at net.minecraftforge.items.ItemStackHandler.validateSlotIndex(ItemStackHandler.java:221) ~[forge:?] {re:classloading} at net.minecraftforge.items.ItemStackHandler.getStackInSlot(ItemStackHandler.java:73) ~[forge:?] {re:classloading} at net.minecraftforge.items.SlotItemHandler.getItem(SlotItemHandler.java:54) ~[forge:?] {re:classloading} at net.minecraft.inventory.container.Container.broadcastChanges(Container.java:120) ~[forge:?] {re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.tick(ServerPlayerEntity.java:360) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.tickNonPassenger(ServerWorld.java:611) ~[forge:?] {re:classloading} Caused by: java.lang.RuntimeException: Slot 2 not in valid range - [0,2) at net.minecraft.world.World.guardEntityTick(World.java:554) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.tick(ServerWorld.java:404) ~[forge:?] {re:classloading} at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:851) ~[forge:?] {re:classloading,pl:accesstransformer:B} ... 5 more [10:43:30] [Server thread/ERROR] [minecraft/MinecraftServer]: This crash report has been saved to: C:\Users\Usuari\Desktop\RUMBA\modding\Force Of Gems\run\.\crash-reports\crash-2022-01-31_10.43.30-server.txt [10:43:30] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [10:43:30] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [10:43:30] [Server thread/INFO] [minecraft/ServerPlayNetHandler]: Dev lost connection: Disconnected [10:43:30] [Server thread/INFO] [minecraft/MinecraftServer]: Dev left the game [10:43:30] [Server thread/ERROR] [minecraft/MinecraftServer]: Exception stopping the server java.lang.IllegalStateException: Removing entity while ticking! at net.minecraft.world.server.ServerWorld.removeEntity(ServerWorld.java:947) ~[forge:?] {re:classloading} at net.minecraft.world.server.ServerWorld.removePlayer(ServerWorld.java:968) ~[forge:?] {re:classloading} at net.minecraft.world.server.ServerWorld.removePlayerImmediately(ServerWorld.java:964) ~[forge:?] {re:classloading} at net.minecraft.server.management.PlayerList.remove(PlayerList.java:339) ~[forge:?] {re:classloading} at net.minecraft.network.play.ServerPlayNetHandler.onDisconnect(ServerPlayNetHandler.java:1021) ~[forge:?] {re:classloading} at net.minecraft.network.NetworkManager.handleDisconnection(NetworkManager.java:368) ~[forge:?] {re:classloading} at net.minecraft.util.concurrent.ThreadTaskExecutor.executeBlocking(ThreadTaskExecutor.java:72) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.network.play.ServerPlayNetHandler.disconnect(ServerPlayNetHandler.java:296) ~[forge:?] {re:classloading} at net.minecraft.server.management.PlayerList.removeAll(PlayerList.java:742) ~[forge:?] {re:classloading} at net.minecraft.server.MinecraftServer.stopServer(MinecraftServer.java:557) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.stopServer(IntegratedServer.java:167) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:679) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202] {} [10:43:30] [Render thread/INFO] [STDOUT/]: [net.minecraft.util.registry.Bootstrap:realStdoutPrintln:123]: ---- Minecraft Crash Report ---- // My bad. Time: 31/01/22 10:43 Description: Ticking entity java.lang.RuntimeException: Slot 2 not in valid range - [0,2) at net.minecraftforge.items.ItemStackHandler.validateSlotIndex(ItemStackHandler.java:221) ~[forge:?] {re:classloading} at net.minecraftforge.items.ItemStackHandler.getStackInSlot(ItemStackHandler.java:73) ~[forge:?] {re:classloading} at net.minecraftforge.items.SlotItemHandler.getItem(SlotItemHandler.java:54) ~[forge:?] {re:classloading} at net.minecraft.inventory.container.Container.broadcastChanges(Container.java:120) ~[forge:?] {re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.tick(ServerPlayerEntity.java:360) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.tickNonPassenger(ServerWorld.java:611) ~[forge:?] {re:classloading} at net.minecraft.world.World.guardEntityTick(World.java:554) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.tick(ServerWorld.java:404) ~[forge:?] {re:classloading} at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:851) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:787) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.tickServer(IntegratedServer.java:78) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:642) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_202] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace: at net.minecraftforge.items.ItemStackHandler.validateSlotIndex(ItemStackHandler.java:221) ~[forge:?] {re:classloading} at net.minecraftforge.items.ItemStackHandler.getStackInSlot(ItemStackHandler.java:73) ~[forge:?] {re:classloading} at net.minecraftforge.items.SlotItemHandler.getItem(SlotItemHandler.java:54) ~[forge:?] {re:classloading} at net.minecraft.inventory.container.Container.broadcastChanges(Container.java:120) ~[forge:?] {re:classloading} at net.minecraft.entity.player.ServerPlayerEntity.tick(ServerPlayerEntity.java:360) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.tickNonPassenger(ServerWorld.java:611) ~[forge:?] {re:classloading} -- Entity being ticked -- Details: Entity Type: minecraft:player (net.minecraft.entity.player.ServerPlayerEntity) Entity ID: 156 Entity Name: Dev Entity's Exact location: 17.61, 13.00, 255.41 Entity's Block location: World: (17,13,255), Chunk: (at 1,0,15 in 1,15; contains blocks 16,0,240 to 31,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Entity's Momentum: 0.00, -0.08, 0.00 Entity's Passengers: [] Entity's Vehicle: ~~ERROR~~ NullPointerException: null Stacktrace: at net.minecraft.world.World.guardEntityTick(World.java:554) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.tick(ServerWorld.java:404) ~[forge:?] {re:classloading} -- Affected level -- Details: All players: 1 total; [ServerPlayerEntity['Dev'/156, l='ServerLevel[New World]', x=17.61, y=13.00, z=255.41]] Chunk stats: ServerChunkCache: 3118 Level dimension: minecraft:overworld Level spawn location: World: (-256,66,128), Chunk: (at 0,4,0 in -16,8; contains blocks -256,0,128 to -241,255,143), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 12315 game time, 12315 day time Level name: New World Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true Level weather: Rain time: 153512 (now: false), thunder time: 26909 (now: false) Known server brands: forge Level was modded: true Level storage version: 0x04ABD - Anvil Stacktrace: at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:851) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:787) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.tickServer(IntegratedServer.java:78) ~[forge:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:642) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_202] {}
  12. Yes, so why won't it let me add the 3 slots I previously mentioned?
  13. public class BasicGemFusionBenchTile extends TileEntity { private final ItemStackHandler itemHandler = createHandler(); private final LazyOptional<IItemHandler> handler = LazyOptional.of(() -> itemHandler); public BasicGemFusionBenchTile(TileEntityType<?> tileEntityTypeIn) { super(tileEntityTypeIn); } public BasicGemFusionBenchTile() { this(ModTileEntities.BASIC_GEM_FUSION_BENCH_TILE.get()); } @Override public void load(BlockState state, CompoundNBT nbt) { itemHandler.deserializeNBT(nbt.getCompound("inv")); super.load(state, nbt); } @Override public CompoundNBT save(CompoundNBT compound) { compound.put("inv", itemHandler.serializeNBT()); return super.save(compound); } private ItemStackHandler createHandler(){ return new ItemStackHandler(3){ @Override protected void onContentsChanged(int slot){ setChanged(); gemsCombined(); } @Override public boolean isItemValid(int slot, @Nonnull ItemStack stack) { switch (slot){ case 0: return stack.getItem() == ModItems.HEAVYSTONE.get() || stack.getItem() == ModItems.SWIFTSTONE.get() || stack.getItem() == ModItems.FIRESTONE.get(); case 1: return stack.getItem() == ModItems.HEAVYSTONE.get() || stack.getItem() == ModItems.SWIFTSTONE.get() || stack.getItem() == ModItems.FIRESTONE.get(); case 2: return stack.getItem() == Items.BLAZE_POWDER; default: return false; } } @Nonnull @Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { if (!isItemValid(slot,stack)){ return stack; } return super.insertItem(slot, stack, simulate); } }; } @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) { if(cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return handler.cast(); } return super.getCapability(cap, side); } public void gemsCombined(){ Item slot1 = this.itemHandler.getStackInSlot(0).getItem(); Item slot2 = this.itemHandler.getStackInSlot(1).getItem(); if((slot1 == ModItems.FIRESTONE.get() && slot2 == ModItems.HEAVYSTONE.get()) || (slot2 == ModItems.FIRESTONE.get() && slot1 == ModItems.HEAVYSTONE.get())){ //SUGILITE } else if ((slot1 == ModItems.SWIFTSTONE.get() && slot2 == ModItems.HEAVYSTONE.get()) || (slot2 == ModItems.SWIFTSTONE.get() && slot1 == ModItems.HEAVYSTONE.get())){ //PERIDOT } else if((slot1 == ModItems.FIRESTONE.get() && slot2 == ModItems.SWIFTSTONE.get()) || (slot2 == ModItems.FIRESTONE.get() && slot1 == ModItems.SWIFTSTONE.get())){ //AMBER } else{ //eh } } }
  14. Changed the value to 3, and still doesn't seem to work
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.