Sponge icon indicating copy to clipboard operation
Sponge copied to clipboard

Mismatch between Entity.getType() and EntityTypes

Open Pulverizer opened this issue 3 years ago • 2 comments

I am currently running

  • SpongeVanilla version: latest stable-7 in a dev environment
  • Java version: 8 build 251
  • Operating System: Windows 10
  • Plugins:

Issue Description When spawning Primed TNT from a Dispenser this code says that the entity class is the TNT item, not the entity PrimedTNT. And all the .equals() / == return false

getType().getID() returns minecraft:tnt entity.getType().getId() == "minecraft:tnt" returns true, but entity.getType().getId().equals("minecraft:tnt") returns false???

Code:

package io.github.pulverizer.testplugin;

import org.spongepowered.api.block.BlockTypes;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.entity.SpawnEntityEvent;
import org.spongepowered.api.world.LocatableBlock;

import java.util.HashSet;
import java.util.Set;

public class DispenserTNTListener {

    @Listener
    public void dispenserFiringTNT(SpawnEntityEvent event) {
        LocatableBlock source = (LocatableBlock) event.getSource();

        if (source.getBlockState().getType().equals(BlockTypes.DISPENSER)) {

            event.getEntities().forEach(entity -> TestPlugin.getInstance().getLogger().info(entity.getType() == ItemTypes.TNT));

            event.getEntities().forEach(entity -> TestPlugin.getInstance().getLogger().info(entity.getType() == EntityTypes.PRIMED_TNT));

            event.getEntities().forEach(entity -> TestPlugin.getInstance().getLogger().info(entity.getType().equals(EntityTypes.PRIMED_TNT)));

            event.getEntities().forEach(entity -> TestPlugin.getInstance().getLogger().info(entity.getType() == ItemTypes.TNT));

            event.getEntities().forEach(entity -> TestPlugin.getInstance().getLogger().info(entity.getType().getEntityClass().getName()));
        }
    }
}

Pulverizer avatar Mar 26 '21 15:03 Pulverizer

Unable to reproduce on SpongeVanilla api-8 branch (https://github.com/SpongePowered/Sponge/commit/79d85eba5a6f367f4cb3aa70b5b824361d3e9d31)

Using the snippet you provided entity.type() == EntityTypes.TNT.get() // true

ImMorpheus avatar Jan 01 '22 03:01 ImMorpheus

Unable to reproduce on SpongeVanilla api-8 branch (79d85eb)

Using the snippet you provided entity.type() == EntityTypes.TNT.get() // true

Why have you tested it on api-8 when the issue was posted for stable-7?

Pulverizer avatar Jan 01 '22 05:01 Pulverizer