Jump to content

Allow for crafting when having correct tools


bigbaddevil6

Recommended Posts

So I was debating if I should alter the recipe manager, but then thought that it wasn't necessary since they only just need to be there and not in any specific order or anything.

The whole Idea is that when I do a crafting event, I want to check to see if there are the right tools that would be an instance of ModTool. The ModTool class hasn't been made yet otherwise I would post it with my other code. Once the crafting was finished it would take damage. This is for a 5x5 crafting table that has 4 TileEntity slots. The crafting works and the TileEntity portion saves the items like it suppose to, but when I go to check to see if the item in the slot is valid, it throws a null pointer. I check for a null as well. So must be something I'm missing

 

 

TileEntity

 

 

package com.bigbaddevil7.rustic.blocks.tileentities;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;

/**
* Created by bigbaddevil7 on 5/28/2015.
*/
public class TileEntityProtoTable extends TileEntity implements IInventory {

    public static ItemStack[] items;

    public TileEntityProtoTable(){
        items = new ItemStack[4];
    }

    @Override
    public int getSizeInventory() {
        return 4;
    }

    @Override
    public ItemStack getStackInSlot(int slot) {
        return items[slot];
    }

    @Override
    public ItemStack decrStackSize(int i, int j) {
        ItemStack itemStack = getStackInSlot(i);

        if(itemStack != null){
            if(itemStack.stackSize <= j){
                setInventorySlotContents(i,null);
            }else{
                itemStack = itemStack.splitStack(j);
                this.markDirty();
            }
        }

        return itemStack;
    }

    @Override
    public ItemStack getStackInSlotOnClosing(int i) {
        ItemStack item = getStackInSlot(i);
        setInventorySlotContents(i, null);
        return item;
    }

    @Override
    public void setInventorySlotContents(int i, ItemStack itemStack) {
        items[i] = itemStack;

        if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()){
            itemStack.stackSize = getInventoryStackLimit();
        }

        this.markDirty();
    }

    @Override
    public String getInventoryName() {
        return null;
    }

    @Override
    public boolean hasCustomInventoryName() {
        return false;
    }

    @Override
    public int getInventoryStackLimit() {
        return 1;
    }

    @Override
    public boolean isUseableByPlayer(EntityPlayer player) {
        return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) <= 64;
    }

    @Override
    public void openInventory() {

    }

    @Override
    public void closeInventory() {

    }

    @Override
    public boolean isItemValidForSlot(int i, ItemStack stack) {
        return true;
    }

    @Override
    public void writeToNBT(NBTTagCompound compound){
        super.writeToNBT(compound);

        NBTTagList items = new NBTTagList();

        for(int i = 0; i < getSizeInventory(); i++){
            ItemStack stack = getStackInSlot(i);

            if(stack != null){
                NBTTagCompound item = new NBTTagCompound();
                item.setByte("Slot", (byte)i);
                stack.writeToNBT(item);
                items.appendTag(item);
            }
        }

        compound.setTag("Items", items);
    }

    @Override
    public void readFromNBT(NBTTagCompound compound){
        super.readFromNBT(compound);

        NBTTagList items = compound.getTagList("Items", 10);

        for(int i = 0; i < items.tagCount(); i++){
            NBTTagCompound item = (NBTTagCompound)items.getCompoundTagAt(i);
            int slot = item.getByte("Slot");

            if(slot >= 0 && slot < getSizeInventory()) {
                setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(item));
            }
        }
    }

    public static boolean hasToolInSlot(){
        if(items[0].getItem() != null && items[0].getItem().equals(Items.diamond)){
            return true;
        }else {
            return false;
        }
    }
}

 

 

 

Container

 

 

 


package com.bigbaddevil7.rustic.blocks.container;

import com.bigbaddevil7.rustic.blocks.tileentities.SlotTool;
import com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable;
import com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.*;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;

/**
* Created by bigbaddevil7 on 5/28/2015.
*/
public class ProtoTableContainer extends Container {

    public InventoryCrafting craftMatrix;
    public IInventory craftResult;
    private World worldObj;

    public static TileEntityProtoTable table;

    public ProtoTableContainer(InventoryPlayer inventoryPlayer, World word,TileEntityProtoTable table){
        this.worldObj = word;
        this.table = table;
        craftMatrix = new InventoryCrafting(this, 5,5);
        craftResult = new InventoryCraftResult();

        this.addSlotToContainer(new SlotCrafting(inventoryPlayer.player, craftMatrix, craftResult, 0 , 141, 11));

        for(int i = 0; i < 2; i++){
            for(int k = 0; k < 2; k++){
                this.addSlotToContainer(new SlotTool(table, k + i * 2, 115  + k * 18 * 2, 43 + i * 18 * 2));
            }
        }


        for(int i = 0; i < 5; i++){
            for(int k = 0; k < 5; k++){
                this.addSlotToContainer(new Slot(craftMatrix, k + i * 5, 8 + k * 18, 7 + i * 18));
            }
        }

        for(int i = 0; i < 3; i++){
            for(int k  = 0; k < 9; k++){
                this.addSlotToContainer(new Slot(inventoryPlayer, k + i * 9 + 9, 8 + k * 18, 106 + i * 18));
            }
        }

        for(int i = 0; i < 9; i++){
            this.addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 164));
        }

        onCraftMatrixChanged(craftMatrix);
    }

    @Override
    public boolean canInteractWith(EntityPlayer player) {
        return table.isUseableByPlayer(player);
    }

    public void onCraftMatrixChanged(IInventory inventory){
        craftResult.setInventorySlotContents(0 , ProtoTableCraftingManager.getInstance().findMatchingRecipe(craftMatrix, worldObj));
    }

    @Override
    public ItemStack transferStackInSlot(EntityPlayer player, int i){
        return null;
    }

    @Override
    public void onContainerClosed(EntityPlayer player){
        super.onContainerClosed(player);

        if (!this.worldObj.isRemote){
            for (int i = 0; i < 25; ++i)
            {
                ItemStack itemstack = this.craftMatrix.getStackInSlotOnClosing(i);

                if (itemstack != null)
                {
                    player.dropPlayerItemWithRandomChoice(itemstack, false);
                }
            }
        }
    }
}

 

 

 

 

Crafting Manager

 

 

package com.bigbaddevil7.rustic.crafting;

import com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer;
import com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.*;
import net.minecraft.world.World;

import java.util.*;

/**
* Created by bigbaddevil7 on 11/15/2014.
*/
public class ProtoTableCraftingManager {

    /** The static instance of this class */
    private static final ProtoTableCraftingManager instance = new ProtoTableCraftingManager();
    /** A list of all the recipes added */
    private List recipes = new ArrayList();

    /**
     * Returns the static instance of this class
     */
    public static final ProtoTableCraftingManager getInstance()
    {
        /** The static instance of this class */
        return instance;
    }

    private ProtoTableCraftingManager()
    {
            this.addRecipe(new ItemStack(Items.diamond), new Object[]{"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX", 'X', Items.stick});
            //this.addTableShapelessRecipe(new ItemStack(ModItems.itemWand), Items.stick, Items.stick, Items.diamond);
            Collections.sort(this.recipes, new ProtoTableRecipeSorter(this));
    }

    public ProtoTableShapedRecipe addRecipe(ItemStack stack, Object ... varargs)
    {
        String s = "";
        int i = 0;
        int j = 0;
        int k = 0;

        if (varargs[i] instanceof String[])
        {
            String[] astring = (String[])((String[])varargs[i++]);

            for (int l = 0; l < astring.length; ++l)
            {
                String s1 = astring[l];
                ++k;
                j = s1.length();
                s = s + s1;
            }
        }
        else
        {
            while (varargs[i] instanceof String)//checks to see if it is a string
            {
                String s2 = (String)varargs[i++];//gets the string at index i then adds 1
                ++k;//k = 1
                j = s2.length();//j = 5
                s = s + s2;// s = s + 5
            }
        }

        HashMap hashmap;

        for (hashmap = new HashMap(); i < varargs.length; i += 2)
        {
            Character character = (Character)varargs[i];
            ItemStack itemstack1 = null;

            if (varargs[i + 1] instanceof Item)
            {
                itemstack1 = new ItemStack((Item)varargs[i + 1]);
            }
            else if (varargs[i + 1] instanceof Block)
            {
                itemstack1 = new ItemStack((Block)varargs[i + 1], 1, 32767);
            }
            else if (varargs[i + 1] instanceof ItemStack)
            {
                itemstack1 = (ItemStack)varargs[i + 1];
            }

            hashmap.put(character, itemstack1);
        }

        ItemStack[] aitemstack = new ItemStack[j * k];

        for (int i1 = 0; i1 < j * k; ++i1)
        {
            char c0 = s.charAt(i1);

            if (hashmap.containsKey(Character.valueOf(c0)))
            {
                aitemstack[i1] = ((ItemStack)hashmap.get(Character.valueOf(c0))).copy();
            }
            else
            {
                aitemstack[i1] = null;
            }
        }

        ProtoTableShapedRecipe shapedrecipes = new ProtoTableShapedRecipe(j, k, aitemstack, stack);
        this.recipes.add(shapedrecipes);
        return shapedrecipes;
    }

    public void addTableShapelessRecipe(ItemStack p_77596_1_, Object ... p_77596_2_)
    {
        ArrayList arraylist = new ArrayList();
        Object[] aobject = p_77596_2_;
        int i = p_77596_2_.length;

        for (int j = 0; j < i; ++j)
        {
            Object object1 = aobject[j];

            if (object1 instanceof ItemStack)
            {
                arraylist.add(((ItemStack)object1).copy());
            }
            else if (object1 instanceof Item)
            {
                arraylist.add(new ItemStack((Item)object1));
            }
            else
            {
                if (!(object1 instanceof Block))
                {
                    throw new RuntimeException("Invalid shapeless recipy!");
                }

                arraylist.add(new ItemStack((Block)object1));
            }
        }

        this.recipes.add(new ProtoTableShapelessRecipe(p_77596_1_, arraylist));
    }

    public ItemStack findMatchingRecipe(InventoryCrafting inv, World world)
    {
        int i = 0;
        ItemStack itemstack = null;
        ItemStack itemstack1 = null;
        int j;

        for (j = 0; j < inv.getSizeInventory(); ++j)
        {

            ItemStack itemstack2 = inv.getStackInSlot(j);

            if (itemstack2 != null)
            {
                if (i == 0)
                {
                    itemstack = itemstack2;
                }

                if (i == 1)
                {
                    itemstack1 = itemstack2;
                }

                ++i;
            }
        }

        if (i == 2 && itemstack.getItem() == itemstack1.getItem() && itemstack.stackSize == 1 && itemstack1.stackSize == 1 && itemstack.getItem().isRepairable())
        {
            Item item = itemstack.getItem();
            int j1 = item.getMaxDamage() - itemstack.getItemDamageForDisplay();
            int k = item.getMaxDamage() - itemstack1.getItemDamageForDisplay();
            int l = j1 + k + item.getMaxDamage() * 5 / 100;
            int i1 = item.getMaxDamage() - l;

            if (i1 < 0)
            {
                i1 = 0;
            }

            return new ItemStack(itemstack.getItem(), 1, i1);
        }
        else
        {
            for (j = 0; j < this.recipes.size(); ++j)
            {
                IRecipe irecipe = (IRecipe)this.recipes.get(j);

                if (irecipe.matches(inv, world))
                {
                    return irecipe.getCraftingResult(inv);
                }
            }

            return null;
        }
    }

    /**
     * returns the List<> of all recipes
     */
    public List getRecipeList()
    {
        return this.recipes;
    }
}

 

 

 

Shaped Recipe that has the check in it for the hasToolInSlot

 

 


package com.bigbaddevil7.rustic.crafting;

import com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

/**
* Created by bigbaddevil7 on 11/15/2014.
*/
public class ProtoTableShapedRecipe implements IRecipe {
    /** How many horizontal slots this recipe is wide. */
    public final int recipeWidth;
    /** How many vertical slots this recipe uses. */
    public final int recipeHeight;
    /** Is a array of ItemStack that composes the recipe. */
    public final ItemStack[] recipeItems;
    /** Is the ItemStack that you get when craft the recipe. */
    private ItemStack recipeOutput;
    private boolean field_92101_f;

    public ProtoTableShapedRecipe(int p_i1917_1_, int p_i1917_2_, ItemStack[] p_i1917_3_, ItemStack p_i1917_4_)
    {
        this.recipeWidth = p_i1917_1_;
        this.recipeHeight = p_i1917_2_;
        this.recipeItems = p_i1917_3_;
        this.recipeOutput = p_i1917_4_;
    }

    public ItemStack getRecipeOutput()
    {
        return this.recipeOutput;
    }

    /**
     * Used to check if a recipe matches current crafting inventory
     */
    public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_)
    {
        for (int i = 0; i <= 5 - this.recipeWidth; ++i)
        {
            for (int j = 0; j <= 5 - this.recipeHeight; ++j)
            {
                if (this.checkMatch(p_77569_1_, i, j, true))
                {
                    return true;
                }

                if (this.checkMatch(p_77569_1_, i, j, false))
                {
                    return true;
                }
            }
        }

        return false;
    }

    /**
     * Checks if the region of a crafting inventory is match for the recipe.
     */
    private boolean checkMatch(InventoryCrafting p_77573_1_, int p_77573_2_, int p_77573_3_, boolean p_77573_4_)
    {
        for (int k = 0; k < 5; ++k)
        {
            for (int l = 0; l < 5; ++l)
            {
                int i1 = k - p_77573_2_;
                int j1 = l - p_77573_3_;
                ItemStack itemstack = null;

                if(!TileEntityProtoTable.hasToolInSlot()){
                    return false;
                }

                if (i1 >= 0 && j1 >= 0 && i1 < this.recipeWidth && j1 < this.recipeHeight)
                {
                    if (p_77573_4_)
                    {
                        itemstack = this.recipeItems[this.recipeWidth - i1 - 1 + j1 * this.recipeWidth];
                    }
                    else
                    {
                        itemstack = this.recipeItems[i1 + j1 * this.recipeWidth];
                    }
                }

                ItemStack itemstack1 = p_77573_1_.getStackInRowAndColumn(k, l);

                if (itemstack1 != null || itemstack != null)
                {
                    if (itemstack1 == null && itemstack != null || itemstack1 != null && itemstack == null)
                    {
                        return false;
                    }

                    if (itemstack.getItem() != itemstack1.getItem())
                    {
                        return false;
                    }

                    if (itemstack.getItemDamage() != 32767 && itemstack.getItemDamage() != itemstack1.getItemDamage())
                    {
                        return false;
                    }
                }
            }
        }

        return true;
    }

    /**
     * Returns an Item that is the result of this recipe
     */
    public ItemStack getCraftingResult(InventoryCrafting p_77572_1_)
    {
        ItemStack itemstack = this.getRecipeOutput().copy();

        if (this.field_92101_f)
        {
            for (int i = 0; i < p_77572_1_.getSizeInventory(); ++i)
            {
                ItemStack itemstack1 = p_77572_1_.getStackInSlot(i);

                if (itemstack1 != null && itemstack1.hasTagCompound())
                {
                    itemstack.setTagCompound((NBTTagCompound)itemstack1.stackTagCompound.copy());
                }
            }
        }

        return itemstack;
    }

    /**
     * Returns the size of the recipe area
     */
    public int getRecipeSize()
    {
        return this.recipeWidth * this.recipeHeight;
    }

}


 

 

 

 

Crash Log

 

 

---- Minecraft Crash Report ----

// I just don't know what went wrong :(

 

Time: 5/31/15 8:54 AM

Description: Ticking memory connection

 

java.lang.NullPointerException: Ticking memory connection

at com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable.hasToolInSlot(TileEntityProtoTable.java:138)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.checkMatch(ProtoTableShapedRecipe.java:74)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.matches(ProtoTableShapedRecipe.java:46)

at com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager.findMatchingRecipe(ProtoTableCraftingManager.java:196)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.onCraftMatrixChanged(ProtoTableContainer.java:64)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.<init>(ProtoTableContainer.java:55)

at com.bigbaddevil7.rustic.handler.GuiHandler.getServerGuiElement(GuiHandler.java:25)

at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)

at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)

at com.bigbaddevil7.rustic.blocks.BlockProtoTable.onBlockActivated(BlockProtoTable.java:28)

at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)

at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)

at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable.hasToolInSlot(TileEntityProtoTable.java:138)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.checkMatch(ProtoTableShapedRecipe.java:74)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.matches(ProtoTableShapedRecipe.java:46)

at com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager.findMatchingRecipe(ProtoTableCraftingManager.java:196)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.onCraftMatrixChanged(ProtoTableContainer.java:64)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.<init>(ProtoTableContainer.java:55)

at com.bigbaddevil7.rustic.handler.GuiHandler.getServerGuiElement(GuiHandler.java:25)

at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)

at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)

at com.bigbaddevil7.rustic.blocks.BlockProtoTable.onBlockActivated(BlockProtoTable.java:28)

at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)

at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)

at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

 

-- Ticking connection --

Details:

Connection: net.minecraft.network.NetworkManager@7f965f33

Stacktrace:

at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

 

-- System Details --

Details:

Minecraft Version: 1.7.10

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.7.0_71, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 694883944 bytes (662 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.3.1408 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.3.1408-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{10.13.3.1408} [Minecraft Forge] (forgeSrc-1.7.10-10.13.3.1408-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

rustic{1.7.10-1.0} [Rustic] (Rustic 1.7.10) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.

Profiler Position: N/A (disabled)

Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Player Count: 1 / 8; [EntityPlayerMP['Player937'/405, l='New World', x=-96.45, y=79.00, z=287.42]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml,forge'

 

 

Link to comment
Share on other sites

Oops thought I added the crash log

 

 

---- Minecraft Crash Report ----

// I just don't know what went wrong :(

 

Time: 5/31/15 8:54 AM

Description: Ticking memory connection

 

java.lang.NullPointerException: Ticking memory connection

at com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable.hasToolInSlot(TileEntityProtoTable.java:138)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.checkMatch(ProtoTableShapedRecipe.java:74)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.matches(ProtoTableShapedRecipe.java:46)

at com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager.findMatchingRecipe(ProtoTableCraftingManager.java:196)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.onCraftMatrixChanged(ProtoTableContainer.java:64)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.<init>(ProtoTableContainer.java:55)

at com.bigbaddevil7.rustic.handler.GuiHandler.getServerGuiElement(GuiHandler.java:25)

at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)

at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)

at com.bigbaddevil7.rustic.blocks.BlockProtoTable.onBlockActivated(BlockProtoTable.java:28)

at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)

at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)

at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable.hasToolInSlot(TileEntityProtoTable.java:138)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.checkMatch(ProtoTableShapedRecipe.java:74)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.matches(ProtoTableShapedRecipe.java:46)

at com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager.findMatchingRecipe(ProtoTableCraftingManager.java:196)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.onCraftMatrixChanged(ProtoTableContainer.java:64)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.<init>(ProtoTableContainer.java:55)

at com.bigbaddevil7.rustic.handler.GuiHandler.getServerGuiElement(GuiHandler.java:25)

at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)

at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)

at com.bigbaddevil7.rustic.blocks.BlockProtoTable.onBlockActivated(BlockProtoTable.java:28)

at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)

at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)

at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

 

-- Ticking connection --

Details:

Connection: net.minecraft.network.NetworkManager@7f965f33

Stacktrace:

at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

 

-- System Details --

Details:

Minecraft Version: 1.7.10

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.7.0_71, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 694883944 bytes (662 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.3.1408 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.3.1408-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{10.13.3.1408} [Minecraft Forge] (forgeSrc-1.7.10-10.13.3.1408-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

rustic{1.7.10-1.0} [Rustic] (Rustic 1.7.10) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.

Profiler Position: N/A (disabled)

Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Player Count: 1 / 8; [EntityPlayerMP['Player937'/405, l='New World', x=-96.45, y=79.00, z=287.42]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml,forge'

 

 

 

The call for the method is in the checkMatch() within the Shaped Recipe class line 74 in my IDE.

Link to comment
Share on other sites

so basically its throwing a null before it can check for null, since I'm calling .getItem() on the slot and nothing is there to even grab a comparison.

 

Edit: I made a check to see if items[0] is null. Now I got to redo my check because I found out that you can't make items[] a static variable because something else messes with it if you do and wont let you split the stack properly. So I got to redo how my hasToolInSlot works...

Link to comment
Share on other sites

 

 

public boolean hasToolInSlot(){
        if(items[0] != null) {
            if (items[0].getItem().equals(Items.diamond)) {
                return true;
            }
        }
        return false;
    }

 

 

 

That is the updated method for the HasToolInSlot(). I am having this method get called in Shaped Recipe class. I can't make this method static because of items[] not being able to be static. So I always thought if you have to reference a non static variable or method to make a instance of the class that contains them and pass that along with what ever you need. So I did and threw another null pointer....

 

 

 

---- Minecraft Crash Report ----

// Hey, that tickles! Hehehe!

 

Time: 5/31/15 9:34 AM

Description: Ticking memory connection

 

java.lang.NullPointerException: Ticking memory connection

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.checkMatch(ProtoTableShapedRecipe.java:74)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.matches(ProtoTableShapedRecipe.java:46)

at com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager.findMatchingRecipe(ProtoTableCraftingManager.java:196)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.onCraftMatrixChanged(ProtoTableContainer.java:64)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.<init>(ProtoTableContainer.java:55)

at com.bigbaddevil7.rustic.handler.GuiHandler.getServerGuiElement(GuiHandler.java:25)

at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)

at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)

at com.bigbaddevil7.rustic.blocks.BlockProtoTable.onBlockActivated(BlockProtoTable.java:28)

at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)

at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)

at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.checkMatch(ProtoTableShapedRecipe.java:74)

at com.bigbaddevil7.rustic.crafting.ProtoTableShapedRecipe.matches(ProtoTableShapedRecipe.java:46)

at com.bigbaddevil7.rustic.crafting.ProtoTableCraftingManager.findMatchingRecipe(ProtoTableCraftingManager.java:196)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.onCraftMatrixChanged(ProtoTableContainer.java:64)

at com.bigbaddevil7.rustic.blocks.container.ProtoTableContainer.<init>(ProtoTableContainer.java:55)

at com.bigbaddevil7.rustic.handler.GuiHandler.getServerGuiElement(GuiHandler.java:25)

at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)

at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)

at com.bigbaddevil7.rustic.blocks.BlockProtoTable.onBlockActivated(BlockProtoTable.java:28)

at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)

at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)

at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)

at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

 

-- Ticking connection --

Details:

Connection: net.minecraft.network.NetworkManager@7de0e803

Stacktrace:

at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)

at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

 

-- System Details --

Details:

Minecraft Version: 1.7.10

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.7.0_71, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 696318400 bytes (664 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94

FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.3.1408 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.3.1408-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{10.13.3.1408} [Minecraft Forge] (forgeSrc-1.7.10-10.13.3.1408-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

rustic{1.7.10-1.0} [Rustic] (Rustic 1.7.10) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.

Profiler Position: N/A (disabled)

Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Player Count: 1 / 8; [EntityPlayerMP['Player984'/371, l='New World', x=-96.45, y=79.00, z=287.42]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml,forge'

 

 

 

updated Shaped Recipe class

 

 

package com.bigbaddevil7.rustic.crafting;

import com.bigbaddevil7.rustic.blocks.tileentities.TileEntityProtoTable;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

/**
* Created by bigbaddevil7 on 11/15/2014.
*/
public class ProtoTableShapedRecipe implements IRecipe {
    /** How many horizontal slots this recipe is wide. */
    public final int recipeWidth;
    /** How many vertical slots this recipe uses. */
    public final int recipeHeight;
    /** Is a array of ItemStack that composes the recipe. */
    public final ItemStack[] recipeItems;
    /** Is the ItemStack that you get when craft the recipe. */
    private ItemStack recipeOutput;
    private boolean field_92101_f;

    public ProtoTableShapedRecipe(int p_i1917_1_, int p_i1917_2_, ItemStack[] p_i1917_3_, ItemStack p_i1917_4_)
    {
        this.recipeWidth = p_i1917_1_;
        this.recipeHeight = p_i1917_2_;
        this.recipeItems = p_i1917_3_;
        this.recipeOutput = p_i1917_4_;
    }

    public ItemStack getRecipeOutput()
    {
        return this.recipeOutput;
    }

    /**
     * Used to check if a recipe matches current crafting inventory
     */
    public boolean matches(InventoryCrafting p_77569_1_, World p_77569_2_)
    {
        for (int i = 0; i <= 5 - this.recipeWidth; ++i)
        {
            for (int j = 0; j <= 5 - this.recipeHeight; ++j)
            {
                if (this.checkMatch(p_77569_1_, i, j, true))
                {
                    return true;
                }

                if (this.checkMatch(p_77569_1_, i, j, false))
                {
                    return true;
                }
            }
        }

        return false;
    }

    /**
     * Checks if the region of a crafting inventory is match for the recipe.
     */
    private boolean checkMatch(InventoryCrafting p_77573_1_, int p_77573_2_, int p_77573_3_, boolean p_77573_4_)
    {
        for (int k = 0; k < 5; ++k)
        {
            for (int l = 0; l < 5; ++l)
            {
                int i1 = k - p_77573_2_;
                int j1 = l - p_77573_3_;
                ItemStack itemstack = null;

                if(!TileEntityProtoTable.entityInstance.hasToolInSlot()){
                    return false;
                }

                if (i1 >= 0 && j1 >= 0 && i1 < this.recipeWidth && j1 < this.recipeHeight)
                {
                    if (p_77573_4_)
                    {
                        itemstack = this.recipeItems[this.recipeWidth - i1 - 1 + j1 * this.recipeWidth];
                    }
                    else
                    {
                        itemstack = this.recipeItems[i1 + j1 * this.recipeWidth];
                    }
                }

                ItemStack itemstack1 = p_77573_1_.getStackInRowAndColumn(k, l);

                if (itemstack1 != null || itemstack != null)
                {
                    if (itemstack1 == null && itemstack != null || itemstack1 != null && itemstack == null)
                    {
                        return false;
                    }

                    if (itemstack.getItem() != itemstack1.getItem())
                    {
                        return false;
                    }

                    if (itemstack.getItemDamage() != 32767 && itemstack.getItemDamage() != itemstack1.getItemDamage())
                    {
                        return false;
                    }
                }
            }
        }

        return true;
    }

    /**
     * Returns an Item that is the result of this recipe
     */
    public ItemStack getCraftingResult(InventoryCrafting p_77572_1_)
    {
        ItemStack itemstack = this.getRecipeOutput().copy();

        if (this.field_92101_f)
        {
            for (int i = 0; i < p_77572_1_.getSizeInventory(); ++i)
            {
                ItemStack itemstack1 = p_77572_1_.getStackInSlot(i);

                if (itemstack1 != null && itemstack1.hasTagCompound())
                {
                    itemstack.setTagCompound((NBTTagCompound)itemstack1.stackTagCompound.copy());
                }
            }
        }

        return itemstack;
    }

    /**
     * Returns the size of the recipe area
     */
    public int getRecipeSize()
    {
        return this.recipeWidth * this.recipeHeight;
    }

}

 

 

 

The check in the Shaped Recipe

if(!TileEntityProtoTable.entityInstance.hasToolInSlot()){
                    return false;
                }

 

Instance line in TileEntity

public static TileEntityProtoTable entityInstance;

Link to comment
Share on other sites

is it basic java? I've done two college classes specializing in Java beginner and advanced, and they have never mentioned stuff like this. Only how to use interfaces, inheritance, queues, stacks, and all the lesser stuff how making objects and general java rules... Where would you suggest I learn more about these issues, besides the Java trails. I know you say you can't learn programming from modding and understand why, I use it as a way to put into action what skills I do have. In return Minecraft beats the hell out of me for trying it seems.

I always hear people say learn basic Java and I for the most part think I do know basic Java. I was able to do bukkit/spigot plugins in Java for a while without much hassle. Is it more of a "How to Develop a game" that I should learn? More of the rules of java? Find a better college because this one doesn't have a higher Java class to take and the one I did take doesn't seem valuable. I don't know. Kind of at a loss here.

Link to comment
Share on other sites

Ok, so what would I have to do to properly make an instance of the class. I realized my error when I made mine because the one I looked at was in the main method, when you make an instance of your mod, that has annotations, and that I created the variable entityInstance but never assigned anything to it, so its null. I agree that is basic Java. I was in a rush when I did that and didn't stop to look at what I had done. So with that in mind and stopping to think about it for a while. Wouldn't I pass the itself into that variable once it has been gotten from the world. Then I would take that and be able to get information from it.

Link to comment
Share on other sites

Yea, thats what I'm trying to do is get it so the recipe can check the appropriate TileEntity. Obviously I don't have it setup properly. I understand the idea that its checking some tileEntity that isn't linked to it because it is just a recipe checker that take data from the crafting manager and tell the crafting manager if it was valid or not and that is it. it doesn't know where it is. What if instead of doing it the way I been trying to do it, because even I think it seems like a stupid idea the more I think of it. What if I do the check in the FindMatchingRecipe() of the craftingManager since its already passed the current inventory and world, or even in that matter do it in the container since they are already linked and have it checked there during the craftResult. 

 

By the way I bet you are raging at me, but I do much appreciate your time. Not often will people sit and explain why of what you are doing is wrong.

Link to comment
Share on other sites

The are both of the same inventory its for a 5x5 crafting table that has 4 Tile entity slots the rest is just like a normal crafting table, share the same container. Unless there is a piece to this I am missing I would believed they are already linked because it need to add the TileEntity slots to the container so it can use its logic along with its crafting counter part. Their constructors both grab the same location from the Gui Handler.

Link to comment
Share on other sites

When I looked at all the other examples that how it was shown and src code from other mods it's what I saw. I also only want the crafting grid to act like a normal crafting grid but bigger, so it was also why not do it like the already made crafting table add a TileEntity to it.

Link to comment
Share on other sites

Ok I was having issues trying to get my TileEntity to always be checking to make sure if the item is there.It is always checking the craftMatrix but not the tileEntity for updates when it calls the recipe. It will do fine when you first try the recipe, but I can still take a tool back out and since there isnt a listener for the item being there or not, it allows the crafting recipe until the craftMatrix updates again to make the call to check the slots of the tileEntity. At the moment im studying more java concepts outside of MC.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • SANGOMA IN MANKWENG ╬✯{+2760{680}{4550}✯╬TRADITIONAL HEALER IN POLOKWANE.Turfloop, Loius Trichardt Mokopane, Seshego, Lebowakgomo, Tzaneen, Mankweng, Mokopane, Lephalale, Burgersfort, Jane furse, Bochum, Phalaborwa Let me try and help you with love spells, traditional healing, native healing, fortune telling, witchcraft, psychic readings, black magic, voodoo, herbalist healing, or any other service your may desire within the realm of african native healing, the spirits and the ancestors. I am a sangoma and healer. I could help you to connect with the ancestors , interpret dreams, diagnose illness through divination with bones, and help you heal both physical and spiritual illness. We facilitate the deepening of your relationship to the spirit world and the ancestors. Working in partnership with one\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\’s ancestors is a gift representing a close link with the spirit realm as a mediator between the worlds.*   Witchdoctors, or sorcerers, are often purveyors of mutis and charms that cause harm to people. we believe that we are here for only one purpose, to heal through love and compassion.*   African people share a common understanding of the importance of ancestors in daily life. When they have lost touch with their ancestors, illness may result or bad luck. Then a traditional healer, or sangoma, is sought out who may prescribe herbs, changes in lifestyle, a career change, or changes in relationships. The client may also be told to perform a ceremony or purification ritual to appease the ancestors.*   Let us solve your problems using powerful African traditional methods. We believe that our ancestors and spirits give us enlightenment, wisdom, divine guidance, enabling us to overcome obstacles holding your life back. Our knowledge has been passed down through centuries, being refined along the way from generation to generation. We believe in the occult, the paranormal, the spirit world, the mystic world.*   The services here are based on the African Tradition Value system/religion,where we believe the ancestors and spirits play a very important role in society. The ancestors and spirits give guidance and counsel in society. They could enable us to see into the future and give solutions to the problems affecting us. We use rituals, divination, spells, chants and prayers to enable us tackle the task before us.*   I have experience in helping and guiding many people from all over the world. My psychic abilities may help you answer and resolve many unanswered questions
    • I tried playing my Minecraft world, it kept on making me leave the world and also kept on saying "Connection lost, invalid player data" and there was a button that said "Back to server list". And when I clicked it, it led me to the MULTIPLAYER MENU! Remember, this was a singleplayer world, NOT multiplayer. Its ever that I need to update forge (Which maybe is the reason why there is a flashing symbol right next to the Forge section in the mods menu), or its one of those stupid bugs. if its a bug, tell me that it is AND tell me how to fix it. If I cant, then just fix the bug for the new Forge update. ADIOS! -LiveZezo
    • Hi guys, I have a Minecraft mod pack 1.19.2 Could anyone help me to find the mod that causes this bug? When I place the item to craft something in the crafting table, the item that I want to craft doesn't show up on the right of the crafting table, but if I click in the square I can get it. Please help me   Here there is the mods list: https://pastebin.com/GwP38utW   Here are the logs: https://mega.nz/file/g39QhQbB#dIM_xytlAcIJVYh9rp81QrM3V2USvACG9hPamJ00Bq4
    • Recently updated the mod pack on my hosted server and from what I've see on the server logs this is a client side issue. When I try to join not just my server but a testing server (Purple Prison if it helps), I get the error IndexOutOfBoundsException on both ones. Mine is modded while the testing server is a vanilla server. The modpack works just fine when doing a single player world so I think it might just be a connection issue? To be fair, I don't have the best internet so not sure if this is just a connection issue from my internet that likes to be spotty with connection sometimes. I have reset my router already if that makes a difference. Any help please?
  • Topics

×
×
  • Create New...

Important Information

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