RaphGamingz
-
Posts
57 -
Joined
-
Last visited
Posts posted by RaphGamingz
-
-
so a class that implements IRecipeSerializer
-
how do i change recipes to make it harder if the config is set to true.
-
i am talking about where the capability is stored, is it in a class that extends INBTSerializable
-
oh so i have another class named "ClassA" that extends INBTSerializable, ICapabilityProvider
i use the item class to make a new ClassA
-
so i have a item class that extends item implements INBTSerializable, ICapabilityProvider
-
Does it save when a player leaves and does it save when the world is closed
4 minutes ago, diesieben07 said:Make a capability and attach it to the player using AttachCapabilitiesEvent<Entity>.
6 minutes ago, diesieben07 said:Making an item class extend ICapabilitySerializable does not make much sense. To save data on an item via a capability you make a capability like normal and then attach it by overriding initCapabilities.
will the capability have read and write, getCapability and what will the capability class extend or implement?
-
oh
33 minutes ago, RaphGamingz said:wouldn't it then be transferring the capability which stores the attributes
because you said to store the attribute in a capability
QuoteProbably store them in a capability and re-apply in PlayerRespawnEvent.
then you say
QuoteThe clone even is for transferring data from old player to new (like capabilities or in old versions IExtendedEntityProperties).
and you use the clone event to transfer capabilities
-
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
-
9 hours ago, Animefan8888 said:
What would it be used for then if not making data persist across death, and what event would you use for making data persist across death because there is no way to use PlayerRespawnEvent to do so.
i think he is asking what the event you use because you cant use playerrespawnevent (according to him)
-
whats the syntax called
edit: its called ternary
-
10 minutes ago, diesieben07 said:
I do not understand your question.
me? JimiIT92? Animefan8888?
-
22 hours ago, diesieben07 said:
Probably store them in a capability and re-apply in PlayerRespawnEvent.
wouldn't it then be transferring the capability which stores the attributes
4 minutes ago, diesieben07 said:The clone even is for transferring data from old player to new (like capabilities or in old versions IExtendedEntityProperties). Applying attributes is something else...
-
what do i put in icapabilityserializable#serializeNBT and deserializeNBT to make the items save on a custom itemhandler
-
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 }
-
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?
-
26 minutes ago, Animefan8888 said:
In Item#initCapabilities return an ICapabilitySerializable that exposes an LazyOptional<IItemHandler>.
wait, would that be a class that implements icapabiltyserializable
QuoteYour own instance of INamedContainerProvider.
and the same for the inamedcontainerprovider
-
19 hours ago, diesieben07 said:
Yes, you need a key binding. However note that key bindings are client-side only, so if your GUI has a server-component at all you need to send a custom packet to the server when your key binding is triggered and then open the GUI on the server.
how do i do that?
-
On 10/14/2019 at 3:15 PM, Animefan8888 said:
Override Item#onItemRightClick in your Item class and call NetworkHooks.openGui to open the ContainerScreen and Container for your gui.
how do i store the inventory and what do i put for the open gui parameter inamedcontainerprovider
-
3 hours ago, Animefan8888 said:
Override Item#onItemRightClick in your Item class and call NetworkHooks.openGui to open the ContainerScreen and Container for your gui.
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
-
OK I will try
-
How do i make a gui that stores item appear when a item is clicked like an inventory in an item
-
-
yes, you put the mod in a folder run/mods
-
3 hours ago, Draco18s said:
Probably the existing tools.
I'm thinking of a tool that can be used as a sword, axe and pick.
Stuctures 1.14
in Modder Support
Posted
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?