示例#1
0
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (sender instanceof Player) {
      Player owner = (Player) sender;
      if (MyPetList.hasActiveMyPet(owner)) {
        MyPet myPet = MyPetList.getMyPet(owner);

        if (!Permissions.hasExtended(myPet.getOwner().getPlayer(), "MyPet.user.extended.Pickup")) {
          sender.sendMessage(Translation.getString("Message.No.Allowed", owner));
          return true;
        } else if (myPet.getStatus() == PetState.Despawned) {
          sender.sendMessage(
              Util.formatText(
                  Translation.getString("Message.Call.First", owner), myPet.getPetName()));
          return true;
        } else if (myPet.getStatus() == PetState.Dead) {
          sender.sendMessage(
              Util.formatText(
                  Translation.getString("Message.Call.Dead", owner),
                  myPet.getPetName(),
                  myPet.getRespawnTime()));
          return true;
        }
        if (myPet.getSkills().hasSkill(Pickup.class)) {
          myPet.getSkills().getSkill(Pickup.class).activate();
        }
      } else {
        sender.sendMessage(Translation.getString("Message.No.HasPet", owner));
      }
      return true;
    }
    sender.sendMessage("You can't use this command from server console!");
    return true;
  }
示例#2
0
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (sender instanceof Player) {
      Player player = (Player) sender;
      if (args.length == 0) {
        if (MyPetList.hasMyPet(player)) {
          MyPet myPet = MyPetList.getMyPet(player);
          if (myPet.getStatus() == PetState.Despawned) {
            sender.sendMessage(
                Util.formatText(
                    Locales.getString("Message.Call.First", player), myPet.getPetName()));
            return true;
          }
          if (myPet.getStatus() == PetState.Dead) {
            sender.sendMessage(
                Util.formatText(
                    Locales.getString("Message.Call.Dead", player),
                    myPet.getPetName(),
                    myPet.getRespawnTime()));
            return true;
          }
          if (!Permissions.hasExtended(player, "MyPet.user.extended.Inventory")
              && !Permissions.has(player, "MyPet.admin", false)) {
            myPet.sendMessageToOwner(Locales.getString("Message.No.CanUse", player));
            return true;
          }
          if (myPet.getSkills().hasSkill(Inventory.class)) {
            myPet.getSkills().getSkill(Inventory.class).activate();
          }
        } else {
          sender.sendMessage(Locales.getString("Message.No.HasPet", player));
        }
      } else if (args.length == 1 && Permissions.has(player, "MyPet.admin", false)) {
        Player petOwner = Bukkit.getServer().getPlayer(args[0]);

        if (petOwner == null || !petOwner.isOnline()) {
          sender.sendMessage(Locales.getString("Message.No.PlayerOnline", player));
        } else if (MyPetList.hasMyPet(petOwner)) {
          MyPet myPet = MyPetList.getMyPet(petOwner);
          if (myPet.getSkills().isSkillActive(Inventory.class)) {
            myPet.getSkills().getSkill(Inventory.class).openInventory(player);
          }
        }
      }
      return true;
    }
    sender.sendMessage("You can't use this command from server console!");
    return true;
  }
示例#3
0
  private static MyPet getMyPet(InactiveMyPet inactiveMyPet) {
    if (inactiveMyPet.getPetOwner().isOnline()) {
      MyPet activeMyPet =
          inactiveMyPet.getPetType().getNewMyPetInstance(inactiveMyPet.getPetOwner());
      activeMyPet.setLocation(
          inactiveMyPet.getLocation() == null
              ? inactiveMyPet.getPetOwner().getPlayer().getLocation()
              : inactiveMyPet.getLocation());
      activeMyPet.petName = inactiveMyPet.getPetName();
      activeMyPet.respawnTime = inactiveMyPet.getRespawnTime();
      activeMyPet.setSkilltree(inactiveMyPet.getSkillTree());
      activeMyPet.setExtendedInfo(inactiveMyPet.getInfo());

      if (activeMyPet.respawnTime > 0) {
        activeMyPet.status = PetState.Dead;
      } else {
        activeMyPet.status = PetState.Despawned;
      }

      activeMyPet.getExperience().setExp(inactiveMyPet.getExp());
      Collection<MyPetGenericSkill> skills = activeMyPet.getSkills().getSkills();
      if (skills.size() > 0) {
        for (MyPetGenericSkill skill : skills) {
          if (inactiveMyPet.getSkills().hasKey(skill.getName())) {
            skill.load(inactiveMyPet.getSkills().getCompound(skill.getName()));
          }
        }
      }
      activeMyPet.setHealth(inactiveMyPet.getHealth());
      activeMyPet.setHungerValue(inactiveMyPet.getHungerValue());
      return activeMyPet;
    }
    return null;
  }
示例#4
0
  private static InactiveMyPet getInactiveMyPet(MyPet activeMyPet) {
    InactiveMyPet inactiveMyPet = new InactiveMyPet(activeMyPet.getOwner());
    inactiveMyPet.setPetName(activeMyPet.petName);
    inactiveMyPet.setExp(activeMyPet.getExperience().getExp());
    inactiveMyPet.setHealth(activeMyPet.getHealth());
    inactiveMyPet.setHungerValue(activeMyPet.getHungerValue());
    inactiveMyPet.setLocation(activeMyPet.getLocation());
    inactiveMyPet.setRespawnTime(activeMyPet.respawnTime);
    inactiveMyPet.setSkills(activeMyPet.getSkills().getSkills());
    inactiveMyPet.setInfo(activeMyPet.getExtendedInfo());
    inactiveMyPet.setPetType(activeMyPet.getPetType());
    inactiveMyPet.setSkillTree(activeMyPet.getSkillTree());

    return inactiveMyPet;
  }