Search in sources :

Example 26 with WorldServer

use of net.minecraft.server.v1_16_R3.WorldServer in project Citizens2 by CitizensDev.

the class FallingBlockController method createEntity.

@Override
protected Entity createEntity(Location at, NPC npc) {
    WorldServer ws = ((CraftWorld) at.getWorld()).getHandle();
    Block id = Blocks.STONE;
    int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
    if (npc.data().has("falling-block-id") || npc.data().has(NPC.ITEM_ID_METADATA)) {
        id = CraftMagicNumbers.getBlock(Material.getMaterial(npc.data().<String>get(NPC.ITEM_ID_METADATA, npc.data().<String>get("falling-block-id"))));
    }
    final EntityFallingBlockNPC handle = new EntityFallingBlockNPC(ws, npc, at.getX(), at.getY(), at.getZ(), id.fromLegacyData(data));
    return handle.getBukkitEntity();
}
Also used : EntityFallingBlock(net.minecraft.server.v1_8_R3.EntityFallingBlock) Block(net.minecraft.server.v1_8_R3.Block) FallingBlock(org.bukkit.entity.FallingBlock) WorldServer(net.minecraft.server.v1_8_R3.WorldServer) CraftWorld(org.bukkit.craftbukkit.v1_8_R3.CraftWorld)

Example 27 with WorldServer

use of net.minecraft.server.v1_16_R3.WorldServer in project Citizens2 by CitizensDev.

the class ItemController method createEntity.

@Override
protected Entity createEntity(Location at, NPC npc) {
    WorldServer ws = ((CraftWorld) at.getWorld()).getHandle();
    Material id = Material.STONE;
    int data = npc.data().get(NPC.ITEM_DATA_METADATA, npc.data().get("falling-block-data", 0));
    if (npc.data().has(NPC.ITEM_ID_METADATA)) {
        id = Material.getMaterial(npc.data().<String>get(NPC.ITEM_ID_METADATA));
    }
    final EntityItemNPC handle = new EntityItemNPC(ws, npc, at.getX(), at.getY(), at.getZ(), CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(id, 1, (short) data)));
    return handle.getBukkitEntity();
}
Also used : WorldServer(net.minecraft.server.v1_8_R3.WorldServer) Material(org.bukkit.Material) ItemStack(net.minecraft.server.v1_8_R3.ItemStack) CraftItemStack(org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack) CraftWorld(org.bukkit.craftbukkit.v1_8_R3.CraftWorld)

Example 28 with WorldServer

use of net.minecraft.server.v1_16_R3.WorldServer in project Citizens2 by CitizensDev.

the class HumanController method createEntity.

@Override
protected Entity createEntity(final Location at, final NPC npc) {
    final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
    String coloredName = Colorizer.parseColors(npc.getFullName());
    String name = coloredName, prefix = null, suffix = null;
    if (coloredName.length() > 16) {
        prefix = coloredName.substring(0, 16);
        if (coloredName.length() > 30) {
            int len = 30;
            name = coloredName.substring(16, 30);
            if (NON_ALPHABET_MATCHER.matcher(name).matches()) {
                if (coloredName.length() >= 32) {
                    len = 32;
                    name = coloredName.substring(16, 32);
                } else if (coloredName.length() == 31) {
                    len = 31;
                    name = coloredName.substring(16, 31);
                }
            } else {
                name = ChatColor.RESET + name;
            }
            suffix = coloredName.substring(len);
        } else {
            name = coloredName.substring(16);
            if (!NON_ALPHABET_MATCHER.matcher(name).matches()) {
                name = ChatColor.RESET + name;
            }
            if (name.length() > 16) {
                suffix = name.substring(16);
                name = name.substring(0, 16);
            }
        }
        coloredName = coloredName.substring(0, 16);
    }
    final String prefixCapture = prefix, suffixCapture = suffix;
    UUID uuid = npc.getUniqueId();
    if (uuid.version() == 4) {
        // clear version
        long msb = uuid.getMostSignificantBits();
        msb &= ~0x0000000000004000L;
        msb |= 0x0000000000002000L;
        uuid = new UUID(msb, uuid.getLeastSignificantBits());
    }
    final GameProfile profile = new GameProfile(uuid, name);
    final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile, new PlayerInteractManager(nmsWorld), npc);
    Skin skin = handle.getSkinTracker().getSkin();
    if (skin != null) {
        skin.apply(handle);
    }
    Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {

        @Override
        public void run() {
            if (getBukkitEntity() == null || !getBukkitEntity().isValid())
                return;
            boolean removeFromPlayerList = npc.data().get("removefromplayerlist", Setting.REMOVE_PLAYERS_FROM_PLAYER_LIST.asBoolean());
            NMS.addOrRemoveFromPlayerList(getBukkitEntity(), npc.data().get("removefromplayerlist", removeFromPlayerList));
            if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
                Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
                String teamName = profile.getId().toString().substring(0, 16);
                Team team = scoreboard.getTeam(teamName);
                if (team == null) {
                    team = scoreboard.registerNewTeam(teamName);
                    if (prefixCapture != null) {
                        team.setPrefix(prefixCapture);
                    }
                    if (suffixCapture != null) {
                        team.setSuffix(suffixCapture);
                    }
                }
                team.addPlayer(handle.getBukkitEntity());
                handle.getNPC().data().set(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA, teamName);
            }
        }
    }, 20);
    handle.getBukkitEntity().setSleepingIgnored(true);
    return handle.getBukkitEntity();
}
Also used : WorldServer(net.minecraft.server.v1_10_R1.WorldServer) GameProfile(com.mojang.authlib.GameProfile) Scoreboard(org.bukkit.scoreboard.Scoreboard) PlayerInteractManager(net.minecraft.server.v1_10_R1.PlayerInteractManager) Skin(net.citizensnpcs.npc.skin.Skin) Team(org.bukkit.scoreboard.Team) UUID(java.util.UUID) CraftWorld(org.bukkit.craftbukkit.v1_10_R1.CraftWorld)

Example 29 with WorldServer

use of net.minecraft.server.v1_16_R3.WorldServer in project Citizens2 by CitizensDev.

the class NMSImpl method updateNavigationWorld.

@Override
public void updateNavigationWorld(org.bukkit.entity.Entity entity, World world) {
    if (NAVIGATION_WORLD_FIELD == null)
        return;
    Entity en = NMSImpl.getHandle(entity);
    if (en == null || !(en instanceof EntityInsentient))
        return;
    EntityInsentient handle = (EntityInsentient) en;
    WorldServer worldHandle = ((CraftWorld) world).getHandle();
    try {
        NAVIGATION_WORLD_FIELD.set(handle.getNavigation(), worldHandle);
    } catch (Exception e) {
        Messaging.logTr(Messages.ERROR_UPDATING_NAVIGATION_WORLD, e.getMessage());
    }
}
Also used : PathEntity(net.minecraft.server.v1_11_R1.PathEntity) LivingEntity(org.bukkit.entity.LivingEntity) CraftEntity(org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity) SkinnableEntity(net.citizensnpcs.npc.skin.SkinnableEntity) Entity(net.minecraft.server.v1_11_R1.Entity) EntityInsentient(net.minecraft.server.v1_11_R1.EntityInsentient) WorldServer(net.minecraft.server.v1_11_R1.WorldServer) CraftWorld(org.bukkit.craftbukkit.v1_11_R1.CraftWorld) ReportedException(net.minecraft.server.v1_11_R1.ReportedException) CommandException(net.citizensnpcs.api.command.exception.CommandException)

Example 30 with WorldServer

use of net.minecraft.server.v1_16_R3.WorldServer in project Citizens2 by CitizensDev.

the class NMSImpl method replaceTrackerEntry.

@Override
public void replaceTrackerEntry(Player player) {
    WorldServer server = (WorldServer) NMSImpl.getHandle(player).getWorld();
    EntityTrackerEntry entry = server.getTracker().trackedEntities.get(player.getEntityId());
    if (entry == null)
        return;
    PlayerlistTrackerEntry replace = new PlayerlistTrackerEntry(entry);
    server.getTracker().trackedEntities.a(player.getEntityId(), replace);
    if (TRACKED_ENTITY_SET != null) {
        try {
            Set<Object> set = (Set<Object>) TRACKED_ENTITY_SET.get(server.getTracker());
            set.remove(entry);
            set.add(replace);
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}
Also used : EntityTrackerEntry(net.minecraft.server.v1_11_R1.EntityTrackerEntry) EnumSet(java.util.EnumSet) Set(java.util.Set) WorldServer(net.minecraft.server.v1_11_R1.WorldServer) DataWatcherObject(net.minecraft.server.v1_11_R1.DataWatcherObject)

Aggregations

GameProfile (com.mojang.authlib.GameProfile)9 UUID (java.util.UUID)9 Scoreboard (org.bukkit.scoreboard.Scoreboard)9 Team (org.bukkit.scoreboard.Team)9 WorldServer (net.minecraft.server.v1_11_R1.WorldServer)8 WorldServer (net.minecraft.server.v1_8_R3.WorldServer)8 WorldServer (net.minecraft.server.v1_10_R1.WorldServer)7 WorldServer (net.minecraft.server.v1_12_R1.WorldServer)7 CraftWorld (org.bukkit.craftbukkit.v1_11_R1.CraftWorld)7 CraftWorld (org.bukkit.craftbukkit.v1_8_R3.CraftWorld)7 CraftWorld (org.bukkit.craftbukkit.v1_10_R1.CraftWorld)6 CraftWorld (org.bukkit.craftbukkit.v1_12_R1.CraftWorld)6 Property (com.mojang.authlib.properties.Property)5 BigInteger (java.math.BigInteger)5 MessageDigest (java.security.MessageDigest)5 EnumSet (java.util.EnumSet)4 Set (java.util.Set)4 PlayerProfile (net.aufdemrand.denizen.nms.util.PlayerProfile)4 CommandException (net.citizensnpcs.api.command.exception.CommandException)4 Skin (net.citizensnpcs.npc.skin.Skin)4