Esempio n. 1
0
  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));
  }
Esempio n. 2
0
  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));
  }
Esempio n. 3
0
  @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;
  }
Esempio n. 4
0
 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++;
     }
   }
 }
Esempio n. 5
0
  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;
  }
Esempio n. 6
0
  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));
  }
Esempio n. 7
0
  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));
  }
Esempio n. 8
0
 @Override
 public String getPlayerListName() {
   return caller.getPlayerListName();
 }
Esempio n. 9
0
  @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()));
        }
      }
    }
  }