Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

TheTrueSCP

Members
  • Joined

  • Last visited

Everything posted by TheTrueSCP

  1. i dont know how do i create a package and what should be in this something
  2. so i should create a function which in turn executes the function?
  3. and why should I instantiate a class when I really only want to call one function?
  4. ok, i have writed the Button Method but i have no idea what to write in the .sendToServer Method @Override protected void init() { super.init(); this.addButton(new ImageButton(this.guiLeft + 20, this.height / 2 - 49, 20, 18, 0, 0, 19, CONTINUE_BUTTON, (button) -> { PacketHandler.CHANNEL.sendToServer(new PubTile()); ((ImageButton)button).setPosition(this.guiLeft + 20, this.height / 2 - 49); })); this.titleX = (this.xSize - this.font.getStringPropertyWidth(this.title)) / 2; }
  5. sorry for asking, but how exactly? In the documentation it is not shown so precisely
  6. ok, it works, but how can i say the server that i pressed the button?
  7. In this Class: package net.the_goldbeards.lootdebugs.Server; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.network.NetworkRegistry; import net.the_goldbeards.lootdebugs.LootDebugsMain; public class SimpleChannel { private static final String PROTICOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation("corruption","main") ,() -> PROTICOL_VERSION , PROTICOL_VERSION::equals , PROTICOL_VERSION::equals); }
  8. Unfortunately, that's the complete code, I don't know how to change the parameters in the example in the documentation
  9. private static final String PROTICOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation("corruption","main") ,() -> PROTICOL_VERSION , PROTICOL_VERSION::equals , PROTICOL_VERSION::equals);
  10. If i try to write the SimpleChannel Object ive get errors like: Incompatible types. Found: 'net.minecraftforge.fml.network.simple.SimpleChannel', required: 'net.the_goldbeards.lootdebugs.Server.SimpleChannel'
  11. I just copied and adapted the examples on the forum page. Despite the documentation, I don't understand exactly how to tell the server that I have pressed the button and how the server can then call the function
  12. I've read it through the page several times now and still don't understand exactly how to do it
  13. Hi Guys, the title says it all: how can I make an animation offset from a drinkable item?
  14. and how do I do it exactly? With NetworkHooks?
  15. hi guys, i need help with tileentitys. i have a button in my tileentity and i want if i press the butten, a function should be called up in the in the tileentityclass. More precisely said the brewBlackout() class my Init in the Screen: @Override protected void init() { this.addButton(new ImageButton(this.guiLeft + 10, this.height + 30, 20, 18, 0, 0, 19, CONTINUE_BUTTON, (button) -> { ((ImageButton)button).setPosition(this.guiLeft + 20, this.height / 2 - 49); })); } and my tileentity package net.the_goldbeards.lootdebugs.tileentity; import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.*; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; import net.the_goldbeards.lootdebugs.init.ModBlocks; import net.the_goldbeards.lootdebugs.init.ModItems; import net.the_goldbeards.lootdebugs.init.ModTileEntities; import javax.annotation.Nonnull; public class PubTile extends TileEntity implements ITickableTileEntity { private final ItemStackHandler itemHandler = createHandler(); private final LazyOptional<IItemHandler> handler = LazyOptional.of(() -> itemHandler); public PubTile(TileEntityType<?> tileEntityTypeIn) { super(tileEntityTypeIn); } public PubTile() { this(ModTileEntities.PUB_TILE.get()); } @Override public void read(BlockState state, CompoundNBT nbt) { itemHandler.deserializeNBT(nbt.getCompound("pub")); super.read(state, nbt); } @Override public CompoundNBT write(CompoundNBT compound) { compound.put("pub", itemHandler.serializeNBT()); return super.write(compound); } private ItemStackHandler createHandler() { return new ItemStackHandler(6) { @Override protected void onContentsChanged(int slot) { brewBlackout(); markDirty(); } @Override public boolean isItemValid(int slot, @Nonnull ItemStack stack) { switch (slot) { case 0: return stack.getItem() == Items.WATER_BUCKET || stack.getItem() == Items.BUCKET;//Water Insert case 1: return stack.getItem() == Items.REDSTONE;//Barley Bulb case 2: return stack.getItem() == Items.WARPED_DOOR;// Yeast Cone case 3: return stack.getItem() == Items.MAGENTA_BANNER;//Malz Stars case 4: return stack.getItem() == ModItems.BARLEY_BULB.get();//Starch Nut case 5: return stack.getItem() == ModItems.MUG.get() || stack.getItem() == ModItems.OILY_OAF.get() || stack.getItem() == ModItems.SKULL_CRUSHER.get() || stack.getItem() == ModItems.OILY_OAF.get();//Output -> Mug or Mug with Liquid default: return false; } } @Override protected int getStackLimit(int slot, @Nonnull ItemStack stack) { if (slot == 5) { return 1; } if (slot == 0) { return 5; } else { return 64; } } @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) { if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return handler.cast(); } return super.getCapability(cap); } public void brewBlackout() { boolean isWaterInSlot = this.itemHandler.getStackInSlot(0).getCount() == 1 && this.itemHandler.getStackInSlot(0).getItem() == Items.WATER_BUCKET; boolean isMugInSlot = this.itemHandler.getStackInSlot(5).getCount() == 1 && this.itemHandler.getStackInSlot(5).getItem() == ModItems.MUG.get(); boolean isIngredients = this.itemHandler.getStackInSlot(4).getCount() >= 3 && this.itemHandler.getStackInSlot(4).getItem() == ModItems.BARLEY_BULB.get(); if (isMugInSlot && isIngredients && isWaterInSlot) { this.itemHandler.getStackInSlot(0).shrink(1); this.itemHandler.insertItem(0, new ItemStack(Items.BUCKET, 1), false); this.itemHandler.getStackInSlot(4).shrink(3); this.itemHandler.getStackInSlot(5).shrink(1); this.itemHandler.insertItem(5, new ItemStack(ModBlocks.OILY_OAF.get(), 1), false); } } /* private void craft() { Inventory inv = new Inventory(itemHandler.getSlots()); for (int i = 0; i < itemHandler.getSlots(); i++) { inv.setInventorySlotContents(i, itemHandler.getStackInSlot(i)); } Optional<PubRecipe> recipe = world.getRecipeManager() .getRecipe(ModRecipeTypes.PUB_RECIPE, inv, world); recipe.ifPresent(iRecipe -> { ItemStack output = iRecipe.getRecipeOutput(); craftTheItem(output); markDirty(); }); } private void craftTheItem(ItemStack output) { itemHandler.extractItem(0, 1,false); itemHandler.insertItem(0, new ItemStack(Items.BUCKET,1),false); } */ @Override public void tick() { // if(world.isRemote) // {return;} // craft(); }
  16. sorry for writing again but I have no idea what to do, the item should also be drinkable like a bucket, how should I do that when the class is already being extended with BlockItems?
  17. package net.thetruescp.lootbugs.block.custom; import net.minecraft.block.Block; public class OilyOaf extends Block { public OilyOaf(Properties properties) { super(properties); } }
  18. if i us my own class, the block and the item are not linked public static final RegistryObject<Item> OILY_OAF= ITEMS.register("oily_oaf", () -> new OilyOaf(new Item.Properties().group(ModGroup.LOOTBUG_GROUP))); but if i use BlockItem, my Custom Item class is not linked to the item public static final RegistryObject<Item> OILY_OAF= ITEMS.register("oily_oaf", () -> new BlockItem(ModBlocks.OILY_OAF.get(),new Item.Properties().group(ModGroup.LOOTBUG_GROUP)));
  19. Hi Guys, I'm relatively new to forge modding and wanted to know how do I create a block with custom bluckitem which has its own java class?
  20. Do you know an entity modeling program with which you can also make animations? Because with Blockbench the Gecolibplugin only exports json files...
  21. ok figured out on my own, thank you for helping me😁
  22. and how should I then make custom animations and trigger them?
  23. That's right, but if you spawn a second one and if the other entity is in the water, the tail of the second one rotates

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.