diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/JavaEntityType.java b/api/src/main/java/org/geysermc/geyser/api/entity/JavaEntityType.java index 07374b184..28181137a 100644 --- a/api/src/main/java/org/geysermc/geyser/api/entity/JavaEntityType.java +++ b/api/src/main/java/org/geysermc/geyser/api/entity/JavaEntityType.java @@ -30,18 +30,25 @@ import org.checkerframework.checker.nullness.qual.NonNull; import org.geysermc.geyser.api.GeyserApi; import org.geysermc.geyser.api.util.Identifier; +/** + * Represents a Java edition entity type + */ public interface JavaEntityType { - Identifier javaIdentifier(); + /** + * @return the identifier of the type + */ + Identifier identifier(); + /** + * @return the + */ int javaId(); - boolean isUnregistered(); - boolean vanilla(); default boolean is(Identifier javaIdentifier) { - return javaIdentifier().equals(javaIdentifier); + return identifier().equals(javaIdentifier); } static JavaEntityType ofVanilla(@NonNull Identifier javaIdentifier) { diff --git a/api/src/main/java/org/geysermc/geyser/api/entity/CustomEntityDefinition.java b/api/src/main/java/org/geysermc/geyser/api/entity/custom/CustomEntityDefinition.java similarity index 94% rename from api/src/main/java/org/geysermc/geyser/api/entity/CustomEntityDefinition.java rename to api/src/main/java/org/geysermc/geyser/api/entity/custom/CustomEntityDefinition.java index 0b409bd16..3885f1323 100644 --- a/api/src/main/java/org/geysermc/geyser/api/entity/CustomEntityDefinition.java +++ b/api/src/main/java/org/geysermc/geyser/api/entity/custom/CustomEntityDefinition.java @@ -23,17 +23,17 @@ * @link https://github.com/GeyserMC/Geyser */ -package org.geysermc.geyser.api.entity; +package org.geysermc.geyser.api.entity.custom; import org.checkerframework.checker.index.qual.Positive; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.common.returnsreceiver.qual.This; import org.geysermc.geyser.api.GeyserApi; +import org.geysermc.geyser.api.util.Identifier; public interface CustomEntityDefinition { - // TODO Identifier - String bedrockIdentifier(); + Identifier bedrockIdentifier(); float width(); diff --git a/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineCustomEntitiesEvent.java b/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineCustomEntitiesEvent.java index 65fd52552..48386b35f 100644 --- a/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineCustomEntitiesEvent.java +++ b/api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineCustomEntitiesEvent.java @@ -26,7 +26,7 @@ package org.geysermc.geyser.api.event.lifecycle; import org.geysermc.event.Event; -import org.geysermc.geyser.api.entity.CustomEntityDefinition; +import org.geysermc.geyser.api.entity.custom.CustomEntityDefinition; import java.util.List; diff --git a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java index 4e9030ed2..ee8fe928b 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java +++ b/core/src/main/java/org/geysermc/geyser/entity/EntityDefinitions.java @@ -30,7 +30,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.geyser.GeyserImpl; -import org.geysermc.geyser.api.entity.CustomEntityDefinition; +import org.geysermc.geyser.api.entity.custom.CustomEntityDefinition; import org.geysermc.geyser.api.entity.property.GeyserEntityProperty; import org.geysermc.geyser.api.entity.property.type.GeyserFloatEntityProperty; import org.geysermc.geyser.api.entity.property.type.GeyserStringEnumProperty; diff --git a/core/src/main/java/org/geysermc/geyser/entity/GeyserCustomEntityDefinition.java b/core/src/main/java/org/geysermc/geyser/entity/GeyserCustomEntityDefinition.java index 84af91ce9..76191ff60 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/GeyserCustomEntityDefinition.java +++ b/core/src/main/java/org/geysermc/geyser/entity/GeyserCustomEntityDefinition.java @@ -32,7 +32,7 @@ import lombok.ToString; import lombok.experimental.Accessors; import org.checkerframework.checker.index.qual.Positive; import org.checkerframework.checker.nullness.qual.NonNull; -import org.geysermc.geyser.api.entity.CustomEntityDefinition; +import org.geysermc.geyser.api.entity.custom.CustomEntityDefinition; import org.geysermc.geyser.api.entity.JavaEntityType; import org.geysermc.geyser.api.predicate.MinecraftPredicate; import org.geysermc.geyser.api.predicate.PredicateStrategy; diff --git a/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityType.java b/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityType.java index 7eb60e308..775783afc 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityType.java +++ b/core/src/main/java/org/geysermc/geyser/entity/GeyserEntityType.java @@ -46,7 +46,7 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; -public record GeyserEntityType(Identifier javaIdentifier, int javaId) implements JavaEntityType { +public record GeyserEntityType(Identifier identifier, int javaId) implements JavaEntityType { private static final Identifier UNREGISTERED = IdentifierImpl.of(Constants.GEYSER_CUSTOM_NAMESPACE, "unregistered_sadface"); private static final Map VANILLA = new EnumMap<>(BuiltinEntityType.class); @@ -67,9 +67,8 @@ public record GeyserEntityType(Identifier javaIdentifier, int javaId) implements this(UNREGISTERED, javaId); } - @Override public boolean isUnregistered() { - return javaIdentifier.equals(UNREGISTERED); + return identifier.equals(UNREGISTERED); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/entity/VanillaEntityDefinition.java b/core/src/main/java/org/geysermc/geyser/entity/VanillaEntityDefinition.java index 76933b1ec..8453a36c7 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/VanillaEntityDefinition.java +++ b/core/src/main/java/org/geysermc/geyser/entity/VanillaEntityDefinition.java @@ -138,7 +138,7 @@ public class VanillaEntityDefinition extends EntityDefinition< if (type == null) { throw new IllegalStateException("Missing entity type!"); } else if (bedrockIdentifier == null) { - bedrockIdentifier = type.javaIdentifier().toString(); + bedrockIdentifier = type.identifier().toString(); } } @@ -153,7 +153,7 @@ public class VanillaEntityDefinition extends EntityDefinition< VanillaEntityDefinition definition = new VanillaEntityDefinition<>(factory, type, bedrockIdentifier, width, height, offset, registeredProperties, translators); if (register && definition.entityType() != null) { Registries.ENTITY_DEFINITIONS.get().putIfAbsent(definition.entityType(), definition); - Registries.JAVA_ENTITY_IDENTIFIERS.get().putIfAbsent(type.javaIdentifier().toString(), definition); + Registries.JAVA_ENTITY_IDENTIFIERS.get().putIfAbsent(type.identifier().toString(), definition); } return definition; } diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java b/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java index 90ff6fa42..ddc5fc16e 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/Entity.java @@ -669,6 +669,8 @@ public class Entity implements GeyserEntity { return this.valid; } + + /** * Update the suggestion that the client currently has on their screen for this entity (for example, "Feed" or "Ride") */ diff --git a/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java b/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java index fd6b3b179..83551bc59 100644 --- a/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java +++ b/core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java @@ -111,7 +111,7 @@ public interface RegistryHasher extends MinecraftHasher { RegistryHasher ENTITY_TYPE = registry(JavaRegistries.ENTITY_TYPE); - MinecraftHasher ENTITY_TYPE_KEY = IDENTIFIER.cast(type -> GeyserEntityType.of(type).javaIdentifier()); + MinecraftHasher ENTITY_TYPE_KEY = IDENTIFIER.cast(type -> GeyserEntityType.of(type).identifier()); MinecraftHasher BLOCK_ENTITY_TYPE_KEY = enumRegistry(); diff --git a/core/src/main/java/org/geysermc/geyser/registry/Registries.java b/core/src/main/java/org/geysermc/geyser/registry/Registries.java index a3ad2a0ac..7c7fd6748 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/Registries.java +++ b/core/src/main/java/org/geysermc/geyser/registry/Registries.java @@ -37,7 +37,6 @@ import org.cloudburstmc.protocol.bedrock.data.biome.BiomeDefinitions; import org.cloudburstmc.protocol.bedrock.data.inventory.crafting.PotionMixData; import org.cloudburstmc.protocol.bedrock.packet.BedrockPacket; import org.geysermc.geyser.GeyserImpl; -import org.geysermc.geyser.api.entity.CustomEntityDefinition; import org.geysermc.geyser.api.entity.JavaEntityType; import org.geysermc.geyser.entity.GeyserCustomEntityDefinition; import org.geysermc.geyser.entity.VanillaEntityDefinition; diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java b/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java index 6f387aeee..6c7a6cf6d 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/ProviderRegistryLoader.java @@ -34,7 +34,7 @@ import org.geysermc.geyser.api.block.custom.component.GeometryComponent; import org.geysermc.geyser.api.block.custom.component.MaterialInstance; import org.geysermc.geyser.api.block.custom.nonvanilla.JavaBlockState; import org.geysermc.geyser.api.command.Command; -import org.geysermc.geyser.api.entity.CustomEntityDefinition; +import org.geysermc.geyser.api.entity.custom.CustomEntityDefinition; import org.geysermc.geyser.api.entity.JavaEntityType; import org.geysermc.geyser.api.event.EventRegistrar; import org.geysermc.geyser.api.extension.Extension; diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java b/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java index d52c7408e..c428affe9 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java @@ -189,7 +189,7 @@ public class JavaRegistries { } private static RegistryEntryData wrap(GeyserEntityType type) { - return new RegistryEntryData<>(type.javaId(), MinecraftKey.identifierToKey(type.javaIdentifier()), type); + return new RegistryEntryData<>(type.javaId(), MinecraftKey.identifierToKey(type.identifier()), type); } } diff --git a/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java b/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java index 5c11d6453..a60518e69 100644 --- a/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/EntityUtils.java @@ -366,7 +366,7 @@ public final class EntityUtils { return "Player"; // the player's name is always shown instead } // this works at least with all 1.20.5 entities, except the killer bunny since that's not an entity type. - Identifier typeName = type.javaIdentifier(); + Identifier typeName = type.identifier(); return translatedEntityName(typeName.namespace(), typeName.path(), session); }