Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[SOLVED][1.12.2] Custom snowballs sometimes hitting thrower


Sunser
 Share

Recommended Posts

Hi all. Before I start, know that I'm beginning with MC mod developing, plus my English is not always very clear. :/

 

I'm trying to create custom snowballs. I have met some issues with the

protected void onImpact(RayTraceResult result);

function. Sometimes, the thrower receives the snowball's effects, and obviously not want this. This does not append with all of my custom snowballs.

EntityFlintSnowball : working correctly (I haven't change that much the original code from the snowball entity)

Spoiler

 


@Override
protected void onImpact(RayTraceResult result) {
	if (result.entityHit != null) {
		int i = 0;
		if (result.entityHit instanceof EntityPlayer) {
			i=2; 
		}
		result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), (float)i);
	} 
	if (!this.world.isRemote) {
		this.world.setEntityState(this, (byte)3); this.setDead(); 
	} 
}

 

 

 

EntityTNTSnowball : working correctly (a bit more changes)

Spoiler

 


@Override
    protected void onImpact(RayTraceResult result)
    {
        if (!this.world.isRemote)
        {
            Explosion explosionIn = new Explosion(this.world,this.thrower,this.posX,this.posY,this.posZ,0.5F,false,true);
            EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(this.world, (double)((float)this.posX + 0.5F), this.posY, (double)((float)this.posZ + 0.5F), explosionIn.getExplosivePlacedBy());
            entitytntprimed.setFuse((short)(this.world.rand.nextInt(entitytntprimed.getFuse() / 4) + entitytntprimed.getFuse() / 8));
            this.world.createExplosion(entitytntprimed, this.posX, this.posY + (double)(this.height / 16.0F), this.posZ, 1.0F, true);

            this.world.setEntityState(this, (byte)3);
            this.setDead();
        }
    }

 

EntityPoisonSnowball : not working correctly (thrower hit by projectile)

Spoiler

@Override
    protected void onImpact(RayTraceResult result)
    {
        if (result.entityHit != null)
        {
            if (result.entityHit instanceof EntityPlayer)
            {
                PotionEffect eff = new PotionEffect(MobEffects.POISON,60);
                ((EntityPlayer) result.entityHit).addPotionEffect(eff);
                result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0.0F);

            }
        }

        if (!this.world.isRemote)
        {
            this.world.setEntityState(this, (byte)3);
            this.setDead();
        }
    }

 

EntityFireSnowball : not working correctly

Spoiler

@Override
    protected void onImpact(RayTraceResult result)
    {
        if (result.entityHit != null)
        {
            if (result.entityHit instanceof EntityPlayer)
            {
                result.entityHit.setFire(3);
            }
            result.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0.0F);
        }

        if (!this.world.isRemote)
        {
            this.world.setEntityState(this, (byte)3);
            this.setDead();
        }
    }

 

All my snowballs are registered, rendered and working well apart from this problem. Please let me know if you have any idea. Thanks for reading.

 

Edited by Sunser
solved
Link to comment
Share on other sites

As far as I know this is an issue from vanilla, the EntityArrow has an if clause to check if the owner was hit and ignores him. YOu could do similar checks respecting the age to make it possible to hit yourself if you throw it straight up.

Edited by MCenderdragon

catch(Exception e)

{

 

}

Yay, Pokémon exception handling, gotta catch 'em all (and then do nothing with 'em).

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.

Guest
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Hey! I keep getting this error when I start my own Minecraft server: (Also to note: I am not very knowledge on how Java works as my servers have almost never had any type of issue) 2021-10-23 18:47:36,993 main ERROR Error processing element Queue ([Appenders: null]): CLASS_NOT_FOUND 2021-10-23 18:47:37,041 main WARN Advanced terminal features are not available in this environment 2021-10-23 18:47:37,078 main ERROR Unable to locate appender "ServerGuiConsole" for logger config "root" ←[32m[18:47:37] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.forgeVersion, 31.2.50, --fml.mcpVersion, 20200515.085601, --fml.mcVersion, 1.15.2, --fml.forgeGroup, net.minecraftforge, nogui] ←[m←[32m[18:47:37] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 5.1.2+70+master.2845bb9 starting: java version 15.0.2 by Oracle Corporation ←[m←[1;31m[18:47:37] [main/FATAL] [ne.mi.fm.lo.FMLLoader/CORE]: Access Transformer library is missing, we need this to run ←[m←[1;31m[18:47:37] [main/ERROR] [cp.mo.mo.TransformationServiceDecorator/MODLAUNCHER]: Service failed to load fml cpw.mods.modlauncher.api.IncompatibleEnvironmentException: Missing AccessTransformer, cannot run         at net.minecraftforge.fml.loading.FMLLoader.lambda$onInitialLoad$1(FMLLoader.java:104) ~[forge2.jar:31.2] {}         at java.util.Optional.orElseThrow(Optional.java:401) ~[?:?] {}         at net.minecraftforge.fml.loading.FMLLoader.onInitialLoad(FMLLoader.java:102) ~[forge2.jar:31.2] {}         at net.minecraftforge.fml.loading.FMLServiceProvider.onLoad(FMLServiceProvider.java:122) ~[forge2.jar:31.2] {}         at cpw.mods.modlauncher.TransformationServiceDecorator.onLoad(TransformationServiceDecorator.java:53) ~[modlauncher-5.1.2.jar:?] {}         at cpw.mods.modlauncher.TransformationServicesHandler.lambda$loadTransformationServices$11(TransformationServicesHandler.java:131) ~[modlauncher-5.1.2.jar:?] {}         at java.util.HashMap$Values.forEach(HashMap.java:1067) [?:?] {}         at cpw.mods.modlauncher.TransformationServicesHandler.loadTransformationServices(TransformationServicesHandler.java:131) [modlauncher-5.1.2.jar:?] {}         at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:56) [modlauncher-5.1.2.jar:?] {}         at cpw.mods.modlauncher.Launcher.run(Launcher.java:75) [modlauncher-5.1.2.jar:?] {}         at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.1.2.jar:?] {}         at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63) [forge2.jar:?] {}         at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60) [forge2.jar:?] {}         at net.minecraftforge.server.ServerMain.main(ServerMain.java:57) [forge2.jar:?] {} ←[m←[1;31m[18:47:37] [main/ERROR] [cp.mo.mo.TransformationServicesHandler/MODLAUNCHER]: Found 1 services that failed to load : [fml] ←[m←[32m[18:47:37] [main/INFO] [STDERR/]: [net.minecraftforge.server.ServerMain$Runner:runLauncher:65]: The server is missing critical libraries and cannot load. Please run the installer to correct this ←[m
    • Hi, I don't know much about Minecraft Mod programming, and I'm making a mod, I need to know how to scale the model from the adult version to the child version. I'm currently doing the mod itself by Mcreator, and modeling by Blockbench. The reproduction of this mob is done, the problem is, the child is the same size as the adult. At first I would use two different models for this animal, but researching a little, I found that there is a way to scale the model. I wanted to know how to do this. Here below is the code.  
    • When I try to load it. It starts up but none can join the server as the forge jar is corrupted some how. Believe it is a fault in the update.  
    • Sorry I didn’t explain it in much detail at first hopefully this will be much more easier to understand. I am running a 1.16.5 forge server with java 8 there is multiple errors which you can see in the paste bin right at the top. Not sure what is the problem with it I followed a YouTube video it worked for him but not for me I believe it is because it is not registering the main class which is coursing the forge not to work it has no mods at all.
    • Here is the Link to the debug.log.  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.