Sponge
Sponge copied to clipboard
Mismatch between Entity.getType() and EntityTypes
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()));
}
}
}
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
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?