add createPlayer
This commit is contained in:
parent
a6070ef5cc
commit
549f897013
2 changed files with 19 additions and 0 deletions
|
@ -36,6 +36,8 @@ public interface EntityLibAPI<T> {
|
|||
|
||||
@NotNull WrapperPlayer spawnPlayer(UserProfile profile, Location location);
|
||||
|
||||
@NotNull WrapperPlayer createPlayer(UserProfile profile);
|
||||
|
||||
@NotNull <T extends WrapperEntity> T spawnEntity(@NotNull Class<T> wrapperClass, @NotNull EntityType entityType, @NotNull Location location);
|
||||
|
||||
@NotNull WrapperEntity spawnEntity(@NotNull EntityType entityType, @NotNull Location location);
|
||||
|
|
|
@ -94,6 +94,23 @@ public abstract class AbstractEntityLibAPI<P, T> implements EntityLibAPI<T> {
|
|||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull WrapperPlayer createPlayer(UserProfile profile) {
|
||||
if (getEntity(profile.getUUID()) != null) {
|
||||
throw new IllegalArgumentException("Entity with UUID " + profile.getUUID() + " already exists in this world.");
|
||||
}
|
||||
|
||||
int id = EntityLib.getPlatform().getEntityIdProvider().provide(profile.getUUID(), EntityTypes.PLAYER);
|
||||
while (entitiesById.containsKey
|
||||
(id)) {
|
||||
id = EntityLib.getPlatform().getEntityIdProvider().provide(profile.getUUID(), EntityTypes.PLAYER);
|
||||
}
|
||||
WrapperPlayer player = new WrapperPlayer(profile, id);
|
||||
entities.put(player.getUuid(), player);
|
||||
entitiesById.put(player.getEntityId(), player);
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T1 extends WrapperEntity> @NotNull T1 spawnEntity(@NotNull T1 entity, @NotNull Location location) {
|
||||
entity.spawn(location);
|
||||
|
|
Loading…
Reference in a new issue