use namespaced IDs for entities

This commit is contained in:
dfsek 2021-08-17 10:04:11 -07:00
parent 0d04f79cd4
commit 1c124e8b75
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,6 @@
package com.dfsek.terra.bukkit.handles;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.terra.api.block.entity.BlockEntity;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.entity.EntityType;
@ -9,11 +10,14 @@ import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.vector.Vector3;
import com.dfsek.terra.bukkit.structure.WorldEditUtil;
import com.dfsek.terra.bukkit.world.BukkitAdapter;
import com.dfsek.terra.bukkit.world.BukkitBiome;
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockState;
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import java.util.Locale;
public class BukkitWorldHandle implements WorldHandle {
private final BlockState air;
@ -34,7 +38,8 @@ public class BukkitWorldHandle implements WorldHandle {
@Override
public EntityType getEntity(String id) {
return new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(id));
if(!id.startsWith("minecraft:")) throw new LoadException("Invalid entity identifier " + id);
return new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(id.toUpperCase(Locale.ROOT).substring(10)));
}
@Override

View File

@ -45,7 +45,7 @@ public class FabricWorldHandle implements WorldHandle {
@Override
public EntityType getEntity(String id) {
Identifier identifier = Identifier.tryParse(id);
if(identifier == null) identifier = Identifier.tryParse("minecraft:" + id.toLowerCase(Locale.ROOT));
if(identifier == null) identifier = Identifier.tryParse(id);
return (EntityType) Registry.ENTITY_TYPE.get(identifier);
}