Ir para conteúdo
  • 0

McMMO API HELP.


PedroDev

Pergunta

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

13 respostass a esta questão

Posts Recomendados

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 por zAth
Link para o comentário
Compartilhar em outros sites

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 por zAth
Link para o comentário
Compartilhar em outros sites

 

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

 

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

 

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 por zPedroRJ
Link para o comentário
Compartilhar em outros sites

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

 

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

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

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

  @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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...