-
Posts
75 -
Joined
-
Last visited
Everything posted by Issac29
-
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
1. what about runtime, null pointer, arraystore, array out of index, and index out of bounds. 2. @Draco18s I know that by since 2 hours ago from this post. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Errors happen all the time. Also I removed ClassCastException because there is no reason. NetworkRegistry.INSTANCE.registerGuiHandler(Issac29Core.instance, new IGuiHandler() { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { EntityHuman human = (EntityHuman) world.getEntityByID(ID); return new ContainerHuman(player.inventory, human.inventory, human); } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { EntityHuman human = (EntityHuman) (world.getEntityByID(ID)); return new GuiHuman(player.inventory, human.inventory, human); } }); -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Catch exceptions and prevent minecraft to crash in case of runtime exceptions. Ok I got that. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
NetworkRegistry.INSTANCE.registerGuiHandler(Issac29Core.instance, new IGuiHandler() { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { try { Entity entity = world.getEntityByID(EntityList.getID(EntityHuman.class)); return new ContainerHuman(player.inventory, ((EntityHuman)entity).inventory, (EntityHuman)entity); } catch (ClassCastException ccex) { ccex.printStackTrace(); return null; } } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { try { Entity entity = world.getEntityByID(EntityList.getID(EntityHuman.class)); return new GuiHuman(player.inventory, ((EntityHuman)entity).inventory, (EntityHuman)entity); } catch (ClassCastException ccex) { ccex.printStackTrace(); return null; } } }); Alright I found out that the Id was made was 38 that executed in the world.getEntityById(38) returns a wrong entity [12:19:39] [Client thread/INFO] [i29c]: 38 [12:19:39] [Client thread/INFO] [i29c]: null [12:19:39] [Server thread/INFO] [i29c]: 38 [12:19:39] [Server thread/INFO] [i29c]: EntityCreeper['Creeper'/38, l='[]', x=-314.49, y=46.00, z=-326.83] . -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
The problem is sometimes the entity is not spawned in the world yet and not the mention they might have the wrong items. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Yes, and no. Yes for already for override the process Interact method but no for the open GUI method. The method NetworkRegistry.INSTANCE.registerGuiHandler requires a gui server and gui client but they require parameters world, x, y, z. x, y, z are integers. How on earth do I access the entity gui with only these methods. Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z); Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z); -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
I mean, how do I open a gui with right clicking an entity. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Lastly how do I make sure that the player can interact the entity inventory with only id, player, world, x, y, and z parameters. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Alright then how do I access the Itemstack handler or IItemhandler if the container requires an old inventory or a gui. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Oh, I get it. You have to implement the IItemHandler capacity. Where is the IItemHandler capability used in. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
So the IItemhandler does sync to the client? -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Then How do I make the container with just 6 inventory slots but they don't implement the IInventory interface. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
That wasn't copyright. It was actual evidence. The only downfall with the 6 equipment slots is you can neither access them with a container nor a GUI. Also please don't delete evidence unless if is it not evidence. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Sorry for misclarification, but I saw the code for the AbstactHorse and AbstractChestHorse which those two class that have an inventory are synced to the client. But as for the minecraft chest class is a totally different from the entity living class. I will post these two. [Not copyrighted code but that code was evidence] That is why I made the entity having 18 slots. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
package com.mreyeballs29.issactncore.entity; import com.mreyeballs29.issactncore.Issac29Core; import com.mreyeballs29.issactncore.inventory.InventoryHuman; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventoryChangedListener; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; import net.minecraft.util.math.BlockPos; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.World; import net.minecraft.world.storage.loot.LootTableList; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.InvWrapper; public class EntityHuman extends EntityAnimal implements IInventoryChangedListener { public InventoryHuman inventory; private static final ResourceLocation HUMAN_LOOT = LootTableList.register(new ResourceLocation("i29c", "entities/human")); //$NON-NLS-1$ //$NON-NLS-2$ public EntityHuman(World worldIn) { super(worldIn); initHuman(); setSize(0.7F, 1.8F); } public static Coords cords; /** * */ private void initHuman() { InventoryHuman inr = this.inventory; this.inventory = new InventoryHuman("Human"); //$NON-NLS-1$ this.inventory.setCustomName(this.getName()); if (inr != null) { this.inventory.removeInventoryChangeListener(this); for (int i = 0; i < inr.getSizeInventory(); i++) { ItemStack stack = inr.getStackInSlot(i); if (!stack.isEmpty()) { this.inventory.setInventorySlotContents(i, stack.copy()); } } } this.inventory.addInventoryChangeListener(this); this.updateItemHeld(); this.handler = new InvWrapper(this.inventory); } private void updateItemHeld() { if (!this.world.isRemote) { this.setHeldItemMainhand(this.inventory.getStackInSlot(0)); this.setHeldItemOffhand(this.inventory.getStackInSlot(1)); } } @Override protected void updateEquipmentIfNeeded(EntityItem itemEntity) { ItemStack stack = itemEntity.getItem(); if (!stack.isEmpty()) { ItemStack stack2 = this.inventory.addItem(stack); if (stack2.isEmpty()) { onItemPickup(itemEntity, stack.getCount()); itemEntity.setDead(); } else { stack.setCount(stack2.getCount()); } } this.updateItemHeld(); } @Override public void onInventoryChanged(IInventory invBasic) { updateItemHeld(); } @Override public boolean canPickUpLoot() { return true; } @Override public EntityAgeable createChild(EntityAgeable ageable) { return new EntityHuman(this.world); } @Override protected void initEntityAI() { this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(1, new EntityAIWander(this, 1D)); this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(3, new EntityAILookIdle(this)); } protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20.0D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.245D); } @Override public void readEntityFromNBT(NBTTagCompound compound) { super.readEntityFromNBT(compound); if (compound.hasKey("Items")) { //$NON-NLS-1$ NBTTagList nbtlist = compound.getTagList("Items", NBT.TAG_COMPOUND); //$NON-NLS-1$ for (int i = 0; i < nbtlist.tagCount(); i++) { NBTTagCompound comp = nbtlist.getCompoundTagAt(i); int slot = comp.getInteger("Slot"); //$NON-NLS-1$ if (slot >= 0 && slot < this.inventory.getSizeInventory()) { this.inventory.setInventorySlotContents(slot, new ItemStack(comp)); } } } this.updateItemHeld(); } @Override public void writeEntityToNBT(NBTTagCompound compound) { super.writeEntityToNBT(compound); NBTTagList nbtlist = new NBTTagList(); for (int i = 0; i < this.inventory.getSizeInventory(); i++) { ItemStack stack = this.inventory.getStackInSlot(i); if (!stack.isEmpty()) { NBTTagCompound tag = new NBTTagCompound(); tag.setInteger("Slot", i); //$NON-NLS-1$ stack.writeToNBT(tag); nbtlist.appendTag(tag); } } compound.setTag("Items", nbtlist); //$NON-NLS-1$ } @Override protected ResourceLocation getLootTable() { return HUMAN_LOOT; } @Override protected SoundEvent getDeathSound() { return SoundEvents.ENTITY_GENERIC_DEATH; } @Override public void onStruckByLightning(EntityLightningBolt lightningBolt) { EntityZombie zombie = new EntityZombie(this.world); this.world.spawnEntity(zombie); this.setDead(); } @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { return SoundEvents.ENTITY_GENERIC_HURT; } public void setHeldItemMainhand(ItemStack stack) { this.setHeldItem(EnumHand.MAIN_HAND, stack); } public void setHeldItemOffhand(ItemStack stack) { this.setHeldItem(EnumHand.OFF_HAND, stack); } @Override public boolean processInteract(EntityPlayer player, EnumHand hand) { if (!super.processInteract(player, hand) && !this.holdingSpawnEggOfClass(player.getHeldItem(hand), this.getClass())) { ItemStack playerItems = player.getHeldItem(hand); if (player.isSneaking() && playerItems.interactWithEntity(player, this, hand)) { return true; } else { cords = new Coords(this.posX, this.posY, this.posZ); player.openGui(Issac29Core.instance, 290, this.world, 0, 0, 0); return true; } } return true; } @Override public boolean getCanSpawnHere() { IBlockState iblockstate = this.world.getBlockState((new BlockPos(this)).down()); return iblockstate.canEntitySpawn(this) && this.world.getLight(new BlockPos(this)) > 8; } @Override public float getEyeHeight() { return !isChild() ? 1.74f : 0.96f; } private IItemHandler handler; @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { if (CapabilityItemHandler.ITEM_HANDLER_CAPABILITY == capability) return (T) this.handler; return super.getCapability(capability, facing); } @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing); } @Override protected void dropEquipment(boolean wasRecentlyHit, int lootingModifier) { for (int i = 0; i < this.inventory.getSizeInventory(); i++) { entityDropItem(this.inventory.getStackInSlot(i), 0f); } } public static void registerFixesHuman(DataFixer dataFixer, Class<?> entityClass) { EntityLiving.registerFixesMob(dataFixer, entityClass); dataFixer.registerWalker(FixTypes.ENTITY, new ItemStackDataLists(entityClass, "Items")); //$NON-NLS-1$ } @Override public boolean replaceItemInInventory(int inventorySlot, ItemStack itemStackIn) { if (inventorySlot < 0 || inventorySlot > 18) return false; this.inventory.setInventorySlotContents(inventorySlot, itemStackIn); this.updateItemHeld(); return true; } @Override public IEntityLivingData onInitialSpawn(DifficultyInstance difficulty, IEntityLivingData livingdata) { if (this.world.rand.nextInt(100) < 25) { this.setGrowingAge(-24000);} return super.onInitialSpawn(difficulty, livingdata); } public static class Coords { public double x; public double y; public double z; public Coords(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } } } The code has changed. so therefore I extended the living entity to 18 slots, without 4 extra armor slots. Why bother using EntityEquipmentSlot when 18 slots is enough. Do I have to reduce to 2 inventory slots? I saw the code for the AbstactHorse and AbstractChestHorse which those two are synced to the client, and their slots are separate. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
That, It works just fine without your suggestion. I just found out that if a inventory of a # of slots. the first slot would be a main hand, and the second would be the off hand. I cannot access the hands inventory if I use your suggestion. Plus the inventory is only 2 slots. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Nevermind. I had to use the !world.isRemote for updating the hands. -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
I don't know which code to put on. Honestly I don't know how to synchronize entity's inventory to the client -
[1.12.2] Entity hands not rendering via an inventory
Issac29 replied to Issac29's topic in Modder Support
Then what should I do when trying to synchronize the entity's inventory to the client? -
I got the human like entity to work but the item holding is not visible until the player interacts the entity. Is there a way that the entity renders the item before the player interact? If not then is there a sample code for it? I made the code so similar to the horse inventory but with only 18 slots. package com.mreyeballs29.issactncore.entity; import com.mreyeballs29.issactncore.Issac29Core; import com.mreyeballs29.issactncore.inventory.InventoryHuman; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.storage.loot.LootTableList; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.wrapper.InvWrapper; public class EntityHuman extends EntityAnimal { public InventoryHuman inventory; private NonNullList<ItemStack> list = NonNullList.withSize(2, ItemStack.EMPTY); private static final ResourceLocation HUMAN_LOOT = LootTableList.register(new ResourceLocation("i29c", "entities/human")); //$NON-NLS-1$ //$NON-NLS-2$ public EntityHuman(World worldIn) { super(worldIn); initHuman(); setSize(0.7F, 1.8F); } public static Coords cords; /** * */ private void initHuman() { InventoryHuman inr = this.inventory; this.inventory = new InventoryHuman("Human"); //$NON-NLS-1$ this.inventory.setCustomName(this.getName()); if (inr != null) { for (int i = 0; i < inr.getSizeInventory(); i++) { ItemStack stack = inr.getStackInSlot(i); if (!stack.isEmpty()) { this.inventory.setInventorySlotContents(i, stack.copy()); } } } this.inventory.setInventorySlotContents(0, this.list.get(0)); this.inventory.setInventorySlotContents(1, this.list.get(1)); this.handler = new InvWrapper(this.inventory); } @Override protected void updateEquipmentIfNeeded(EntityItem itemEntity) { ItemStack stack = itemEntity.getItem(); if (!stack.isEmpty()) { ItemStack stack2 = this.inventory.addItem(stack); if (stack2.isEmpty()) { itemEntity.setDead(); } else { stack.setCount(stack2.getCount()); } } } @Override public ItemStack getHeldItem(EnumHand hand) { if (hand == EnumHand.MAIN_HAND) return this.inventory.getStackInSlot(0); if (hand == EnumHand.OFF_HAND) return this.inventory.getStackInSlot(1); return ItemStack.EMPTY; } @Override public ItemStack getHeldItemMainhand() { return getHeldItem(EnumHand.MAIN_HAND); } @Override public ItemStack getHeldItemOffhand() { return getHeldItem(EnumHand.OFF_HAND); } @Override public boolean canPickUpLoot() { return true; } @Override public EntityAgeable createChild(EntityAgeable ageable) { return new EntityHuman(this.world); } @Override protected void initEntityAI() { this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(1, new EntityAIWander(this, 1.25D)); this.tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(3, new EntityAILookIdle(this)); } protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20.0D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.23D); } @Override public void readEntityFromNBT(NBTTagCompound compound) { super.readEntityFromNBT(compound); if (compound.hasKey("Items")) { //$NON-NLS-1$ NBTTagList nbtlist = compound.getTagList("Items", NBT.TAG_COMPOUND); //$NON-NLS-1$ for (int i = 0; i < nbtlist.tagCount(); i++) { NBTTagCompound comp = nbtlist.getCompoundTagAt(i); int slot = comp.getInteger("Slot"); //$NON-NLS-1$ if (slot >= 0 && slot < this.inventory.getSizeInventory()) { this.inventory.setInventorySlotContents(slot, new ItemStack(comp)); } } this.list.set(0, this.inventory.getStackInSlot(0)); this.list.set(1, this.inventory.getStackInSlot(1)); initHuman(); } } @Override public void writeEntityToNBT(NBTTagCompound compound) { super.writeEntityToNBT(compound); NBTTagList nbtlist = new NBTTagList(); for (int i = 0; i < this.inventory.getSizeInventory(); i++) { ItemStack stack = this.inventory.getStackInSlot(i); if (!stack.isEmpty()) { NBTTagCompound tag = new NBTTagCompound(); tag.setInteger("Slot", i); //$NON-NLS-1$ stack.writeToNBT(tag); nbtlist.appendTag(tag); } } compound.setTag("Items", nbtlist); //$NON-NLS-1$ } @Override protected ResourceLocation getLootTable() { return HUMAN_LOOT; } @Override protected SoundEvent getDeathSound() { return SoundEvents.ENTITY_GENERIC_DEATH; } @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { return SoundEvents.ENTITY_GENERIC_HURT; } @Override public void setHeldItem(EnumHand hand, ItemStack stack) { if (hand == EnumHand.MAIN_HAND) this.inventory.setInventorySlotContents(0, stack); if (hand == EnumHand.OFF_HAND) this.inventory.setInventorySlotContents(1, stack); } public void setHeldItemMainhand(ItemStack stack) { this.setHeldItem(EnumHand.MAIN_HAND, stack); } public void setHeldOffhand(ItemStack stack) { this.setHeldItem(EnumHand.OFF_HAND, stack); } @Override public void onUpdate() { super.onUpdate(); } @Override public boolean processInteract(EntityPlayer player, EnumHand hand) { if (!super.processInteract(player, hand)) { ItemStack playerItems = player.getHeldItem(hand); if (player.isSneaking() && playerItems.interactWithEntity(player, this, hand) ) { return true; } else if (!this.world.isRemote) { try { cords = new Coords(this.posX, this.posY, this.posZ); player.openGui(Issac29Core.instance, 290, this.world, 0, 0, 0); return true; } catch (RuntimeException nuex) { nuex.printStackTrace(); return false; } } return false; } return true; } @Override public boolean getCanSpawnHere() { IBlockState iblockstate = this.world.getBlockState((new BlockPos(this)).down()); return iblockstate.canEntitySpawn(this) && this.world.getLight(new BlockPos(this)) > 8; } @Override public float getEyeHeight() { return !isChild() ? 1.74f : 0.96f; } private IItemHandler handler; @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { if (CapabilityItemHandler.ITEM_HANDLER_CAPABILITY == capability) return (T) this.handler; return super.getCapability(capability, facing); } @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing); } @Override protected void dropEquipment(boolean wasRecentlyHit, int lootingModifier) { for (int i = 0; i < this.inventory.getSizeInventory(); i++) { entityDropItem(this.inventory.getStackInSlot(i), 0f); } } public static void registerFixesHuman(DataFixer dataFixer, Class<?> entityClass) { EntityLiving.registerFixesMob(dataFixer, entityClass); dataFixer.registerWalker(FixTypes.ENTITY, new ItemStackDataLists(entityClass, "Items")); //$NON-NLS-1$ } @Override public boolean replaceItemInInventory(int inventorySlot, ItemStack itemStackIn) { if (inventorySlot < 0 || inventorySlot > 18) return false; this.inventory.setInventorySlotContents(inventorySlot, itemStackIn); return true; } public static class Coords { public double x; public double y; public double z; public Coords(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } } }
-
[1.12.2] What does take to make an item have an nbt tag by default
Issac29 replied to Issac29's topic in Modder Support
I tried doing that but it still gave me the default non-nbt item. @Override public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> items) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("HideFlags", 2); if (this.isInCreativeTab(tab)) { items.add(new ItemStack(this, 1, 0, nbt)); } } Here is the code. -
[1.12.2] How do I make bedrock add stat to the player stat. [Solved]
Issac29 replied to Issac29's topic in Modder Support
Well this topic is solved so thank you. -
[1.12.2] How do I make a entity when touching water stops.
Issac29 replied to Issac29's topic in Modder Support
here is the mod https://www.dropbox.com/h?preview=issactncore-1.0.0.jar -
[1.12.2] How do I make a entity when touching water stops.
Issac29 replied to Issac29's topic in Modder Support
Well it's only capable to run on eclipse not IntelliJ. There might be a bug with it. Oh never-mind. In case of certain issues press Shift-F5 to reload cache. Ohhhhhhhh. Now I get it. Thanks.