Jump to content

How can I assign a private variable to an entity?


TheTrueSCP

Recommended Posts

Hi guys, i need help to the topic Variables. I have an entity and want animate them. My idea is if i Right Click my Animal should play an animation. For this I wrote a variable which is set to true with the getEntityInteractionResult() function. But if i rightclick my animal ALL my Enimals play the animation. How can i fix this?

Link to comment
Share on other sites

 Yes,This is my EntityClass

package net.thetruescp.lootbugs.entities.entities;

import net.minecraft.block.BlockState;
import net.minecraft.block.SoundType;
import net.minecraft.entity.AgeableEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.MobEntity;
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
import net.minecraft.entity.ai.attributes.Attributes;
import net.minecraft.entity.ai.goal.*;
import net.minecraft.entity.monster.SpiderEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.passive.PigEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.network.datasync.DataParameter;
import net.minecraft.network.datasync.DataSerializers;
import net.minecraft.network.datasync.EntityDataManager;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.Mod;
import net.thetruescp.lootbugs.LootbugsMain;
import net.thetruescp.lootbugs.client.Sound.ModSounds;
import net.thetruescp.lootbugs.client.model.LootbugModel;
import net.thetruescp.lootbugs.entities.ModEntityType;
import sun.security.ssl.Debug;

import javax.annotation.Nullable;

public class LootbugEntity extends AnimalEntity
{

    public static boolean isPetting = false;



    public static final Ingredient TEMPTATION_ITEMS = Ingredient.fromItems(Items.REDSTONE);

    public LootbugEntity(EntityType<? extends AnimalEntity> type, World world) {
        super(type, world);
    }


    //Register
    public static AttributeModifierMap.MutableAttribute setCustomAttributes()
    {
        return MobEntity.func_233666_p_()
                .createMutableAttribute(Attributes.MAX_HEALTH, 10.009)
                .createMutableAttribute(Attributes.MOVEMENT_SPEED, 0.25);


    }


    public ActionResultType getEntityInteractionResult(PlayerEntity playerIn, Hand hand) {
        boolean flag = this.isBreedingItem(playerIn.getHeldItem(hand));
        if (!playerIn.isCrouching() && playerIn.getHeldItem(hand).getItem() == Items.REDSTONE)
        {
            if (!this.world.isRemote) {
                playerIn.startRiding(this);
            }

            return ActionResultType.func_233537_a_(this.world.isRemote);

        }
        else if(playerIn.isCrouching())
        {

            return ActionResultType.func_233537_a_(this.world.isRemote);
        }


        else {
            world.playSound(playerIn.getPosX(),playerIn.getPosY(),playerIn.getPosZ(), ModSounds.LOOTBUG_REACTION.get(),SoundCategory.NEUTRAL,12,12,true);
           LootbugEntity.isPetting = true;

            System.out.println("Feed Lootubg");

            return ActionResultType.func_233537_a_(this.world.isRemote);

        }
    }





    @Override
    protected void registerGoals() {
        super.registerGoals();
        this.goalSelector.addGoal(0, new SwimGoal(this));
       // this.goalSelector.addGoal(1, new PanicGoal(this, 2.250));
        this.goalSelector.addGoal(2, new BreedGoal(this, 1.80));
        this.goalSelector.addGoal(4, new TemptGoal(this, 1.2D, false, TEMPTATION_ITEMS));
        this.goalSelector.addGoal(5, new FollowParentGoal(this, 1.1D));

        this.goalSelector.addGoal(6, new WaterAvoidingRandomWalkingGoal(this, 1.0D));
        this.goalSelector.addGoal(7, new LookAtGoal(this, PlayerEntity.class, 6.0F));
        this.goalSelector.addGoal(8, new LookRandomlyGoal(this));
    }

    //Riding

    @Nullable
    public Entity getControllingPassenger() {
        return this.getPassengers().isEmpty() ? null : this.getPassengers().get(0);
    }




    @Nullable
    @Override
    public AgeableEntity createChild(ServerWorld world, AgeableEntity mate) {
        return ModEntityType.LOOTBUG.get().create(this.world);
    }

    @Override
    protected int getExperiencePoints(PlayerEntity player) {
        return 1 + this.world.rand.nextInt(4);
    }

    @Nullable
    @Override
    protected SoundEvent getAmbientSound()
    {
        return ModSounds.LOOTBUG_IDLE.get();
    }

    @Nullable
    @Override
    protected SoundEvent getDeathSound() {
        return ModSounds.LOOTBUG_DEATH.get();
    }

    @Nullable
    @Override
    protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
        return ModSounds.LOOTBUG_HURT.get();
    }

    @Override
    protected void playStepSound(BlockPos pos, BlockState blockIn) {
        this.playSound(ModSounds.LOOTBUG_IDLE.get(), 0.30F, 1.0F);
    }

    @Override
    public boolean isBreedingItem(ItemStack stack) {
        return TEMPTATION_ITEMS.test(stack);
    }
}

and this is my ModelClass:

package net.thetruescp.lootbugs.client.model;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.entity.model.EntityModel;
import net.minecraft.client.renderer.entity.model.QuadrupedModel;
import net.minecraft.client.renderer.model.ModelRenderer;
import net.minecraft.util.math.MathHelper;
import net.thetruescp.lootbugs.entities.entities.LootbugEntity;

import javax.swing.text.html.parser.Entity;

public class LootbugModel<T extends LootbugEntity> extends EntityModel<T>
{
    private final ModelRenderer Leg3;
    private final ModelRenderer Head2;
    private final ModelRenderer Leg4;
    private final ModelRenderer Leg1;
    private final ModelRenderer tail3;
    private final ModelRenderer tail2;
    private final ModelRenderer head1;
    private final ModelRenderer tail1;
    private final ModelRenderer Leg2;
    private final ModelRenderer body;

    public LootbugModel() {
        textureWidth = 128;
        textureHeight = 128;

        Leg3 = new ModelRenderer(this);
        Leg3.setRotationPoint(0.0F, 22.0F, 4.0F);
        Leg3.setTextureOffset(68, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg3.setTextureOffset(70, 44).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Head2 = new ModelRenderer(this);
        Head2.setRotationPoint(0.0F, 17.0F, -11.0F);
        Head2.setTextureOffset(58, 52).addBox(-8.0F, -7.0F, -5.0F, 16.0F, 14.0F, 10.0F, 0.0F, false);

        Leg4 = new ModelRenderer(this);
        Leg4.setRotationPoint(0.0F, 22.0F, 10.0F);
        Leg4.setTextureOffset(0, 86).addBox(6.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg4.setTextureOffset(52, 76).addBox(-12.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Leg1 = new ModelRenderer(this);
        Leg1.setRotationPoint(0.0F, 22.0F, -8.0F);
        Leg1.setTextureOffset(72, 76).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg1.setTextureOffset(54, 40).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        tail3 = new ModelRenderer(this);
        tail3.setRotationPoint(0.0F, 21.0F, 14.0F);
        tail3.setTextureOffset(68, 22).addBox(-4.0F, -3.0F, -6.0F, 8.0F, 6.0F, 12.0F, 0.0F, false);

        tail2 = new ModelRenderer(this);
        tail2.setRotationPoint(0.0F, 19.0F, 11.0F);
        tail2.setTextureOffset(0, 62).addBox(-6.0F, -5.0F, -7.0F, 12.0F, 10.0F, 14.0F, 0.0F, false);

        head1 = new ModelRenderer(this);
        head1.setRotationPoint(0.0F, 20.0F, -14.0F);
        head1.setTextureOffset(64, 0).addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F, 0.0F, false);

        tail1 = new ModelRenderer(this);
        tail1.setRotationPoint(0.0F, 17.0F, 5.0F);
        tail1.setTextureOffset(0, 34).addBox(-10.0F, -7.0F, -7.0F, 20.0F, 14.0F, 14.0F, 0.0F, false);

        Leg2 = new ModelRenderer(this);
        Leg2.setRotationPoint(0.0F, 22.0F, -2.0F);
        Leg2.setTextureOffset(48, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg2.setTextureOffset(38, 62).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        body = new ModelRenderer(this);
        body.setRotationPoint(0.0F, 15.0F, -4.0F);
        body.setTextureOffset(0, 0).addBox(-12.0F, -9.0F, -8.0F, 24.0F, 18.0F, 16.0F, 0.0F, false);
    }



    @Override
    public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
        Leg3.render(matrixStack, buffer, packedLight, packedOverlay);
        Head2.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg4.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail3.render(matrixStack, buffer, packedLight, packedOverlay);
        tail2.render(matrixStack, buffer, packedLight, packedOverlay);
        head1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail1.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg2.render(matrixStack, buffer, packedLight, packedOverlay);
        body.render(matrixStack, buffer, packedLight, packedOverlay);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }

    @Override
    public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {

        // LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS

        this.Leg1.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;
        this.Leg1.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;

        this.Leg2.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;
        this.Leg2.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;

        this.Leg3.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;
        this.Leg3.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F + (float)Math.PI) * 0.2F * limbSwingAmount;

        this.Leg4.rotateAngleX = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;
        this.Leg4.rotateAngleY = MathHelper.sin(limbSwing * 0.6662F) * 0.2F * limbSwingAmount;

// LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS-LEGS

// BODY-BODY-BODY-BODY-BODY-BODY-BODY
        this.body.rotateAngleZ = MathHelper.sin(limbSwing * 0.6662F) * 0.1F * limbSwingAmount;//


      if(LootbugEntity.isPetting)
      {
          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;
          this.tail1.rotateAngleX =  -0.45F * 0.1F * ageInTicks;
          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;

          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;
          this.tail2.rotateAngleX = - 0.45F *0.1F * ageInTicks;
          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;

          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;
          this.tail3.rotateAngleX =  -0.45F * 0.1F * ageInTicks;
          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;

          LootbugEntity.isPetting = false;


      }

    }
}

 

Link to comment
Share on other sites

Yup, as suspected, your field is static meaning that it's bound to the class and not to a specific instance of your entity.
All entities will share this variable meaning that if one sets it to true, it changes for the other ones too.
Please learn basic Java before modding.

  • Like 1
Link to comment
Share on other sites

sorry for writing again but I've tried a bit and although I now use the variables from Minecraft, but the same thing still happens 

this is the piece of code that I have rewritten:

 @Override
    public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {


      if(entityIn.isBurning())
      {



          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;


          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;


          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;




      }

    }

 

Edited by TheTrueSCP
Link to comment
Share on other sites

 

I have already removed the static from the isPetting and now used the is burning for the test. but still it doesn't work

package net.thetruescp.lootbugs.client.model;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.renderer.entity.model.EntityModel;
import net.minecraft.client.renderer.model.ModelRenderer;
import net.thetruescp.lootbugs.entities.LootbugEntity;

public class LootbugModel<T extends LootbugEntity> extends EntityModel<T>
{
    private final ModelRenderer Leg3;
    private final ModelRenderer Head2;
    private final ModelRenderer Leg4;
    private final ModelRenderer Leg1;
    private final ModelRenderer tail3;
    private final ModelRenderer tail2;
    private final ModelRenderer head1;
    private final ModelRenderer tail1;
    private final ModelRenderer Leg2;
    private final ModelRenderer body;

    public LootbugModel() {
        textureWidth = 128;
        textureHeight = 128;

        Leg3 = new ModelRenderer(this);
        Leg3.setRotationPoint(0.0F, 22.0F, 4.0F);
        Leg3.setTextureOffset(68, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg3.setTextureOffset(70, 44).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Head2 = new ModelRenderer(this);
        Head2.setRotationPoint(0.0F, 17.0F, -11.0F);
        Head2.setTextureOffset(58, 52).addBox(-8.0F, -7.0F, -5.0F, 16.0F, 14.0F, 10.0F, 0.0F, false);

        Leg4 = new ModelRenderer(this);
        Leg4.setRotationPoint(0.0F, 22.0F, 10.0F);
        Leg4.setTextureOffset(0, 86).addBox(6.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg4.setTextureOffset(52, 76).addBox(-12.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        Leg1 = new ModelRenderer(this);
        Leg1.setRotationPoint(0.0F, 22.0F, -8.0F);
        Leg1.setTextureOffset(72, 76).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg1.setTextureOffset(54, 40).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        tail3 = new ModelRenderer(this);
        tail3.setRotationPoint(0.0F, 21.0F, 14.0F);
        tail3.setTextureOffset(68, 22).addBox(-4.0F, -3.0F, -6.0F, 8.0F, 6.0F, 12.0F, 0.0F, false);

        tail2 = new ModelRenderer(this);
        tail2.setRotationPoint(0.0F, 19.0F, 11.0F);
        tail2.setTextureOffset(0, 62).addBox(-6.0F, -5.0F, -7.0F, 12.0F, 10.0F, 14.0F, 0.0F, false);

        head1 = new ModelRenderer(this);
        head1.setRotationPoint(0.0F, 20.0F, -14.0F);
        head1.setTextureOffset(64, 0).addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F, 0.0F, false);

        tail1 = new ModelRenderer(this);
        tail1.setRotationPoint(0.0F, 17.0F, 5.0F);
        tail1.setTextureOffset(0, 34).addBox(-10.0F, -7.0F, -7.0F, 20.0F, 14.0F, 14.0F, 0.0F, false);

        Leg2 = new ModelRenderer(this);
        Leg2.setRotationPoint(0.0F, 22.0F, -2.0F);
        Leg2.setTextureOffset(48, 84).addBox(8.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);
        Leg2.setTextureOffset(38, 62).addBox(-14.0F, -2.0F, -2.0F, 6.0F, 4.0F, 4.0F, 0.0F, false);

        body = new ModelRenderer(this);
        body.setRotationPoint(0.0F, 15.0F, -4.0F);
        body.setTextureOffset(0, 0).addBox(-12.0F, -9.0F, -8.0F, 24.0F, 18.0F, 16.0F, 0.0F, false);
    }



    @Override
    public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
        Leg3.render(matrixStack, buffer, packedLight, packedOverlay);
        Head2.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg4.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail3.render(matrixStack, buffer, packedLight, packedOverlay);
        tail2.render(matrixStack, buffer, packedLight, packedOverlay);
        head1.render(matrixStack, buffer, packedLight, packedOverlay);
        tail1.render(matrixStack, buffer, packedLight, packedOverlay);
        Leg2.render(matrixStack, buffer, packedLight, packedOverlay);
        body.render(matrixStack, buffer, packedLight, packedOverlay);
    }

    public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
        modelRenderer.rotateAngleX = x;
        modelRenderer.rotateAngleY = y;
        modelRenderer.rotateAngleZ = z;
    }

    @Override
    public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {


      if(entityIn.isBurning())
      {



          this.tail1.rotateAngleX =  0.45F * 0.1F * ageInTicks;


          this.tail2.rotateAngleX =  0.45F *0.1F * ageInTicks;


          this.tail3.rotateAngleX =  0.45F * 0.1F * ageInTicks;




      }

    }
}

 

Link to comment
Share on other sites

package net.thetruescp.lootbugs.client.render;

import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.util.ResourceLocation;
import net.thetruescp.lootbugs.LootbugsMain;

import net.thetruescp.lootbugs.client.model.LootbugModel;
import net.thetruescp.lootbugs.entities.LootbugEntity;

public class LootbugRender extends MobRenderer<LootbugEntity, LootbugModel<LootbugEntity>>
{

    protected static final ResourceLocation TEXTURE = new ResourceLocation(LootbugsMain.MOD_ID,"textures/entity/lootbug_hannes.png");

    public LootbugRender(EntityRendererManager renderManagerIn) {
        super(renderManagerIn, new LootbugModel<>(), 0.7f);
    }


    @Override
    public ResourceLocation getEntityTexture(LootbugEntity entity) {
        return TEXTURE;
    }
}

 

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

    • So i know for a fact this has been asked before but Render stuff troubles me a little and i didnt find any answer for recent version. I have a custom nausea effect. Currently i add both my nausea effect and the vanilla one for the effect. But the problem is that when I open the inventory, both are listed, while I'd only want mine to show up (both in the inv and on the GUI)   I've arrived to the GameRender (on joined/net/minecraft/client) and also found shaders on client-extra/assets/minecraft/shaders/post and client-extra/assets/minecraft/shaders/program but I'm lost. I understand that its like a regular screen, where I'd render stuff "over" the game depending on data on the server, but If someone could point to the right client and server classes that i can read to see how i can manage this or any tip would be apreciated
    • 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
    • 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
    • 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
    • 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
  • Topics

×
×
  • Create New...

Important Information

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