public void hidePlayer(Player player) { Validate.notNull(player, "hidden player cannot be null"); if (getHandle().field_71135_a == null) return; if (equals(player)) return; if (hiddenPlayers.containsKey(player.getName())) return; hiddenPlayers.put(player.getName(), player); // remove this player from the hidden player's EntityTrackerEntry net.minecraft.entity.EntityTracker tracker = ((net.minecraft.world.WorldServer) entity.field_70170_p).field_73062_L; net.minecraft.entity.player.EntityPlayerMP other = ((CraftPlayer) player).getHandle(); net.minecraft.entity.EntityTrackerEntry entry = (net.minecraft.entity.EntityTrackerEntry) tracker.field_72794_c.func_76041_a(other.field_70157_k); if (entry != null) { entry.func_73123_c(getHandle()); } // remove the hidden player from this player user list getHandle() .field_71135_a .func_72567_b( new net.minecraft.network.packet.Packet201PlayerInfo( player.getPlayerListName(), false, 9999)); }
public void hidePlayer(Player player) { Validate.notNull(player, "hidden player cannot be null"); if (getHandle().playerNetServerHandler == null) return; if (equals(player)) return; if (hiddenPlayers.containsKey(player.getName())) return; hiddenPlayers.put(player.getName(), player); // remove this player from the hidden player's EntityTrackerEntry EntityTracker tracker = ((WorldServer) entity.worldObj).getEntityTracker(); EntityPlayerMP other = ((BukkitPlayer) player).getHandle(); // TODO: Does this work? EntityTrackerEntry entry = (EntityTrackerEntry) tracker.trackedEntityIDs.lookup(getHandle().entityId); entry.removePlayerFromTracker(other); entry.removeFromWatchingList(other); VanishUtils.setHidden(getHandle(), other); /*if (entry != null) { entry.removePlayerFromTracker(getHandle()); }*/ // remove the hidden player from this player user list getHandle() .playerNetServerHandler .sendPacketToPlayer(new Packet201PlayerInfo(player.getPlayerListName(), false, 9999)); }
@Override public String getListName(String senderId) { if (senderId == null) return null; // Try Our Map String ret = this.idToListName.get(senderId); // Try Bukkit if (ret == null) { Player player = Bukkit.getPlayerExact(senderId); if (player != null) { ret = player.getPlayerListName(); } } // Try Fixed Id if (ret == null) { ret = Mixin.tryFix(senderId); } // Ensure Colored if (ChatColor.stripColor(ret).equals(ret)) { ret = DEFAULT_COLOR.toString() + ret; } return ret; }
public static void resetTabList(Player p) { int a = 0; int b = 0; for (Player pl : Bukkit.getOnlinePlayers()) { setTabString(Bukkit.getPluginManager().getPlugin("TabAPI"), p, a, b, pl.getPlayerListName()); b++; if (b > getHorizSize(protocolManager.getProtocolVersion(pl))) { b = 0; a++; } } }
public List<String> onTabComplete( CommandSender sender, Command cmd, String label, String[] args) { List<String> completions = new ArrayList<String>(); // If we have one argument, the first is a partial player name if (args.length == 1) { if ((sender instanceof Player) && sender.hasPermission(NyvariaCore.PERM_INVSEE)) { String partialPlayerName = args[0]; for (Player nextMatchingPlayer : plugin.getServer().matchPlayer(partialPlayerName)) { completions.add(nextMatchingPlayer.getPlayerListName()); } } } return completions; }
public void showPlayer(Player player) { Validate.notNull(player, "shown player cannot be null"); if (getHandle().field_71135_a == null) return; if (equals(player)) return; if (!hiddenPlayers.containsKey(player.getName())) return; hiddenPlayers.remove(player.getName()); net.minecraft.entity.EntityTracker tracker = ((net.minecraft.world.WorldServer) entity.field_70170_p).field_73062_L; net.minecraft.entity.player.EntityPlayerMP other = ((CraftPlayer) player).getHandle(); net.minecraft.entity.EntityTrackerEntry entry = (net.minecraft.entity.EntityTrackerEntry) tracker.field_72794_c.func_76041_a(other.field_70157_k); if (entry != null && !entry.field_73134_o.contains(getHandle())) { entry.func_73117_b(getHandle()); } getHandle() .field_71135_a .func_72567_b( new net.minecraft.network.packet.Packet201PlayerInfo( player.getPlayerListName(), true, getHandle().field_71138_i)); }
public void showPlayer(Player player) { Validate.notNull(player, "shown player cannot be null"); if (getHandle().playerNetServerHandler == null) return; if (equals(player)) return; if (!hiddenPlayers.containsKey(player.getName())) return; hiddenPlayers.remove(player.getName()); EntityTracker tracker = ((WorldServer) entity.worldObj).getEntityTracker(); EntityPlayerMP other = ((BukkitPlayer) player).getHandle(); EntityTrackerEntry entry = (EntityTrackerEntry) tracker.trackedEntityIDs.lookup(getHandle().entityId); // FIXME: What does this do??? // getHandle().player.remove(Integer.valueOf(other.entityId)); // Should be called destroyQueue if (entry != null && !entry.trackedPlayers.contains(getHandle())) { entry.tryStartWachingThis(getHandle()); VanishUtils.setVisible(getHandle(), other); } getHandle() .playerNetServerHandler .sendPacketToPlayer( new Packet201PlayerInfo(player.getPlayerListName(), true, getHandle().ping)); }
@Override public String getPlayerListName() { return caller.getPlayerListName(); }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityDeath(EntityDeathEvent event) { Entity victimEntity = event.getEntity(); EntityDamageEvent lastDamageEvent = victimEntity.getLastDamageCause(); if (lastDamageEvent == null) return; if (victimEntity instanceof Player) { Player victim = (Player) victimEntity; if (Util.isExempt(victim)) return; if (lastDamageEvent instanceof EntityDamageByEntityEvent) { // + Player killed by entity Entity killerEntity = ((EntityDamageByEntityEvent) lastDamageEvent).getDamager(); if (killerEntity instanceof Arrow) { // | + Victim was shot Arrow arrow = (Arrow) killerEntity; if (arrow.getShooter() instanceof Player) { // | | + Player shot Player Player killer = (Player) arrow.getShooter(); if (Util.isExempt(killer)) return; VaultHook.transfer(victim, killer, Util.getPVPAmount(victim)); Message.send( killer, Settings.Message.KilledPlayer.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "") .replace("<PLAYER>", victim.getPlayerListName())); Message.send( victim, Settings.Message.KilledByPlayer.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "") .replace("<PLAYER>", killer.getPlayerListName())); } else if (arrow.getShooter() instanceof Creature) { // | | + Creature shot Player VaultHook.withdraw(victim, Util.getPVELoss(victim)); } } else if (killerEntity instanceof Player) { // | + Player killed Player Player killer = (Player) killerEntity; if (Util.isExempt(killer)) return; VaultHook.transfer(victim, killer, Util.getPVPAmount(victim)); Message.send( killer, Settings.Message.KilledPlayer.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "") .replace("<PLAYER>", victim.getPlayerListName())); Message.send( victim, Settings.Message.KilledByPlayer.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "") .replace("<PLAYER>", killer.getPlayerListName())); } else if (killerEntity instanceof Explosive) { // | + Player exploded VaultHook.withdraw(victim, Util.getOtherAmount(victim)); Message.send( victim, Settings.Message.KilledByWorld.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "")); } else if (killerEntity instanceof Creature) { // | + Creature killed Player VaultHook.withdraw(victim, Util.getPVELoss(victim)); Message.send( victim, Settings.Message.KilledByMob.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "") .replace("<MOB>", killerEntity.getType().getName())); } else if (killerEntity instanceof Slime) { // | + Slime killed player VaultHook.withdraw(victim, Util.getPVELoss(victim)); Message.send( victim, Settings.Message.KilledByMob.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "") .replace("<MOB>", killerEntity.getType().getName())); } else { // | + Player died VaultHook.withdraw(victim, Util.getOtherAmount(victim)); Message.send( victim, Settings.Message.KilledByWorld.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "")); } } else if (lastDamageEvent instanceof EntityDamageByBlockEvent) { // + Player killed by blocks VaultHook.withdraw(victim, Util.getOtherAmount(victim)); Message.send( victim, Settings.Message.KilledByWorld.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "")); } else { // + Player died VaultHook.withdraw(victim, Util.getOtherAmount(victim)); Message.send( victim, Settings.Message.KilledByWorld.getValue() .replace("<AMOUNT>", Util.getPVPAmount(victim) + "")); } } else { if (!(lastDamageEvent instanceof EntityDamageByEntityEvent)) return; Entity killerEntity = ((EntityDamageByEntityEvent) lastDamageEvent).getDamager(); if (killerEntity instanceof Arrow) { // + Player shot an entity Arrow arrow = (Arrow) killerEntity; if (!(arrow.getShooter() instanceof Player)) return; Player killer = (Player) arrow.getShooter(); if (victimEntity instanceof Creature) { // | + Player shot Creature Creature victim = (Creature) victimEntity; VaultHook.deposit(killer, Util.getPVEGain(killer, victim)); Message.send( killer, Settings.Message.KilledMob.getValue() .replace("<AMOUNT>", Util.getPVEGain(killer, victim) + "") .replace("<MOB>", killerEntity.getType().getName())); } else if (victimEntity instanceof Slime) { // | + Player shot Slime Creature victim = (Creature) victimEntity; VaultHook.deposit(killer, Util.getPVEGain(killer, victim)); Message.send( killer, Settings.Message.KilledMob.getValue() .replace("<AMOUNT>", Util.getPVEGain(killer, victim) + "") .replace("<MOB>", killerEntity.getType().getName())); } } else if (killerEntity instanceof Player) { // + Player killed an entity Player killer = (Player) killerEntity; if (victimEntity instanceof Creature) { // | + Player killed Creature Creature victim = (Creature) victimEntity; VaultHook.deposit(killer, Util.getPVEGain(killer, victim)); Message.send( killer, Settings.Message.KilledMob.getValue() .replace("<AMOUNT>", Util.getPVEGain(killer, victim) + "") .replace("<MOB>", killerEntity.getType().getName())); } else if (victimEntity instanceof Slime) { // | + Player killed Slime Creature victim = (Creature) victimEntity; VaultHook.deposit(killer, Util.getPVEGain(killer, victim)); Message.send( killer, Settings.Message.KilledMob.getValue() .replace("<AMOUNT>", Util.getPVEGain(killer, victim) + "") .replace("<MOB>", killerEntity.getType().getName())); } } } }