Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Posts

  • Joined

  • Last visited

Everything posted by RaphGamingz

  1. How do i make a structure (with a structure block?) and how do i make it spawn in biomes or around the world on the ground or in the sky or in caves?
  2. so a class that implements IRecipeSerializer
  3. how do i change recipes to make it harder if the config is set to true.
  4. i am talking about where the capability is stored, is it in a class that extends INBTSerializable
  5. oh so i have another class named "ClassA" that extends INBTSerializable, ICapabilityProvider i use the item class to make a new ClassA
  6. so i have a item class that extends item implements INBTSerializable, ICapabilityProvider
  7. Does it save when a player leaves and does it save when the world is closed will the capability have read and write, getCapability and what will the capability class extend or implement?
  8. oh because you said to store the attribute in a capability then you say and you use the clone event to transfer capabilities
  9. How do i save a capability on a item that extends ICapabilitySerializable. How do i save data on a player, like skills and make it increase every time a player breaks a block
  10. i think he is asking what the event you use because you cant use playerrespawnevent (according to him)
  11. wouldn't it then be transferring the capability which stores the attributes
  12. what do i put in icapabilityserializable#serializeNBT and deserializeNBT to make the items save on a custom itemhandler
  13. public class FloatingChest extends Item { public FloatingChest() { super(new Item.Properties().group(RandomAdditions.CUSTOMITEMGROUP)); setRegistryName(ModRegistries.location("floating_chest")); } @Override public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) { NetworkHooks.openGui((ServerPlayerEntity) playerIn, new FloatingChestCapability()); return super.onItemRightClick(worldIn, playerIn, handIn); } } public class FloatingChestContainer extends Container { private IItemHandler playerInventory; public FloatingChestContainer(int windowId, PlayerInventory playerInventory, PlayerEntity player) { super(ModItems.floating_chest_container, windowId); this.playerInventory = new InvWrapper(playerInventory); addSlotBox(new InvWrapper(player.getInventoryEnderChest()), 0, 8, 18, 9, 18, 3, 18); layoutPlayerInventorySlots(8, 86); } @Override public boolean canInteractWith(PlayerEntity playerIn) { return true; } private int addSlotRange(IItemHandler handler, int index, int x, int y, int amount, int dx) { for (int i = 0 ; i < amount ; i++) { addSlot(new SlotItemHandler(handler, index, x, y)); x += dx; index++; } return index; } private int addSlotBox(IItemHandler handler, int index, int x, int y, int horAmount, int dx, int verAmount, int dy) { for (int j = 0 ; j < verAmount ; j++) { index = addSlotRange(handler, index, x, y, horAmount, dx); y += dy; } return index; } private void layoutPlayerInventorySlots(int leftCol, int topRow) { // Player inventory addSlotBox(playerInventory, 9, leftCol, topRow, 9, 18, 3, 18); // Hotbar topRow += 58; addSlotRange(playerInventory, 0, leftCol, topRow, 9, 18); } public ItemStack transferStackInSlot(PlayerEntity playerIn, int index) { ItemStack itemstack = ItemStack.EMPTY; Slot slot = this.inventorySlots.get(index); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if (index < 3 * 9) { if (!this.mergeItemStack(itemstack1, 3 * 9, this.inventorySlots.size(), true)) { return ItemStack.EMPTY; } } else if (!this.mergeItemStack(itemstack1, 0, 3 * 9, false)) { return ItemStack.EMPTY; } if (itemstack1.isEmpty()) { slot.putStack(ItemStack.EMPTY); } else { slot.onSlotChanged(); } } return itemstack; } } public class FloatingChestScreen extends ContainerScreen<FloatingChestContainer> { private ResourceLocation GUI = ModRegistries.location("textures/gui/floating_chest_gui.png"); private final int inventoryRows; public FloatingChestScreen(FloatingChestContainer screenContainer, PlayerInventory inv, ITextComponent titleIn) { super(screenContainer, inv, titleIn); this.inventoryRows = 3; this.ySize = 114 + this.inventoryRows * 18; } @Override public void render(int mouseX, int mouseY, float partialTicks) { this.renderBackground(); super.render(mouseX, mouseY, partialTicks); this.renderHoveredToolTip(mouseX, mouseY); } @Override protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { this.font.drawString("Floating Chest", 8.0F, 6.0F, 4210752); this.font.drawString(this.playerInventory.getDisplayName().getFormattedText(), 8.0F,(float) this.ySize - 96 + 2, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); this.minecraft.getTextureManager().bindTexture(GUI); int relX = (this.width - this.xSize) / 2; int relY = (this.height - this.ySize) / 2; this.blit(relX, relY, 0, 0, this.xSize, this.inventoryRows * 18 + 17); this.blit(relX, relY + this.inventoryRows * 18 + 17, 0, 126, this.xSize, 96); } } public class FloatingChestCapability implements INamedContainerProvider { @Override public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity playerEntity) { return new FloatingChestContainer(i, playerInventory, playerEntity); } @Override public ITextComponent getDisplayName() { return new StringTextComponent(""); } //add capability later }
  14. java.lang.ClassCastException: net.minecraft.client.entity.player.ClientPlayerEntity cannot be cast to net.minecraft.entity.player.ServerPlayerEntity at raph.RandomAdditions.items.floatingChest.FloatingChest.onItemRightClick(FloatingChest.java:21) ~[main/:?] {re:classloading} is this a normal errror?
  15. wait, would that be a class that implements icapabiltyserializable and the same for the inamedcontainerprovider
  16. how do i store the inventory and what do i put for the open gui parameter inamedcontainerprovider
  17. How can I also make a gui open when a key is pressed. And show the same inventory. Do I need a keybind And the inventory wouldn't be stored in the item
  18. How do i make a gui that stores item appear when a item is clicked like an inventory in an item
  19. I'm thinking of a tool that can be used as a sword, axe and pick.
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.