Search in sources :

Example 21 with SkillTree

use of de.Keyle.MyPet.api.skill.skilltree.SkillTree in project MyPet by xXKeyleXx.

the class SqLiteRepository method resultSetToMyPet.

// Pets ------------------------------------------------------------------------------------------------------------
private List<StoredMyPet> resultSetToMyPet(MyPetPlayer owner, ResultSet resultSet, boolean next) {
    List<StoredMyPet> pets = new ArrayList<>();
    try {
        while (!next || resultSet.next()) {
            next = true;
            InactiveMyPet pet = new InactiveMyPet(owner);
            pet.setUUID(UUID.fromString(resultSet.getString("uuid")));
            pet.setWorldGroup(resultSet.getString("world_group"));
            pet.setExp(resultSet.getDouble("exp"));
            pet.setHealth(resultSet.getDouble("health"));
            pet.setRespawnTime(resultSet.getInt("respawn_time"));
            pet.setPetName(new String(resultSet.getBytes("name"), StandardCharsets.UTF_8));
            pet.setPetType(MyPetType.valueOf(resultSet.getString("type")));
            pet.setLastUsed(resultSet.getLong("last_used"));
            pet.setSaturation(resultSet.getDouble("hunger"));
            pet.wantsToRespawn = resultSet.getBoolean("wants_to_spawn");
            String skillTreeName = resultSet.getString("skilltree");
            if (skillTreeName != null) {
                Skilltree skilltree = MyPetApi.getSkilltreeManager().getSkilltree(skillTreeName);
                if (skilltree != null) {
                    pet.setSkilltree(skilltree);
                }
            }
            pet.setSkills(TagStream.readTag(resultSet.getBytes("skills"), true));
            pet.setInfo(TagStream.readTag(resultSet.getBytes("info"), true));
            List<RepositoryMyPetConverterService> converters = MyPetApi.getServiceManager().getServices(RepositoryMyPetConverterService.class);
            for (RepositoryMyPetConverterService converter : converters) {
                converter.convert(pet);
            }
            pets.add(pet);
        }
    } catch (SQLException | IOException e) {
        e.printStackTrace();
    }
    return pets;
}
Also used : Skilltree(de.Keyle.MyPet.api.skill.skilltree.Skilltree) RepositoryMyPetConverterService(de.Keyle.MyPet.api.util.service.types.RepositoryMyPetConverterService) InactiveMyPet(de.Keyle.MyPet.entity.InactiveMyPet) IOException(java.io.IOException) StoredMyPet(de.Keyle.MyPet.api.entity.StoredMyPet)

Example 22 with SkillTree

use of de.Keyle.MyPet.api.skill.skilltree.SkillTree in project MyPet by xXKeyleXx.

the class CommandOptionCreate method updateData.

public static void updateData(InactiveMyPet inactiveMyPet, String[] args) {
    for (String arg : args) {
        if (arg.startsWith("skilltree:")) {
            String skilltreeName = arg.replace("skilltree:", "");
            Skilltree skilltree = MyPetApi.getSkilltreeManager().getSkilltree(skilltreeName);
            if (skilltree != null) {
                inactiveMyPet.setSkilltree(skilltree, MyPetSelectSkilltreeEvent.Source.AdminCreation);
            }
        } else if (arg.startsWith("name:")) {
            String name = arg.replace("name:", "");
            int index = ArrayUtils.indexOf(args, arg);
            if (args.length > index + 1) {
                name += " " + String.join(" ", Arrays.copyOfRange(args, index + 1, args.length));
            }
            inactiveMyPet.setPetName(name);
            break;
        }
    }
}
Also used : Skilltree(de.Keyle.MyPet.api.skill.skilltree.Skilltree) TagString(de.keyle.knbt.TagString)

Example 23 with SkillTree

use of de.Keyle.MyPet.api.skill.skilltree.SkillTree in project MyPet by xXKeyleXx.

the class CommandOptionReload method reloadSkilltrees.

protected void reloadSkilltrees(CommandSender sender) {
    MyPetApi.getSkilltreeManager().clearSkilltrees();
    SkillTreeLoaderJSON.loadSkilltrees(new File(MyPetApi.getPlugin().getDataFolder(), "skilltrees"));
    for (MyPet myPet : MyPetApi.getMyPetManager().getAllActiveMyPets()) {
        Skilltree skilltree = myPet.getSkilltree();
        if (skilltree != null) {
            String skilltreeName = skilltree.getName();
            if (MyPetApi.getSkilltreeManager().hasSkilltree(skilltreeName)) {
                skilltree = MyPetApi.getSkilltreeManager().getSkilltree(skilltreeName);
                if (!skilltree.getMobTypes().contains(myPet.getPetType())) {
                    skilltree = null;
                }
            } else {
                skilltree = null;
            }
        }
        myPet.setSkilltree(skilltree);
    }
    sender.sendMessage("[" + ChatColor.AQUA + "MyPet" + ChatColor.RESET + "] skilltrees reloaded!");
    MyPetApi.getLogger().info("Skilltrees reloaded!");
}
Also used : Skilltree(de.Keyle.MyPet.api.skill.skilltree.Skilltree) MyPet(de.Keyle.MyPet.api.entity.MyPet) File(java.io.File)

Example 24 with SkillTree

use of de.Keyle.MyPet.api.skill.skilltree.SkillTree in project MyPet by xXKeyleXx.

the class CommandOptionSkilltree method onCommandOption.

@Override
public boolean onCommandOption(CommandSender sender, String[] args) {
    if (args.length == 0) {
        sender.sendMessage(Translation.getString("Message.Command.Help.MissingParameter", sender));
        sender.sendMessage(" -> " + ChatColor.DARK_AQUA + "/petadmin skilltree " + ChatColor.RED + "<a player name> " + ChatColor.RED + "<new skilltree>");
        return false;
    }
    if (args.length == 1) {
        sender.sendMessage(Translation.getString("Message.Command.Help.MissingParameter", sender));
        sender.sendMessage(" -> " + ChatColor.DARK_AQUA + "/petadmin skilltree " + args[0] + " " + ChatColor.RED + "<new skilltree>");
        return false;
    }
    String lang = MyPetApi.getPlatformHelper().getCommandSenderLanguage(sender);
    Player petOwner = Bukkit.getServer().getPlayer(args[0]);
    if (petOwner == null || !petOwner.isOnline()) {
        sender.sendMessage("[" + ChatColor.AQUA + "MyPet" + ChatColor.RESET + "] " + Translation.getString("Message.No.PlayerOnline", lang));
        return true;
    } else if (!MyPetApi.getMyPetManager().hasActiveMyPet(petOwner)) {
        sender.sendMessage("[" + ChatColor.AQUA + "MyPet" + ChatColor.RESET + "] " + Util.formatText(Translation.getString("Message.No.UserHavePet", lang), petOwner.getName()));
        return true;
    }
    MyPet myPet = MyPetApi.getMyPetManager().getMyPet(petOwner);
    if (MyPetApi.getSkilltreeManager().hasSkilltree(args[1])) {
        Skilltree skilltree = MyPetApi.getSkilltreeManager().getSkilltree(args[1]);
        if (skilltree.getMobTypes().contains(myPet.getPetType()) && myPet.setSkilltree(skilltree, MyPetSelectSkilltreeEvent.Source.AdminCommand)) {
            sender.sendMessage("[" + ChatColor.AQUA + "MyPet" + ChatColor.RESET + "] " + Util.formatText(Translation.getString("Message.Skilltree.SwitchedToFor", lang), petOwner.getName(), Colorizer.setColors(skilltree.getDisplayName())));
        } else {
            sender.sendMessage("[" + ChatColor.AQUA + "MyPet" + ChatColor.RESET + "] " + Translation.getString("Message.Skilltree.NotSwitched", lang));
        }
    } else {
        sender.sendMessage("[" + ChatColor.AQUA + "MyPet" + ChatColor.RESET + "] " + Util.formatText(Translation.getString("Message.Command.Skilltree.CantFindSkilltree", lang), args[1]));
    }
    return true;
}
Also used : Skilltree(de.Keyle.MyPet.api.skill.skilltree.Skilltree) Player(org.bukkit.entity.Player) MyPet(de.Keyle.MyPet.api.entity.MyPet)

Example 25 with SkillTree

use of de.Keyle.MyPet.api.skill.skilltree.SkillTree in project MyPet by xXKeyleXx.

the class InactiveMyPet method load.

@Override
public void load(TagCompound myPetNBT) {
    if (myPetNBT.getCompoundData().containsKey("UUID")) {
        uuid = UUID.fromString(myPetNBT.getAs("UUID", TagString.class).getStringData());
    }
    exp = myPetNBT.getAs("Exp", TagDouble.class).getDoubleData();
    if (myPetNBT.containsKeyAs("Health", TagInt.class)) {
        health = myPetNBT.getAs("Health", TagInt.class).getIntData();
    } else if (myPetNBT.containsKeyAs("Health", TagDouble.class)) {
        health = myPetNBT.getAs("Health", TagDouble.class).getDoubleData();
    }
    respawnTime = myPetNBT.getAs("Respawntime", TagInt.class).getIntData();
    petName = myPetNBT.getAs("Name", TagString.class).getStringData();
    if (myPetNBT.getCompoundData().containsKey("Type")) {
        petType = MyPetType.valueOf(myPetNBT.getAs("Type", TagString.class).getStringData());
    }
    if (myPetNBT.getCompoundData().containsKey("LastUsed")) {
        lastUsed = myPetNBT.getAs("LastUsed", TagLong.class).getLongData();
    }
    if (myPetNBT.getCompoundData().containsKey("Skilltree")) {
        String skillTreeName = myPetNBT.getAs("Skilltree", TagString.class).getStringData();
        if (skillTreeName != null) {
            Skilltree skilltree = MyPetApi.getSkilltreeManager().getSkilltree(skillTreeName);
            if (skilltree.getMobTypes().contains(getPetType())) {
                this.skilltree = skilltree;
            }
        }
    }
    if (myPetNBT.containsKeyAs("Hunger", TagInt.class)) {
        saturation = myPetNBT.getAs("Hunger", TagInt.class).getIntData();
    } else if (myPetNBT.containsKeyAs("Hunger", TagDouble.class)) {
        saturation = myPetNBT.getAs("Hunger", TagDouble.class).getDoubleData();
    }
    if (myPetNBT.getCompoundData().containsKey("WorldGroup")) {
        worldGroup = myPetNBT.getAs("WorldGroup", TagString.class).getStringData();
    }
    if (myPetNBT.getCompoundData().containsKey("Wants-To-Respawn")) {
        wantsToRespawn = myPetNBT.getAs("Wants-To-Respawn", TagByte.class).getBooleanData();
    }
    setSkills(myPetNBT.getAs("Skills", TagCompound.class));
    setInfo(myPetNBT.getAs("Info", TagCompound.class));
}
Also used : Skilltree(de.Keyle.MyPet.api.skill.skilltree.Skilltree)

Aggregations

Skilltree (de.Keyle.MyPet.api.skill.skilltree.Skilltree)16 MyPet (de.Keyle.MyPet.api.entity.MyPet)10 SkillTree (de.Keyle.MyPet.api.skill.skilltree.SkillTree)9 SkillInfo (de.Keyle.MyPet.api.skill.SkillInfo)6 SkillTreeLevel (de.Keyle.MyPet.api.skill.skilltree.SkillTreeLevel)6 InactiveMyPet (de.Keyle.MyPet.entity.InactiveMyPet)5 IOException (java.io.IOException)5 StoredMyPet (de.Keyle.MyPet.api.entity.StoredMyPet)4 MyPetPlayer (de.Keyle.MyPet.api.player.MyPetPlayer)4 SkillTreeMobType (de.Keyle.MyPet.api.skill.skilltree.SkillTreeMobType)4 Player (org.bukkit.entity.Player)4 EventHandler (org.bukkit.event.EventHandler)4 SkillName (de.Keyle.MyPet.api.skill.SkillName)3 Upgrade (de.Keyle.MyPet.api.skill.Upgrade)3 Skill (de.Keyle.MyPet.api.skill.skilltree.Skill)3 EntityLocationHolder (de.Keyle.MyPet.api.util.location.EntityLocationHolder)3 RepositoryMyPetConverterService (de.Keyle.MyPet.api.util.service.types.RepositoryMyPetConverterService)3 TagString (de.keyle.knbt.TagString)3 Location (org.bukkit.Location)3 MyPetType (de.Keyle.MyPet.api.entity.MyPetType)2