Search in sources :

Example 6 with FakeEntity

use of net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity in project FunnyGuilds by FunnyGuilds.

the class V1_17EntityAccessor method createFakeEntity.

@Override
public FakeEntity createFakeEntity(EntityType entityType, Location location) {
    Preconditions.checkNotNull(entityType, "entity type can't be null!");
    Preconditions.checkNotNull(location, "location can't be null!");
    Preconditions.checkArgument(entityType.isSpawnable(), "entity type is not spawnable!");
    CraftWorld world = ((CraftWorld) location.getWorld());
    if (world == null) {
        throw new IllegalStateException("location's world is null!");
    }
    net.minecraft.world.entity.Entity entity = world.createEntity(location, entityType.getEntityClass());
    Packet<?> spawnEntityPacket;
    if (entity instanceof EntityLiving) {
        spawnEntityPacket = new PacketPlayOutSpawnEntityLiving((EntityLiving) entity);
    } else {
        spawnEntityPacket = new PacketPlayOutSpawnEntity(entity);
    }
    return new FakeEntity(entity.getId(), spawnEntityPacket);
}
Also used : FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) PacketPlayOutSpawnEntityLiving(net.minecraft.network.protocol.game.PacketPlayOutSpawnEntityLiving) PacketPlayOutSpawnEntityLiving(net.minecraft.network.protocol.game.PacketPlayOutSpawnEntityLiving) EntityLiving(net.minecraft.world.entity.EntityLiving) PacketPlayOutSpawnEntity(net.minecraft.network.protocol.game.PacketPlayOutSpawnEntity) CraftWorld(org.bukkit.craftbukkit.v1_17_R1.CraftWorld)

Example 7 with FakeEntity

use of net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity in project FunnyGuilds by FunnyGuilds.

the class V1_10R1EntityAccessor method createFakeEntity.

@Override
public FakeEntity createFakeEntity(EntityType entityType, Location location) {
    Preconditions.checkNotNull(entityType, "entity type can't be null!");
    Preconditions.checkNotNull(location, "location can't be null!");
    Preconditions.checkArgument(entityType.isSpawnable(), "entity type is not spawnable!");
    CraftWorld world = ((CraftWorld) location.getWorld());
    if (world == null) {
        throw new IllegalStateException("location's world is null!");
    }
    Entity entity = world.createEntity(location, entityType.getEntityClass());
    Packet<?> spawnEntityPacket;
    if (entity instanceof EntityLiving) {
        spawnEntityPacket = new PacketPlayOutSpawnEntityLiving((EntityLiving) entity);
    } else {
        spawnEntityPacket = new PacketPlayOutSpawnEntity(entity, ObjectType.getIdFor(entityType));
    }
    return new FakeEntity(entity.getId(), spawnEntityPacket);
}
Also used : FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) PacketPlayOutSpawnEntity(net.minecraft.server.v1_10_R1.PacketPlayOutSpawnEntity) FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) Entity(net.minecraft.server.v1_10_R1.Entity) PacketPlayOutSpawnEntityLiving(net.minecraft.server.v1_10_R1.PacketPlayOutSpawnEntityLiving) PacketPlayOutSpawnEntityLiving(net.minecraft.server.v1_10_R1.PacketPlayOutSpawnEntityLiving) EntityLiving(net.minecraft.server.v1_10_R1.EntityLiving) PacketPlayOutSpawnEntity(net.minecraft.server.v1_10_R1.PacketPlayOutSpawnEntity) CraftWorld(org.bukkit.craftbukkit.v1_10_R1.CraftWorld)

Example 8 with FakeEntity

use of net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity in project FunnyGuilds by FunnyGuilds.

the class V1_18EntityAccessor method createFakeEntity.

@Override
public FakeEntity createFakeEntity(EntityType entityType, Location location) {
    Preconditions.checkNotNull(entityType, "entity type can't be null!");
    Preconditions.checkNotNull(location, "location can't be null!");
    Preconditions.checkArgument(entityType.isSpawnable(), "entity type is not spawnable!");
    CraftWorld world = ((CraftWorld) location.getWorld());
    if (world == null) {
        throw new IllegalStateException("location's world is null!");
    }
    net.minecraft.world.entity.Entity entity = world.createEntity(location, entityType.getEntityClass());
    Packet<?> spawnEntityPacket;
    if (entity instanceof EntityLiving) {
        spawnEntityPacket = new PacketPlayOutSpawnEntityLiving((EntityLiving) entity);
    } else {
        spawnEntityPacket = new PacketPlayOutSpawnEntity(entity);
    }
    // ae() zwraca aT czyli chyba getId
    return new FakeEntity(entity.ae(), spawnEntityPacket);
}
Also used : FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) PacketPlayOutSpawnEntityLiving(net.minecraft.network.protocol.game.PacketPlayOutSpawnEntityLiving) PacketPlayOutSpawnEntityLiving(net.minecraft.network.protocol.game.PacketPlayOutSpawnEntityLiving) EntityLiving(net.minecraft.world.entity.EntityLiving) PacketPlayOutSpawnEntity(net.minecraft.network.protocol.game.PacketPlayOutSpawnEntity) CraftWorld(org.bukkit.craftbukkit.v1_18_R1.CraftWorld)

Example 9 with FakeEntity

use of net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity in project FunnyGuilds by FunnyGuilds.

the class WarAttackRequest method execute.

@Override
public void execute() throws Exception {
    for (Map.Entry<Guild, FakeEntity> entry : GuildEntityHelper.getGuildEntities().entrySet()) {
        if (entry.getValue().getId() != entityId) {
            continue;
        }
        Guild guild = entry.getKey();
        Option<Player> playerOption = this.user.getPlayer();
        if (playerOption.isEmpty()) {
            return;
        }
        Player player = playerOption.get();
        if (SecuritySystem.onHitCrystal(player, guild)) {
            return;
        }
        if (!SimpleEventHandler.handle(new GuildHeartAttackEvent(EventCause.SYSTEM, user, guild))) {
            return;
        }
        WarSystem.getInstance().attack(player, entry.getKey());
        return;
    }
}
Also used : FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) Player(org.bukkit.entity.Player) Guild(net.dzikoysk.funnyguilds.guild.Guild) GuildHeartAttackEvent(net.dzikoysk.funnyguilds.event.guild.GuildHeartAttackEvent) Map(java.util.Map)

Example 10 with FakeEntity

use of net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity in project FunnyGuilds by FunnyGuilds.

the class GuildEntityHelper method spawnGuildHeart.

public static void spawnGuildHeart(Guild guild, Player... players) {
    try {
        FunnyGuilds plugin = FunnyGuilds.getInstance();
        FakeEntity guildHeartEntity;
        if (!ENTITY_MAP.containsKey(guild)) {
            Option<Location> locationOption = guild.getEnderCrystal();
            if (locationOption.isEmpty()) {
                return;
            }
            guildHeartEntity = plugin.getNmsAccessor().getEntityAccessor().createFakeEntity(plugin.getPluginConfiguration().heart.createEntityType, locationOption.get());
            ENTITY_MAP.put(guild, guildHeartEntity);
        } else {
            guildHeartEntity = ENTITY_MAP.get(guild);
        }
        plugin.getNmsAccessor().getEntityAccessor().spawnFakeEntityFor(guildHeartEntity, players);
    } catch (Exception exception) {
        FunnyGuilds.getPluginLogger().error("Could not spawn guild heart", exception);
    }
}
Also used : FakeEntity(net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity) FunnyGuilds(net.dzikoysk.funnyguilds.FunnyGuilds) Location(org.bukkit.Location)

Aggregations

FakeEntity (net.dzikoysk.funnyguilds.nms.api.entity.FakeEntity)16 Player (org.bukkit.entity.Player)3 Map (java.util.Map)2 FunnyGuilds (net.dzikoysk.funnyguilds.FunnyGuilds)2 Guild (net.dzikoysk.funnyguilds.guild.Guild)2 PacketPlayOutSpawnEntity (net.minecraft.network.protocol.game.PacketPlayOutSpawnEntity)2 PacketPlayOutSpawnEntityLiving (net.minecraft.network.protocol.game.PacketPlayOutSpawnEntityLiving)2 EntityLiving (net.minecraft.world.entity.EntityLiving)2 TimeUnit (java.util.concurrent.TimeUnit)1 ValidationException (net.dzikoysk.funnycommands.resources.ValidationException)1 DefaultConcurrencyRequest (net.dzikoysk.funnyguilds.concurrency.util.DefaultConcurrencyRequest)1 MessageConfiguration (net.dzikoysk.funnyguilds.config.MessageConfiguration)1 PluginConfiguration (net.dzikoysk.funnyguilds.config.PluginConfiguration)1 GuildHeartAttackEvent (net.dzikoysk.funnyguilds.event.guild.GuildHeartAttackEvent)1 InfoCommand (net.dzikoysk.funnyguilds.feature.command.user.InfoCommand)1 SecuritySystem (net.dzikoysk.funnyguilds.feature.security.SecuritySystem)1 GuildEntityHelper (net.dzikoysk.funnyguilds.nms.GuildEntityHelper)1 ChatUtils (net.dzikoysk.funnyguilds.shared.bukkit.ChatUtils)1 User (net.dzikoysk.funnyguilds.user.User)1 Entity (net.minecraft.server.v1_10_R1.Entity)1