PedroDev Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 Bom, queria saber qual é a API que pega o total de nível de todas as habilidades juntas no McMMO Tipo. dou /stats. Ai to lvl 20 em herbalismo e lvl 10 em espadas ai conta o total de nível 30, isso que eu quero saber. Queria botar na scoreboard, estou tentando assim mais não vai olha. package me.zpedrorj.zphscorefactions; import com.Acrobot.ChestShop.Events.TransactionEvent; import com.gmail.nossr50.api.ExperienceAPI; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.events.experience.McMMOPlayerExperienceEvent; import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent; import com.gmail.nossr50.util.player.UserManager; import com.massivecraft.factions.entity.BoardColl; import com.massivecraft.factions.entity.Faction; import com.massivecraft.factions.entity.MPlayer; import com.massivecraft.massivecore.ps.PS; import java.text.NumberFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import javax.annotation.Nullable; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Scoreboard; public class Main extends JavaPlugin implements Listener{ @EventHandler public void onBuy(TransactionEvent e) { atualizarScore(e.getClient(), null); if (e.getOwner().isOnline()) { atualizarScore((Player)e.getOwner(), null); } } @EventHandler public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) { Player player = event.getPlayer(); SkillType skill = event.getSkill(); ExperienceAPI.getLevel(player, "HERBALISMO"); TreeMap<String, Integer> t1 = new TreeMap<>(); t1.put(player.getName(), ExperienceAPI.getLevel(player, "SKILL")); t1.descendingKeySet().pollFirst().toString().replace("[", "").replace("]", ""); } @EventHandler public void onTeleport(PlayerTeleportEvent e) { Player p = e.getPlayer(); MPlayer mplayer = MPlayer.get(p); int powerplayer = (int)mplayer.getPower(); if (!this.poder.containsKey(p)) { this.poder.put(p, Integer.valueOf(powerplayer)); atualizarScore(p, null); } else if ((((Integer)this.poder.get(p)).intValue() == powerplayer ? 1 : 0) == 0) { atualizarScore(p, null); } Location to = e.getTo(); Faction zonatof = BoardColl.get().getFactionAt(PS.valueOf(to)); String zonatos = zonatof.getName(); Location from = e.getFrom(); Faction zonafromf = BoardColl.get().getFactionAt(PS.valueOf(from)); String zonafroms = zonafromf.getName(); if (!zonafroms.equalsIgnoreCase(zonatos)) { atualizarScore(e.getPlayer(), to); } } Map<Player, Integer> poder = new HashMap<>(); public Economy economy; private boolean setupEconomy() { RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(Economy.class); if (economyProvider != null) { this.economy = ((Economy)economyProvider.getProvider()); } return this.economy != null; } @SuppressWarnings("rawtypes") @EventHandler public void onCommandEvent(PlayerCommandPreprocessEvent e) { ArrayList<Player> players = new ArrayList<>(); Iterator localIterator; Player loop; if ((e.getMessage().contains("/pay")) || (e.getMessage().contains("/eco")) || (e.getMessage().contains("/money")) || (e.getMessage().contains("/comprar"))) { e.setCancelled(true); e.getPlayer().performCommand(e.getMessage().replaceFirst("/", "")); atualizarScore(e.getPlayer(), null); for (localIterator = Bukkit.getOnlinePlayers().iterator(); localIterator.hasNext() { loop = (Player)localIterator.next(); if (e.getMessage().contains(loop.getName())) { atualizarScore(loop, null); } } } else if (e.getMessage().contains("/f")) { String[] m = e.getMessage().split(" "); if (m[0].equalsIgnoreCase("/f")) { for (Player loopplayer : Bukkit.getOnlinePlayers()) { MPlayer mplayerloop = MPlayer.get(loopplayer); Faction facloopa = mplayerloop.getFaction(); MPlayer mpcommanda = MPlayer.get(e.getPlayer()); Faction faccommanda = mpcommanda.getFaction(); if (facloopa == faccommanda) { players.add(loopplayer); atualizarScore(loopplayer, null); } } e.setCancelled(true); e.getPlayer().performCommand(e.getMessage().replaceFirst("/", "")); for (Player loopplayerd : Bukkit.getOnlinePlayers()) { if (players.contains(loopplayerd)) { atualizarScore(loopplayerd, null); } } MPlayer mpcommand = MPlayer.get(e.getPlayer()); Faction faccommand = mpcommand.getFaction(); if (mpcommand.hasFaction()) { for (Player jogador : Bukkit.getOnlinePlayers()) { MPlayer mploop = MPlayer.get(jogador); Faction facloop = mploop.getFaction(); if (faccommand == facloop) { atualizarScore(jogador, null); } } } else { for (Player jogador : Bukkit.getOnlinePlayers()) { MPlayer mploop = MPlayer.get(jogador); Faction facloop = mploop.getFaction(); if (faccommand == facloop) { atualizarScore(jogador, null); } } } atualizarScore(e.getPlayer(), null); } } } @EventHandler public void onJoin(PlayerJoinEvent e) { if (e.getPlayer().hasMetadata("Saiu")) { e.getPlayer().removeMetadata("Saiu", this); } atualizarScore(e.getPlayer(), null); Player p = e.getPlayer(); MPlayer mp = MPlayer.get(p); Faction facmp; if (mp.hasFaction()) { facmp = mp.getFaction(); for (Player player : Bukkit.getOnlinePlayers()) { MPlayer mplayer = MPlayer.get(player); Faction factionmp = mplayer.getFaction(); if (facmp == factionmp) { atualizarScore(player, null); } } } } @EventHandler public void onLeft(PlayerQuitEvent e) { Player p = e.getPlayer(); p.setMetadata("Saiu", new FixedMetadataValue(this, null)); MPlayer mp = MPlayer.get(p); Faction facmp; if (mp.hasFaction()) { facmp = mp.getFaction(); for (Player player : Bukkit.getOnlinePlayers()) { MPlayer mplayer = MPlayer.get(player); Faction factionmp = mplayer.getFaction(); if (facmp == factionmp) { atualizarScore(player, null); } } } } public void onEnable() { ConsoleCommandSender inicio = Bukkit.getConsoleSender(); inicio.sendMessage("§c[zPHScoreFactions] §aHabilitado com sucesso!"); getServer().getPluginManager().registerEvents(this, this); setupEconomy(); } @EventHandler public void onMove(PlayerMoveEvent e) { Player p = e.getPlayer(); MPlayer mplayer = MPlayer.get(p); Faction f = mplayer.getFaction(); int powerplayer = (int)mplayer.getPower(); if (!this.poder.containsKey(p)) { this.poder.put(p, Integer.valueOf(powerplayer)); if (mplayer.hasFaction()) { for (Player loop : Bukkit.getOnlinePlayers()) { MPlayer mploop = MPlayer.get(loop); Faction floop = mploop.getFaction(); if (f == floop) { atualizarScore(loop, null); } } } atualizarScore(p, null); } else if ((((Integer)this.poder.get(p)).intValue() == powerplayer ? 1 : 0) == 0) { this.poder.remove(p); this.poder.put(p, Integer.valueOf(powerplayer)); atualizarScore(p, null); e.isAsynchronous(); } Location to = e.getTo(); Faction zonatof = BoardColl.get().getFactionAt(PS.valueOf(to)); String zonatos = zonatof.getName(); Location from = e.getFrom(); Faction zonafromf = BoardColl.get().getFactionAt(PS.valueOf(from)); String zonafroms = zonafromf.getName(); this.poder.put(p, Integer.valueOf(powerplayer)); if (!zonafroms.equalsIgnoreCase(zonatos)) { atualizarScore(e.getPlayer(), to); } } @SuppressWarnings("deprecation") public void atualizarScore(Player p, @Nullable Location to) { if (to == null) { to = p.getLocation(); } Faction faczona = BoardColl.get().getFactionAt(PS.valueOf(to)); String zonafac = faczona.getName(); MPlayer mplayer = MPlayer.get(p); Faction faction = mplayer.getFaction(); String factionnome = faction.getName(); int skill = ExperienceAPI.getLevel(p, "HERBALISMO"); int powerplayer = (int)mplayer.getPower(); int powermaxplayer = (int)mplayer.getPowerMax(); int power = (int)faction.getPower(); int terras = faction.getLandCount(); int powermax = (int)faction.getPowerMax(); int faconline = 0; for (Player jogador : Bukkit.getOnlinePlayers()) { MPlayer mjogador = MPlayer.get(jogador); Faction fjogador = mjogador.getFaction(); if ((fjogador == faction) && (!jogador.hasMetadata("Saiu"))) { faconline++; } } int faconlinemax = faction.getMPlayers().size(); int money = (int)this.economy.getBalance(p.getName()); if (mplayer.hasFaction()) { Scoreboard score = Bukkit.getScoreboardManager().getNewScoreboard(); Objective objetivo = score.registerNewObjective("teste", "dummy"); objetivo.setDisplaySlot(DisplaySlot.SIDEBAR); objetivo.setDisplayName("§e[ §f" + zonafac + " §e]"); objetivo.getScore(Bukkit.getOfflinePlayer("§a")).setScore(11); objetivo.getScore(Bukkit.getOfflinePlayer(" §ePoder: §f" + powerplayer + "/" + powermaxplayer)).setScore(10); objetivo.getScore(Bukkit.getOfflinePlayer("§e")).setScore(9); objetivo.getScore(Bukkit.getOfflinePlayer(" §a" + factionnome)).setScore(8); objetivo.getScore(Bukkit.getOfflinePlayer(" §aOnline: §f" + faconline + "/" + faconlinemax)).setScore(7); objetivo.getScore(Bukkit.getOfflinePlayer(" §aPoder: §f" + power + "/" + powermax)).setScore(6); objetivo.getScore(Bukkit.getOfflinePlayer(" §aTerras: §f" + terras)).setScore(5); objetivo.getScore(Bukkit.getOfflinePlayer("§6§l")).setScore(4); objetivo.getScore(Bukkit.getOfflinePlayer(" §6Coins: §f" + NumberFormat.getInstance().format(money))).setScore(3); objetivo.getScore(Bukkit.getOfflinePlayer("§5")).setScore(2); objetivo.getScore(Bukkit.getOfflinePlayer("§esmashnetwork.com.br")).setScore(1); p.setScoreboard(score); } else { Scoreboard score = Bukkit.getScoreboardManager().getNewScoreboard(); Objective objetivo = score.registerNewObjective("teste", "dummy"); objetivo.setDisplaySlot(DisplaySlot.SIDEBAR); objetivo.setDisplayName("§e[ §f" + zonafac + " §e]"); objetivo.getScore(Bukkit.getOfflinePlayer("§a")).setScore(8); objetivo.getScore(Bukkit.getOfflinePlayer("§aNível: §f" + skill)).setScore(8); objetivo.getScore(Bukkit.getOfflinePlayer("§a")).setScore(8); objetivo.getScore(Bukkit.getOfflinePlayer(" §ePoder: §f" + powerplayer + "/" + powermaxplayer)).setScore(7); objetivo.getScore(Bukkit.getOfflinePlayer("§e")).setScore(6); objetivo.getScore(Bukkit.getOfflinePlayer(" §2Sem facção")).setScore(5); objetivo.getScore(Bukkit.getOfflinePlayer("§6§l")).setScore(4); objetivo.getScore(Bukkit.getOfflinePlayer(" §6Coins: §f" + NumberFormat.getInstance().format(money))).setScore(3); objetivo.getScore(Bukkit.getOfflinePlayer("§6")).setScore(2); objetivo.getScore(Bukkit.getOfflinePlayer("§esmashnetwork.com.br")).setScore(1); p.setScoreboard(score); } } } Se alguem poder ajudar é noix.. Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 (editado) Poderia me mandar um exemplo ou até mesmo oque eu devo fazer? @EventHandler public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) { Player player = event.getPlayer(); SkillType skill = event.getSkill(); ExperienceAPI.getLevel(player, "HERBALISMO"); TreeMap<String, Integer> t1 = new TreeMap<>(); t1.put(player.getName(), ExperienceAPI.getLevel(player, "SKILL")); t1.descendingKeySet().pollFirst().toString().replace("[", "").replace("]", ""); atualizarScore(player, null); } Editado Março 29, 2017 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 (editado) nem vi isso tudo, mas para pegar o total pode usar isso. private int getTotal(Player p){ int toReturn = 0; for(SkillType skillType : SkillType.values()){ toReturn += ExperienceAPI.getLevel(p, skillType.name()); } return toReturn; } Editado Março 29, 2017 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
PedroDev Postado Março 29, 2017 Autor Denunciar Compartilhar Postado Março 29, 2017 nem vi isso tudo, mas para pegar o total pode usar isso. private int getTotal(Player p){ int toReturn = 0; for(SkillType skill : SkillType.values()){ toReturn += ExperienceAPI.getLevel(p, skill.name()); } return toReturn; } Ok mais como eu pego uma int igual á esses? Faction faczona = BoardColl.get().getFactionAt(PS.valueOf(to)); String zonafac = faczona.getName(); MPlayer mplayer = MPlayer.get(p); Faction faction = mplayer.getFaction(); String factionnome = faction.getName(); int powerplayer = (int)mplayer.getPower(); int powermaxplayer = (int)mplayer.getPowerMax(); int power = (int)faction.getPower(); int terras = faction.getLandCount(); int powermax = (int)faction.getPowerMax(); int skill = ExperienceAPI.getLevel(p, skill.name()); = TO TENTANDO ASSIM NÂO VAI. int faconline = 0; Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 Ok mais como eu pego uma int igual á esses? Faction faczona = BoardColl.get().getFactionAt(PS.valueOf(to)); String zonafac = faczona.getName(); MPlayer mplayer = MPlayer.get(p); Faction faction = mplayer.getFaction(); String factionnome = faction.getName(); int powerplayer = (int)mplayer.getPower(); int powermaxplayer = (int)mplayer.getPowerMax(); int power = (int)faction.getPower(); int terras = faction.getLandCount(); int powermax = (int)faction.getPowerMax(); int skill = ExperienceAPI.getLevel(p, skill.name()); = TO TENTANDO ASSIM NÂO VAI. int faconline = 0; o que não vai? que erro aparece Link para o comentário Compartilhar em outros sites More sharing options...
PedroDev Postado Março 29, 2017 Autor Denunciar Compartilhar Postado Março 29, 2017 (editado) o que não vai? que erro aparece Nada so aparece um (X)... Á INT PARA PEGAR O LEVEL DO NEGO. queria fazer á int para poder botar na scoreboard. Editado Março 29, 2017 por zPedroRJ Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 Nada so aparece um (X)... Á INT PARA PEGAR O LEVEL DO NEGO. queria fazer á int para poder botar na scoreboard. fálândõ àssîm nãó dâ.. você está usando isso: int skill = ExperienceAPI.getLevel(p, "HERBALISMO");.. "HERBALISMO" não é inglês .. se isso não resultar na mesma vai na plugin.yml e adiciona isso loadbefore: [mcMMO] // se ainda não resultar usa isso softdepend: [mcMMO] Link para o comentário Compartilhar em outros sites More sharing options...
PedroDev Postado Março 29, 2017 Autor Denunciar Compartilhar Postado Março 29, 2017 fálândõ àssîm nãó dâ.. você está usando isso: int skill = ExperienceAPI.getLevel(p, "HERBALISMO");.. "HERBALISMO" não é inglês .. se isso não resultar na mesma vai na plugin.yml e adiciona isso loadbefore: [mcMMO] // se ainda não resultar usa isso softdepend: [mcMMO] Funciono, mais tipo... Como eu faço para pegar todas as habilidades em vez de: ExperienceAPI.getLevel(p, "HERBALISMO"); HERBALISMO ( SO TA CONTANDO HERBALISMO "_") Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 Funciono, mais tipo... Como eu faço para pegar todas as habilidades em vez de: ExperienceAPI.getLevel(p, "HERBALISMO"); HERBALISMO ( SO TA CONTANDO HERBALISMO "_") isso foi a primeira coisa que eu falei.. nem vi isso tudo, mas para pegar o total pode usar isso. private int getTotal(Player p){ int toReturn = 0; for(SkillType skillType : SkillType.values()){ toReturn += ExperienceAPI.getLevel(p, skillType.name()); } return toReturn; } int skill = getTotal(p); Link para o comentário Compartilhar em outros sites More sharing options...
PedroDev Postado Março 29, 2017 Autor Denunciar Compartilhar Postado Março 29, 2017 isso foi a primeira coisa que eu falei.. int skill = getTotal(p); RESOLVIDO, ULTIMA COISA, TEM COMO EU FAZER PARA ATUALIZAR Á SCOREBOARD QND O CARA UPA DE SKILL? Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 RESOLVIDO, ULTIMA COISA, TEM COMO EU FAZER PARA ATUALIZAR Á SCOREBOARD QND O CARA UPA DE SKILL? so colocar esse seu método atualizarScore(p, null) no McMMOPlayerLevelUpEvent Link para o comentário Compartilhar em outros sites More sharing options...
PedroDev Postado Março 29, 2017 Autor Denunciar Compartilhar Postado Março 29, 2017 so colocar esse seu método atualizarScore(p, null) no McMMOPlayerLevelUpEvent Poderia me mandar um exemplo ou até mesmo oque eu devo fazer? Link para o comentário Compartilhar em outros sites More sharing options...
PedroDev Postado Março 29, 2017 Autor Denunciar Compartilhar Postado Março 29, 2017 @EventHandler public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) { Player player = event.getPlayer(); SkillType skill = event.getSkill(); ExperienceAPI.getLevel(player, "HERBALISMO"); TreeMap<String, Integer> t1 = new TreeMap<>(); t1.put(player.getName(), ExperienceAPI.getLevel(player, "SKILL")); t1.descendingKeySet().pollFirst().toString().replace("[", "").replace("]", ""); atualizarScore(player, null); } ñ foi mais dboa ja ajudou mt "RESOLVIDO". Link para o comentário Compartilhar em outros sites More sharing options...
nathampa0909 Postado Março 29, 2017 Denunciar Compartilhar Postado Março 29, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
PedroDev
Bom, queria saber qual é a API que pega o total de nível de todas as habilidades juntas no McMMO Tipo.
dou /stats.
Ai to lvl 20 em herbalismo e lvl 10 em espadas ai conta o total de nível 30, isso que eu quero saber.
Queria botar na scoreboard, estou tentando assim mais não vai olha.
Se alguem poder ajudar é noix..
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados