use of de.Keyle.MyPet.api.skill.skilltree.SkillTreeLevel in project MyPet by xXKeyleXx.
the class LevelUpListener method on.
@EventHandler
public void on(MyPetLevelUpEvent event) {
MyPet myPet = event.getPet();
int lvl = event.getLevel();
int lastLvl = event.getLastLevel();
if (!event.isQuiet()) {
int maxlevel = myPet.getSkilltree() != null ? myPet.getSkilltree().getMaxLevel() : 0;
if (maxlevel != 0 && lvl >= maxlevel) {
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.LevelSystem.ReachedMaxLevel", event.getOwner().getLanguage()), myPet.getPetName(), maxlevel));
} else {
myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.LevelSystem.LevelUp", event.getOwner().getLanguage()), myPet.getPetName(), event.getLevel()));
}
}
SkillTree skillTree = myPet.getSkilltree();
if (skillTree != null) {
if (skillTree.getLastLevelWithSkills() < lvl) {
lvl = skillTree.getLastLevelWithSkills();
}
for (int i = lastLvl + 1; i <= lvl; i++) {
if (skillTree.hasLevel(i)) {
SkillTreeLevel level = skillTree.getLevel(i);
if (!event.isQuiet()) {
if (level.hasLevelupMessage()) {
myPet.getOwner().sendMessage(Colorizer.setColors(level.getLevelupMessage()));
}
}
List<SkillInfo> skillList = level.getSkills();
for (SkillInfo skill : skillList) {
myPet.getSkills().getSkill(skill.getName()).upgrade(skill, event.isQuiet());
}
}
}
}
if (myPet.getStatus() == MyPet.PetState.Here) {
MyPetBukkitEntity entity = myPet.getEntity().get();
entity.getHandle().updateNameTag();
if (!event.isQuiet()) {
myPet.setHealth(myPet.getMaxHealth());
myPet.setSaturation(100);
final boolean version17 = MyPetApi.getCompatUtil().compareWithMinecraftVersion("1.8") < 0;
new SpiralAnimation(1, entity.getEyeHeight() + 0.5, new EntityLocationHolder(entity)) {
@Override
protected void playParticleEffect(Location location) {
if (version17) {
MyPetApi.getPlatformHelper().playParticleEffect(location, "magicCrit", 0, 0, 0, 0, 1, 32);
} else {
MyPetApi.getPlatformHelper().playParticleEffect(location, "CRIT_MAGIC", 0, 0, 0, 0, 1, 32);
}
// MyPetApi.getPlatformHelper().playParticleEffect(location, "flame", 0, 0, 0, 0, 1, 32);
}
}.loop(2);
if (MyPetApi.getCompatUtil().compareWithMinecraftVersion("1.9") >= 0) {
entity.getWorld().playSound(entity.getLocation(), "entity.player.levelup", 1F, 0.7F);
} else {
entity.getWorld().playSound(entity.getLocation(), Sound.valueOf("LEVEL_UP"), 1F, 0.7F);
}
}
}
}
use of de.Keyle.MyPet.api.skill.skilltree.SkillTreeLevel in project MyPet by xXKeyleXx.
the class LevelCreator method setSkillTree.
public void setSkillTree(SkillTree skillTree, SkillTreeMobType skillTreeMobType) {
this.skillTree = skillTree;
this.skillTreeMobType = skillTreeMobType;
highestLevel = 0;
if (skillTree.hasDisplayName()) {
displayNameTextField.setEnabled(true);
displayNameCheckbox.setSelected(true);
} else {
displayNameTextField.setEnabled(false);
displayNameCheckbox.setSelected(false);
}
displayNameTextField.setText(skillTree.getDisplayName());
if (skillTree.hasCustomPermissions()) {
permissionTextField.setEnabled(true);
permissionCheckbox.setSelected(true);
} else {
permissionTextField.setEnabled(false);
permissionCheckbox.setSelected(false);
}
permissionTextField.setText(skillTree.getPermission());
permissionDisplayTextField.setText("MyPet.skilltree." + skillTree.getPermission());
if (skillTree.getMaxLevel() > 0) {
maxLevelCheckBox.setSelected(true);
maxLevelTextField.setEnabled(true);
maxLevelTextField.setText("" + skillTree.getMaxLevel());
} else {
maxLevelCheckBox.setSelected(false);
maxLevelTextField.setEnabled(false);
maxLevelTextField.setText("");
}
if (skillTree.getRequiredLevel() > 1) {
requiredLevelCheckBox.setSelected(true);
requiredLevelTextField.setEnabled(true);
requiredLevelTextField.setText("" + skillTree.getRequiredLevel());
} else {
requiredLevelCheckBox.setSelected(false);
requiredLevelTextField.setEnabled(false);
requiredLevelTextField.setText("");
}
this.inheritanceComboBoxModel.removeAllElements();
inheritanceCheckBox.setSelected(false);
inheritanceCheckBox.setEnabled(false);
if (skillTreeMobType.getSkillTreeNames().size() > 1 || (skillTreeMobType != SkillTreeMobType.DEFAULT && SkillTreeMobType.DEFAULT.getSkillTreeNames().size() > 0)) {
inheritanceCheckBox.setEnabled(true);
ArrayList<String> skilltreeNames = new ArrayList<>();
for (String skillTreeName : skillTreeMobType.getSkillTreeNames()) {
if (!skillTreeName.equals(skillTree.getName()) && !skilltreeNames.contains(skillTreeName)) {
skilltreeNames.add(skillTreeName);
inheritanceComboBoxModel.addElement(skillTreeName);
}
}
for (String skillTreeName : SkillTreeMobType.DEFAULT.getSkillTreeNames()) {
if (!skillTreeName.equals(skillTree.getName()) && !skilltreeNames.contains(skillTreeName)) {
skilltreeNames.add(skillTreeName);
inheritanceComboBoxModel.addElement(skillTreeName);
}
}
if (skillTree.getInheritance() != null) {
if (skillTreeMobType.getSkillTreeNames().contains(skillTree.getInheritance())) {
inheritanceCheckBox.setSelected(true);
inheritanceComboBox.setEnabled(true);
this.inheritanceComboBoxModel.setSelectedItem(skillTree.getInheritance());
}
if (SkillTreeMobType.DEFAULT.hasSkillTree(skillTree.getInheritance())) {
inheritanceCheckBox.setSelected(true);
inheritanceComboBox.setEnabled(true);
this.inheritanceComboBoxModel.setSelectedItem(skillTree.getInheritance());
}
} else {
inheritanceComboBox.setEnabled(false);
}
}
skillTreeNameLabel.setText("Skilltree: " + skillTree.getName());
SortedDefaultMutableTreeNode rootNode = new SortedDefaultMutableTreeNode(skillTree.getName());
skillTreeTreeModel.setRoot(rootNode);
int skillcount = 0;
for (SkillTreeLevel level : skillTree.getLevelList()) {
highestLevel = Math.max(highestLevel, level.getLevel());
DefaultMutableTreeNode levelNode = new DefaultMutableTreeNode(level.getLevel());
rootNode.add(levelNode);
for (SkillInfo skill : level.getSkills()) {
SkillTreeSkillNode skillNode = new SkillTreeSkillNode(skill);
levelNode.add(skillNode);
skillcount++;
}
}
if (skillcount <= 15) {
for (int i = 0; i < skillTreeTree.getRowCount(); i++) {
skillTreeTree.expandRow(i);
}
} else {
skillTreeTree.expandRow(0);
}
skillTreeTree.updateUI();
skillTreeTree.setSelectionPath(new TreePath(rootNode));
}
use of de.Keyle.MyPet.api.skill.skilltree.SkillTreeLevel in project MyPet by xXKeyleXx.
the class CommandShowSkillTree method onCommand.
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof ConsoleCommandSender) {
SkillTreeMobType mobType;
if (args.length >= 1) {
if (args[0].equalsIgnoreCase("default")) {
mobType = SkillTreeMobType.DEFAULT;
} else {
MyPetType type = MyPetType.byName(args[0]);
if (type != null) {
mobType = SkillTreeMobType.byPetType(type);
} else {
MyPetApi.getLogger().info("There is " + ChatColor.RED + "no" + ChatColor.RESET + " mobtype with the name: " + ChatColor.AQUA + args[0]);
return true;
}
}
if (args.length >= 2) {
if (mobType.hasSkillTree(args[1])) {
SkillTree skillTree = mobType.getSkillTree(args[1]);
MyPetApi.getLogger().info("----- MyPet Skilltree: " + ChatColor.AQUA + skillTree.getName() + ChatColor.RESET + " - Inherits: " + (skillTree.getInheritance() != null ? ChatColor.AQUA + skillTree.getInheritance() + ChatColor.RESET : ChatColor.DARK_GRAY + "none" + ChatColor.RESET) + " -----");
for (SkillTreeLevel lvl : skillTree.getLevelList()) {
MyPetApi.getLogger().info(ChatColor.YELLOW + " " + lvl.getLevel() + ChatColor.RESET + ": (" + (lvl.hasLevelupMessage() ? Colorizer.setColors(lvl.getLevelupMessage()) + ChatColor.RESET : "-") + ")");
for (SkillInfo skill : lvl.getSkills()) {
if (skill.isAddedByInheritance()) {
MyPetApi.getLogger().info(" " + ChatColor.DARK_GRAY + skill.getName());
} else {
MyPetApi.getLogger().info(" " + skill.getName());
}
}
}
MyPetApi.getLogger().info("----- MyPet Skilltree " + ChatColor.AQUA + skillTree.getName() + ChatColor.RESET + " end -----");
} else {
MyPetApi.getLogger().info("There is " + ChatColor.RED + "no" + ChatColor.RESET + " skilltree with the name: " + ChatColor.AQUA + args[1]);
}
} else {
MyPetApi.getLogger().info("----- MyPet Skilltrees for: " + ChatColor.GREEN + args[0]);
for (String skillTreeName : mobType.getSkillTreeNames()) {
MyPetApi.getLogger().info(" " + skillTreeName);
}
}
} else {
return false;
}
} else {
sender.sendMessage("Can only be used in server console");
}
return true;
}
use of de.Keyle.MyPet.api.skill.skilltree.SkillTreeLevel in project MyPet by xXKeyleXx.
the class SkillTreeLoader method addDefault.
public static void addDefault(SkillTreeMobType skillTreeMobType) {
SkillTreeMobType defaultSkillTreeMobType = SkillTreeMobType.DEFAULT;
for (String skillTreeName : defaultSkillTreeMobType.getSkillTreeNames()) {
if (!skillTreeMobType.hasSkillTree(skillTreeName) && defaultSkillTreeMobType.hasSkillTree(skillTreeName)) {
SkillTree newSkillTree = defaultSkillTreeMobType.getSkillTree(skillTreeName).clone();
for (SkillTreeLevel level : newSkillTree.getLevelList()) {
for (SkillInfo skill : level.getSkills()) {
skill.setIsInherited(true);
}
}
skillTreeMobType.addSkillTree(newSkillTree);
}
}
}
use of de.Keyle.MyPet.api.skill.skilltree.SkillTreeLevel in project MyPet by xXKeyleXx.
the class SkillTreeLoader method manageInheritance.
protected static void manageInheritance(SkillTreeMobType skillTreeMobType, SkillTree startSkillTree, SkillTree skillTree, Map<SkillTree, SkillTree> clones, int depth) {
if (skillTree.hasInheritance() && depth < 20) {
if (skillTreeMobType.hasSkillTree(skillTree.getInheritance())) {
SkillTree skillTreeInherit = skillTreeMobType.getSkillTree(skillTree.getInheritance());
if (!alreadyLoadedInheritance.contains(skillTreeInherit)) {
if (skillTreeInherit.hasInheritance() && Configuration.Skilltree.INHERIT_ALREADY_INHERITED_SKILLS) {
alreadyLoadedInheritance.add(skillTreeInherit);
manageInheritance(skillTreeMobType, startSkillTree, skillTreeInherit, clones, depth + 1);
} else {
alreadyLoadedInheritance.add(skillTreeInherit);
}
SkillTree skillTreeClone = clones.get(skillTreeInherit);
for (SkillTreeLevel level : skillTreeClone.getLevelList()) {
for (SkillInfo skill : level.getSkills()) {
SkillInfo skillClone = skill.cloneSkill();
if (skillClone != null) {
skillClone.setIsInherited(true);
startSkillTree.addSkillToLevel(level.getLevel(), skillClone, true);
}
}
}
}
}
}
}
Aggregations