use of de.Keyle.MyPet.api.entity.MyPet 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.entity.MyPet in project MyPet by xXKeyleXx.
the class PlayerListener method on.
@EventHandler(priority = EventPriority.LOWEST)
public void on(PlayerQuitEvent event) {
if (MyPetApi.getPlayerManager().isMyPetPlayer(event.getPlayer())) {
MyPetPlayer player = MyPetApi.getPlayerManager().getMyPetPlayer(event.getPlayer());
if (player.hasMyPet()) {
MyPet myPet = player.getMyPet();
if (myPet.getStatus() == MyPet.PetState.Here) {
myPet.removePet(true);
}
MyPetApi.getMyPetManager().deactivateMyPet(player, true);
}
MyPetApi.getPlayerManager().setOffline(player);
}
}
use of de.Keyle.MyPet.api.entity.MyPet in project MyPet by xXKeyleXx.
the class PlayerListener method on.
@EventHandler
public void on(final PlayerJoinEvent event) {
long delay = MyPetApi.getRepository() instanceof SqLiteRepository ? 1L : Configuration.Repository.EXTERNAL_LOAD_DELAY;
new BukkitRunnable() {
@Override
public void run() {
MyPetApi.getRepository().getMyPetPlayer(event.getPlayer(), new RepositoryCallback<MyPetPlayer>() {
@Override
public void callback(final MyPetPlayer p) {
final MyPetPlayerImpl joinedPlayer = (MyPetPlayerImpl) p;
joinedPlayer.setLastKnownName(event.getPlayer().getName());
if (!event.getPlayer().getUniqueId().equals(joinedPlayer.getOfflineUUID())) {
if (joinedPlayer.getMojangUUID() == null) {
joinedPlayer.setMojangUUID(event.getPlayer().getUniqueId());
}
joinedPlayer.setOnlineMode(true);
}
MyPetApi.getPlayerManager().setOnline(joinedPlayer);
final WorldGroup joinGroup = WorldGroup.getGroupByWorld(event.getPlayer().getWorld().getName());
if (joinedPlayer.hasMyPet()) {
MyPet myPet = joinedPlayer.getMyPet();
if (!myPet.getWorldGroup().equals(joinGroup.getName())) {
MyPetApi.getMyPetManager().deactivateMyPet(joinedPlayer, true);
}
}
if (!joinedPlayer.hasMyPet() && joinedPlayer.hasMyPetInWorldGroup(joinGroup.getName())) {
final UUID petUUID = joinedPlayer.getMyPetForWorldGroup(joinGroup.getName());
MyPetApi.getRepository().getMyPet(petUUID, new RepositoryCallback<StoredMyPet>() {
@Override
public void callback(StoredMyPet storedMyPet) {
MyPetApi.getMyPetManager().activateMyPet(storedMyPet);
if (joinedPlayer.hasMyPet()) {
final MyPet myPet = joinedPlayer.getMyPet();
if (myPet.wantsToRespawn()) {
switch(myPet.createEntity()) {
case Canceled:
joinedPlayer.sendMessage(Util.formatText(Translation.getString("Message.Spawn.Prevent", joinedPlayer), myPet.getPetName()));
break;
case NotAllowed:
joinedPlayer.sendMessage(Util.formatText(Translation.getString("Message.No.AllowedHere", joinedPlayer), myPet.getPetName()));
break;
case Dead:
joinedPlayer.sendMessage(Util.formatText(Translation.getString("Message.Spawn.Respawn.In", joinedPlayer), myPet.getPetName(), myPet.getRespawnTime()));
break;
case Flying:
joinedPlayer.sendMessage(Util.formatText(Translation.getString("Message.Spawn.Flying", joinedPlayer), myPet.getPetName()));
break;
case NoSpace:
joinedPlayer.sendMessage(Util.formatText(Translation.getString("Message.Spawn.NoSpace", joinedPlayer), myPet.getPetName()));
break;
}
}
}
}
});
}
joinedPlayer.checkForDonation();
Bukkit.getServer().getPluginManager().callEvent(new MyPetPlayerJoinEvent(joinedPlayer));
}
});
}
}.runTaskLater(MyPetApi.getPlugin(), delay);
if (event.getPlayer().isOp() && Updater.isUpdateAvailable()) {
event.getPlayer().sendMessage(Util.formatText(Translation.getString("Message.Update.Available", event.getPlayer())) + " " + Updater.getLatest());
event.getPlayer().sendMessage(ChatColor.DARK_GREEN + " https://mypet-plugin.de/download");
}
}
use of de.Keyle.MyPet.api.entity.MyPet in project MyPet by xXKeyleXx.
the class CommandCall method onCommand.
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
Player petOwner = (Player) sender;
if (MyPetApi.getMyPetManager().hasActiveMyPet(petOwner)) {
MyPet myPet = MyPetApi.getMyPetManager().getMyPet(petOwner);
myPet.removePet(true);
switch(myPet.createEntity()) {
case Success:
sender.sendMessage(Util.formatText(Translation.getString("Message.Command.Call.Success", petOwner), myPet.getPetName()));
break;
case Canceled:
sender.sendMessage(Util.formatText(Translation.getString("Message.Spawn.Prevent", petOwner), myPet.getPetName()));
break;
case NoSpace:
sender.sendMessage(Util.formatText(Translation.getString("Message.Spawn.NoSpace", petOwner), myPet.getPetName()));
break;
case NotAllowed:
sender.sendMessage(Util.formatText(Translation.getString("Message.No.AllowedHere", petOwner), myPet.getPetName()));
break;
case Dead:
sender.sendMessage(Util.formatText(Translation.getString("Message.Call.Dead", petOwner), myPet.getPetName(), myPet.getRespawnTime()));
break;
case Flying:
sender.sendMessage(Util.formatText(Translation.getString("Message.Spawn.Flying", petOwner), myPet.getPetName()));
break;
case Spectator:
sender.sendMessage(Util.formatText(Translation.getString("Message.Spawn.Spectator", petOwner), myPet.getPetName()));
break;
}
return true;
} else {
sender.sendMessage(Translation.getString("Message.No.HasPet", petOwner));
}
return true;
}
sender.sendMessage("You can't use this command from server console!");
return true;
}
use of de.Keyle.MyPet.api.entity.MyPet in project MyPet by xXKeyleXx.
the class CommandChooseSkilltree method onTabComplete.
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String s, String[] strings) {
if (sender instanceof Player) {
Player player = (Player) sender;
if (MyPetApi.getMyPetManager().hasActiveMyPet(player)) {
MyPet myPet = MyPetApi.getMyPetManager().getMyPet(player);
if (Configuration.Skilltree.AUTOMATIC_SKILLTREE_ASSIGNMENT && !myPet.getOwner().isMyPetAdmin()) {
return CommandAdmin.EMPTY_LIST;
} else if (myPet.getSkilltree() != null && Configuration.Skilltree.CHOOSE_SKILLTREE_ONLY_ONCE && !myPet.getOwner().isMyPetAdmin()) {
return CommandAdmin.EMPTY_LIST;
} else if (SkillTreeMobType.hasMobType(myPet.getPetType())) {
SkillTreeMobType skillTreeMobType = SkillTreeMobType.byPetType(myPet.getPetType());
List<String> skilltreeList = new ArrayList<>();
for (SkillTree skillTree : skillTreeMobType.getSkillTrees()) {
if (Permissions.hasLegacy(player, "MyPet.skilltree.", skillTree.getPermission())) {
skilltreeList.add(skillTree.getName());
}
}
return skilltreeList;
}
}
}
return CommandAdmin.EMPTY_LIST;
}
Aggregations